diff -Nru freetds-1.1.6/aclocal.m4 freetds-1.2.3/aclocal.m4 --- freetds-1.1.6/aclocal.m4 2019-04-29 09:00:20.000000000 +0000 +++ freetds-1.2.3/aclocal.m4 2020-07-09 09:01:19.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,8 +20,654 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# iconv.m4 serial 19 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. +# host-cpu-c-abi.m4 serial 11 +dnl Copyright (C) 2002-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible and Sam Steingold. + +dnl Sets the HOST_CPU variable to the canonical name of the CPU. +dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its +dnl C language ABI (application binary interface). +dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in +dnl config.h. +dnl +dnl This canonical name can be used to select a particular assembly language +dnl source file that will interoperate with C code on the given host. +dnl +dnl For example: +dnl * 'i386' and 'sparc' are different canonical names, because code for i386 +dnl will not run on SPARC CPUs and vice versa. They have different +dnl instruction sets. +dnl * 'sparc' and 'sparc64' are different canonical names, because code for +dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code +dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit +dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit +dnl mode, but not both. +dnl * 'mips' and 'mipsn32' are different canonical names, because they use +dnl different argument passing and return conventions for C functions, and +dnl although the instruction set of 'mips' is a large subset of the +dnl instruction set of 'mipsn32'. +dnl * 'mipsn32' and 'mips64' are different canonical names, because they use +dnl different sizes for the C types like 'int' and 'void *', and although +dnl the instruction sets of 'mipsn32' and 'mips64' are the same. +dnl * The same canonical name is used for different endiannesses. You can +dnl determine the endianness through preprocessor symbols: +dnl - 'arm': test __ARMEL__. +dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. +dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. +dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 +dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because +dnl - Instructions that do not exist on all of these CPUs (cmpxchg, +dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your +dnl assembly language source files use such instructions, you will +dnl need to make the distinction. +dnl - Speed of execution of the common instruction set is reasonable across +dnl the entire family of CPUs. If you have assembly language source files +dnl that are optimized for particular CPU types (like GNU gmp has), you +dnl will need to make the distinction. +dnl See . +AC_DEFUN([gl_HOST_CPU_C_ABI], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], + [case "$host_cpu" in + +changequote(,)dnl + i[4567]86 ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=i386 + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=x86_64-x32], + [gl_cv_host_cpu_c_abi=x86_64])], + [gl_cv_host_cpu_c_abi=i386]) + ;; + +changequote(,)dnl + alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=alpha + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __aarch64__ + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=arm64-ilp32], + [gl_cv_host_cpu_c_abi=arm64])], + [# Don't distinguish little-endian and big-endian arm, since they + # don't require different machine code for simple operations and + # since the user can distinguish them through the preprocessor + # defines __ARMEL__ vs. __ARMEB__. + # But distinguish arm which passes floating-point arguments and + # return values in integer registers (r0, r1, ...) - this is + # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which + # passes them in float registers (s0, s1, ...) and double registers + # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer + # sets the preprocessor defines __ARM_PCS (for the first case) and + # __ARM_PCS_VFP (for the second case), but older GCC does not. + echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c + # Look for a reference to the register d0 in the .s file. + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 + if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then + gl_cv_host_cpu_c_abi=armhf + else + gl_cv_host_cpu_c_abi=arm + fi + rm -f conftest* + ]) + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=hppa64], + [gl_cv_host_cpu_c_abi=hppa]) + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=ia64-ilp32], + [gl_cv_host_cpu_c_abi=ia64]) + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mips64], + [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIN32. + # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIO32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (_MIPS_SIM == _ABIN32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mipsn32], + [gl_cv_host_cpu_c_abi=mips])]) + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + ]])], + [# On powerpc64, there are two ABIs on Linux: The AIX compatible + # one and the ELFv2 one. The latter defines _CALL_ELF=2. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _CALL_ELF && _CALL_ELF == 2 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=powerpc64-elfv2], + [gl_cv_host_cpu_c_abi=powerpc64]) + ], + [gl_cv_host_cpu_c_abi=powerpc]) + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi=powerpc + ;; + + riscv32 | riscv64 ) + # There are 2 architectures (with variants): rv32* and rv64*. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if __riscv_xlen == 64 + int ok; + #else + error fail + #endif + ]])], + [cpu=riscv64], + [cpu=riscv32]) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [main_abi=lp64], + [main_abi=ilp32]) + # Float ABIs: + # __riscv_float_abi_double: + # 'float' and 'double' are passed in floating-point registers. + # __riscv_float_abi_single: + # 'float' are passed in floating-point registers. + # __riscv_float_abi_soft: + # No values are passed in floating-point registers. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_double + int ok; + #else + error fail + #endif + ]])], + [float_abi=d], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_single + int ok; + #else + error fail + #endif + ]])], + [float_abi=f], + [float_abi='']) + ]) + gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=s390x], + [gl_cv_host_cpu_c_abi=s390]) + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=sparc64], + [gl_cv_host_cpu_c_abi=sparc]) + ;; + + *) + gl_cv_host_cpu_c_abi="$host_cpu" + ;; + esac + ]) + + dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. + HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` + HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" + AC_SUBST([HOST_CPU]) + AC_SUBST([HOST_CPU_C_ABI]) + + # This was + # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) + # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) + # earlier, but KAI C++ 3.2d doesn't like this. + sed -e 's/-/_/g' >> confdefs.h <. - m4_ifdef([gl_ICONV_H_DEFAULTS], - [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) - if test -n "$am_cv_proto_iconv_arg1"; then - ICONV_CONST="const" - fi - ]) + else + dnl When compiling GNU libiconv on a system that does not have iconv yet, + dnl pick the POSIX compliant declaration without 'const'. + am_cv_proto_iconv_arg1="" fi + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) ]) -# lib-ld.m4 serial 6 -dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. +# lib-ld.m4 serial 9 +dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -341,86 +1003,135 @@ } fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. +if test -n "$LD"; then + AC_MSG_CHECKING([for ld]) +elif test "$GCC" = yes; then AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` - while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi -AC_CACHE_VAL([acl_cv_path_LD], -[if test -z "$LD"; then - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 &5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; esac fi - done - IFS="$acl_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + dnl Complain if config.rpath is missing. + AC_REQUIRE_AUX_FILE([config.rpath]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host @@ -601,17 +1312,15 @@ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -625,7 +1334,7 @@ additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -1084,7 +1793,6 @@ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi - popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) @@ -1190,21 +1898,14 @@ AC_SUBST([$1]) ]) -# lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. +# lib-prefix.m4 serial 14 +dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed @@ -1224,9 +1925,9 @@ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -1340,367 +2041,111 @@ prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a variable acl_libdirstem, containing the basename of the libdir, either -dnl "lib" or "lib64" or "lib/64", -dnl - a variable acl_libdirstem2, as a secondary possible value for -dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or -dnl "lib/amd64". -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib and lib64. - dnl On glibc systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine - dnl the compiler's default mode by looking at the compiler's library search - dnl path. If at least one of its elements ends in /lib64 or points to a - dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. - dnl Otherwise we use the default, namely "lib". - dnl On Solaris systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or - dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. - AC_REQUIRE([AC_CANONICAL_HOST]) - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl . - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_EGREP_CPP([sixtyfour bits], [ -#ifdef _LP64 -sixtyfour bits -#endif - ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) - ]) - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" -]) - -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see .])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES - -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. -AC_DEFUN([PKG_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([pkgconfigdir], - [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, - [with_pkgconfigdir=]pkg_default) -AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR - - -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. -AC_DEFUN([PKG_NOARCH_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([noarch-pkgconfigdir], - [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, - [with_noarch_pkgconfigdir=]pkg_default) -AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR - - -# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# ------------------------------------------- -# Retrieves the value of the pkg-config variable for the given module. -AC_DEFUN([PKG_CHECK_VAR], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl - -_PKG_CONFIG([$1], [variable="][$3]["], [$2]) -AS_VAR_COPY([$1], [pkg_cv_][$1]) - -AS_VAR_IF([$1], [""], [$5], [$4])dnl -])# PKG_CHECK_VAR - -# PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, -# [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], -# [DESCRIPTION], [DEFAULT]) -# -# Prepare a "--with-" configure option using the lowercase [VARIABLE-PREFIX] -# name, merging the behaviour of AC_ARG_WITH and PKG_CHECK_MODULES in a single -# macro -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_WITH_MODULES], -[ -m4_pushdef([with_arg], m4_tolower([$1])) - -m4_pushdef([description], - [m4_default([$5], [build with ]with_arg[ support])]) - -m4_pushdef([def_arg], [m4_default([$6], [auto])]) -m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) -m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) - -m4_case(def_arg, - [yes],[m4_pushdef([with_without], [--without-]with_arg)], - [m4_pushdef([with_without],[--with-]with_arg)]) - -AC_ARG_WITH(with_arg, - AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, - [AS_TR_SH([with_]with_arg)=def_arg]) - -AS_CASE([$AS_TR_SH([with_]with_arg)], - [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], - [auto],[PKG_CHECK_MODULES([$1],[$2], - [m4_n([def_action_if_found]) $3], - [m4_n([def_action_if_not_found]) $4])]) - -m4_popdef([with_arg]) -m4_popdef([description]) -m4_popdef([def_arg]) - -]) dnl PKG_WITH_MODULES - -# PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, -# [DESCRIPTION], [DEFAULT]) -# -# Convenience macro to trigger AM_CONDITIONAL after -# PKG_WITH_MODULES check. -# -# HAVE_[VARIABLE-PREFIX] is exported as make variable. -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_HAVE_WITH_MODULES], -[ -PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) - -AM_CONDITIONAL([HAVE_][$1], - [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" ]) -# PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, -# [DESCRIPTION], [DEFAULT]) -# -# Convenience macro to run AM_CONDITIONAL and AC_DEFINE after -# PKG_WITH_MODULES check. -# -# HAVE_[VARIABLE-PREFIX] is exported as make and preprocessor variable. -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ -PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) -AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], - [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) + case "$host_os" in + solaris*) + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _LP64 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_solaris_64bit=yes], + [gl_cv_solaris_64bit=no]) + ]);; + esac + + dnl Allow the user to override the result by setting acl_cv_libdirstems. + AC_CACHE_CHECK([for the common suffixes of directories in the library search path], + [acl_cv_libdirstems], + [acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib, not $prefix/lib64. + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + dnl The result is a property of the system. However, non-system + dnl compilers sometimes have odd library search paths. Therefore + dnl prefer asking /usr/bin/gcc, if available, rather than $CC. + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2" + ]) + # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2. + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'` ]) # ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*- @@ -2613,7 +3058,351 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], []) -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2625,10 +3414,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -2644,14 +3433,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2703,7 +3492,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2734,7 +3523,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2925,13 +3714,12 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -2939,49 +3727,41 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -2990,18 +3770,17 @@ # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3088,8 +3867,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -3156,7 +3935,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3198,7 +3977,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3219,7 +3998,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3240,7 +4019,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3248,49 +4027,42 @@ # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3329,7 +4101,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3358,7 +4130,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3405,7 +4177,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3424,7 +4196,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3505,7 +4277,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3565,7 +4337,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3593,7 +4365,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -3612,7 +4384,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru freetds-1.1.6/AUTHORS freetds-1.2.3/AUTHORS --- freetds-1.1.6/AUTHORS 2019-02-04 19:03:19.000000000 +0000 +++ freetds-1.2.3/AUTHORS 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ -Brian Bruns -Started this crazy thing - -James K. Lowden -Documentation, maintainer from 2003 to early 2015. - -Marc Abramowitz -Testing and patches, Travis CI tests. - -Koscheev Andrey -Negative money patch. - -Craig A. Berry -VMS support. - -James Cameron -GNU standards compliance and minor fixes. - -Peter Deacon -Lots of help, testing and patches. - -John F. Dumas -Patch to fix memory leaks. - -David Fraser -Testing and patches (NO-DM support). - -Scott Gray -TDS 7.0 numeric support and bug fixes. - -Alex Hornby -Testing and patches. - -Mihai Ibanescu -GNUified the packet. - -Gregg Jensen -Message handlers and extra datatype support and some sybperl stuff? - -Viktar Klimkovitch -ODBC fixes to get libodbc++ working. - -Bob Kline -NTEXT support. - -Lothar Krauss -ODBC fixes. - -Steve Langasek -Off by one fixes and autoconf byte size thing. Debian package maintainer. - -Mark J. Lilback -Implementation of dbstrlen and dbstrcpy. - -Kevin Lyons -Various TDS bug fixes. - -Steve Murphree -Contributed a huge ODBC patch. - -Dennis Nicklaus -vxWorks port and fixes for dbdata() and SYBVARBINARY. - -Arno Pedusaar -Donated his TDS4.2 code to the cause. - -Brandon M. Reynolds -Fix for arbitrarily large queries under dblib. - -Thomas Rogers -Testing and patches. - -Mark Schaal -Cleaned up message handling, bug fixes, ctlib unittests. - -Ken Seymour -ODBC Driver Fixes. - -Craig Spannring -JDBC driver and CVS repository. - -Martin Spott -Testing and patches. - -Sam Tetherow -Various TDS bug fixes. - -Bill Thompson -BCP patches and datetime fixes. - -Patrick van Kleef -Various bug fixes, dbcanquery() and odbc version checks. - -Geoff Winkless -Lost connection stuff. - -Nicholas S. Castellano -Many bug fixes and improvements, contributor of fisql application. - -Frediano Ziglio -Lot of contributions, maintainer since 2015. - -Special thanks to Michael Peppler , -author of the DBD::Sybase Perl module. - -Thanks go to the folks at A2i, Inc. (http://www.a2i.com) for funding the -development of dblib host file bulk copy and writetext support, and to Dave -Poyourow there for helping with the debugging. diff -Nru freetds-1.1.6/AUTHORS.md freetds-1.2.3/AUTHORS.md --- freetds-1.1.6/AUTHORS.md 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/AUTHORS.md 2020-05-31 12:36:47.000000000 +0000 @@ -0,0 +1,108 @@ +Brian Bruns +Started this crazy thing + +James K. Lowden +Documentation, maintainer from 2003 to early 2015. + +Marc Abramowitz +Testing and patches, Travis CI tests. + +Koscheev Andrey +Negative money patch. + +Craig A. Berry +VMS support. + +James Cameron +GNU standards compliance and minor fixes. + +Peter Deacon +Lots of help, testing and patches. + +John F. Dumas +Patch to fix memory leaks. + +David Fraser +Testing and patches (NO-DM support). + +Scott Gray +TDS 7.0 numeric support and bug fixes. + +Alex Hornby +Testing and patches. + +Mihai Ibanescu +GNUified the packet. + +Gregg Jensen +Message handlers and extra datatype support and some sybperl stuff? + +Viktar Klimkovitch +ODBC fixes to get libodbc++ working. + +Bob Kline +NTEXT support. + +Lothar Krauss +ODBC fixes. + +Steve Langasek +Off by one fixes and autoconf byte size thing. Debian package maintainer. + +Mark J. Lilback +Implementation of dbstrlen and dbstrcpy. + +Kevin Lyons +Various TDS bug fixes. + +Steve Murphree +Contributed a huge ODBC patch. + +Dennis Nicklaus +vxWorks port and fixes for dbdata() and SYBVARBINARY. + +Arno Pedusaar +Donated his TDS4.2 code to the cause. + +Brandon M. Reynolds +Fix for arbitrarily large queries under dblib. + +Thomas Rogers +Testing and patches. + +Mark Schaal +Cleaned up message handling, bug fixes, ctlib unittests. + +Ken Seymour +ODBC Driver Fixes. + +Craig Spannring +JDBC driver and CVS repository. + +Martin Spott +Testing and patches. + +Sam Tetherow +Various TDS bug fixes. + +Bill Thompson +BCP patches and datetime fixes. + +Patrick van Kleef +Various bug fixes, dbcanquery() and odbc version checks. + +Geoff Winkless +Lost connection stuff. + +Nicholas S. Castellano +Many bug fixes and improvements, contributor of fisql application. + +Frediano Ziglio +Lot of contributions, maintainer since 2015. + +Special thanks to Michael Peppler , +author of the DBD::Sybase Perl module. + +Thanks go to the folks at A2i, Inc. (http://www.a2i.com) for funding the +development of dblib host file bulk copy and writetext support, and to Dave +Poyourow there for helping with the debugging. diff -Nru freetds-1.1.6/BUGS freetds-1.2.3/BUGS --- freetds-1.1.6/BUGS 2019-02-04 19:03:19.000000000 +0000 +++ freetds-1.2.3/BUGS 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ - -Needs Fixing ------------- -1. Fix formatting of dbprhead/dbprrow...its a little off - (Anybody care?) -2. ct-lib placeholders do not work with TDS 7.0+. To fix - this requires either an SQL parser or API modification, - because the library has to determine the SQL datatype - of the placeholder variable. diff -Nru freetds-1.1.6/BUGS.md freetds-1.2.3/BUGS.md --- freetds-1.1.6/BUGS.md 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/BUGS.md 2020-05-31 12:36:47.000000000 +0000 @@ -0,0 +1,10 @@ +Needs Fixing +============ + +1. Fix formatting of dbprhead/dbprrow...its a little off + (Anybody care?) + +2. ct-lib placeholders do not work with TDS 7.0+. To fix + this requires either an SQL parser or API modification, + because the library has to determine the SQL datatype + of the placeholder variable. diff -Nru freetds-1.1.6/ChangeLog freetds-1.2.3/ChangeLog --- freetds-1.1.6/ChangeLog 2019-04-29 09:00:01.000000000 +0000 +++ freetds-1.2.3/ChangeLog 2020-07-09 09:01:15.000000000 +0000 @@ -1,55 +1,24 @@ Author: Frediano Ziglio -Date: Sun Apr 28 19:30:11 2019 +0100 +Date: Mon Jul 6 16:54:51 2020 +0100 - Fix endian adjustment on PPC little endian + tds: Optimization for char encoding - Code assumed PPC were always big endian. - -Author: rayrapetyan -Date: Tue Apr 16 20:26:57 2019 -0700 - - change severity for "DBPROCESS is dead or not enabled": EXINFO -> EXCOMM - - "DBPROCESS is dead or not enabled" is a connectivity issue on the client - side, severity level should be EXCOMM at least. - It makes e.g. - https://github.com/pymssql/pymssql/blob/fda5fd38f30eaeeb40a911235692144493d69864/src/_mssql.pyx#L1168 - to spin infinitely, never raising StopIteration (in case issue occurred in - the middle of fetching process). - -Author: Frediano Ziglio -Date: Fri Mar 29 09:44:34 2019 +0000 - - Do not install not executable files as executable - - Configuration files and some documentation were installed as - executable using "make install". - - Reported-by: Rüdiger Ihle + Detect same charset and avoid using larger buffer to store + result of conversion. + This also affects the column length on some libraries which do + not differ between DDL and byte length. Author: Frediano Ziglio -Date: Thu Mar 28 03:54:45 2019 +0000 - - cmake: Allow build from stable packaged version +Date: Tue Jul 7 07:54:37 2020 +0100 - For stable packaged version the version string was extracted from - configure file however the regular expression used not - supporting 1.x versions. + dblib: Allows to pass 0 as type for bcp_bind -Author: Alexey Basov -Date: Mon Mar 4 17:24:20 2019 +0300 - - Fix bulk insert multibyte string support in names - - When column name (or table name in blob type case) has non ASCII characters length of such string was calculated incorrectly. - In such cases bulk insert has failed with: - Msg 4804, Level 17, State 1 - While reading current row from host, a premature end-of-message was encountered--an incoming data stream was interrupted when the server expected to see more data. The host program may have terminated. Ensure that you are using a supported client application programming interface (API). + 0 value as type means no conversion performed. + This is correctly handled but it was rejected when more checks + were introduced. Author: Frediano Ziglio -Date: Sun Mar 17 19:02:35 2019 +0000 - - ctlib: Fix cs_will_convert +Date: Tue Jul 7 07:31:38 2020 +0100 - Use CT-Library types, not TDS ones. + dblib: Add missing parameters to DBSETLSERVERPRINCIPAL macro diff -Nru freetds-1.1.6/CMakeLists.txt freetds-1.2.3/CMakeLists.txt --- freetds-1.1.6/CMakeLists.txt 2019-03-28 09:00:01.000000000 +0000 +++ freetds-1.2.3/CMakeLists.txt 2020-05-31 12:36:47.000000000 +0000 @@ -1,6 +1,6 @@ project(FreeTDS) -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 3.3) option(WITH_OPENSSL "Link in OpenSSL if found" ON) option(ENABLE_ODBC_WIDE "Enable ODBC wide character support" ON) @@ -59,7 +59,7 @@ # get build number from date # use same formula used in configure.ac unset(BUILD_NUMBER) -string(TIMESTAMP BUILD_NUMBER "( %Y - 2000 ) * 366 + 1%j - 1000") +string(TIMESTAMP BUILD_NUMBER "( %Y - 2020 ) * 366 + 1%j - 1000") math(EXPR BUILD_NUMBER "${BUILD_NUMBER}") set(FREETDS_TOPDIR ${CMAKE_CURRENT_LIST_DIR}) @@ -80,6 +80,10 @@ include(CheckPrototypeDefinition) find_package(Perl) +find_program(GPERF NAMES gperf) +if (NOT GPERF) + message(FATAL_ERROR "gperf not found!") +endif() macro(config_write str) file(APPEND "${CMAKE_BINARY_DIR}/include/config.h.in" "${str}") @@ -149,6 +153,10 @@ config_write("#define HAVE_OPENSSL 1\n\n") include_directories(${OPENSSL_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES}) + # This fixes an issue with OpenSSL compiled as static library + if(WIN32) + list(APPEND CMAKE_REQUIRED_LIBRARIES crypt32 ws2_32) + endif(WIN32) check_function_exists_define(BIO_get_data) check_function_exists_define(RSA_get0_key) check_function_exists_define(ASN1_STRING_get0_data) @@ -434,7 +442,7 @@ endif() if(WIN32) - set(lib_NETWORK ws2_32) + set(lib_NETWORK ws2_32 crypt32) else(WIN32) # TODO check libraries set(lib_NETWORK gssapi_krb5) diff -Nru freetds-1.1.6/compile freetds-1.2.3/compile --- freetds-1.1.6/compile 2019-04-29 09:00:22.000000000 +0000 +++ freetds-1.2.3/compile 2020-07-09 09:00:23.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru freetds-1.1.6/config.guess freetds-1.2.3/config.guess --- freetds-1.1.6/config.guess 2019-04-29 09:00:22.000000000 +0000 +++ freetds-1.2.3/config.guess 2020-07-09 09:00:23.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2017-01-01' +timestamp='2019-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -39,7 +39,7 @@ Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,8 +84,6 @@ exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,34 +94,38 @@ # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi @@ -132,14 +134,14 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +151,20 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +178,32 @@ # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + earm*) + arch="${UNAME_MACHINE_ARCH#e}" + arch="${arch%eb}" + arch="${arch%hf}" + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +219,10 @@ ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + expr='s/v[0-9]//;s/earm/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,46 +230,55 @@ # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -310,28 +330,19 @@ # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -343,7 +354,7 @@ echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -370,19 +381,32 @@ sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + set_cc_for_build + SUN_ARCH=sparc + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __sparcv9'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=sparcv9 + fi + fi + echo "$SUN_ARCH"-sun-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -395,13 +419,13 @@ SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -410,25 +434,25 @@ ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -439,44 +463,44 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -485,23 +509,23 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -527,17 +551,17 @@ AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -554,7 +578,7 @@ echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -566,14 +590,14 @@ if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -584,7 +608,7 @@ exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -598,7 +622,7 @@ exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -607,18 +631,18 @@ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -633,28 +657,28 @@ echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -687,13 +711,13 @@ exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -712,15 +736,15 @@ HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -745,11 +769,11 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -758,7 +782,7 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -766,9 +790,9 @@ exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -793,127 +817,120 @@ echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + fi exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -927,63 +944,63 @@ esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -997,70 +1014,70 @@ #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1074,34 +1091,34 @@ # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1111,12 +1128,12 @@ *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1126,9 +1143,9 @@ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1148,9 +1165,9 @@ exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1170,9 +1187,9 @@ test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1181,28 +1198,28 @@ test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1213,7 +1230,7 @@ *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1233,23 +1250,23 @@ exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1268,49 +1285,56 @@ echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub @@ -1321,7 +1345,7 @@ # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1329,19 +1353,25 @@ UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1350,18 +1380,19 @@ echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. + # shellcheck disable=SC2154 if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1382,14 +1413,14 @@ echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1398,32 +1429,47 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; +esac + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru freetds-1.1.6/config.sub freetds-1.2.3/config.sub --- freetds-1.1.6/config.sub 2019-04-29 09:00:22.000000000 +0000 +++ freetds-1.2.3/config.sub 2020-07-09 09:00:23.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2017-01-01' +timestamp='2019-01-05' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -57,7 +57,7 @@ Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -89,12 +89,12 @@ - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -110,1244 +110,1164 @@ exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos +# Split fields of configuration type +# shellcheck disable=SC2162 +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*-*) + basic_machine=$field1-$field2 + os=$field3-$field4 ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ + | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + os=linux-android + ;; + *) + basic_machine=$field1-$field2 + os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + os= + ;; + *) + basic_machine=$field1 + os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + os=bsd + ;; + a29khif) + basic_machine=a29k-amd + os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=scout + ;; + alliant) + basic_machine=fx80-alliant + os= + ;; + altos | altos3068) + basic_machine=m68k-altos + os= + ;; + am29k) + basic_machine=a29k-none + os=bsd + ;; + amdahl) + basic_machine=580-amdahl + os=sysv + ;; + amiga) + basic_machine=m68k-unknown + os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=bsd + ;; + aros) + basic_machine=i386-pc + os=aros + ;; + aux) + basic_machine=m68k-apple + os=aux + ;; + balance) + basic_machine=ns32k-sequent + os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=linux + ;; + cegcc) + basic_machine=arm-unknown + os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=bsd + ;; + convex-c2) + basic_machine=c2-convex + os=bsd + ;; + convex-c32) + basic_machine=c32-convex + os=bsd + ;; + convex-c34) + basic_machine=c34-convex + os=bsd + ;; + convex-c38) + basic_machine=c38-convex + os=bsd + ;; + cray) + basic_machine=j90-cray + os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + os= + ;; + da30) + basic_machine=m68k-da30 + os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + os= + ;; + delta88) + basic_machine=m88k-motorola + os=sysv3 + ;; + dicos) + basic_machine=i686-pc + os=dicos + ;; + djgpp) + basic_machine=i586-pc + os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=ose + ;; + gmicro) + basic_machine=tron-gmicro + os=sysv + ;; + go32) + basic_machine=i386-pc + os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=hms + ;; + harris) + basic_machine=m88k-harris + os=sysv3 + ;; + hp300) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=hpux + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=proelf + ;; + i386mach) + basic_machine=i386-mach + os=mach + ;; + vsta) + basic_machine=i386-pc + os=vsta + ;; + isi68 | isi) + basic_machine=m68k-isi + os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=sysv + ;; + merlin) + basic_machine=ns32k-utek + os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + os=coff + ;; + morphos) + basic_machine=powerpc-unknown + os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=moxiebox + ;; + msdos) + basic_machine=i386-pc + os=msdos + ;; + msys) + basic_machine=i686-pc + os=msys + ;; + mvs) + basic_machine=i370-ibm + os=mvs + ;; + nacl) + basic_machine=le32-unknown + os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=newsos + ;; + news1000) + basic_machine=m68030-sony + os=newsos + ;; + necv70) + basic_machine=v70-nec + os=sysv + ;; + nh3000) + basic_machine=m68k-harris + os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=cxux + ;; + nindy960) + basic_machine=i960-intel + os=nindy + ;; + mon960) + basic_machine=i960-intel + os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=ose + ;; + os68k) + basic_machine=m68k-none + os=os68k + ;; + paragon) + basic_machine=i860-intel + os=osf + ;; + parisc) + basic_machine=hppa-unknown + os=linux + ;; + pw32) + basic_machine=i586-unknown + os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=rdos + ;; + rdos32) + basic_machine=i386-pc + os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=coff + ;; + sa29200) + basic_machine=a29k-amd + os=udi + ;; + sei) + basic_machine=mips-sei + os=seiux + ;; + sequent) + basic_machine=i386-sequent + os= + ;; + sps7) + basic_machine=m68k-bull + os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + os= + ;; + stratus) + basic_machine=i860-stratus + os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + os= + ;; + sun2os3) + basic_machine=m68000-sun + os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + os= + ;; + sun3os3) + basic_machine=m68k-sun + os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + os= + ;; + sun4os3) + basic_machine=sparc-sun + os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + os= + ;; + sv1) + basic_machine=sv1-cray + os=unicos + ;; + symmetry) + basic_machine=i386-sequent + os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=unicos + ;; + t90) + basic_machine=t90-cray + os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + os=tpf + ;; + udi29k) + basic_machine=a29k-amd + os=udi + ;; + ultra3) + basic_machine=a29k-nyu + os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=none + ;; + vaxv) + basic_machine=vax-dec + os=sysv + ;; + vms) + basic_machine=vax-dec + os=vms + ;; + vxworks960) + basic_machine=i960-wrs + os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=vxworks + ;; + xbox) + basic_machine=i686-pc + os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + os=unicos + ;; + *) + basic_machine=$1 + os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - os=$os"spe" + cpu=m68k + vendor=motorola ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + dpx2*) + cpu=m68k + vendor=bull + os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + os=${os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + os=${os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi + cpu=mips + vendor=sgi case $os in - -irix*) + irix*) ;; *) - os=-irix4 + os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + cpu=m68000 + vendor=convergent ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next + cpu=mips + vendor=sony + os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next case $os in - -nextstep* ) + nextstep* ) ;; - -ns2*) - os=-nextstep2 + ns2*) + os=nextstep2 ;; *) - os=-nextstep3 + os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti + cpu=m68k + vendor=tti ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc + pc532) + cpu=ns32k + vendor=pc532 ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc + pn) + cpu=pn + vendor=gould ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ps2) + cpu=i386 + vendor=ibm ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + rm[46]00) + cpu=mips + vendor=siemens ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - pn) - basic_machine=pn-gould + sde) + cpu=mipsisa32 + vendor=sde + os=${os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + os=vxworks ;; - power) basic_machine=power-ibm + tower | tower-32) + cpu=m68k + vendor=ncr ;; - ppc | ppcbe) basic_machine=powerpc-unknown + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + w65) + cpu=w65 + vendor=wdc ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown + w89k-*) + cpu=hppa1.1 + vendor=winbond + os=proelf ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + none) + cpu=none + vendor=none ;; - ppc64) basic_machine=powerpc64-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown + + *-*) + # shellcheck disable=SC2162 + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv64 \ + | rl78 | romp | rs6000 | rx \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 | wasm32 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1355,200 +1275,246 @@ # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if [ x$os != x ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + # First match some system type aliases that might get confused + # with valid system types. + # solaris* is a basic system type, with this one exception. + auroraux) + os=auroraux ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` + bluegene*) + os=cnk ;; - -solaris) - os=-solaris2 + solaris1 | solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; - -svr4*) - os=-sysv4 + solaris) + os=solaris2 ;; - -unixware*) - os=-sysv4.2uw + unixware*) + os=sysv4.2uw ;; - -gnu/linux*) + gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; - # First accept the basic system types. + # es1800 is here to avoid being matched by es* (a different OS) + es1800*) + os=ose + ;; + # Some version numbers need modification + chorusos*) + os=chorusos + ;; + isc) + os=isc2.2 + ;; + sco6) + os=sco5v6 + ;; + sco5) + os=sco3.2v5 + ;; + sco4) + os=sco3.2v4 + ;; + sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + ;; + sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + scout) + # Don't match below + ;; + sco*) + os=sco3.2v2 + ;; + psos*) + os=psos + ;; + # Now accept the basic system types. # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + # Each alternative MUST end in a * to match a version number. + # sysv* is not here because it comes later, after sysvr4. + gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | kopensolaris* | plan9* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | knetbsd* | mirbsd* | netbsd* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* \ + | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ + | linux-newlib* | linux-musl* | linux-uclibc* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* \ + | morphos* | superux* | rtmk* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten*) # Remember, each alternative MUST END IN *, to match a version number. ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) + qnx*) + case $cpu in + x86 | i*86) ;; *) - os=-nto$os + os=nto-$os ;; esac ;; - -nto-qnx*) + hiux*) + os=hiuxwe2 ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` + nto-qnx*) ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + sim | xray | os68k* | v88r* \ + | windows* | osx | abug | netware* | os9* \ + | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) ;; - -linux-dietlibc) - os=-linux-dietlibc + linux-dietlibc) + os=linux-dietlibc ;; - -linux*) + linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + lynx*178) + os=lynxos178 ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + lynx*5) + os=lynxos5 ;; - -opened*) - os=-openedition + lynx*) + os=lynxos ;; - -os400*) - os=-os400 + mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` ;; - -wince*) - os=-wince + opened*) + os=openedition ;; - -osfrose*) - os=-osfrose + os400*) + os=os400 ;; - -osf*) - os=-osf + sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; - -utek*) - os=-bsd + sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; - -dynix*) - os=-bsd + wince*) + os=wince ;; - -acis*) - os=-aos + utek*) + os=bsd ;; - -atheos*) - os=-atheos + dynix*) + os=bsd ;; - -syllable*) - os=-syllable + acis*) + os=aos ;; - -386bsd) - os=-bsd + atheos*) + os=atheos ;; - -ctix* | -uts*) - os=-sysv + syllable*) + os=syllable + ;; + 386bsd) + os=bsd ;; - -nova*) - os=-rtmk-nova + ctix* | uts*) + os=sysv ;; - -ns2 ) - os=-nextstep2 + nova*) + os=rtmk-nova ;; - -nsk*) - os=-nsk + ns2) + os=nextstep2 + ;; + nsk*) + os=nsk ;; # Preserve the version number of sinix5. - -sinix5.*) + sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf + sinix*) + os=sysv4 ;; - -triton*) - os=-sysv3 + tpf*) + os=tpf ;; - -oss*) - os=-sysv3 + triton*) + os=sysv3 ;; - -svr4) - os=-sysv4 + oss*) + os=sysv3 ;; - -svr3) - os=-sysv3 + svr4*) + os=sysv4 ;; - -sysvr4) - os=-sysv4 + svr3) + os=sysv3 ;; - # This must come after -sysvr4. - -sysv*) + sysvr4) + os=sysv4 ;; - -ose*) - os=-ose + # This must come after sysvr4. + sysv*) ;; - -es1800*) - os=-ose + ose*) + os=ose ;; - -xenix) - os=-xenix + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + os=mint ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint + zvmoe) + os=zvmoe ;; - -aros*) - os=-aros + dicos*) + os=dicos ;; - -zvmoe) - os=-zvmoe + pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $cpu in + arm*) + os=eabi + ;; + *) + os=elf + ;; + esac ;; - -dicos*) - os=-dicos + nacl*) ;; - -nacl*) + ios) ;; - -ios) + none) ;; - -none) + *-eabi) ;; *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1564,264 +1530,265 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + os=linux ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; pru-*) - os=-elf + os=elf ;; *-be) - os=-beos - ;; - *-haiku) - os=-haiku + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; - *-next ) - os=-nextstep + *-next) + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) +case $vendor in + unknown) case $os in - -riscix*) + riscix*) vendor=acorn ;; - -sunos*) + sunos*) vendor=sun ;; - -cnk*|-aix*) + cnk*|-aix*) vendor=ibm ;; - -beos*) + beos*) vendor=be ;; - -hpux*) + hpux*) vendor=hp ;; - -mpeix*) + mpeix*) vendor=hp ;; - -hiux*) + hiux*) vendor=hitachi ;; - -unos*) + unos*) vendor=crds ;; - -dgux*) + dgux*) vendor=dg ;; - -luna*) + luna*) vendor=omron ;; - -genix*) + genix*) vendor=ns ;; - -mvs* | -opened*) + clix*) + vendor=intergraph + ;; + mvs* | opened*) vendor=ibm ;; - -os400*) + os400*) vendor=ibm ;; - -ptx*) + ptx*) vendor=sequent ;; - -tpf*) + tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + vxsim* | vxworks* | windiss*) vendor=wrs ;; - -aux*) + aux*) vendor=apple ;; - -hms*) + hms*) vendor=hitachi ;; - -mpw* | -macos*) + mpw* | macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) vendor=atari ;; - -vos*) + vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -Nru freetds-1.1.6/configure freetds-1.2.3/configure --- freetds-1.1.6/configure 2019-04-29 09:00:22.000000000 +0000 +++ freetds-1.2.3/configure 2020-07-09 09:01:21.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for FreeTDS 1.1.6. +# Generated by GNU Autoconf 2.69 for FreeTDS 1.2.3. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='FreeTDS' PACKAGE_TARNAME='freetds' -PACKAGE_VERSION='1.1.6' -PACKAGE_STRING='FreeTDS 1.1.6' +PACKAGE_VERSION='1.2.3' +PACKAGE_STRING='FreeTDS 1.2.3' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -694,6 +694,7 @@ MINGW32_FALSE MINGW32_TRUE HAVE_PERL_SOURCES +GPERF HAVE_PERL_SOURCES_FALSE HAVE_PERL_SOURCES_TRUE ODBC_CONFIG @@ -737,7 +738,6 @@ AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -831,7 +831,8 @@ PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -1435,7 +1436,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures FreeTDS 1.1.6 to adapt to many kinds of systems. +\`configure' configures FreeTDS 1.2.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1505,7 +1506,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of FreeTDS 1.1.6:";; + short | recursive ) echo "Configuration of FreeTDS 1.2.3:";; esac cat <<\_ACEOF @@ -1669,7 +1670,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -FreeTDS configure 1.1.6 +FreeTDS configure 1.2.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2374,7 +2375,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by FreeTDS $as_me 1.1.6, which was +It was created by FreeTDS $as_me 1.2.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2725,7 +2726,7 @@ -am__api_version='1.15' +am__api_version='1.16' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -3240,7 +3241,7 @@ # Define the identity of the package. PACKAGE='freetds' - VERSION='1.1.6' + VERSION='1.2.3' cat >>confdefs.h <<_ACEOF @@ -3270,8 +3271,8 @@ # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -3322,7 +3323,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3389,7 +3390,7 @@ MAJOR=`echo $ver | sed "s,$match,\1,"` MINOR=`echo $ver | sed "s,$match,\2,"` SUBVERSION=`echo $ver | sed "s,$match,\3,"` -BUILD_NUMBER="`date +1%j` - 1000 + ( `date +%Y` - 2000 )" +BUILD_NUMBER="`date +1%j` - 1000 + ( `date +%Y` - 2020 )" BUILD_NUMBER="`expr $BUILD_NUMBER \* 366`" if test "$SUBVERSION" = "9999"; then MINOR=`expr $MINOR - 1` @@ -3833,45 +3834,45 @@ ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -14796,38 +14797,12 @@ } fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 +$as_echo_n "checking for ld... " >&6; } +elif test "$GCC" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` - while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } @@ -14835,44 +14810,129 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi -if ${acl_cv_path_LD+:} false; then : +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else - if test -z "$LD"; then - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 &5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; esac fi - done - IFS="$acl_save_ifs" + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # The compiler produces 64-bit code. Add option '-b64' so that the + # linker groks 64-bit object files. + case "$acl_cv_path_LD " in + *" -b64 "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + sparc64-*-netbsd*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + else - acl_cv_path_LD="$LD" # Let the user override the test with a path. + # The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + esac + fi -LD="$acl_cv_path_LD" + LD="$acl_cv_path_LD" +fi if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : @@ -14929,67 +14989,324 @@ - acl_libdirstem=lib - acl_libdirstem2= + { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 +$as_echo_n "checking 32-bit host C ABI... " >&6; } +if ${gl_cv_host_cpu_c_abi_32bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + *) + gl_cv_host_cpu_c_abi_32bit=no ;; + esac + else + case "$host_cpu" in + + i[4567]86 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _ILP32 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=yes +else + gl_cv_host_cpu_c_abi_32bit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=no + ;; + esac + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 +$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; } + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" + + + + + case "$host_os" in solaris*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #ifdef _LP64 -sixtyfour bits -#endif + int ok; + #else + error fail + #endif _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sixtyfour bits" >/dev/null 2>&1; then : +if ac_fn_c_try_compile "$LINENO"; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi -rm -f conftest* - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 -$as_echo "$gl_cv_solaris_64bit" >&6; } - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; +$as_echo "$gl_cv_solaris_64bit" >&6; };; esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 +$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } +if ${acl_cv_libdirstems+:} false; then : + $as_echo_n "(cached) " >&6 +else + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 +$as_echo "$acl_cv_libdirstems" >&6; } + # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2. + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'` @@ -15038,7 +15355,7 @@ additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -15460,7 +15777,6 @@ - am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do @@ -15661,15 +15977,27 @@ #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - result |= 16; + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } return result; ; @@ -15759,13 +16087,15 @@ $am_cv_proto_iconv" >&5 $as_echo " $am_cv_proto_iconv" >&6; } + else + am_cv_proto_iconv_arg1="" + fi cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF - fi else { $as_echo "$as_me:${as_lineno-$LINENO}: libiconv disabled" >&5 @@ -15884,6 +16214,49 @@ HAVE_PERL_SOURCES_FALSE= fi + # Extract the first word of "gperf", so it can be a program name with args. +set dummy gperf; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GPERF+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GPERF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GPERF="$GPERF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GPERF="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GPERF=$ac_cv_path_GPERF +if test -n "$GPERF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPERF" >&5 +$as_echo "$GPERF" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$GPERF" = x; then : + as_fn_error $? "required program 'gperf' not found." "$LINENO" 5 +fi else if false; then HAVE_PERL_SOURCES_TRUE= @@ -15914,7 +16287,7 @@ *) krb5_libs="-l$enable_krb5" ;; esac -LIBS_170="$LIBS" +LIBS_172="$LIBS" LIBS="" tds_mingw=no case $host in @@ -16246,8 +16619,8 @@ fi NETWORK_LIBS="$LIBS" -LIBS="$LIBS_170" -unset LIBS_170 +LIBS="$LIBS_172" +unset LIBS_172 if test $tds_mingw = no; then @@ -16256,7 +16629,7 @@ # substitution for it. # Readline is linked with curses, and on some systems termcap must be # linked in. Others (inc debian) have termcap built into ncurses. - LIBS_244="$LIBS" + LIBS_246="$LIBS" LIBS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5 $as_echo_n "checking for library containing tgetent... " >&6; } @@ -16400,8 +16773,8 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext READLINE_LIBS="$LIBS" - LIBS="$LIBS_244" -unset LIBS_244 + LIBS="$LIBS_246" +unset LIBS_246 @@ -18405,7 +18778,7 @@ done -LIBS_498="$LIBS" +LIBS_500="$LIBS" LIBS="$LIBS $NETWORK_LIBS" for ac_func in inet_ntoa_r getipnodebyaddr getipnodebyname \ getaddrinfo inet_ntop gethostname poll socketpair strtok_s @@ -18450,8 +18823,8 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -LIBS="$LIBS_498" -unset LIBS_498 +LIBS="$LIBS_500" +unset LIBS_500 ac_fn_c_check_func "$LINENO" "asprintf" "ac_cv_func_asprintf" if test "x$ac_cv_func_asprintf" = xyes; then : @@ -19873,7 +20246,7 @@ NETWORK_LIBS="$NETWORK_LIBS $NETTLE_LIBS" fi - LIBS_787="$LIBS" + LIBS_789="$LIBS" LIBS="$NETWORK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -19977,11 +20350,11 @@ fi NETWORK_LIBS="$LIBS" - LIBS="$LIBS_787" -unset LIBS_787 + LIBS="$LIBS_789" +unset LIBS_789 fi fi - LIBS_805="$LIBS" + LIBS_807="$LIBS" LIBS="$NETWORK_LIBS" for ac_func in gnutls_certificate_set_verify_function gnutls_record_disable_padding gnutls_rnd do : @@ -19995,8 +20368,8 @@ fi done - LIBS="$LIBS_805" -unset LIBS_805 + LIBS="$LIBS_807" +unset LIBS_807 if test "$gnutls_backend" = "unknown"; then gnutls_backend=gcrypt NETWORK_LIBS="$NETWORK_LIBS -ltasn1" @@ -20114,7 +20487,7 @@ NETWORK_LIBS="$NETWORK_LIBS $OPENSSL_LIBS" fi if test x$found_ssl = xyes; then - LIBS_813="$LIBS" + LIBS_815="$LIBS" LIBS="$NETWORK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -20134,15 +20507,15 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LIBS="$LIBS_813" -unset LIBS_813 + LIBS="$LIBS_815" +unset LIBS_815 fi if test x$found_ssl != xyes -a "$with_openssl" != ""; then as_fn_error $? "Cannot find OpenSSL libraries" "$LINENO" 5 NETWORK_LIBS="$old_NETWORK_LIBS" elif test x$found_ssl = xyes; then HAVE_OPENSSL=yes - LIBS_813="$LIBS" + LIBS_815="$LIBS" LIBS="$NETWORK_LIBS" for ac_func in BIO_get_data RSA_get0_key ASN1_STRING_get0_data do : @@ -20156,8 +20529,8 @@ fi done - LIBS="$LIBS_813" -unset LIBS_813 + LIBS="$LIBS_815" +unset LIBS_815 $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h @@ -21793,7 +22166,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by FreeTDS $as_me 1.1.6, which was +This file was extended by FreeTDS $as_me 1.2.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21859,7 +22232,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -FreeTDS config.status 1.1.6 +FreeTDS config.status 1.2.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -21978,7 +22351,7 @@ # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -22988,29 +23361,35 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -23028,53 +23407,48 @@ q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)$/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) diff -Nru freetds-1.1.6/configure.ac freetds-1.2.3/configure.ac --- freetds-1.1.6/configure.ac 2019-04-29 08:57:06.000000000 +0000 +++ freetds-1.2.3/configure.ac 2020-07-09 09:01:15.000000000 +0000 @@ -11,11 +11,11 @@ # ------------------------------------------------------------ # Initialization # ------------------------------------------------------------ -AC_INIT(FreeTDS, 1.1.6) +AC_INIT(FreeTDS, 1.2.3) AC_CONFIG_SRCDIR(src/dblib/dblib.c) AC_PREREQ(2.53) -AM_INIT_AUTOMAKE([dist-bzip2 parallel-tests subdir-objects]) +AM_INIT_AUTOMAKE([dist-bzip2 parallel-tests subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)]) AC_CONFIG_HEADERS(include/config.h) AC_CONFIG_MACRO_DIR([m4]) @@ -40,7 +40,7 @@ MAJOR=[`echo $ver | sed "s,$match,\1,"`] MINOR=[`echo $ver | sed "s,$match,\2,"`] SUBVERSION=[`echo $ver | sed "s,$match,\3,"`] -BUILD_NUMBER="`date +1%j` - 1000 + ( `date +%Y` - 2000 )" +BUILD_NUMBER="`date +1%j` - 1000 + ( `date +%Y` - 2020 )" BUILD_NUMBER="`expr $BUILD_NUMBER \* 366`" if test "$SUBVERSION" = "9999"; then MINOR=`expr $MINOR - 1` @@ -147,6 +147,8 @@ # if test -f "${srcdir}/src/tds/num_limits.pl"; then AM_CONDITIONAL(HAVE_PERL_SOURCES, true) + AC_PATH_PROG(GPERF, gperf) + AS_IF([test "x$GPERF" = x], [AC_MSG_ERROR([required program 'gperf' not found.])]) else AM_CONDITIONAL(HAVE_PERL_SOURCES, false) fi @@ -534,16 +536,16 @@ AC_ARG_WITH(tdsver, AS_HELP_STRING([--with-tdsver=VERSION], [TDS protocol version (5.0/7.1/7.2/7.3/7.4/auto) [auto]])) case "$with_tdsver" in -4.2) AC_ERROR([Protocol 4.2 cannot be specified as obsolete]) ;; -4.6) AC_ERROR([Protocol 4.6 cannot be specified as obsolete and never correctly supported]) ;; +4.2) AC_MSG_ERROR([Protocol 4.2 cannot be specified as obsolete]) ;; +4.6) AC_MSG_ERROR([Protocol 4.6 cannot be specified as obsolete and never correctly supported]) ;; 5.0) AC_DEFINE(TDS50, 1, [Define to use TDS 5.0 by default]) ;; -7.0) AC_ERROR([Protocol 7.0 cannot be specified during configure as too insecure]) ;; +7.0) AC_MSG_ERROR([Protocol 7.0 cannot be specified during configure as too insecure]) ;; 7.1) AC_DEFINE(TDS71, 1, [Define to use TDS 7.1 by default]) ;; 7.2) AC_DEFINE(TDS72, 1, [Define to use TDS 7.2 by default]) ;; 7.3) AC_DEFINE(TDS73, 1, [Define to use TDS 7.3 by default]) ;; 7.4) AC_DEFINE(TDS74, 1, [Define to use TDS 7.4 by default]) ;; ""|auto) ;; -*) AC_ERROR([Invalid value specified for --with-tdsver: $with_tdsver]) ;; +*) AC_MSG_ERROR([Invalid value specified for --with-tdsver: $with_tdsver]) ;; esac AC_ARG_WITH(iodbc, @@ -568,8 +570,8 @@ fi CPPFLAGS="$CPPFLAGS -DIODBC" ODBC_INC="$with_iodbc/include" - test -r "$ODBC_INC/isql.h" || AC_ERROR([isql.h not found]) - test -r "$ODBC_INC/isqlext.h" || AC_ERROR([isqlext.h not found]) + test -r "$ODBC_INC/isql.h" || AC_MSG_ERROR([isql.h not found]) + test -r "$ODBC_INC/isqlext.h" || AC_MSG_ERROR([isqlext.h not found]) ODBC_INC="-I$ODBC_INC" ODBC_LDFLAGS="-L$with_iodbc/lib -liodbc" odbc=true @@ -585,11 +587,11 @@ # the odbc_config executable, and if we can't, we'll display # an error. if test -z "$ODBC_CONFIG"; then - AC_ERROR([odbc_config not found]) + AC_MSG_ERROR([odbc_config not found]) fi with_unixodbc=`$ODBC_CONFIG --prefix` if ! test -x "${with_unixodbc}/bin/odbc_config"; then - AC_ERROR([could not find your unixODBC installation]) + AC_MSG_ERROR([could not find your unixODBC installation]) fi fi @@ -597,7 +599,7 @@ # after populating $with_unixodbc with the correct prefix. if test "x$with_unixodbc" != "x" -a "x$with_unixodbc" != "xno"; then if test "x$with_iodbc" != "x" -a "x$with_iodbc" != "xno"; then - AC_ERROR([choose at most one of --with-iodbc or --with-unixodbc]) + AC_MSG_ERROR([choose at most one of --with-iodbc or --with-unixodbc]) fi if echo "$with_unixodbc" | grep -v '^/'; then with_unixodbc="$PWD/$with_unixodbc" @@ -613,8 +615,8 @@ ODBC_INC="$with_unixodbc/include" ODBC_LDFLAGS="-L$with_unixodbc/lib" fi - test -r "$ODBC_INC/sql.h" || AC_ERROR([sql.h not found]) - test -r "$ODBC_INC/sqlext.h" || AC_ERROR([sqlext.h not found]) + test -r "$ODBC_INC/sql.h" || AC_MSG_ERROR([sql.h not found]) + test -r "$ODBC_INC/sqlext.h" || AC_MSG_ERROR([sqlext.h not found]) ODBC_INC="-I$ODBC_INC" ODBC_LDFLAGS="$ODBC_LDFLAGS -lodbc" odbc=true @@ -629,8 +631,8 @@ fi CPPFLAGS="$CPPFLAGS -DTDS_NO_DM" ODBC_INC="$with_odbc_nodm/include" - test -r "$ODBC_INC/sql.h" || AC_ERROR([sql.h not found]) - test -r "$ODBC_INC/sqlext.h" || AC_ERROR([sqlext.h not found]) + test -r "$ODBC_INC/sql.h" || AC_MSG_ERROR([sql.h not found]) + test -r "$ODBC_INC/sqlext.h" || AC_MSG_ERROR([sqlext.h not found]) ODBC_INC="-I$ODBC_INC" # The next line is for linking the unittests. Here the ODBC driver # itself is treated as the driver manager to be linked. diff -Nru freetds-1.1.6/COPYING freetds-1.2.3/COPYING --- freetds-1.1.6/COPYING 2019-02-04 19:03:19.000000000 +0000 +++ freetds-1.2.3/COPYING 1970-01-01 00:00:00.000000000 +0000 @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff -Nru freetds-1.1.6/COPYING.LIB freetds-1.2.3/COPYING.LIB --- freetds-1.1.6/COPYING.LIB 2019-02-04 19:03:19.000000000 +0000 +++ freetds-1.2.3/COPYING.LIB 1970-01-01 00:00:00.000000000 +0000 @@ -1,481 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff -Nru freetds-1.1.6/COPYING_LIB.txt freetds-1.2.3/COPYING_LIB.txt --- freetds-1.1.6/COPYING_LIB.txt 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/COPYING_LIB.txt 2020-05-31 12:36:47.000000000 +0000 @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff -Nru freetds-1.1.6/COPYING.txt freetds-1.2.3/COPYING.txt --- freetds-1.1.6/COPYING.txt 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/COPYING.txt 2020-05-31 12:36:47.000000000 +0000 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff -Nru freetds-1.1.6/debian/changelog freetds-1.2.3/debian/changelog --- freetds-1.1.6/debian/changelog 2020-08-15 11:10:15.000000000 +0000 +++ freetds-1.2.3/debian/changelog 2020-08-15 11:10:16.000000000 +0000 @@ -1,8 +1,9 @@ -freetds (1.1.6-1.1build1) groovy; urgency=medium +freetds (1.2.3-1) unstable; urgency=medium - * No change rebuild against new libnettle8 and libhogweed6 ABI. + * New upstream release. + - documentation files renamed to .md. - -- Dimitri John Ledkov Mon, 29 Jun 2020 22:24:26 +0100 + -- Steve Langasek Sat, 15 Aug 2020 05:12:32 +0000 freetds (1.1.6-1.1) unstable; urgency=medium diff -Nru freetds-1.1.6/debian/control freetds-1.2.3/debian/control --- freetds-1.1.6/debian/control 2020-08-15 11:10:15.000000000 +0000 +++ freetds-1.2.3/debian/control 2020-08-15 11:10:16.000000000 +0000 @@ -1,8 +1,7 @@ Source: freetds Section: libs Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Steve Langasek +Maintainer: Steve Langasek Uploaders: Adam Conrad Standards-Version: 4.1.3 Homepage: http://www.freetds.org/ diff -Nru freetds-1.1.6/debian/freetds-common.docs freetds-1.2.3/debian/freetds-common.docs --- freetds-1.1.6/debian/freetds-common.docs 2020-08-15 11:10:15.000000000 +0000 +++ freetds-1.2.3/debian/freetds-common.docs 2020-08-15 11:10:16.000000000 +0000 @@ -1,3 +1,3 @@ -NEWS -README -TODO +NEWS.md +README.md +TODO.md diff -Nru freetds-1.1.6/depcomp freetds-1.2.3/depcomp --- freetds-1.1.6/depcomp 2019-04-29 09:00:23.000000000 +0000 +++ freetds-1.2.3/depcomp 2020-07-09 09:00:24.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,9 +783,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru freetds-1.1.6/doc/bsqldb.1 freetds-1.2.3/doc/bsqldb.1 --- freetds-1.1.6/doc/bsqldb.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/bsqldb.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,7 +1,7 @@ .\" cf. groff_mdoc .Dd March 26, 2015 .Dt BSQLDB 1 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Sh NAME .Nm bsqldb .Nd batch SQL script processor using DB-Library diff -Nru freetds-1.1.6/doc/bsqlodbc.1 freetds-1.2.3/doc/bsqlodbc.1 --- freetds-1.1.6/doc/bsqlodbc.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/bsqlodbc.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" cf. groff_mdoc .Dd March 25, 2015 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt BSQLODBC FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME diff -Nru freetds-1.1.6/doc/datacopy.1 freetds-1.2.3/doc/datacopy.1 --- freetds-1.1.6/doc/datacopy.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/datacopy.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" cf. groff_mdoc .Dd March 25, 2015 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt DATACOPY FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME diff -Nru freetds-1.1.6/doc/defncopy.1 freetds-1.2.3/doc/defncopy.1 --- freetds-1.1.6/doc/defncopy.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/defncopy.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" cf. groff_mdoc .Dd April 26, 2012 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt DEFNCOPY FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME diff -Nru freetds-1.1.6/doc/fisql.1 freetds-1.2.3/doc/fisql.1 --- freetds-1.1.6/doc/fisql.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/fisql.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" cf. groff_mdoc .Dd March 25, 2015 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt FISQL FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME diff -Nru freetds-1.1.6/doc/freebcp.1 freetds-1.2.3/doc/freebcp.1 --- freetds-1.1.6/doc/freebcp.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/freebcp.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" cf. groff_mdoc .Dd March 25, 2015 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt FREEBCP 1 .Sh NAME .Nm freebcp diff -Nru freetds-1.1.6/doc/freetds.conf.5 freetds-1.2.3/doc/freetds.conf.5 --- freetds-1.1.6/doc/freetds.conf.5 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/freetds.conf.5 2020-07-09 09:01:41.000000000 +0000 @@ -1,5 +1,5 @@ .Dd May 2, 2017 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt FREETDS.CONF "FreeTDS 5" "FreeTDS Reference Manual" . .Sh NAME diff -Nru freetds-1.1.6/doc/getting_started.txt freetds-1.2.3/doc/getting_started.txt --- freetds-1.1.6/doc/getting_started.txt 2019-02-04 19:03:19.000000000 +0000 +++ freetds-1.2.3/doc/getting_started.txt 2020-06-09 12:19:33.000000000 +0000 @@ -107,8 +107,7 @@ * query.c Contains all routines to send requests; * token.c Contains all routines to get reply from server; * tds_checks.c, tds_checks.h Internal checks; -* iconv.c, alternative_character_sets.h, character_sets.h - and sybase_character_sets.h Handle character conversions; +* iconv.c Handle character conversions; * tdsstring.c Dynamic string management; * challenge.c, des.c, gssapi.c, hmac_md5.c, md4.c, md5.c, sspi.c Deals with various authentications; diff -Nru freetds-1.1.6/doc/Makefile.am freetds-1.2.3/doc/Makefile.am --- freetds-1.1.6/doc/Makefile.am 2019-03-30 09:00:03.000000000 +0000 +++ freetds-1.2.3/doc/Makefile.am 2020-05-31 12:36:23.000000000 +0000 @@ -7,13 +7,13 @@ EXTRA_DIST = api_status.txt bcp.txt cap.txt getting_started.txt \ policy.txt CodingStyle tds.html \ - userguide.dsl.in userguide.sgml userguide.css \ + userguide.xsl userguide.xml userguide.css \ $(man_MANS) \ $(DOCDIR)/userguide $(DOCDIR)/reference \ images grep_sample_code tds_ssl.html \ freebcp.1.in tsql.1.in osql.1.in bsqldb.1.in bsqlodbc.1.in \ defncopy.1.in datacopy.1.in fisql.1.in freetds.conf.5.in \ - userguide_desc.sgml + userguide_desc.xml man_MANS = freebcp.1 \ tsql.1 \ @@ -25,9 +25,9 @@ fisql.1 \ freetds.conf.5 -noinst_DATA = $(DOCDIR)/reference/index.html $(DOCDIR)/userguide/index.htm +noinst_DATA = $(DOCDIR)/reference/index.html $(DOCDIR)/userguide/index.html -$(DOCDIR)/userguide: $(DOCDIR)/userguide/index.htm +$(DOCDIR)/userguide: $(DOCDIR)/userguide/index.html $(DOCDIR)/reference: $(DOCDIR)/reference/index.html @@ -62,14 +62,14 @@ rm -rf $(TARGET_DOCDIR) clean-local: - rm -rf userguide.dsl doxy.log \ - dblib.api.sgml \ - ctlib.api.sgml \ - odbc.api.sgml + rm -rf doxy.log \ + dblib.api.xml \ + ctlib.api.xml \ + odbc.api.xml ## In building the UG and reference manual, we confront several ## possible situations: -## 1. CVS user (or developer) with or without jade/doxygen installed. +## 1. GIT user (or developer) with or without xmlto/doxygen installed. ## 2. Distribution user. The distribution includes pre-built ## documentation, ready to install. ## Either of these users may choose to build out-of-tree (e.g., in a @@ -77,11 +77,9 @@ ## distributed ones if they exist, else create stub files pointing to ## the website. ## -## In the case of jade, we build the documentation only if the -## environment variable DOCBOOK_DSL is set. A user would define -## DOCBOOK_DSL only if he intends to build the UG. If the user builds -## FreeTDS out of tree, "make install" will put a symlink to the -## distributed UG HTML in the build directory, and install per usual. +## We build the documentation only if we found xmlto. +## If the user builds FreeTDS out of tree, "make install" will put a symlink +## to the distributed UG HTML in the build directory, and install per usual. ## ## In the case of Doxygen, we detect its presence in the configure ## script, and invoke it if found. If it is not found, we try to link @@ -94,48 +92,42 @@

at www.freetds.org \ -userguide_desc.sgml: userguide.sgml +userguide_desc.xml: userguide.xml git log -1 '--pretty=format:%n%n' HEAD -- $< > $@~ mv -f $@~ $@ -# To make the userguide, export DOCBOOK_DSL to point to docbook.dsl. -$(DOCDIR)/userguide/index.htm: $(DOCDIR) userguide.sgml userguide_desc.sgml \ - dblib.api.sgml ctlib.api.sgml odbc.api.sgml \ - userguide.dsl.in api_status.txt - sed -ne's!SYSTEM "docbook.dsl" CDATA!SYSTEM "${DOCBOOK_DSL}" CDATA!; p' \ - $(srcdir)/userguide.dsl.in > .userguide.dsl - mv .userguide.dsl userguide.dsl +# To make the userguide, install xmlto +$(DOCDIR)/userguide/index.html: $(DOCDIR) userguide.xml userguide_desc.xml \ + dblib.api.xml ctlib.api.xml odbc.api.xml \ + userguide.xsl api_status.txt if test -h userguide; then rm userguide; fi $(MKDIR_P) $(DOCDIR)/userguide 2>&1 touch $(DOCDIR)/userguide/t.htm rm -rf $(DOCDIR)/userguide/* -# if we're not using jade, copy the distribution's userguide - if test -z "${DOCBOOK_DSL}" ; then \ +# if we're not using xmlto, copy the distribution's userguide + if ! xmlto --version > /dev/null 2> /dev/null ; then \ if test -r $(DISTRIBUTED_UG_DIR) \ -a ! -r $(DOCDIR)/userguide ; then \ cp -R $(DISTRIBUTED_UG_DIR) $(DOCDIR); \ fi; \ fi -# try jade ... - test -r $(abs_srcdir)/userguide.sgml - test -r userguide.sgml || ln -s $(srcdir)/userguide.sgml userguide.sgml - test -r userguide_desc.sgml || ln -s $(srcdir)/userguide_desc.sgml userguide_desc.sgml +# try xmlto ... + test -r $(abs_srcdir)/userguide.xml + test -r userguide.xml || ln -s $(srcdir)/userguide.xml userguide.xml + test -r userguide_desc.xml || ln -s $(srcdir)/userguide_desc.xml userguide_desc.xml (cd $(DOCDIR)/userguide && \ - if test -n "${DOCBOOK_DSL}" ; then \ - openjade -b utf-8 -w all -w no-empty -w no-unused-param \ - -d ../userguide.dsl -t sgml ../userguide.sgml; \ + if xmlto --version > /dev/null 2> /dev/null ; then \ + xmlto -m ../userguide.xsl xhtml ../userguide.xml; \ ## and copy the stylesheet cp $(abs_srcdir)/userguide.css .; \ fi) # if still no joy, create a stub if test ! -r $@ ; then \ - echo '$(UG_STUB)' > .index.htm && mv .index.htm $@; \ + echo '$(UG_STUB)' > .index.html && mv .index.html $@; \ fi - test -f $(DOCDIR)/userguide/index.htm - (cd $(DOCDIR)/userguide && \ - if test ! -h index.html ; then ln -s index.htm index.html; fi) + test -f $(DOCDIR)/userguide/index.html -userguide: $(DOCDIR)/userguide/index.htm +userguide: $(DOCDIR)/userguide/index.html reference: $(DOCDIR)/reference/index.html DISTRIBUTED_REF_DIR = $(srcdir)/$(DOCDIR)/reference @@ -162,18 +154,18 @@ # # The following sections generate API implementation reference tables -# as SGML "entities". +# as XML "entities". # The entities are used a little bit like include files in the UG, e.g.: -# +# # -# and "dblibapisgml" is referred to later on: +# and "dblibapixml" is referred to later on: # # # db-lib API Implementation Summary -# &dblibapisgml; +# &dblibapixml; # # -# This lets us use the api_status.txt document in our SGML. +# This lets us use the api_status.txt document in our XML. # API_TABLE_HEADING = \ \ @@ -203,22 +195,22 @@ -e's!$$!!' > $@~ mv $@~ $@ -dblib.api.sgml: dblib.api.body -ctlib.api.sgml: ctlib.api.body -odbc.api.sgml: odbc.api.body +dblib.api.xml: dblib.api.body +ctlib.api.xml: ctlib.api.body +odbc.api.xml: odbc.api.body -dblib.api.sgml ctlib.api.sgml odbc.api.sgml: +dblib.api.xml ctlib.api.xml odbc.api.xml: NAME=`echo $@ | sed 's/\..*$$//'` && \ HEAD='$(API_TABLE_HEADING)' && \ if [ $${NAME} = dblib ]; then \ HEAD=`echo '$(API_TABLE_HEADING)' \ | sed 's!$(API_FUNC_COL)!$(API_DBLIB_FUNC_COLS)!'`; \ fi && \ - BODY=`cat $(@:.sgml=.body)` && \ + BODY=`cat $(@:.xml=.body)` && \ printf '$(API_PAGE_FMT)' $${NAME} $${NAME} "$${HEAD}" "$${BODY}" > $@~ mv $@~ $@ -CLEANFILES = dblib.api.body ctlib.api.body odbc.api.body dblib.api.sgml ctlib.api.sgml odbc.api.sgml $(man_MANS) +CLEANFILES = dblib.api.body ctlib.api.body odbc.api.body dblib.api.xml ctlib.api.xml odbc.api.xml $(man_MANS) distclean-local: rm -rf $(DOCDIR)/userguide $(DOCDIR)/reference diff -Nru freetds-1.1.6/doc/Makefile.in freetds-1.2.3/doc/Makefile.in --- freetds-1.1.6/doc/Makefile.in 2019-04-29 09:00:23.000000000 +0000 +++ freetds-1.2.3/doc/Makefile.in 2020-07-09 09:01:22.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -216,6 +216,7 @@ GCRYPT_LIBS = @GCRYPT_LIBS@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ GNUTLS_LIBS = @GNUTLS_LIBS@ +GPERF = @GPERF@ GREP = @GREP@ HAVE_OPENSSL = @HAVE_OPENSSL@ HAVE_PERL_SOURCES = @HAVE_PERL_SOURCES@ @@ -351,13 +352,13 @@ TARGET_DOCDIR = $(DESTDIR)$(docdir) EXTRA_DIST = api_status.txt bcp.txt cap.txt getting_started.txt \ policy.txt CodingStyle tds.html \ - userguide.dsl.in userguide.sgml userguide.css \ + userguide.xsl userguide.xml userguide.css \ $(man_MANS) \ $(DOCDIR)/userguide $(DOCDIR)/reference \ images grep_sample_code tds_ssl.html \ freebcp.1.in tsql.1.in osql.1.in bsqldb.1.in bsqlodbc.1.in \ defncopy.1.in datacopy.1.in fisql.1.in freetds.conf.5.in \ - userguide_desc.sgml + userguide_desc.xml man_MANS = freebcp.1 \ tsql.1 \ @@ -369,7 +370,7 @@ fisql.1 \ freetds.conf.5 -noinst_DATA = $(DOCDIR)/reference/index.html $(DOCDIR)/userguide/index.htm +noinst_DATA = $(DOCDIR)/reference/index.html $(DOCDIR)/userguide/index.html INSTALLDIRS = $(TARGET_DOCDIR)/userguide \ $(TARGET_DOCDIR)/reference \ $(TARGET_DOCDIR)/images \ @@ -388,18 +389,18 @@ # # The following sections generate API implementation reference tables -# as SGML "entities". +# as XML "entities". # The entities are used a little bit like include files in the UG, e.g.: -# +# # -# and "dblibapisgml" is referred to later on: +# and "dblibapixml" is referred to later on: # # # db-lib API Implementation Summary -# &dblibapisgml; +# &dblibapixml; # # -# This lets us use the api_status.txt document in our SGML. +# This lets us use the api_status.txt document in our XML. # API_TABLE_HEADING = \ \ @@ -420,7 +421,7 @@ %s\n \ \n -CLEANFILES = dblib.api.body ctlib.api.body odbc.api.body dblib.api.sgml ctlib.api.sgml odbc.api.sgml $(man_MANS) +CLEANFILES = dblib.api.body ctlib.api.body odbc.api.body dblib.api.xml ctlib.api.xml odbc.api.xml $(man_MANS) all: all-am .SUFFIXES: @@ -433,16 +434,16 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile + $(AUTOMAKE) --foreign doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -570,7 +571,10 @@ cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -725,7 +729,7 @@ .PRECIOUS: Makefile -$(DOCDIR)/userguide: $(DOCDIR)/userguide/index.htm +$(DOCDIR)/userguide: $(DOCDIR)/userguide/index.html $(DOCDIR)/reference: $(DOCDIR)/reference/index.html @@ -755,52 +759,46 @@ rm -rf $(TARGET_DOCDIR) clean-local: - rm -rf userguide.dsl doxy.log \ - dblib.api.sgml \ - ctlib.api.sgml \ - odbc.api.sgml + rm -rf doxy.log \ + dblib.api.xml \ + ctlib.api.xml \ + odbc.api.xml -userguide_desc.sgml: userguide.sgml +userguide_desc.xml: userguide.xml git log -1 '--pretty=format:%n%n' HEAD -- $< > $@~ mv -f $@~ $@ -# To make the userguide, export DOCBOOK_DSL to point to docbook.dsl. -$(DOCDIR)/userguide/index.htm: $(DOCDIR) userguide.sgml userguide_desc.sgml \ - dblib.api.sgml ctlib.api.sgml odbc.api.sgml \ - userguide.dsl.in api_status.txt - sed -ne's!SYSTEM "docbook.dsl" CDATA!SYSTEM "${DOCBOOK_DSL}" CDATA!; p' \ - $(srcdir)/userguide.dsl.in > .userguide.dsl - mv .userguide.dsl userguide.dsl +# To make the userguide, install xmlto +$(DOCDIR)/userguide/index.html: $(DOCDIR) userguide.xml userguide_desc.xml \ + dblib.api.xml ctlib.api.xml odbc.api.xml \ + userguide.xsl api_status.txt if test -h userguide; then rm userguide; fi $(MKDIR_P) $(DOCDIR)/userguide 2>&1 touch $(DOCDIR)/userguide/t.htm rm -rf $(DOCDIR)/userguide/* -# if we're not using jade, copy the distribution's userguide - if test -z "${DOCBOOK_DSL}" ; then \ +# if we're not using xmlto, copy the distribution's userguide + if ! xmlto --version > /dev/null 2> /dev/null ; then \ if test -r $(DISTRIBUTED_UG_DIR) \ -a ! -r $(DOCDIR)/userguide ; then \ cp -R $(DISTRIBUTED_UG_DIR) $(DOCDIR); \ fi; \ fi -# try jade ... - test -r $(abs_srcdir)/userguide.sgml - test -r userguide.sgml || ln -s $(srcdir)/userguide.sgml userguide.sgml - test -r userguide_desc.sgml || ln -s $(srcdir)/userguide_desc.sgml userguide_desc.sgml +# try xmlto ... + test -r $(abs_srcdir)/userguide.xml + test -r userguide.xml || ln -s $(srcdir)/userguide.xml userguide.xml + test -r userguide_desc.xml || ln -s $(srcdir)/userguide_desc.xml userguide_desc.xml (cd $(DOCDIR)/userguide && \ - if test -n "${DOCBOOK_DSL}" ; then \ - openjade -b utf-8 -w all -w no-empty -w no-unused-param \ - -d ../userguide.dsl -t sgml ../userguide.sgml; \ + if xmlto --version > /dev/null 2> /dev/null ; then \ + xmlto -m ../userguide.xsl xhtml ../userguide.xml; \ cp $(abs_srcdir)/userguide.css .; \ fi) # if still no joy, create a stub if test ! -r $@ ; then \ - echo '$(UG_STUB)' > .index.htm && mv .index.htm $@; \ + echo '$(UG_STUB)' > .index.html && mv .index.html $@; \ fi - test -f $(DOCDIR)/userguide/index.htm - (cd $(DOCDIR)/userguide && \ - if test ! -h index.html ; then ln -s index.htm index.html; fi) + test -f $(DOCDIR)/userguide/index.html -userguide: $(DOCDIR)/userguide/index.htm +userguide: $(DOCDIR)/userguide/index.html reference: $(DOCDIR)/reference/index.html $(DOCDIR)/reference/index.html: $(top_srcdir)/configure.ac @@ -827,18 +825,18 @@ -e's!$$!!' > $@~ mv $@~ $@ -dblib.api.sgml: dblib.api.body -ctlib.api.sgml: ctlib.api.body -odbc.api.sgml: odbc.api.body +dblib.api.xml: dblib.api.body +ctlib.api.xml: ctlib.api.body +odbc.api.xml: odbc.api.body -dblib.api.sgml ctlib.api.sgml odbc.api.sgml: +dblib.api.xml ctlib.api.xml odbc.api.xml: NAME=`echo $@ | sed 's/\..*$$//'` && \ HEAD='$(API_TABLE_HEADING)' && \ if [ $${NAME} = dblib ]; then \ HEAD=`echo '$(API_TABLE_HEADING)' \ | sed 's!$(API_FUNC_COL)!$(API_DBLIB_FUNC_COLS)!'`; \ fi && \ - BODY=`cat $(@:.sgml=.body)` && \ + BODY=`cat $(@:.xml=.body)` && \ printf '$(API_PAGE_FMT)' $${NAME} $${NAME} "$${HEAD}" "$${BODY}" > $@~ mv $@~ $@ diff -Nru freetds-1.1.6/doc/osql.1 freetds-1.2.3/doc/osql.1 --- freetds-1.1.6/doc/osql.1 2019-04-29 09:00:37.000000000 +0000 +++ freetds-1.2.3/doc/osql.1 2020-07-09 09:01:41.000000000 +0000 @@ -1,6 +1,6 @@ .\" cf. groff_mdoc .Dd April 26, 2012 -.Os FreeTDS 1.1.6 +.Os FreeTDS 1.2.3 .Dt OSQL FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME diff -Nru freetds-1.1.6/doc/reference/a00023_source.html freetds-1.2.3/doc/reference/a00023_source.html --- freetds-1.1.6/doc/reference/a00023_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00023_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/apps/fisql/edit.h Source File - - - - - - - - - -

-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
edit.h
-
-
-
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
2  *
3  * This program is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU General Public
5  * License as published by the Free Software Foundation; either
6  * version 2 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Library General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public
14  * License along with this library; if not, write to the
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16  * Boston, MA 02111-1307, USA.
17  */
18 
19 /* $Id: edit.h,v 1.3 2007-01-20 06:32:27 castellano Exp $ */
20 int edit(const char *editor, const char *arg);
- - - - diff -Nru freetds-1.1.6/doc/reference/a00026_source.html freetds-1.2.3/doc/reference/a00026_source.html --- freetds-1.1.6/doc/reference/a00026_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00026_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,181 @@ + + + + + + + +FreeTDS API: src/apps/fisql/edit.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
edit.h
+
+
+
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
+
2  *
+
3  * This program is free software; you can redistribute it and/or
+
4  * modify it under the terms of the GNU General Public
+
5  * License as published by the Free Software Foundation; either
+
6  * version 2 of the License, or (at your option) any later version.
+
7  *
+
8  * This library is distributed in the hope that it will be useful,
+
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+
11  * Library General Public License for more details.
+
12  *
+
13  * You should have received a copy of the GNU General Public
+
14  * License along with this library; if not, write to the
+
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+
16  * Boston, MA 02111-1307, USA.
+
17  */
+
18 
+
19 /* $Id: edit.h,v 1.3 2007-01-20 06:32:27 castellano Exp $ */
+
20 int edit(const char *editor, const char *arg);
+
+
RETCODE dbsqlexec(DBPROCESS *dbproc)
send the SQL command to the server and wait for an answer.
Definition: dblib.c:1424
+
Primary include file for db-lib applications.
+
BYTE * dbretdata(DBPROCESS *dbproc, int retnum)
Get value of an output parameter filled by a stored procedure.
Definition: dblib.c:4757
+
DBBOOL dbhasretstat(DBPROCESS *dbproc)
Determine if query generated a return status number.
Definition: dblib.c:4654
+
int dbrettype(DBPROCESS *dbproc, int retnum)
Get datatype of a stored procedure's return parameter.
Definition: dblib.c:6270
+
Definition: bsqldb.c:74
+
int dbalttype(DBPROCESS *dbproc, int computeid, int column)
Get datatype for a compute column.
Definition: dblib.c:4344
+
int dbnumcols(DBPROCESS *dbproc)
Return number of regular columns in a result set.
Definition: dblib.c:1852
+
RETCODE dbpivot(DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val)
Pivot the rows, creating a new resultset.
Definition: dbpivot.c:908
+
Definition: sybdb.h:355
+
RETCODE dbcmd(DBPROCESS *dbproc, const char cmdstring[])
Append SQL to the command buffer.
Definition: dblib.c:1378
+
DBINT dbvarylen(DBPROCESS *dbproc, int column)
Determine whether a column can vary in size.
Definition: dblib.c:3222
+
char * dbcolname(DBPROCESS *dbproc, int column)
Return name of a regular result column.
Definition: dblib.c:1876
+
void dbfreebuf(DBPROCESS *dbproc)
Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().
Definition: dblib.c:6064
+
DBINT dbconvert(DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
cf. dbconvert_ps(), above
Definition: dblib.c:2597
+
DBPROCESS * dbopen(LOGINREC *login, const char *server)
Normally not used.
Definition: dbopen.c:36
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
int dbretlen(DBPROCESS *dbproc, int retnum)
Get size of an output parameter filled by a stored procedure.
Definition: dblib.c:4783
+
Definition: bsqldb.c:80
+
int dbaltop(DBPROCESS *dbproc, int computeid, int column)
Get aggregation operator for a compute column.
Definition: dblib.c:4448
+
#define DBSETLHOST(x, y)
Set the (client) host name in the login packet.
Definition: sybdb.h:1247
+
Definition: defncopy.c:118
+
const char * dbprtype(int token)
Print a token value's name to a buffer.
Definition: dblib.c:6451
+
DBINT dbcollen(DBPROCESS *dbproc, int column)
Get size of a regular result column.
Definition: dblib.c:3173
+
static int rtrim(char *, int)
trim a string of trailing blanks
Definition: bcp.c:2315
+
#define DBSETLPWD(x, y)
Set the password in the login packet.
Definition: sybdb.h:1253
+
MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler)
Set a message handler, for messages from the server.
Definition: dblib.c:5144
+
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
+
RETCODE bcp_init(DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
Prepare for bulk copy operation on a table.
Definition: bcp.c:166
+
DBINT dbdatlen(DBPROCESS *dbproc, int column)
Get size of current row's data in a regular result column.
Definition: dblib.c:3328
+
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:669
+
BYTE * dbbylist(DBPROCESS *dbproc, int computeid, int *size)
Get bylist for a compute row.
Definition: dblib.c:5003
+
#define DBROWS(x)
Sybase macro mapping to the Microsoft (lower-case) function.
Definition: sybdb.h:875
+
void dbexit()
Close server connections and free all related structures.
Definition: dblib.c:1557
+
RETCODE dbinit(void)
Initialize db-lib.
Definition: dblib.c:665
+
Definition: datacopy.c:53
+
void dbclose(DBPROCESS *dbproc)
Close a connection to the server and free associated resources.
Definition: dblib.c:1490
+
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:2007
+
char * dbname(DBPROCESS *dbproc)
Get name of current database.
Definition: dblib.c:7011
+
RETCODE dbnullbind(DBPROCESS *dbproc, int column, DBINT *indicator)
Tie a null-indicator to a regular result column.
Definition: dblib.c:2744
+
Definition: bsqldb.c:99
+
char * dbcolsource(DBPROCESS *dbproc, int column)
Get base database column name for a result set column.
Definition: dblib.c:3148
+
Definition: bsqldb.c:75
+
#define DBSETLAPP(x, y)
Set the (client) application name in the login packet.
Definition: sybdb.h:1260
+
int dbaltcolid(DBPROCESS *dbproc, int computeid, int column)
Get column ID of a compute column.
Definition: dblib.c:4288
+
DBINT dbaltlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in compute column.
Definition: dblib.c:7141
+
BYTE * dbdata(DBPROCESS *dbproc, int column)
Get address of data in a regular result column.
Definition: dblib.c:3356
+
int dbstrlen(DBPROCESS *dbproc)
Get size of the command buffer, in bytes.
Definition: dblib.c:6295
+
void dbloginfree(LOGINREC *login)
free the LOGINREC
Definition: dblib.c:742
+
Definition: bsqldb.c:73
+
EHANDLEFUNC dberrhandle(EHANDLEFUNC handler)
Set an error handler, for messages from db-lib.
Definition: dblib.c:5125
+
Definition: bsqldb.c:86
+
Definition: sybdb.h:374
+
Definition: dblib.h:123
+
RETCODE dbresults(DBPROCESS *dbproc)
Set up query results.
Definition: dblib.c:1698
+
RETCODE bcp_collen(DBPROCESS *dbproc, DBINT varlen, int table_column)
Set the length of a host variable to be written to a table.
Definition: bcp.c:265
+
RETCODE dbsetopt(DBPROCESS *dbproc, int option, const char *char_param, int int_param)
Set db-lib or server option.
Definition: dblib.c:4475
+
int dbnumrets(DBPROCESS *dbproc)
Get count of output parameters filled by a stored procedure.
Definition: dblib.c:4696
+
LOGINREC * dblogin(void)
Allocate a LOGINREC structure.
Definition: dblib.c:710
+
char * dbretname(DBPROCESS *dbproc, int retnum)
Get name of an output parameter filled by a stored procedure.
Definition: dblib.c:4728
+
int dbnumcompute(DBPROCESS *dbproc)
Get count of COMPUTE clauses for a result set.
Definition: dblib.c:4977
+
RETCODE dbbind(DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
Tie a host variable to a resultset column.
Definition: dblib.c:2638
+
#define DBTDS(a)
Sybase macro, maps to the internal (lower-case) function.
Definition: sybdb.h:1227
+
RETCODE dbsqlok(DBPROCESS *dbproc)
Wait for results of a query from the server.
Definition: dblib.c:4818
+
Definition: datacopy.c:62
+
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:543
+
int dbcoltype(DBPROCESS *dbproc, int column)
Get the datatype of a regular result set column.
Definition: dblib.c:2974
+
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:2034
+
#define DBSETLUSER(x, y)
Set the username in the login packet.
Definition: sybdb.h:1250
+
#define BCP_SETL(x, y)
Enable (or prevent) bcp operations for connections made with a login.
Definition: sybdb.h:1263
+
RETCODE dbaltbind(DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
Bind a compute column to a program variable.
Definition: dblib.c:4373
+
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1380
+
#define DBSETLPACKET(x, y)
Set the packet size in the login packet for new connections.
Definition: sybdb.h:1277
+
RETCODE dbfcmd(DBPROCESS *dbproc, const char *fmt,...)
printf-like way to form SQL to send to the server.
Definition: dblib.c:1339
+
int dbnumalts(DBPROCESS *dbproc, int computeid)
Get count of columns in a compute row.
Definition: dblib.c:4944
+
DBINT dbretstatus(DBPROCESS *dbproc)
Fetch status value returned by query or remote procedure call.
Definition: dblib.c:4678
+
RETCODE dbtablecolinfo(DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo)
Definition: dblib.c:6468
+
RETCODE dbuse(DBPROCESS *dbproc, const char *name)
Change current database.
Definition: dblib.c:1450
+
#define DBCOUNT(x)
Sybase macro mapping to the Microsoft (lower-case) function.
Definition: sybdb.h:747
+
RETCODE dbsqlsend(DBPROCESS *dbproc)
Transmit the command buffer to the server. Non-blocking, does not wait for a response.
Definition: dblib.c:7047
+
Definition: bsqlodbc.c:100
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00032_source.html freetds-1.2.3/doc/reference/a00032_source.html --- freetds-1.1.6/doc/reference/a00032_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00032_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: src/apps/fisql/handlers.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
handlers.h
-
-
-
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
2  *
3  * This program is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU General Public
5  * License as published by the Free Software Foundation; either
6  * version 2 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Library General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public
14  * License along with this library; if not, write to the
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16  * Boston, MA 02111-1307, USA.
17  */
18 
19 /* $Id: handlers.h,v 1.4 2007-01-20 06:32:27 castellano Exp $ */
20 extern int global_errorlevel;
21 
22 int err_handler(DBPROCESS * dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
23 
24 int msg_handler(DBPROCESS * dbproc, DBINT msgno, int msgstate,
25  int severity, char *msgtext, char *srvname, char *procname, int line);
Definition: dblib.h:120
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00035_source.html freetds-1.2.3/doc/reference/a00035_source.html --- freetds-1.1.6/doc/reference/a00035_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00035_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,156 @@ + + + + + + + +FreeTDS API: src/apps/fisql/handlers.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
handlers.h
+
+
+
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
+
2  *
+
3  * This program is free software; you can redistribute it and/or
+
4  * modify it under the terms of the GNU General Public
+
5  * License as published by the Free Software Foundation; either
+
6  * version 2 of the License, or (at your option) any later version.
+
7  *
+
8  * This library is distributed in the hope that it will be useful,
+
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+
11  * Library General Public License for more details.
+
12  *
+
13  * You should have received a copy of the GNU General Public
+
14  * License along with this library; if not, write to the
+
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+
16  * Boston, MA 02111-1307, USA.
+
17  */
+
18 
+
19 /* $Id: handlers.h,v 1.4 2007-01-20 06:32:27 castellano Exp $ */
+
20 extern int global_errorlevel;
+
21 
+
22 int err_handler(DBPROCESS * dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
+
23 
+
24 int msg_handler(DBPROCESS * dbproc, DBINT msgno, int msgstate,
+
25  int severity, char *msgtext, char *srvname, char *procname, int line);
+
+
RETCODE dbsqlexec(DBPROCESS *dbproc)
send the SQL command to the server and wait for an answer.
Definition: dblib.c:1424
+
Primary include file for db-lib applications.
+
RETCODE dbspr1row(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print a regular result row to a buffer.
Definition: dblib.c:3461
+
DBBOOL dbhasretstat(DBPROCESS *dbproc)
Determine if query generated a return status number.
Definition: dblib.c:4654
+
int dbalttype(DBPROCESS *dbproc, int computeid, int column)
Get datatype for a compute column.
Definition: dblib.c:4344
+
RETCODE dbsprline(DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
Get formatted string for underlining dbsprhead() column names.
Definition: dblib.c:3841
+
RETCODE dbcmd(DBPROCESS *dbproc, const char cmdstring[])
Append SQL to the command buffer.
Definition: dblib.c:1378
+
char * dbcolname(DBPROCESS *dbproc, int column)
Return name of a regular result column.
Definition: dblib.c:1876
+
RETCODE dbcancel(DBPROCESS *dbproc)
Cancel the current command batch.
Definition: dblib.c:3398
+
RETCODE dbsprhead(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print result set headings to a buffer.
Definition: dblib.c:3899
+
void dbfreebuf(DBPROCESS *dbproc)
Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().
Definition: dblib.c:6064
+
DBINT dbconvert(DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
cf. dbconvert_ps(), above
Definition: dblib.c:2597
+
DBPROCESS * dbopen(LOGINREC *login, const char *server)
Normally not used.
Definition: dbopen.c:36
+
void dbsetinterrupt(DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
Set interrupt handler for db-lib to use while blocked against a read from the server.
Definition: dblib.c:4635
+
int dbaltop(DBPROCESS *dbproc, int computeid, int column)
Get aggregation operator for a compute column.
Definition: dblib.c:4448
+
#define DBSETLHOST(x, y)
Set the (client) host name in the login packet.
Definition: sybdb.h:1247
+
const char * dbprtype(int token)
Print a token value's name to a buffer.
Definition: dblib.c:6451
+
RETCODE dbsettime(int seconds)
Set maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4196
+
DBINT dbspr1rowlen(DBPROCESS *dbproc)
Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(),...
Definition: dblib.c:3423
+
DBINT dbcollen(DBPROCESS *dbproc, int column)
Get size of a regular result column.
Definition: dblib.c:3173
+
#define DBSETLPWD(x, y)
Set the password in the login packet.
Definition: sybdb.h:1253
+
MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler)
Set a message handler, for messages from the server.
Definition: dblib.c:5144
+
RETCODE dbsetversion(DBINT version)
Specify a db-lib version level.
Definition: dblib.c:5980
+
void dbsetifile(char *filename)
set name and location of the interfaces file FreeTDS should use to look up a servername.
Definition: dblib.c:2715
+
#define DBROWS(x)
Sybase macro mapping to the Microsoft (lower-case) function.
Definition: sybdb.h:875
+
void dbexit()
Close server connections and free all related structures.
Definition: dblib.c:1557
+
RETCODE dbinit(void)
Initialize db-lib.
Definition: dblib.c:665
+
BYTE * dbadata(DBPROCESS *dbproc, int computeid, int column)
Get address of compute column data.
Definition: dblib.c:4419
+
#define DBSETLAPP(x, y)
Set the (client) application name in the login packet.
Definition: sybdb.h:1260
+
#define DBSETLCHARSET(x, y)
Set the client character set in the login packet.
Definition: sybdb.h:1275
+
int dbaltcolid(DBPROCESS *dbproc, int computeid, int column)
Get column ID of a compute column.
Definition: dblib.c:4288
+
#define DBSETLNATLANG(x, y)
Set the language the server should use for messages.
Definition: sybdb.h:1266
+
RETCODE dbprrow(DBPROCESS *dbproc)
Print a result set to stdout.
Definition: dblib.c:3544
+
DBINT dbadlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in a compute column.
Definition: dblib.c:4314
+
EHANDLEFUNC dberrhandle(EHANDLEFUNC handler)
Set an error handler, for messages from db-lib.
Definition: dblib.c:5125
+
Definition: dblib.h:123
+
RETCODE dbsetlogintime(int seconds)
Set maximum seconds db-lib waits for a server response to a login attempt.
Definition: dblib.c:4243
+
RETCODE dbresults(DBPROCESS *dbproc)
Set up query results.
Definition: dblib.c:1698
+
RETCODE dbsetopt(DBPROCESS *dbproc, int option, const char *char_param, int int_param)
Set db-lib or server option.
Definition: dblib.c:4475
+
LOGINREC * dblogin(void)
Allocate a LOGINREC structure.
Definition: dblib.c:710
+
void dbprhead(DBPROCESS *dbproc)
Print result set headings to stdout.
Definition: dblib.c:3963
+
int dbcoltype(DBPROCESS *dbproc, int column)
Get the datatype of a regular result set column.
Definition: dblib.c:2974
+
char * dbgetchar(DBPROCESS *dbproc, int pos)
Get address of a position in the command buffer.
Definition: dblib.c:6314
+
#define DBSETLUSER(x, y)
Set the username in the login packet.
Definition: sybdb.h:1250
+
#define DBSETLPACKET(x, y)
Set the packet size in the login packet for new connections.
Definition: sybdb.h:1277
+
#define DBSETLENCRYPT(x, y)
Enable (or not) network password encryption for Sybase servers version 10.0 or above.
Definition: sybdb.h:1280
+
int dbnumalts(DBPROCESS *dbproc, int computeid)
Get count of columns in a compute row.
Definition: dblib.c:4944
+
DBINT dbretstatus(DBPROCESS *dbproc)
Fetch status value returned by query or remote procedure call.
Definition: dblib.c:4678
+
#define DBDEAD(x)
Sybase macro mapping to the Microsoft (lower-case) function.
Definition: sybdb.h:761
+
#define DBCOUNT(x)
Sybase macro mapping to the Microsoft (lower-case) function.
Definition: sybdb.h:747
+
Definition: bsqlodbc.c:100
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00038_source.html freetds-1.2.3/doc/reference/a00038_source.html --- freetds-1.1.6/doc/reference/a00038_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00038_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: src/apps/fisql/interrupt.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
interrupt.h
-
-
-
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
2  *
3  * This program is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU General Public
5  * License as published by the Free Software Foundation; either
6  * version 2 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Library General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public
14  * License along with this library; if not, write to the
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16  * Boston, MA 02111-1307, USA.
17  */
18 
19 /* $Id: interrupt.h,v 1.4 2007-01-20 06:32:27 castellano Exp $ */
20 extern sigjmp_buf restart;
21 
22 void inactive_interrupt_handler(int sig);
23 void active_interrupt_handler(int sig);
24 void maybe_handle_active_interrupt(void);
25 int active_interrupt_pending(DBPROCESS * dbproc);
26 int active_interrupt_servhandler(DBPROCESS * dbproc);
Definition: dblib.h:120
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00041_source.html freetds-1.2.3/doc/reference/a00041_source.html --- freetds-1.1.6/doc/reference/a00041_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00041_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: src/apps/fisql/interrupt.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
interrupt.h
+
+
+
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
+
2  *
+
3  * This program is free software; you can redistribute it and/or
+
4  * modify it under the terms of the GNU General Public
+
5  * License as published by the Free Software Foundation; either
+
6  * version 2 of the License, or (at your option) any later version.
+
7  *
+
8  * This library is distributed in the hope that it will be useful,
+
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+
11  * Library General Public License for more details.
+
12  *
+
13  * You should have received a copy of the GNU General Public
+
14  * License along with this library; if not, write to the
+
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+
16  * Boston, MA 02111-1307, USA.
+
17  */
+
18 
+
19 /* $Id: interrupt.h,v 1.4 2007-01-20 06:32:27 castellano Exp $ */
+
20 extern sigjmp_buf restart;
+
21 
+
22 void inactive_interrupt_handler(int sig);
+
23 void active_interrupt_handler(int sig);
+
24 void maybe_handle_active_interrupt(void);
+
25 int active_interrupt_pending(DBPROCESS * dbproc);
+
26 int active_interrupt_servhandler(DBPROCESS * dbproc);
+
+
Primary include file for db-lib applications.
+
Definition: dblib.h:123
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00044_source.html freetds-1.2.3/doc/reference/a00044_source.html --- freetds-1.1.6/doc/reference/a00044_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00044_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/apps/fisql/terminal.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
terminal.h
-
-
-
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
2  *
3  * This program is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU General Public
5  * License as published by the Free Software Foundation; either
6  * version 2 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Library General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public
14  * License along with this library; if not, write to the
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16  * Boston, MA 02111-1307, USA.
17  */
18 
19 /* $Id: terminal.h,v 1.4 2007-01-20 06:32:27 castellano Exp $ */
20 int save_term(void);
21 int set_term_noecho(void);
22 int reset_term(void);
- - - - diff -Nru freetds-1.1.6/doc/reference/a00047_source.html freetds-1.2.3/doc/reference/a00047_source.html --- freetds-1.1.6/doc/reference/a00047_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00047_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,102 @@ + + + + + + + +FreeTDS API: src/apps/fisql/terminal.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
terminal.h
+
+
+
1 /* Free ISQL - An isql for DB-Library (C) 2007 Nicholas S. Castellano
+
2  *
+
3  * This program is free software; you can redistribute it and/or
+
4  * modify it under the terms of the GNU General Public
+
5  * License as published by the Free Software Foundation; either
+
6  * version 2 of the License, or (at your option) any later version.
+
7  *
+
8  * This library is distributed in the hope that it will be useful,
+
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+
11  * Library General Public License for more details.
+
12  *
+
13  * You should have received a copy of the GNU General Public
+
14  * License along with this library; if not, write to the
+
15  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+
16  * Boston, MA 02111-1307, USA.
+
17  */
+
18 
+
19 /* $Id: terminal.h,v 1.4 2007-01-20 06:32:27 castellano Exp $ */
+
20 int save_term(void);
+
21 int set_term_noecho(void);
+
22 int reset_term(void);
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00050_source.html freetds-1.2.3/doc/reference/a00050_source.html --- freetds-1.1.6/doc/reference/a00050_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00050_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: src/apps/freebcp.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
freebcp.h
-
-
-
1 enum states
2 {
3  GET_NEXTARG,
4  GET_MAXERRORS,
5  GET_FORMATFILE,
6  GET_ERRORFILE,
7  GET_FIRSTROW,
8  GET_LASTROW,
9  GET_BATCHSIZE,
10  GET_FIELDTERM,
11  GET_ROWTERM,
12  GET_USER,
13  GET_PASS,
14  GET_INTERFACESFILE,
15  GET_SERVER,
16  GET_DISPLAYCHARSET,
17  GET_DATAFILECHARSET,
18  GET_LANGUAGE,
19  GET_PACKETSIZE,
20  GET_CLIENTCHARSET,
21  GET_TEXTSIZE,
22  GET_SYBASEDIR,
23  GET_FROMLABEL,
24  GET_TOLABEL,
25  GET_HINT
26 };
27 
28 typedef struct pd
29 {
30  char *dbobject;
31  char dbdirection[10];
32  DBINT direction;
33  char *hostfilename;
34  char *formatfile;
35  char *errorfile;
36  char *interfacesfile;
37  int firstrow;
38  int lastrow;
39  int batchsize;
40  int maxerrors;
41  int textsize;
42  char *fieldterm;
43  int fieldtermlen;
44  char *rowterm;
45  int rowtermlen;
46  char *user;
47  char *pass;
48  char *server;
49  char *dbname;
50  char *hint;
51  char *options;
52  char *charset;
53  int packetsize;
54  int mflag;
55  int fflag;
56  int eflag;
57  int Fflag;
58  int Lflag;
59  int bflag;
60  int nflag;
61  int cflag;
62  int tflag;
63  int rflag;
64  int Uflag;
65  int Iflag;
66  int Sflag;
67  int Pflag;
68  int Tflag;
69  int Aflag;
70  int Eflag;
71  char *inputfile;
72  char *outputfile;
73 }
Definition: datacopy.c:61
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00053_source.html freetds-1.2.3/doc/reference/a00053_source.html --- freetds-1.1.6/doc/reference/a00053_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00053_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,186 @@ + + + + + + + +FreeTDS API: src/apps/freebcp.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
freebcp.h
+
+
+
1 enum states
+
2 {
+
3  GET_NEXTARG,
+
4  GET_MAXERRORS,
+
5  GET_FORMATFILE,
+
6  GET_ERRORFILE,
+
7  GET_FIRSTROW,
+
8  GET_LASTROW,
+
9  GET_BATCHSIZE,
+
10  GET_FIELDTERM,
+
11  GET_ROWTERM,
+
12  GET_USER,
+
13  GET_PASS,
+
14  GET_INTERFACESFILE,
+
15  GET_SERVER,
+
16  GET_DISPLAYCHARSET,
+
17  GET_DATAFILECHARSET,
+
18  GET_LANGUAGE,
+
19  GET_PACKETSIZE,
+
20  GET_CLIENTCHARSET,
+
21  GET_TEXTSIZE,
+
22  GET_SYBASEDIR,
+
23  GET_FROMLABEL,
+
24  GET_TOLABEL,
+
25  GET_HINT
+
26 };
+
27 
+
28 typedef struct pd
+
29 {
+
30  char *dbobject;
+
31  char dbdirection[10];
+
32  DBINT direction;
+
33  char *hostfilename;
+
34  char *formatfile;
+
35  char *errorfile;
+
36  char *interfacesfile;
+
37  int firstrow;
+
38  int lastrow;
+
39  int batchsize;
+
40  int maxerrors;
+
41  int textsize;
+
42  char *fieldterm;
+
43  int fieldtermlen;
+
44  char *rowterm;
+
45  int rowtermlen;
+
46  char *user;
+
47  char *pass;
+
48  char *server;
+
49  char *dbname;
+
50  char *hint;
+
51  char *options;
+
52  char *charset;
+
53  int packetsize;
+
54  int mflag;
+
55  int fflag;
+
56  int eflag;
+
57  int Fflag;
+
58  int Lflag;
+
59  int bflag;
+
60  int nflag;
+
61  int cflag;
+
62  int tflag;
+
63  int rflag;
+
64  int Uflag;
+
65  int Iflag;
+
66  int Sflag;
+
67  int Pflag;
+
68  int Tflag;
+
69  int Aflag;
+
70  int Eflag;
+
71  char *inputfile;
+
72  char *outputfile;
+
73 }
+ +
+
RETCODE dbsqlexec(DBPROCESS *dbproc)
send the SQL command to the server and wait for an answer.
Definition: dblib.c:1424
+
Primary include file for db-lib applications.
+
int dbnumcols(DBPROCESS *dbproc)
Return number of regular columns in a result set.
Definition: dblib.c:1852
+
RETCODE dbcmd(DBPROCESS *dbproc, const char cmdstring[])
Append SQL to the command buffer.
Definition: dblib.c:1378
+ +
DBPROCESS * dbopen(LOGINREC *login, const char *server)
Normally not used.
Definition: dbopen.c:36
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
RETCODE bcp_options(DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
Set "hints" for uploading a file. A FreeTDS-only function.
Definition: bcp.c:621
+
#define DBSETLPWD(x, y)
Set the password in the login packet.
Definition: sybdb.h:1253
+
MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler)
Set a message handler, for messages from the server.
Definition: dblib.c:5144
+
RETCODE bcp_init(DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
Prepare for bulk copy operation on a table.
Definition: bcp.c:166
+
void dbsetifile(char *filename)
set name and location of the interfaces file FreeTDS should use to look up a servername.
Definition: dblib.c:2715
+
RETCODE dbinit(void)
Initialize db-lib.
Definition: dblib.c:665
+
RETCODE bcp_colfmt(DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)
Specify the format of a datafile prior to writing to a table.
Definition: bcp.c:376
+
#define DBSETLAPP(x, y)
Set the (client) application name in the login packet.
Definition: sybdb.h:1260
+
#define DBSETLCHARSET(x, y)
Set the client character set in the login packet.
Definition: sybdb.h:1275
+
void dbloginfree(LOGINREC *login)
free the LOGINREC
Definition: dblib.c:742
+
EHANDLEFUNC dberrhandle(EHANDLEFUNC handler)
Set an error handler, for messages from db-lib.
Definition: dblib.c:5125
+
Definition: dblib.h:123
+
RETCODE dbresults(DBPROCESS *dbproc)
Set up query results.
Definition: dblib.c:1698
+
LOGINREC * dblogin(void)
Allocate a LOGINREC structure.
Definition: dblib.c:710
+
RETCODE bcp_readfmt(DBPROCESS *dbproc, const char filename[])
Read a format definition file.
Definition: bcp.c:1675
+
Definition: datacopy.c:62
+
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:543
+
int dbcoltype(DBPROCESS *dbproc, int column)
Get the datatype of a regular result set column.
Definition: dblib.c:2974
+
RETCODE bcp_exec(DBPROCESS *dbproc, DBINT *rows_copied)
Write a datafile to a table.
Definition: bcp.c:1614
+
#define DBSETLUSER(x, y)
Set the username in the login packet.
Definition: sybdb.h:1250
+
RETCODE bcp_columns(DBPROCESS *dbproc, int host_colcount)
Indicate how many columns are to be found in the datafile.
Definition: bcp.c:300
+
#define BCP_SETL(x, y)
Enable (or prevent) bcp operations for connections made with a login.
Definition: sybdb.h:1263
+
#define DBSETLPACKET(x, y)
Set the packet size in the login packet for new connections.
Definition: sybdb.h:1277
+
RETCODE dbfcmd(DBPROCESS *dbproc, const char *fmt,...)
printf-like way to form SQL to send to the server.
Definition: dblib.c:1339
+
Definition: bsqlodbc.c:100
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00074_source.html freetds-1.2.3/doc/reference/a00074_source.html --- freetds-1.1.6/doc/reference/a00074_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00074_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - - - -FreeTDS API: src/dblib/buffering.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
buffering.h
-
-
-
1 typedef struct dblib_buffer_row {
5  unsigned char *row_data;
7  DBINT row;
9  TDS_INT *sizes;
11 
12 static void buffer_struct_print(const DBPROC_ROWBUF *buf);
13 static RETCODE buffer_save_row(DBPROCESS *dbproc);
14 static DBLIB_BUFFER_ROW* buffer_row_address(const DBPROC_ROWBUF * buf, int idx);
15 
16 #if ENABLE_EXTRA_CHECKS
17 static void buffer_check_row_empty(DBLIB_BUFFER_ROW *row)
18 {
19  assert(row->resinfo == NULL);
20  assert(row->row_data == NULL);
21  assert(row->sizes == NULL);
22  assert(row->row == 0);
23 }
24 
25 static void buffer_check(const DBPROC_ROWBUF *buf)
26 {
27  int i;
28 
29  /* no buffering */
30  if (buf->capacity == 0 || buf->capacity == 1) {
31  assert(buf->head == 0);
32  assert(buf->tail == 0 || buf->tail == 1);
33  assert(buf->capacity == 1 || buf->rows == NULL);
34  return;
35  }
36 
37  assert(buf->capacity > 0);
38  assert(buf->head >= 0);
39  assert(buf->tail >= 0);
40  assert(buf->head < buf->capacity);
41  assert(buf->tail <= buf->capacity);
42 
43  /* check empty */
44  if (buf->tail == buf->capacity) {
45  assert(buf->head == 0);
46  for (i = 0; buf->rows && i < buf->capacity; ++i)
47  buffer_check_row_empty(&buf->rows[i]);
48  return;
49  }
50 
51  if (buf->rows == NULL)
52  return;
53 
54  /* check filled part */
55  i = buf->tail;
56  do {
57  assert(i >= 0 && i < buf->capacity);
58  assert(buf->rows[i].resinfo != NULL);
59  assert(buf->rows[i].row > 0);
60  assert(buf->rows[i].row <= buf->received);
61  ++i;
62  if (i == buf->capacity)
63  i = 0;
64  } while (i != buf->head);
65 
66  /* check empty part */
67  if (buf->head != buf->tail) {
68  i = buf->head;
69  do {
70  assert(i >= 0 && i < buf->capacity);
71  buffer_check_row_empty(&buf->rows[i]);
72  ++i;
73  if (i == buf->capacity)
74  i = 0;
75  } while (i != buf->tail);
76  }
77 }
78 #define BUFFER_CHECK(buf) buffer_check(buf)
79 #else
80 #define BUFFER_CHECK(buf) do {} while(0)
81 #endif
82 
111 static int
112 buffer_count(const DBPROC_ROWBUF *buf)
113 {
114  BUFFER_CHECK(buf);
115  return (buf->head > buf->tail) ?
116  buf->head - buf->tail : /* |...TddddH....| */
117  buf->capacity - (buf->tail - buf->head); /* |ddddH....Tddd| */
118 }
119 
123 static int
124 buffer_is_full(const DBPROC_ROWBUF *buf)
125 {
126  BUFFER_CHECK(buf);
127  return buf->capacity == buffer_count(buf) && buf->capacity > 1;
128 }
129 
130 #ifndef NDEBUG
131 static int
132 buffer_index_valid(const DBPROC_ROWBUF *buf, int idx)
133 {
134  BUFFER_CHECK(buf);
135  if (buf->tail <= buf->head)
136  if (buf->head <= idx && idx <= buf->tail)
137  return 1;
138 
139  if (0 <= idx && idx <= buf->head)
140  return 1;
141 
142  if (buf->tail <= idx && idx < buf->capacity)
143  return 1;
144 #if 0
145  printf("buffer_index_valid: idx = %d\n", idx);
146  buffer_struct_print(buf);
147 #endif
148  return 0;
149 }
150 #endif
151 
152 static void
153 buffer_free_row(DBLIB_BUFFER_ROW *row)
154 {
155  if (row->sizes)
156  TDS_ZERO_FREE(row->sizes);
157  if (row->row_data) {
158  tds_free_row(row->resinfo, row->row_data);
159  row->row_data = NULL;
160  }
161  tds_free_results(row->resinfo);
162  row->resinfo = NULL;
163  row->row = 0;
164 }
165 
166 /*
167  * Buffer is freed at slightly odd points, whenever
168  * capacity changes:
169  *
170  * 1. When setting capacity, to release prior buffer.
171  * 2. By dbresults. When called the second time, it has to
172  * release prior storage because the new resultset will have
173  * a different width.
174  * 3. By dbclose(), else open/close/open would leak.
175  */
176 static void
177 buffer_free(DBPROC_ROWBUF *buf)
178 {
179  BUFFER_CHECK(buf);
180  if (buf->rows != NULL) {
181  int i;
182  for (i = 0; i < buf->capacity; ++i)
183  buffer_free_row(&buf->rows[i]);
184  TDS_ZERO_FREE(buf->rows);
185  }
186  BUFFER_CHECK(buf);
187 }
188 
189 /*
190  * When no rows are currently buffered (and the buffer is allocated)
191  * set the indices to their initial positions.
192  */
193 static void
194 buffer_reset(DBPROC_ROWBUF *buf)
195 {
196  buf->head = 0;
197  buf->current = buf->tail = buf->capacity;
198  BUFFER_CHECK(buf);
199 }
200 
201 static int
202 buffer_idx_increment(const DBPROC_ROWBUF *buf, int idx)
203 {
204  if (++idx >= buf->capacity) {
205  idx = 0;
206  }
207  return idx;
208 }
209 
214 static DBLIB_BUFFER_ROW*
215 buffer_row_address(const DBPROC_ROWBUF * buf, int idx)
216 {
217  BUFFER_CHECK(buf);
218  if (idx < 0 || idx >= buf->capacity) {
219  printf("idx is %d:\n", idx);
220  buffer_struct_print(buf);
221  return NULL;
222  }
223 
224  return &(buf->rows[idx]);
225 }
226 
230 static DBINT
231 buffer_idx2row(const DBPROC_ROWBUF *buf, int idx)
232 {
233  BUFFER_CHECK(buf);
234  return buffer_row_address(buf, idx)->row;
235 }
236 
240 static int
241 buffer_row2idx(const DBPROC_ROWBUF *buf, int row_number)
242 {
243  int i = buf->tail;
244 #ifndef NDEBUG
245  int ii = 0;
246 #endif
247 
248  BUFFER_CHECK(buf);
249  if (i == buf->capacity) {
250  assert (buf->head == 0);
251  return -1; /* no rows buffered */
252  }
253 
254  /*
255  * March through the buffers from tail to head, stop if we find our row.
256  * A full queue is indicated by tail == head (which means we can't write).
257  */
258  do {
259  if (buffer_idx2row(buf, i) == row_number)
260  return i;
261 
262  assert(ii++ < buf->capacity); /* prevent infinite loop */
263 
264  i = buffer_idx_increment(buf, i);
265  } while (i != buf->head);
266 
267  return -1;
268 }
269 
274 static void
275 buffer_delete_rows(DBPROC_ROWBUF * buf, int count)
276 {
277  int i;
278 
279  BUFFER_CHECK(buf);
280  if (count < 0 || count > buffer_count(buf)) {
281  count = buffer_count(buf);
282  }
283 
284  for (i=0; i < count; i++) {
285  if (buf->tail < buf->capacity)
286  buffer_free_row(&buf->rows[buf->tail]);
287  buf->tail = buffer_idx_increment(buf, buf->tail);
288  /*
289  * If deleting rows from the buffer catches the tail to the head,
290  * return to the initial position. Otherwise, it will look full.
291  */
292  if (buf->tail == buf->head) {
293  buffer_reset(buf);
294  break;
295  }
296  }
297 #if 0
298  buffer_struct_print(buf);
299 #endif
300  BUFFER_CHECK(buf);
301 }
302 
306 static void
307 buffer_transfer_bound_data(DBPROC_ROWBUF *buf, TDS_INT res_type, TDS_INT compute_id, DBPROCESS * dbproc, int idx)
308 {
309  int i;
310  BYTE *src;
311  const DBLIB_BUFFER_ROW *row;
312 
313  tdsdump_log(TDS_DBG_FUNC, "buffer_transfer_bound_data(%p %d %d %p %d)\n", buf, res_type, compute_id, dbproc, idx);
314  BUFFER_CHECK(buf);
315  assert(buffer_index_valid(buf, idx));
316 
317  row = buffer_row_address(buf, idx);
318  assert(row->resinfo);
319 
320  for (i = 0; i < row->resinfo->num_cols; i++) {
321  TDS_SERVER_TYPE srctype;
322  DBINT srclen;
323  TDSCOLUMN *curcol = row->resinfo->columns[i];
324 
325  if (row->sizes)
326  curcol->column_cur_size = row->sizes[i];
327 
328  srclen = curcol->column_cur_size;
329 
330  if (curcol->column_nullbind) {
331  if (srclen < 0) {
332  *(DBINT *)(curcol->column_nullbind) = -1;
333  } else {
334  *(DBINT *)(curcol->column_nullbind) = 0;
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,
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)
350  src = &row->row_data[curcol->column_data - row->resinfo->current_row];
351  else
352  src = curcol->column_data;
353  if (is_blob_col(curcol))
354  src = (BYTE *) ((TDSBLOB *) src)->textvalue;
355 
356  copy_data_to_host_var(dbproc, srctype, src, srclen,
357  (BYTE *) curcol->column_varaddr, curcol->column_bindlen,
358  curcol->column_bindtype, (DBINT*) curcol->column_nullbind);
359  }
360 
361  /*
362  * This function always bumps current. Usually, it's called
363  * by dbnextrow(), so bumping current is a pretty obvious choice.
364  * It can also be called by dbgetrow(), but that function also
365  * causes the bump. If you call dbgetrow() for row N, a subsequent
366  * call to dbnextrow() yields N+1.
367  */
368  buf->current = buffer_idx_increment(buf, buf->current);
369 
370 } /* end buffer_transfer_bound_data() */
371 
372 static void
373 buffer_struct_print(const DBPROC_ROWBUF *buf)
374 {
375  assert(buf);
376 
377  printf("\t%d rows in buffer\n", buffer_count(buf));
378 
379  printf("\thead = %d\t", buf->head);
380  printf("\ttail = %d\t", buf->tail);
381  printf("\tcurrent = %d\n", buf->current);
382  printf("\tcapacity = %d\t", buf->capacity);
383  printf("\thead row number = %d\n", buf->received);
384 }
385 
386 /* * * Functions called only by public db-lib API take DBPROCESS* * */
387 
404 static int
405 buffer_current_index(const DBPROCESS *dbproc)
406 {
407  const DBPROC_ROWBUF *buf = &dbproc->row_buf;
408 #if 0
409  buffer_struct_print(buf);
410 #endif
411  if (buf->capacity <= 1) /* no buffering */
412  return -1;
413  if (buf->current == buf->head || buf->current == buf->capacity)
414  return -1;
415 
416  assert(buf->current >= 0);
417  assert(buf->current < buf->capacity);
418 
419  if( buf->tail < buf->head) {
420  assert(buf->tail < buf->current);
421  assert(buf->current < buf->head);
422  } else {
423  if (buf->current > buf->head)
424  assert(buf->current > buf->tail);
425  }
426  return buf->current;
427 }
428 
429 /*
430  * Normally called by dbsetopt() to prepare for buffering
431  * Called with nrows == 0 by dbopen to safely set buf->rows to NULL.
432  */
433 static void
434 buffer_set_capacity(DBPROCESS *dbproc, int nrows)
435 {
436  DBPROC_ROWBUF *buf = &dbproc->row_buf;
437 
438  buffer_free(buf);
439 
440  memset(buf, 0, sizeof(DBPROC_ROWBUF));
441 
442  if (0 == nrows) {
443  buf->capacity = 1;
444  BUFFER_CHECK(buf);
445  return;
446  }
447 
448  assert(0 < nrows);
449 
450  buf->capacity = nrows;
451  BUFFER_CHECK(buf);
452 }
453 
454 /*
455  * Called only by dbresults(); capacity must be >= 1.
456  * Sybase's documents say dbresults() cannot return FAIL if the prior calls worked,
457  * which is a little strange, because (for FreeTDS, at least), dbresults
458  * is when we learn about the result set's width. Without that information, we
459  * can't allocate memory for the buffer. But if we *fail* to allocate memory,
460  * we're not to communicate it back to the caller?
461  */
462 static void
463 buffer_alloc(DBPROCESS *dbproc)
464 {
465  DBPROC_ROWBUF *buf = &dbproc->row_buf;
466 
467  /* Call this function only after setting capacity. */
468 
469  assert(buf);
470  assert(buf->capacity > 0);
471  assert(buf->rows == NULL);
472 
473  buf->rows = tds_new0(DBLIB_BUFFER_ROW, buf->capacity);
474 
475  assert(buf->rows);
476 
477  buffer_reset(buf);
478 
479  buf->received = 0;
480 }
481 
486 static int
487 buffer_add_row(DBPROCESS *dbproc, TDSRESULTINFO *resinfo)
488 {
489  DBPROC_ROWBUF *buf = &dbproc->row_buf;
491  int i;
492 
493  assert(buf->capacity >= 0);
494 
495  if (buffer_is_full(buf))
496  return -1;
497 
498  row = buffer_row_address(buf, buf->head);
499 
500  /* bump the row number, write it, and move the data to head */
501  if (row->resinfo) {
502  tds_free_row(row->resinfo, row->row_data);
503  tds_free_results(row->resinfo);
504  }
505  row->row = ++buf->received;
506  ++resinfo->ref_count;
507  row->resinfo = resinfo;
508  row->row_data = NULL;
509  if (row->sizes)
510  free(row->sizes);
511  row->sizes = tds_new0(TDS_INT, resinfo->num_cols);
512  for (i = 0; i < resinfo->num_cols; ++i)
513  row->sizes[i] = resinfo->columns[i]->column_cur_size;
514 
515  /* initial condition is head == 0 and tail == capacity */
516  if (buf->tail == buf->capacity) {
517  /* bumping this tail will set it to zero */
518  assert(buf->head == 0);
519  buf->tail = 0;
520  }
521 
522  /* update current, bump the head */
523  buf->current = buf->head;
524  buf->head = buffer_idx_increment(buf, buf->head);
525 
526  return buf->current;
527 }
528 
532 static RETCODE
533 buffer_save_row(DBPROCESS *dbproc)
534 {
535  DBPROC_ROWBUF *buf = &dbproc->row_buf;
537  int idx = buf->head - 1;
538 
539  if (buf->capacity <= 1)
540  return SUCCEED;
541 
542  if (idx < 0)
543  idx = buf->capacity - 1;
544  if (idx >= 0 && idx < buf->capacity) {
545  row = &buf->rows[idx];
546 
547  if (row->resinfo && !row->row_data) {
548  row->row_data = row->resinfo->current_row;
549  tds_alloc_row(row->resinfo);
550  }
551  }
552 
553  return SUCCEED;
554 }
555 
DBINT row
row number
Definition: buffering.h:7
-
Information about blobs (e.g.
Definition: tds.h:587
-
Metadata about columns in regular and compute rows.
Definition: tds.h:690
-
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition: dblib.c:533
-
TDS_INT column_size
maximun size of data.
Definition: tds.h:696
-
Hold information for any results.
Definition: tds.h:769
-
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
-
TDSRESULTINFO * resinfo
pointer to result informations
Definition: buffering.h:3
-
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
-
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:698
-
Definition: dblib.h:120
-
unsigned char * row_data
row data, NULL for resinfo->current_row
Definition: buffering.h:5
-
Definition: dblib.h:49
-
TDS_INT * sizes
save old sizes
Definition: buffering.h:9
-
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
-
Definition: buffering.h:1
-
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map freetds-1.2.3/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map --- freetds-1.1.6/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 freetds-1.2.3/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 --- freetds-1.1.6/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -403ade863c15e17b3afc0fbc937dd8e0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg freetds-1.2.3/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg --- freetds-1.1.6/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcolinfo - - -Node0 - -dbcolinfo - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.map freetds-1.2.3/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.map --- freetds-1.1.6/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.md5 freetds-1.2.3/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.md5 --- freetds-1.1.6/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -06327cce8d8cd186cbc217ee09b56063 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.svg freetds-1.2.3/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.svg --- freetds-1.1.6/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_aea6a865806d454280126de940478c214_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbgetnull - - -Node3 - -dbgetnull - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00077.html freetds-1.2.3/doc/reference/a00077.html --- freetds-1.1.6/doc/reference/a00077.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,889 +0,0 @@ - - - - - - - -FreeTDS API: src/dblib/dblib.c File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
dblib.c File Reference
-
-
- -

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/thread.h>
-#include <freetds/convert.h>
-#include <freetds/utils/string.h>
-#include <freetds/data.h>
-#include <replacements.h>
-#include <sybfront.h>
-#include <sybdb.h>
-#include <syberror.h>
-#include <dblib.h>
-#include "buffering.h"
-
-Include dependency graph for dblib.c:
-
-
-
-
-
- - - - - -

-Classes

struct  _dblib_error_message
 
struct  dblib_context
 
- - - - - -

-Typedefs

typedef struct _dblib_error_message DBLIB_ERROR_MESSAGE
 
typedef struct dblib_context DBLIBCONTEXT
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

static BYTE * _dbcoldata (TDSCOLUMN *colinfo)
 Return data from a column. More...
 
-static int _dbnullable (DBPROCESS *dbproc, int column)
 
-static char * _dbprdate (char *timestr)
 
static RETCODE _dbresults (DBPROCESS *dbproc)
 
-static int _get_printable_size (TDSCOLUMN *colinfo)
 
-void copy_data_to_host_var (DBPROCESS *, TDS_SERVER_TYPE, const BYTE *, int, BYTE *, DBINT, int, DBINT *)
 
-void copy_data_to_host_var (DBPROCESS *dbproc, TDS_SERVER_TYPE srctype, const BYTE *src, DBINT srclen, BYTE *dest, DBINT destlen, int bindtype, DBINT *indicator)
 
-static void db_env_chg (TDSSOCKET *tds, int type, char *oldval, char *newval)
 
const char * dbacolname (DBPROCESS *dbproc, int computeid, int column)
 Return name of a computed result column. More...
 
-static TDSCOLUMNdbacolptr (DBPROCESS *dbproc, int computeid, int column, int is_bind)
 
BYTE * dbadata (DBPROCESS *dbproc, int computeid, int column)
 Get address of compute column data. More...
 
DBINT dbadlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in a compute column. More...
 
RETCODE dbaltbind (DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Bind a compute column to a program variable. More...
 
int dbaltcolid (DBPROCESS *dbproc, int computeid, int column)
 Get column ID of a compute column. More...
 
DBINT dbaltlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in compute column. More...
 
int dbaltop (DBPROCESS *dbproc, int computeid, int column)
 Get aggregation operator for a compute column. More...
 
int dbalttype (DBPROCESS *dbproc, int computeid, int column)
 Get datatype for a compute column. More...
 
DBINT dbaltutype (DBPROCESS *dbproc, int computeid, int column)
 Get user-defined datatype of a compute column. More...
 
RETCODE dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
 Tie a null-indicator to a compute result column. More...
 
RETCODE dbanydatecrack (DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
 Break any kind of date or time value into useful pieces. More...
 
RETCODE dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Tie a host variable to a resultset column. More...
 
-static int dbbindtype (int datatype)
 
BYTE * dbbylist (DBPROCESS *dbproc, int computeid, int *size)
 Get bylist for a compute row. More...
 
RETCODE dbcancel (DBPROCESS *dbproc)
 Cancel the current command batch. More...
 
RETCODE dbcanquery (DBPROCESS *dbproc)
 Cancel the query currently being retrieved, discarding all pending rows. More...
 
char * dbchange (DBPROCESS *dbproc)
 See if a command caused the current database to change. More...
 
void dbclose (DBPROCESS *dbproc)
 Close a connection to the server and free associated resources. More...
 
void dbclrbuf (DBPROCESS *dbproc, DBINT n)
 Clear n rows from the row buffer. More...
 
RETCODE dbclropt (DBPROCESS *dbproc, int option, const char param[])
 Reset an option. More...
 
RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
 Append SQL to the command buffer. More...
 
RETCODE dbcmdrow (DBPROCESS *dbproc)
 See if the current command can return rows. More...
 
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). More...
 
DBINT dbcollen (DBPROCESS *dbproc, int column)
 Get size of a regular result column. More...
 
char * dbcolname (DBPROCESS *dbproc, int column)
 Return name of a regular result column. More...
 
static TDSCOLUMNdbcolptr (DBPROCESS *dbproc, int column)
 Sanity checks for column-oriented functions. More...
 
char * dbcolsource (DBPROCESS *dbproc, int column)
 Get base database column name for a result set column. More...
 
int dbcoltype (DBPROCESS *dbproc, int column)
 Get the datatype of a regular result set column. More...
 
DBTYPEINFOdbcoltypeinfo (DBPROCESS *dbproc, int column)
 Get precision and scale information for a regular result column. More...
 
int dbcolutype (DBPROCESS *dbproc, int column)
 Get user-defined datatype of a regular result column. More...
 
DBINT dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
 cf. More...
 
DBINT dbconvert_ps (DBPROCESS *dbproc, int db_srctype, const BYTE *src, DBINT srclen, int db_desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
 Convert one datatype to another. More...
 
DBINT dbcount (DBPROCESS *dbproc)
 Get count of rows processed. More...
 
int dbcurcmd (DBPROCESS *dbproc)
 Get number of the row just returned. More...
 
DBINT dbcurrow (DBPROCESS *dbproc)
 Get number of the row currently being read. More...
 
BYTE * dbdata (DBPROCESS *dbproc, int column)
 Get address of data in a regular result column. More...
 
int dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
 Compare DBDATETIME values, similar to strcmp(3). More...
 
RETCODE dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime)
 Break a DBDATETIME value into useful pieces. More...
 
DBINT dbdatlen (DBPROCESS *dbproc, int column)
 Get size of current row's data in a regular result column. More...
 
DBBOOL dbdead (DBPROCESS *dbproc)
 Check if dbproc is an ex-parrot. More...
 
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
 Set an error handler, for messages from db-lib. More...
 
void dbexit ()
 Close server connections and free all related structures. More...
 
RETCODE dbfcmd (DBPROCESS *dbproc, const char *fmt,...)
 printf-like way to form SQL to send to the server. More...
 
DBINT dbfirstrow (DBPROCESS *dbproc)
 See if a server response has arrived. More...
 
void dbfreebuf (DBPROCESS *dbproc)
 Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt(). More...
 
char * dbgetchar (DBPROCESS *dbproc, int pos)
 Get address of a position in the command buffer. More...
 
int dbgetmaxprocs (void)
 get maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbgetnull (DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
 
int dbgetpacket (DBPROCESS *dbproc)
 Get TDS packet size for the connection. More...
 
RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
 Read a row from the row buffer. More...
 
int dbgettime (void)
 Get maximum seconds db-lib waits for a server response to query. More...
 
BYTE * dbgetuserdata (DBPROCESS *dbproc)
 Get address of user-allocated data from a DBPROCESS. More...
 
DBBOOL dbhasretstat (DBPROCESS *dbproc)
 Determine if query generated a return status number. More...
 
RETCODE dbinit (void)
 Initialize db-lib. More...
 
int dbiordesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!) More...
 
int dbiowdesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!) More...
 
-DBBOOL dbisavail (DBPROCESS *dbproc)
 
BOOL dbiscount (DBPROCESS *dbproc)
 Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature). More...
 
DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
 Get value of an option. More...
 
DBINT dblastrow (DBPROCESS *dbproc)
 Get number of the last row in the row buffer. More...
 
-static int 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)
 
-static TDSCONTEXTdblib_get_tds_ctx (void)
 
-static void dblib_release_tds_ctx (int count)
 
LOGINRECdblogin (void)
 Allocate a LOGINREC structure. More...
 
void dbloginfree (LOGINREC *login)
 free the LOGINREC More...
 
RETCODE dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
 Add two DBMONEY4 values. More...
 
int dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
 Compare two DBMONEY4 values. More...
 
RETCODE dbmny4copy (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Copy a DBMONEY4 value. More...
 
RETCODE dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Negate a DBMONEY4 value. More...
 
RETCODE dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
 Subtract two DBMONEY4 values. More...
 
RETCODE dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest)
 Zero a DBMONEY4 value. More...
 
int dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
 Compare two DBMONEY values. More...
 
RETCODE dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Copy a DBMONEY value. More...
 
RETCODE dbmnydec (DBPROCESS *dbproc, DBMONEY *amount)
 Subtract $0.0001 from a DBMONEY value. More...
 
RETCODE dbmnyinc (DBPROCESS *dbproc, DBMONEY *amount)
 Add $0.0001 to a DBMONEY value. More...
 
RETCODE dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum negative DBMONEY value supported. More...
 
RETCODE dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum positive DBMONEY value supported. More...
 
RETCODE dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Negate a DBMONEY value. More...
 
RETCODE dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest)
 Set a DBMONEY value to zero. More...
 
const char * dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
 Get name of a month, in some human language. More...
 
RETCODE dbmorecmds (DBPROCESS *dbproc)
 See if more commands are to be processed. More...
 
RETCODE dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
 Send chunk of a text/image value to the server. More...
 
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
 Set a message handler, for messages from the server. More...
 
char * dbname (DBPROCESS *dbproc)
 Get name of current database. More...
 
-STATUS dbnextrow (DBPROCESS *dbproc)
 
RETCODE dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
 Tie a null-indicator to a regular result column. More...
 
int dbnumalts (DBPROCESS *dbproc, int computeid)
 Get count of columns in a compute row. More...
 
int dbnumcols (DBPROCESS *dbproc)
 Return number of regular columns in a result set. More...
 
int dbnumcompute (DBPROCESS *dbproc)
 Get count of COMPUTE clauses for a result set. More...
 
int dbnumrets (DBPROCESS *dbproc)
 Get count of output parameters filled by a stored procedure. More...
 
int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum,...)
 Call client-installed error handler. More...
 
DBINT dbprcollen (DBPROCESS *dbproc, int column)
 Get size of a result column needed to print column. More...
 
void dbprhead (DBPROCESS *dbproc)
 Print result set headings to stdout. More...
 
RETCODE dbprrow (DBPROCESS *dbproc)
 Print a result set to stdout. More...
 
const char * dbprtype (int token)
 Print a token value's name to a buffer. More...
 
STATUS dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize)
 Fetch part of a text or image value from the server. More...
 
void dbrecftos (const char filename[])
 Record to a file all SQL commands sent to the server. More...
 
RETCODE dbresults (DBPROCESS *dbproc)
 Set up query results. More...
 
BYTE * dbretdata (DBPROCESS *dbproc, int retnum)
 Get value of an output parameter filled by a stored procedure. More...
 
int dbretlen (DBPROCESS *dbproc, int retnum)
 Get size of an output parameter filled by a stored procedure. More...
 
char * dbretname (DBPROCESS *dbproc, int retnum)
 Get name of an output parameter filled by a stored procedure. More...
 
DBINT dbretstatus (DBPROCESS *dbproc)
 Fetch status value returned by query or remote procedure call. More...
 
int dbrettype (DBPROCESS *dbproc, int retnum)
 Get datatype of a stored procedure's return parameter. More...
 
RETCODE dbrows (DBPROCESS *dbproc)
 Indicate whether a query returned rows. More...
 
STATUS dbrowtype (DBPROCESS *dbproc)
 Get returned row's type. More...
 
RETCODE dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
 safely quotes character values in SQL text. More...
 
char * dbservcharset (DBPROCESS *dbproc)
 Get syscharset name of the server character set. More...
 
void dbsetavail (DBPROCESS *dbproc)
 Mark a DBPROCESS as "available". More...
 
void dbsetifile (char *filename)
 set name and location of the interfaces file FreeTDS should use to look up a servername. More...
 
void dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
 Set interrupt handler for db-lib to use while blocked against a read from the server. More...
 
RETCODE dbsetlbool (LOGINREC *login, int value, int which)
 Set a boolean value in a LOGINREC structure. More...
 
RETCODE dbsetllong (LOGINREC *login, long value, int which)
 Set an integer value in a LOGINREC structure. More...
 
RETCODE dbsetlname (LOGINREC *login, const char *value, int which)
 Set the value of a string in a LOGINREC structure. More...
 
RETCODE dbsetlogintime (int seconds)
 Set maximum seconds db-lib waits for a server response to a login attempt. More...
 
RETCODE dbsetlversion (LOGINREC *login, BYTE version)
 Set TDS version for future connections. More...
 
RETCODE dbsetmaxprocs (int maxprocs)
 Set maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbsetnull (DBPROCESS *dbproc, int bindtype, int bindlen, BYTE *bindval)
 Define substitution values to be used when binding null values. More...
 
RETCODE dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
 Set db-lib or server option. More...
 
STATUS dbsetrow (DBPROCESS *dbproc, DBINT row)
 Make a buffered row "current" without fetching it into bound variables. More...
 
RETCODE dbsettime (int seconds)
 Set maximum seconds db-lib waits for a server response to query. More...
 
void dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr)
 Associate client-allocated (and defined) data with a DBPROCESS. More...
 
RETCODE dbsetversion (DBINT version)
 Specify a db-lib version level. More...
 
int dbspid (DBPROCESS *dbproc)
 Get server process ID for a DBPROCESS. More...
 
RETCODE dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print a regular result row to a buffer. More...
 
DBINT dbspr1rowlen (DBPROCESS *dbproc)
 Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row(). More...
 
RETCODE dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print result set headings to a buffer. More...
 
RETCODE dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
 Get formatted string for underlining dbsprhead() column names. More...
 
RETCODE dbsqlexec (DBPROCESS *dbproc)
 send the SQL command to the server and wait for an answer. More...
 
RETCODE dbsqlok (DBPROCESS *dbproc)
 Wait for results of a query from the server. More...
 
RETCODE dbsqlsend (DBPROCESS *dbproc)
 Transmit the command buffer to the server. More...
 
RETCODE dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
 Build a printable string from text containing placeholders for variables. More...
 
RETCODE dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest)
 Get a copy of a chunk of the command buffer. More...
 
-static RETCODE dbstring_assign (DBSTRING **dbstrp, const char *p)
 
-static RETCODE dbstring_concat (DBSTRING **dbstrp, const char *p)
 
-static void dbstring_free (DBSTRING **dbstrp)
 
-static char * dbstring_get (DBSTRING *dbstr)
 
-static int dbstring_getchar (DBSTRING *dbstr, int i)
 
-static DBINT dbstring_length (DBSTRING *dbstr)
 
int dbstrlen (DBPROCESS *dbproc)
 Get size of the command buffer, in bytes. More...
 
RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
 describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) More...
 
int dbtds (DBPROCESS *dbproc)
 Get the TDS version in use for dbproc. More...
 
DBBINARY * dbtxptr (DBPROCESS *dbproc, int column)
 Get text pointer for a column in the current row. More...
 
DBBINARY * dbtxtimestamp (DBPROCESS *dbproc, int column)
 Get text timestamp for a column in the current row. More...
 
RETCODE dbuse (DBPROCESS *dbproc, const char *name)
 Change current database. More...
 
DBINT dbvarylen (DBPROCESS *dbproc, int column)
 Determine whether a column can vary in size. More...
 
const char * dbversion ()
 See which version of db-lib is in use. More...
 
DBBOOL dbwillconvert (int srctype, int desttype)
 Test whether or not a datatype can be converted to another datatype. More...
 
RETCODE dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
 Send text or image data to the server. More...
 
static int default_err_handler (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
 default error handler for db-lib (handles library-generated errors) More...
 
-static DBOPTIONinit_dboptions (void)
 
-static const char * prdbresults_state (int retcode)
 
-static const char * prdbretcode (RETCODE retcode)
 
-static const char * prresult_type (int result_type)
 
-static const char * prretcode (int retcode)
 
static const char * tds_prdatatype (int datatype_token)
 Returns type in string. More...
 
DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
 Form a connection with the server. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Variables

-EHANDLEFUNC _dblib_err_handler = default_err_handler
 
-MHANDLEFUNC _dblib_msg_handler = NULL
 
-static const DBLIB_ERROR_MESSAGE dblib_error_messages []
 
-static tds_mutex dblib_mutex = TDS_MUTEX_INITIALIZER
 
-static NULLREP default_null_representations [MAXBINDTYPES]
 
-static DBLIBCONTEXT g_dblib_ctx
 
static int g_dblib_version
 
-static const DBBIGINT null_BIGINT = 0
 
-static const DBBIT null_BIT = 0
 
-static const DBCHAR null_CHAR = '\0'
 
-static const DBDATETIME null_DATETIME = { 0, 0 }
 
-static const TDS_DATETIMEALL null_DATETIMEALL = { 0, 0, 0, 0 }
 
-static const DBFLT8 null_FLT8 = 0
 
-static const DBINT null_INT = 0
 
-static const DBMONEY null_MONEY = { 0, 0 }
 
-static const DBNUMERIC null_NUMERIC = { 0, 0, {0} }
 
-static const DBREAL null_REAL = 0
 
-static const DBDATETIME4 null_SMALLDATETIME = { 0, 0 }
 
-static const DBSMALLINT null_SMALLINT = 0
 
-static const DBMONEY4 null_SMALLMONEY = {0}
 
-static const DBTINYINT null_TINYINT = 0
 
-static const DBVARYCHAR null_VARYCHAR = { 0, {0} }
 
-static const char *const opttext [DBNUMOPTIONS]
 
-

Detailed Description

-

Main implementation file for db-lib.

-

Typedef Documentation

- -

§ DBLIBCONTEXT

- -
-
- - - - -
typedef struct dblib_context - DBLIBCONTEXT
-
-
Remarks
A db-lib connection has an implicit TDS context.
- -
-
-

Function Documentation

- -

§ dbcolinfo()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbcolinfo (DBPROCESSdbproc,
CI_TYPE type,
DBINT column,
DBINT computeid,
DBCOLpdbcol 
)
-
- -

Get a bunch of column attributes with a single call (Microsoft-compatibility feature).

-
Parameters
- - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
typemust be CI_REGULAR or CI_ALTERNATE (CI_CURSOR is defined by the vendor, but is not yet implemented).
columnNth in the result set, starting from 1.
computeid(ignored)
pdbcoladdress of structure to be populated by this function.
-
-
-
Returns
SUCCEED or FAIL.
-
See also
dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput().
-
Todo:
Support cursor rows.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbgetnull()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbgetnull (DBPROCESSdbproc,
int bindtype,
int varlen,
BYTE * varaddr 
)
-
-

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:
-
-
-
-
- -
-
- -

§ tds_prdatatype()

- -
-
- - - - - -
- - - - - - - - -
static const char * tds_prdatatype (int datatype_token)
-
-static
-
- -

Returns type in string.

-

Used for debugging purpose

- -
-
-

Variable Documentation

- -

§ g_dblib_version

- -
-
- - - - - -
- - - - -
int g_dblib_version
-
-static
-
-Initial value:
=
#define DBVERSION_UNKNOWN
DBVERSION_xxx are used with dbsetversion()
Definition: sybdb.h:70
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00077_source.html freetds-1.2.3/doc/reference/a00077_source.html --- freetds-1.1.6/doc/reference/a00077_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00077_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,762 @@ + + + + + + + +FreeTDS API: src/dblib/buffering.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
buffering.h
+
+
+
1 typedef struct dblib_buffer_row {
+ +
5  unsigned char *row_data;
+
7  DBINT row;
+
9  TDS_INT *sizes;
+ +
11 
+
12 static void buffer_struct_print(const DBPROC_ROWBUF *buf);
+
13 static RETCODE buffer_save_row(DBPROCESS *dbproc);
+
14 static DBLIB_BUFFER_ROW* buffer_row_address(const DBPROC_ROWBUF * buf, int idx);
+
15 
+
16 #if ENABLE_EXTRA_CHECKS
+
17 static void buffer_check_row_empty(DBLIB_BUFFER_ROW *row)
+
18 {
+
19  assert(row->resinfo == NULL);
+
20  assert(row->row_data == NULL);
+
21  assert(row->sizes == NULL);
+
22  assert(row->row == 0);
+
23 }
+
24 
+
25 static void buffer_check(const DBPROC_ROWBUF *buf)
+
26 {
+
27  int i;
+
28 
+
29  /* no buffering */
+
30  if (buf->capacity == 0 || buf->capacity == 1) {
+
31  assert(buf->head == 0);
+
32  assert(buf->tail == 0 || buf->tail == 1);
+
33  assert(buf->capacity == 1 || buf->rows == NULL);
+
34  return;
+
35  }
+
36 
+
37  assert(buf->capacity > 0);
+
38  assert(buf->head >= 0);
+
39  assert(buf->tail >= 0);
+
40  assert(buf->head < buf->capacity);
+
41  assert(buf->tail <= buf->capacity);
+
42 
+
43  /* check empty */
+
44  if (buf->tail == buf->capacity) {
+
45  assert(buf->head == 0);
+
46  for (i = 0; buf->rows && i < buf->capacity; ++i)
+
47  buffer_check_row_empty(&buf->rows[i]);
+
48  return;
+
49  }
+
50 
+
51  if (buf->rows == NULL)
+
52  return;
+
53 
+
54  /* check filled part */
+
55  i = buf->tail;
+
56  do {
+
57  assert(i >= 0 && i < buf->capacity);
+
58  assert(buf->rows[i].resinfo != NULL);
+
59  assert(buf->rows[i].row > 0);
+
60  assert(buf->rows[i].row <= buf->received);
+
61  ++i;
+
62  if (i == buf->capacity)
+
63  i = 0;
+
64  } while (i != buf->head);
+
65 
+
66  /* check empty part */
+
67  if (buf->head != buf->tail) {
+
68  i = buf->head;
+
69  do {
+
70  assert(i >= 0 && i < buf->capacity);
+
71  buffer_check_row_empty(&buf->rows[i]);
+
72  ++i;
+
73  if (i == buf->capacity)
+
74  i = 0;
+
75  } while (i != buf->tail);
+
76  }
+
77 }
+
78 #define BUFFER_CHECK(buf) buffer_check(buf)
+
79 #else
+
80 #define BUFFER_CHECK(buf) do {} while(0)
+
81 #endif
+
82 
+
111 static int
+
112 buffer_count(const DBPROC_ROWBUF *buf)
+
113 {
+
114  BUFFER_CHECK(buf);
+
115  return (buf->head > buf->tail) ?
+
116  buf->head - buf->tail : /* |...TddddH....| */
+
117  buf->capacity - (buf->tail - buf->head); /* |ddddH....Tddd| */
+
118 }
+
119 
+
123 static int
+
124 buffer_is_full(const DBPROC_ROWBUF *buf)
+
125 {
+
126  BUFFER_CHECK(buf);
+
127  return buf->capacity == buffer_count(buf) && buf->capacity > 1;
+
128 }
+
129 
+
130 #ifndef NDEBUG
+
131 static int
+
132 buffer_index_valid(const DBPROC_ROWBUF *buf, int idx)
+
133 {
+
134  BUFFER_CHECK(buf);
+
135  if (buf->tail <= buf->head)
+
136  if (buf->head <= idx && idx <= buf->tail)
+
137  return 1;
+
138 
+
139  if (0 <= idx && idx <= buf->head)
+
140  return 1;
+
141 
+
142  if (buf->tail <= idx && idx < buf->capacity)
+
143  return 1;
+
144 #if 0
+
145  printf("buffer_index_valid: idx = %d\n", idx);
+
146  buffer_struct_print(buf);
+
147 #endif
+
148  return 0;
+
149 }
+
150 #endif
+
151 
+
152 static void
+
153 buffer_free_row(DBLIB_BUFFER_ROW *row)
+
154 {
+
155  if (row->sizes)
+
156  TDS_ZERO_FREE(row->sizes);
+
157  if (row->row_data) {
+
158  tds_free_row(row->resinfo, row->row_data);
+
159  row->row_data = NULL;
+
160  }
+
161  tds_free_results(row->resinfo);
+
162  row->resinfo = NULL;
+
163  row->row = 0;
+
164 }
+
165 
+
166 /*
+
167  * Buffer is freed at slightly odd points, whenever
+
168  * capacity changes:
+
169  *
+
170  * 1. When setting capacity, to release prior buffer.
+
171  * 2. By dbresults. When called the second time, it has to
+
172  * release prior storage because the new resultset will have
+
173  * a different width.
+
174  * 3. By dbclose(), else open/close/open would leak.
+
175  */
+
176 static void
+
177 buffer_free(DBPROC_ROWBUF *buf)
+
178 {
+
179  BUFFER_CHECK(buf);
+
180  if (buf->rows != NULL) {
+
181  int i;
+
182  for (i = 0; i < buf->capacity; ++i)
+
183  buffer_free_row(&buf->rows[i]);
+
184  TDS_ZERO_FREE(buf->rows);
+
185  }
+
186  BUFFER_CHECK(buf);
+
187 }
+
188 
+
189 /*
+
190  * When no rows are currently buffered (and the buffer is allocated)
+
191  * set the indices to their initial positions.
+
192  */
+
193 static void
+
194 buffer_reset(DBPROC_ROWBUF *buf)
+
195 {
+
196  buf->head = 0;
+
197  buf->current = buf->tail = buf->capacity;
+
198  BUFFER_CHECK(buf);
+
199 }
+
200 
+
201 static int
+
202 buffer_idx_increment(const DBPROC_ROWBUF *buf, int idx)
+
203 {
+
204  if (++idx >= buf->capacity) {
+
205  idx = 0;
+
206  }
+
207  return idx;
+
208 }
+
209 
+
214 static DBLIB_BUFFER_ROW*
+
215 buffer_row_address(const DBPROC_ROWBUF * buf, int idx)
+
216 {
+
217  BUFFER_CHECK(buf);
+
218  if (idx < 0 || idx >= buf->capacity) {
+
219  printf("idx is %d:\n", idx);
+
220  buffer_struct_print(buf);
+
221  return NULL;
+
222  }
+
223 
+
224  return &(buf->rows[idx]);
+
225 }
+
226 
+
230 static DBINT
+
231 buffer_idx2row(const DBPROC_ROWBUF *buf, int idx)
+
232 {
+
233  BUFFER_CHECK(buf);
+
234  return buffer_row_address(buf, idx)->row;
+
235 }
+
236 
+
240 static int
+
241 buffer_row2idx(const DBPROC_ROWBUF *buf, int row_number)
+
242 {
+
243  int i = buf->tail;
+
244 #ifndef NDEBUG
+
245  int ii = 0;
+
246 #endif
+
247 
+
248  BUFFER_CHECK(buf);
+
249  if (i == buf->capacity) {
+
250  assert (buf->head == 0);
+
251  return -1; /* no rows buffered */
+
252  }
+
253 
+
254  /*
+
255  * March through the buffers from tail to head, stop if we find our row.
+
256  * A full queue is indicated by tail == head (which means we can't write).
+
257  */
+
258  do {
+
259  if (buffer_idx2row(buf, i) == row_number)
+
260  return i;
+
261 
+
262  assert(ii++ < buf->capacity); /* prevent infinite loop */
+
263 
+
264  i = buffer_idx_increment(buf, i);
+
265  } while (i != buf->head);
+
266 
+
267  return -1;
+
268 }
+
269 
+
274 static void
+
275 buffer_delete_rows(DBPROC_ROWBUF * buf, int count)
+
276 {
+
277  int i;
+
278 
+
279  BUFFER_CHECK(buf);
+
280  if (count < 0 || count > buffer_count(buf)) {
+
281  count = buffer_count(buf);
+
282  }
+
283 
+
284  for (i=0; i < count; i++) {
+
285  if (buf->tail < buf->capacity)
+
286  buffer_free_row(&buf->rows[buf->tail]);
+
287  buf->tail = buffer_idx_increment(buf, buf->tail);
+
288  /*
+
289  * If deleting rows from the buffer catches the tail to the head,
+
290  * return to the initial position. Otherwise, it will look full.
+
291  */
+
292  if (buf->tail == buf->head) {
+
293  buffer_reset(buf);
+
294  break;
+
295  }
+
296  }
+
297 #if 0
+
298  buffer_struct_print(buf);
+
299 #endif
+
300  BUFFER_CHECK(buf);
+
301 }
+
302 
+
306 static void
+
307 buffer_transfer_bound_data(DBPROC_ROWBUF *buf, TDS_INT res_type, TDS_INT compute_id, DBPROCESS * dbproc, int idx)
+
308 {
+
309  int i;
+
310  BYTE *src;
+
311  const DBLIB_BUFFER_ROW *row;
+
312 
+
313  tdsdump_log(TDS_DBG_FUNC, "buffer_transfer_bound_data(%p %d %d %p %d)\n", buf, res_type, compute_id, dbproc, idx);
+
314  BUFFER_CHECK(buf);
+
315  assert(buffer_index_valid(buf, idx));
+
316 
+
317  row = buffer_row_address(buf, idx);
+
318  assert(row->resinfo);
+
319 
+
320  for (i = 0; i < row->resinfo->num_cols; i++) {
+
321  TDS_SERVER_TYPE srctype;
+
322  DBINT srclen;
+
323  TDSCOLUMN *curcol = row->resinfo->columns[i];
+
324 
+
325  if (row->sizes)
+
326  curcol->column_cur_size = row->sizes[i];
+
327 
+
328  srclen = curcol->column_cur_size;
+
329 
+
330  if (curcol->column_nullbind) {
+
331  if (srclen < 0) {
+
332  *(DBINT *)(curcol->column_nullbind) = -1;
+
333  } else {
+
334  *(DBINT *)(curcol->column_nullbind) = 0;
+
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,
+
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)
+
350  src = &row->row_data[curcol->column_data - row->resinfo->current_row];
+
351  else
+
352  src = curcol->column_data;
+
353  if (is_blob_col(curcol))
+
354  src = (BYTE *) ((TDSBLOB *) src)->textvalue;
+
355 
+
356  copy_data_to_host_var(dbproc, srctype, src, srclen,
+
357  (BYTE *) curcol->column_varaddr, curcol->column_bindlen,
+
358  curcol->column_bindtype, (DBINT*) curcol->column_nullbind);
+
359  }
+
360 
+
361  /*
+
362  * This function always bumps current. Usually, it's called
+
363  * by dbnextrow(), so bumping current is a pretty obvious choice.
+
364  * It can also be called by dbgetrow(), but that function also
+
365  * causes the bump. If you call dbgetrow() for row N, a subsequent
+
366  * call to dbnextrow() yields N+1.
+
367  */
+
368  buf->current = buffer_idx_increment(buf, buf->current);
+
369 
+
370 } /* end buffer_transfer_bound_data() */
+
371 
+
372 static void
+
373 buffer_struct_print(const DBPROC_ROWBUF *buf)
+
374 {
+
375  assert(buf);
+
376 
+
377  printf("\t%d rows in buffer\n", buffer_count(buf));
+
378 
+
379  printf("\thead = %d\t", buf->head);
+
380  printf("\ttail = %d\t", buf->tail);
+
381  printf("\tcurrent = %d\n", buf->current);
+
382  printf("\tcapacity = %d\t", buf->capacity);
+
383  printf("\thead row number = %d\n", buf->received);
+
384 }
+
385 
+
386 /* * * Functions called only by public db-lib API take DBPROCESS* * */
+
387 
+
404 static int
+
405 buffer_current_index(const DBPROCESS *dbproc)
+
406 {
+
407  const DBPROC_ROWBUF *buf = &dbproc->row_buf;
+
408 #if 0
+
409  buffer_struct_print(buf);
+
410 #endif
+
411  if (buf->capacity <= 1) /* no buffering */
+
412  return -1;
+
413  if (buf->current == buf->head || buf->current == buf->capacity)
+
414  return -1;
+
415 
+
416  assert(buf->current >= 0);
+
417  assert(buf->current < buf->capacity);
+
418 
+
419  if( buf->tail < buf->head) {
+
420  assert(buf->tail < buf->current);
+
421  assert(buf->current < buf->head);
+
422  } else {
+
423  if (buf->current > buf->head)
+
424  assert(buf->current > buf->tail);
+
425  }
+
426  return buf->current;
+
427 }
+
428 
+
429 /*
+
430  * Normally called by dbsetopt() to prepare for buffering
+
431  * Called with nrows == 0 by dbopen to safely set buf->rows to NULL.
+
432  */
+
433 static void
+
434 buffer_set_capacity(DBPROCESS *dbproc, int nrows)
+
435 {
+
436  DBPROC_ROWBUF *buf = &dbproc->row_buf;
+
437 
+
438  buffer_free(buf);
+
439 
+
440  memset(buf, 0, sizeof(DBPROC_ROWBUF));
+
441 
+
442  if (0 == nrows) {
+
443  buf->capacity = 1;
+
444  BUFFER_CHECK(buf);
+
445  return;
+
446  }
+
447 
+
448  assert(0 < nrows);
+
449 
+
450  buf->capacity = nrows;
+
451  BUFFER_CHECK(buf);
+
452 }
+
453 
+
454 /*
+
455  * Called only by dbresults(); capacity must be >= 1.
+
456  * Sybase's documents say dbresults() cannot return FAIL if the prior calls worked,
+
457  * which is a little strange, because (for FreeTDS, at least), dbresults
+
458  * is when we learn about the result set's width. Without that information, we
+
459  * can't allocate memory for the buffer. But if we *fail* to allocate memory,
+
460  * we're not to communicate it back to the caller?
+
461  */
+
462 static void
+
463 buffer_alloc(DBPROCESS *dbproc)
+
464 {
+
465  DBPROC_ROWBUF *buf = &dbproc->row_buf;
+
466 
+
467  /* Call this function only after setting capacity. */
+
468 
+
469  assert(buf);
+
470  assert(buf->capacity > 0);
+
471  assert(buf->rows == NULL);
+
472 
+
473  buf->rows = tds_new0(DBLIB_BUFFER_ROW, buf->capacity);
+
474 
+
475  assert(buf->rows);
+
476 
+
477  buffer_reset(buf);
+
478 
+
479  buf->received = 0;
+
480 }
+
481 
+
486 static int
+
487 buffer_add_row(DBPROCESS *dbproc, TDSRESULTINFO *resinfo)
+
488 {
+
489  DBPROC_ROWBUF *buf = &dbproc->row_buf;
+
490  DBLIB_BUFFER_ROW *row;
+
491  int i;
+
492 
+
493  assert(buf->capacity >= 0);
+
494 
+
495  if (buffer_is_full(buf))
+
496  return -1;
+
497 
+
498  row = buffer_row_address(buf, buf->head);
+
499 
+
500  /* bump the row number, write it, and move the data to head */
+
501  if (row->resinfo) {
+
502  tds_free_row(row->resinfo, row->row_data);
+
503  tds_free_results(row->resinfo);
+
504  }
+
505  row->row = ++buf->received;
+
506  ++resinfo->ref_count;
+
507  row->resinfo = resinfo;
+
508  row->row_data = NULL;
+
509  if (row->sizes)
+
510  free(row->sizes);
+
511  row->sizes = tds_new0(TDS_INT, resinfo->num_cols);
+
512  for (i = 0; i < resinfo->num_cols; ++i)
+
513  row->sizes[i] = resinfo->columns[i]->column_cur_size;
+
514 
+
515  /* initial condition is head == 0 and tail == capacity */
+
516  if (buf->tail == buf->capacity) {
+
517  /* bumping this tail will set it to zero */
+
518  assert(buf->head == 0);
+
519  buf->tail = 0;
+
520  }
+
521 
+
522  /* update current, bump the head */
+
523  buf->current = buf->head;
+
524  buf->head = buffer_idx_increment(buf, buf->head);
+
525 
+
526  return buf->current;
+
527 }
+
528 
+
532 static RETCODE
+
533 buffer_save_row(DBPROCESS *dbproc)
+
534 {
+
535  DBPROC_ROWBUF *buf = &dbproc->row_buf;
+
536  DBLIB_BUFFER_ROW *row;
+
537  int idx = buf->head - 1;
+
538 
+
539  if (buf->capacity <= 1)
+
540  return SUCCEED;
+
541 
+
542  if (idx < 0)
+
543  idx = buf->capacity - 1;
+
544  if (idx >= 0 && idx < buf->capacity) {
+
545  row = &buf->rows[idx];
+
546 
+
547  if (row->resinfo && !row->row_data) {
+
548  row->row_data = row->resinfo->current_row;
+
549  tds_alloc_row(row->resinfo);
+
550  }
+
551  }
+
552 
+
553  return SUCCEED;
+
554 }
+
555 
+
+
Definition: cstypes.h:129
+
unsigned int bulk_copy
if bulk copy should be enabled
Definition: tds.h:557
+
int tds7_get_instance_port(struct addrinfo *addr, const char *instance)
Get port of given instance.
Definition: net.c:1229
+
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition: read.c:100
+
Definition: cstypes.h:84
+
Primary include file for db-lib applications.
+
Store variant informations.
Definition: tds.h:605
+
Definition: dblib.h:62
+
Definition: cstypes.h:159
+
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
+
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition: query.c:1797
+
TDS_INT month
month number (0-11)
Definition: tds.h:163
+
TDS_INT second
0-59
Definition: tds.h:169
+
struct addrinfo * ip_addrs
ip(s) of server
Definition: tds.h:547
+
Definition: ctlib.h:75
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start bulk copy to server.
Definition: bulk.c:887
+
Definition: cstypes.h:69
+
Definition: buffering.h:1
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition: query.c:1630
+
DBINT dbvarylen(DBPROCESS *dbproc, int column)
Determine whether a column can vary in size.
Definition: dblib.c:3222
+ +
RETCODE bcp_colfmt_ps(DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)
Specify the format of a host file for bulk copy purposes, with precision and scale support for numeri...
Definition: bcp.c:508
+
Definition: cstypes.h:114
+
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition: query.c:1929
+
Definition: tds.h:331
+
Definition: proto.h:33
+
TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...)
Format and submit a query.
Definition: query.c:467
+
Information about blobs (e.g.
Definition: tds.h:594
+
TDS_INT year
year
Definition: tds.h:161
+
Definition: cstypes.h:191
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied)
Tell we finished sending BCP data to server.
Definition: bulk.c:810
+
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.
Definition: bcp.c:2175
+
TDS_INT cursor_rows
< number of updatable columns
Definition: tds.h:952
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start sending BCP data to server.
Definition: bulk.c:840
+
Definition: ctlib.h:117
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
#define tds_dstr_empty(s)
Make a string empty.
Definition: string.h:91
+
Hold information for any results.
Definition: tds.h:770
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
Definition: cspublic.h:699
+
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition: tds.h:942
+
Definition: ctlib.h:248
+
const char * dbprtype(int token)
Print a token value's name to a buffer.
Definition: dblib.c:6451
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: tds.h:505
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
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
+
RETCODE bcp_options(DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
Set "hints" for uploading a file. A FreeTDS-only function.
Definition: bcp.c:621
+
static int _bcp_get_term_var(BYTE *pdata, BYTE *term, int term_len)
Get the data for bcp-in from program variables, where the program data have been identified as charac...
Definition: bcp.c:2289
+
static void _bcp_free_storage(DBPROCESS *dbproc)
Definition: bcp.c:2369
+
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
+
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).
Definition: iconv.c:590
+
static int rtrim(char *, int)
trim a string of trailing blanks
Definition: bcp.c:2315
+
Definition: proto.h:45
+
Definition: ctlib.h:55
+
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition: query.c:210
+
static RETCODE _bcp_exec_out(DBPROCESS *dbproc, DBINT *rows_copied)
Definition: bcp.c:870
+
#define is_datetime_type(x)
return true if type is a datetime (but not date or time)
Definition: tds.h:394
+
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
+
RETCODE bcp_init(DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
Prepare for bulk copy operation on a table.
Definition: bcp.c:166
+
DSTR server_spn
server SPN (in freetds.conf)
Definition: tds.h:529
+
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition: dblib.c:8131
+
const char * tds_prtype(int type)
Returns string representation of the given type.
Definition: token.c:3052
+
Definition: tds.h:1030
+
A structure to hold all the compile-time settings.
Definition: tds.h:83
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:669
+
int port
port of database service
Definition: tds.h:520
+
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition: tds.h:1257
+
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.
Definition: convert.c:2968
+
Definition: ctlib.h:212
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
DSTR server_charset
charset of server e.g.
Definition: tds.h:524
+
Definition: proto.h:56
+
char * cursor_name
name of the cursor
Definition: tds.h:941
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
TDSRET tds_set_interfaces_file_loc(const char *interf)
Set the full name of interface file.
Definition: config.c:965
+
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:2007
+
RETCODE bcp_colfmt(DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)
Specify the format of a datafile prior to writing to a table.
Definition: bcp.c:376
+
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
+
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().
Definition: bulk.c:1048
+
char * query
SQL query.
Definition: tds.h:948
+
TDSRESULTINFO * resinfo
pointer to result informations
Definition: buffering.h:3
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
+
int msdblib
boolean use ms behaviour
Definition: dblib.h:154
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
Definition: ctlib.h:162
+
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.
Definition: bcp.c:1052
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition: login.c:125
+
TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error ignored, int offset)
Send one row of data to server.
Definition: bulk.c:337
+
Definition: cstypes.h:135
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
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
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition: dblib.c:534
+
TDSPARAMINFO * params
query parameters.
Definition: tds.h:1008
+
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:530
+
TDS_INT minute
0-59
Definition: tds.h:168
+
TDS_TINYINT options
read only|updatable TODO use it
Definition: tds.h:943
+
Definition: ctlib.h:69
+
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition: mem.c:206
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
@ TDS_DONE_ERROR
error occurred
Definition: tds.h:254
+
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
Holds informations about a cursor.
Definition: tds.h:938
+
Definition: convert.h:34
+
Definition: ctlib.h:138
+
TDS_INT day
day of month (1-31)
Definition: tds.h:164
+
Definition: dblib.h:52
+
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
+
Definition: tds.h:877
+
Definition: cstypes.h:153
+
static TDSRET _bcp_no_get_col_data(TDSBCPINFO *bcpinfo, TDSCOLUMN *bindcol, int offset)
Function to read data from file.
Definition: bcp.c:2268
+
Definition: tds.h:1656
+
static RETCODE _bcp_exec_in(DBPROCESS *dbproc, DBINT *rows_copied)
Definition: bcp.c:1432
+
Definition: tds.h:518
+
Definition: dblib.h:123
+
int query_timeout
not used unless positive
Definition: ctlib.h:102
+
static STATUS _bcp_read_hostfile(DBPROCESS *dbproc, FILE *hostfile, int *row_error, bool skip)
Definition: bcp.c:1139
+
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:408
+
TDSPARAMINFO * res_info
query results
Definition: tds.h:1000
+
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:1156
+
DBINT row
row number
Definition: buffering.h:7
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
int login_timeout
not used unless positive
Definition: ctlib.h:101
+
Definition: proto.h:50
+
Definition: ctlib.h:61
+
RETCODE bcp_collen(DBPROCESS *dbproc, DBINT varlen, int table_column)
Set the length of a host variable to be written to a table.
Definition: bcp.c:265
+
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:166
+
Definition: tds.h:629
+
Definition: cstypes.h:97
+
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
+
RETCODE bcp_readfmt(DBPROCESS *dbproc, const char filename[])
Read a format definition file.
Definition: bcp.c:1675
+
Used by tds_datecrack.
Definition: tds.h:160
+
Definition: dblib.h:74
+
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition: bulk.c:1173
+
Definition: proto.h:26
+
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:1118
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
Definition: tds.h:583
+
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1251
+
DSTR password
password of account login
Definition: tds.h:536
+
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
+
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
+
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:1341
+
int tds7_get_instance_ports(FILE *output, struct addrinfo *addr)
Get port of all instances.
Definition: net.c:1093
+
TDS_INT bcp_prefix_len
The length, in bytes, of any length prefix this column may have.
Definition: tds.h:762
+
void tds_release_dynamic(TDSDYNAMIC **pdyn)
Frees dynamic statement.
Definition: mem.c:253
+
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:2076
+
Definition: cspublic.h:685
+
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition: tdsstring.c:134
+
TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Initialize BCP information.
Definition: bulk.c:82
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
Definition: ctlib.h:239
+
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:543
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: odbc.h:275
+
RETCODE bcp_exec(DBPROCESS *dbproc, DBINT *rows_copied)
Write a datafile to a table.
Definition: bcp.c:1614
+
TDS_INT hour
0-23
Definition: tds.h:167
+
Definition: sybdb.h:336
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
unsigned char * row_data
row data, NULL for resinfo->current_row
Definition: buffering.h:5
+
Definition: tds.h:1092
+
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:2034
+
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
+
DSTR user_name
account for login
Definition: tds.h:535
+
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
+
RETCODE bcp_columns(DBPROCESS *dbproc, int host_colcount)
Indicate how many columns are to be found in the datafile.
Definition: bcp.c:300
+
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:165
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
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:
Definition: bcp.c:723
+
Definition: cstypes.h:177
+
struct addrinfo * tds_lookup_host(const char *servername)
Get the IP address for a hostname.
Definition: config.c:991
+
static int _bcp_readfmt_colinfo(DBPROCESS *dbproc, char *buf, BCP_HOSTCOLINFO *ci)
Definition: bcp.c:1772
+
static char * _bcp_fgets(char *buffer, int size, FILE *f)
Definition: bcp.c:1649
+
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1380
+
Definition: cstypes.h:147
+
static void _bcp_free_columns(DBPROCESS *dbproc)
Definition: bcp.c:2343
+
TDS_CURSOR_STATUS status
cursor parameter
Definition: tds.h:954
+
TDS_INT * sizes
save old sizes
Definition: buffering.h:9
+
DBBOOL bcp_getl(LOGINREC *login)
See if BCP_SETL() was used to set the LOGINREC for BCP work.
Definition: bcp.c:705
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+
void tdsdump_close(void)
Close the TDS dump log file.
Definition: log.c:193
+
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition: query.c:3006
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+
Definition: ctlib.h:176
+
Definition: bsqlodbc.c:100
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00078.map freetds-1.2.3/doc/reference/a00078.map --- freetds-1.1.6/doc/reference/a00078.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00078.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00078.md5 freetds-1.2.3/doc/reference/a00078.md5 --- freetds-1.1.6/doc/reference/a00078.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00078.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9affd9dade2530fa25466382ac0afc18 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00078.svg freetds-1.2.3/doc/reference/a00078.svg --- freetds-1.1.6/doc/reference/a00078.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00078.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,502 +0,0 @@ - - - - - - -src/dblib/dblib.c - - -Node0 - -src/dblib/dblib.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -stdarg.h - - -Node0->Node2 - - - - -Node3 - - -freetds/time.h - - - - -Node0->Node3 - - - - -Node4 - -assert.h - - -Node0->Node4 - - - - -Node5 - -stdio.h - - -Node0->Node5 - - - - -Node6 - - -freetds/tds.h - - - - -Node0->Node6 - - - - -Node11 - - -freetds/thread.h - - - - -Node0->Node11 - - - - -Node14 - - -freetds/utils/string.h - - - - -Node0->Node14 - - - - -Node17 - - -replacements.h - - - - -Node0->Node17 - - - - -Node21 - - -freetds/convert.h - - - - -Node0->Node21 - - - - -Node22 - - -freetds/data.h - - - - -Node0->Node22 - - - - -Node23 - - -sybfront.h - - - - -Node0->Node23 - - - - -Node24 - - -sybdb.h - - - - -Node0->Node24 - - - - -Node25 - - -syberror.h - - - - -Node0->Node25 - - - - -Node26 - - -dblib.h - - - - -Node0->Node26 - - - - -Node27 - - -buffering.h - - - - -Node0->Node27 - - - - -Node3->Node3 - - - - -Node6->Node2 - - - - -Node6->Node3 - - - - -Node6->Node5 - - - - -Node7 - - -freetds/version.h - - - - -Node6->Node7 - - - - -Node8 - - -tds_sysdep_public.h - - - - -Node6->Node8 - - - - -Node10 - - -freetds/sysdep_private.h - - - - -Node6->Node10 - - - - -Node6->Node11 - - - - -Node12 - - -freetds/bool.h - - - - -Node6->Node12 - - - - -Node13 - - -freetds/macros.h - - - - -Node6->Node13 - - - - -Node6->Node14 - - - - -Node15 - - -freetds/pushvis.h - - - - -Node6->Node15 - - - - -Node16 - - -freetds/popvis.h - - - - -Node6->Node16 - - - - -Node6->Node17 - - - - -Node20 - - -freetds/proto.h - - - - -Node6->Node20 - - - - -Node9 - -float.h - - -Node8->Node9 - - - - -Node11->Node8 - - - - -Node14->Node13 - - - - -Node14->Node15 - - - - -Node14->Node16 - - - - -Node17->Node2 - - - - -Node17->Node8 - - - - -Node17->Node10 - - - - -Node17->Node15 - - - - -Node17->Node16 - - - - -Node18 - - -replacements/readpassphrase.h - - - - -Node17->Node18 - - - - -Node19 - - -replacements/poll.h - - - - -Node17->Node19 - - - - -Node18->Node15 - - - - -Node18->Node16 - - - - -Node19->Node1 - - - - -Node19->Node15 - - - - -Node19->Node16 - - - - -Node21->Node15 - - - - -Node21->Node16 - - - - -Node22->Node15 - - - - -Node22->Node16 - - - - -Node23->Node24 - - - - -Node24->Node8 - - - - -Node26->Node15 - - - - -Node26->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map freetds-1.2.3/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map --- freetds-1.1.6/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 freetds-1.2.3/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 --- freetds-1.1.6/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3ae7d068fc2e7a919595c5fa1ac7c569 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg freetds-1.2.3/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg --- freetds-1.1.6/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00080_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcolinfo + + + +Node1 + + +dbcolinfo + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00080.html freetds-1.2.3/doc/reference/a00080.html --- freetds-1.1.6/doc/reference/a00080.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00080.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,931 @@ + + + + + + + +FreeTDS API: src/dblib/dblib.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
dblib.c File Reference
+
+
+
#include <config.h>
+#include <stdarg.h>
+#include <freetds/time.h>
+#include <assert.h>
+#include <stdio.h>
+#include <freetds/tds.h>
+#include <freetds/thread.h>
+#include <freetds/convert.h>
+#include <freetds/utils/string.h>
+#include <freetds/data.h>
+#include <replacements.h>
+#include <sybfront.h>
+#include <sybdb.h>
+#include <syberror.h>
+#include <dblib.h>
+#include "buffering.h"
+
+Include dependency graph for dblib.c:
+
+
+
+
+
+ + + + + +

+Classes

struct  _dblib_error_message
 
struct  dblib_context
 
+ + + + + +

+Typedefs

typedef struct _dblib_error_message DBLIB_ERROR_MESSAGE
 
typedef struct dblib_context DBLIBCONTEXT
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

static BYTE * _dbcoldata (TDSCOLUMN *colinfo)
 Return data from a column. More...
 
+static int _dbnullable (DBPROCESS *dbproc, int column)
 
+static char * _dbprdate (char *timestr)
 
static RETCODE _dbresults (DBPROCESS *dbproc)
 
+static int _get_printable_size (TDSCOLUMN *colinfo)
 
+void copy_data_to_host_var (DBPROCESS *, TDS_SERVER_TYPE, const BYTE *, int, BYTE *, DBINT, int, DBINT *)
 
+void copy_data_to_host_var (DBPROCESS *dbproc, TDS_SERVER_TYPE srctype, const BYTE *src, DBINT srclen, BYTE *dest, DBINT destlen, int bindtype, DBINT *indicator)
 
+static void db_env_chg (TDSSOCKET *tds, int type, char *oldval, char *newval)
 
const char * dbacolname (DBPROCESS *dbproc, int computeid, int column)
 Return name of a computed result column. More...
 
+static TDSCOLUMNdbacolptr (DBPROCESS *dbproc, int computeid, int column, int is_bind)
 
BYTE * dbadata (DBPROCESS *dbproc, int computeid, int column)
 Get address of compute column data.
+ More...
 
DBINT dbadlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in a compute column. More...
 
RETCODE dbaltbind (DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Bind a compute column to a program variable. More...
 
int dbaltcolid (DBPROCESS *dbproc, int computeid, int column)
 Get column ID of a compute column. More...
 
DBINT dbaltlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in compute column. More...
 
int dbaltop (DBPROCESS *dbproc, int computeid, int column)
 Get aggregation operator for a compute column. More...
 
int dbalttype (DBPROCESS *dbproc, int computeid, int column)
 Get datatype for a compute column. More...
 
DBINT dbaltutype (DBPROCESS *dbproc, int computeid, int column)
 Get user-defined datatype of a compute column. More...
 
RETCODE dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
 Tie a null-indicator to a compute result column. More...
 
RETCODE dbanydatecrack (DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
 Break any kind of date or time value into useful pieces. More...
 
RETCODE dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Tie a host variable to a resultset column. More...
 
+static int dbbindtype (int datatype)
 
BYTE * dbbylist (DBPROCESS *dbproc, int computeid, int *size)
 Get bylist for a compute row. More...
 
RETCODE dbcancel (DBPROCESS *dbproc)
 Cancel the current command batch. More...
 
RETCODE dbcanquery (DBPROCESS *dbproc)
 Cancel the query currently being retrieved, discarding all pending rows.
+ More...
 
char * dbchange (DBPROCESS *dbproc)
 See if a command caused the current database to change. More...
 
void dbclose (DBPROCESS *dbproc)
 Close a connection to the server and free associated resources.
+ More...
 
void dbclrbuf (DBPROCESS *dbproc, DBINT n)
 Clear n rows from the row buffer. More...
 
RETCODE dbclropt (DBPROCESS *dbproc, int option, const char param[])
 Reset an option. More...
 
RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
 Append SQL to the command buffer.
+ More...
 
RETCODE dbcmdrow (DBPROCESS *dbproc)
 See if the current command can return rows. More...
 
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). More...
 
DBINT dbcollen (DBPROCESS *dbproc, int column)
 Get size of a regular result column. More...
 
char * dbcolname (DBPROCESS *dbproc, int column)
 Return name of a regular result column. More...
 
static TDSCOLUMNdbcolptr (DBPROCESS *dbproc, int column)
 Sanity checks for column-oriented functions.
+ More...
 
char * dbcolsource (DBPROCESS *dbproc, int column)
 Get base database column name for a result set column.
+ More...
 
int dbcoltype (DBPROCESS *dbproc, int column)
 Get the datatype of a regular result set column. More...
 
DBTYPEINFOdbcoltypeinfo (DBPROCESS *dbproc, int column)
 Get precision and scale information for a regular result column. More...
 
int dbcolutype (DBPROCESS *dbproc, int column)
 Get user-defined datatype of a regular result column. More...
 
DBINT dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
 cf. dbconvert_ps(), above More...
 
DBINT dbconvert_ps (DBPROCESS *dbproc, int db_srctype, const BYTE *src, DBINT srclen, int db_desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
 Convert one datatype to another. More...
 
DBINT dbcount (DBPROCESS *dbproc)
 Get count of rows processed. More...
 
int dbcurcmd (DBPROCESS *dbproc)
 Get number of the row just returned. More...
 
DBINT dbcurrow (DBPROCESS *dbproc)
 Get number of the row currently being read. More...
 
BYTE * dbdata (DBPROCESS *dbproc, int column)
 Get address of data in a regular result column. More...
 
int dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
 Compare DBDATETIME values, similar to strcmp(3). More...
 
RETCODE dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime)
 Break a DBDATETIME value into useful pieces. More...
 
DBINT dbdatlen (DBPROCESS *dbproc, int column)
 Get size of current row's data in a regular result column.
+ More...
 
DBBOOL dbdead (DBPROCESS *dbproc)
 Check if dbproc is an ex-parrot.
+ More...
 
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
 Set an error handler, for messages from db-lib. More...
 
void dbexit ()
 Close server connections and free all related structures.
+ More...
 
RETCODE dbfcmd (DBPROCESS *dbproc, const char *fmt,...)
 printf-like way to form SQL to send to the server.
+ More...
 
DBINT dbfirstrow (DBPROCESS *dbproc)
 See if a server response has arrived. More...
 
void dbfreebuf (DBPROCESS *dbproc)
 Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt(). More...
 
char * dbgetchar (DBPROCESS *dbproc, int pos)
 Get address of a position in the command buffer. More...
 
int dbgetmaxprocs (void)
 get maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbgetnull (DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
 
int dbgetpacket (DBPROCESS *dbproc)
 Get TDS packet size for the connection. More...
 
RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
 Read a row from the row buffer. More...
 
int dbgettime (void)
 Get maximum seconds db-lib waits for a server response to query.
+ More...
 
BYTE * dbgetuserdata (DBPROCESS *dbproc)
 Get address of user-allocated data from a DBPROCESS.
+ More...
 
DBBOOL dbhasretstat (DBPROCESS *dbproc)
 Determine if query generated a return status number. More...
 
RETCODE dbinit (void)
 Initialize db-lib.
+ More...
 
int dbiordesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!) More...
 
int dbiowdesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!) More...
 
+DBBOOL dbisavail (DBPROCESS *dbproc)
 
BOOL dbiscount (DBPROCESS *dbproc)
 Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature). More...
 
DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
 Get value of an option. More...
 
DBINT dblastrow (DBPROCESS *dbproc)
 Get number of the last row in the row buffer. More...
 
+static int 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)
 
+static TDSCONTEXTdblib_get_tds_ctx (void)
 
+static void dblib_release_tds_ctx (int count)
 
LOGINRECdblogin (void)
 Allocate a LOGINREC structure.
+ More...
 
+void dbloginfree (LOGINREC *login)
 free the LOGINREC
 
RETCODE dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
 Add two DBMONEY4 values. More...
 
int dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
 Compare two DBMONEY4 values. More...
 
RETCODE dbmny4copy (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Copy a DBMONEY4 value. More...
 
RETCODE dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Negate a DBMONEY4 value. More...
 
RETCODE dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
 Subtract two DBMONEY4 values. More...
 
RETCODE dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest)
 Zero a DBMONEY4 value. More...
 
int dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
 Compare two DBMONEY values. More...
 
RETCODE dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Copy a DBMONEY value. More...
 
RETCODE dbmnydec (DBPROCESS *dbproc, DBMONEY *amount)
 Subtract $0.0001 from a DBMONEY value. More...
 
RETCODE dbmnyinc (DBPROCESS *dbproc, DBMONEY *amount)
 Add $0.0001 to a DBMONEY value. More...
 
RETCODE dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum negative DBMONEY value supported. More...
 
RETCODE dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum positive DBMONEY value supported. More...
 
RETCODE dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Negate a DBMONEY value. More...
 
RETCODE dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest)
 Set a DBMONEY value to zero. More...
 
const char * dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
 Get name of a month, in some human language. More...
 
RETCODE dbmorecmds (DBPROCESS *dbproc)
 See if more commands are to be processed. More...
 
RETCODE dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
 Send chunk of a text/image value to the server. More...
 
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
 Set a message handler, for messages from the server. More...
 
char * dbname (DBPROCESS *dbproc)
 Get name of current database. More...
 
+STATUS dbnextrow (DBPROCESS *dbproc)
 
RETCODE dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
 Tie a null-indicator to a regular result column. More...
 
int dbnumalts (DBPROCESS *dbproc, int computeid)
 Get count of columns in a compute row. More...
 
int dbnumcols (DBPROCESS *dbproc)
 Return number of regular columns in a result set.
+ More...
 
int dbnumcompute (DBPROCESS *dbproc)
 Get count of COMPUTE clauses for a result set. More...
 
int dbnumrets (DBPROCESS *dbproc)
 Get count of output parameters filled by a stored procedure. More...
 
int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum,...)
 Call client-installed error handler. More...
 
DBINT dbprcollen (DBPROCESS *dbproc, int column)
 Get size of a result column needed to print column. More...
 
void dbprhead (DBPROCESS *dbproc)
 Print result set headings to stdout. More...
 
RETCODE dbprrow (DBPROCESS *dbproc)
 Print a result set to stdout. More...
 
const char * dbprtype (int token)
 Print a token value's name to a buffer. More...
 
STATUS dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize)
 Fetch part of a text or image value from the server. More...
 
void dbrecftos (const char filename[])
 Record to a file all SQL commands sent to the server. More...
 
RETCODE dbresults (DBPROCESS *dbproc)
 Set up query results.
+ More...
 
BYTE * dbretdata (DBPROCESS *dbproc, int retnum)
 Get value of an output parameter filled by a stored procedure. More...
 
int dbretlen (DBPROCESS *dbproc, int retnum)
 Get size of an output parameter filled by a stored procedure. More...
 
char * dbretname (DBPROCESS *dbproc, int retnum)
 Get name of an output parameter filled by a stored procedure. More...
 
DBINT dbretstatus (DBPROCESS *dbproc)
 Fetch status value returned by query or remote procedure call. More...
 
int dbrettype (DBPROCESS *dbproc, int retnum)
 Get datatype of a stored procedure's return parameter. More...
 
RETCODE dbrows (DBPROCESS *dbproc)
 Indicate whether a query returned rows. More...
 
STATUS dbrowtype (DBPROCESS *dbproc)
 Get returned row's type. More...
 
RETCODE dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
 safely quotes character values in SQL text.
+ More...
 
char * dbservcharset (DBPROCESS *dbproc)
 Get syscharset name of the server character set. More...
 
void dbsetavail (DBPROCESS *dbproc)
 Mark a DBPROCESS as "available". More...
 
void dbsetifile (char *filename)
 set name and location of the interfaces file FreeTDS should use to look up a servername. More...
 
void dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
 Set interrupt handler for db-lib to use while blocked against a read from the server. More...
 
RETCODE dbsetlbool (LOGINREC *login, int value, int which)
 Set a boolean value in a LOGINREC structure.
+ More...
 
RETCODE dbsetllong (LOGINREC *login, long value, int which)
 Set an integer value in a LOGINREC structure.
+ More...
 
RETCODE dbsetlname (LOGINREC *login, const char *value, int which)
 Set the value of a string in a LOGINREC structure.
+ More...
 
RETCODE dbsetlogintime (int seconds)
 Set maximum seconds db-lib waits for a server response to a login attempt.
+ More...
 
+RETCODE dbsetlversion (LOGINREC *login, BYTE version)
 Set TDS version for future connections.
 
RETCODE dbsetmaxprocs (int maxprocs)
 Set maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbsetnull (DBPROCESS *dbproc, int bindtype, int bindlen, BYTE *bindval)
 Define substitution values to be used when binding null values. More...
 
RETCODE dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
 Set db-lib or server option. More...
 
STATUS dbsetrow (DBPROCESS *dbproc, DBINT row)
 Make a buffered row "current" without fetching it into bound variables.
+ More...
 
RETCODE dbsettime (int seconds)
 Set maximum seconds db-lib waits for a server response to query.
+ More...
 
void dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr)
 Associate client-allocated (and defined) data with a DBPROCESS.
+ More...
 
RETCODE dbsetversion (DBINT version)
 Specify a db-lib version level. More...
 
int dbspid (DBPROCESS *dbproc)
 Get server process ID for a DBPROCESS. More...
 
RETCODE dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print a regular result row to a buffer.
+ More...
 
DBINT dbspr1rowlen (DBPROCESS *dbproc)
 Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row(). More...
 
RETCODE dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print result set headings to a buffer. More...
 
RETCODE dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
 Get formatted string for underlining dbsprhead() column names.
+ More...
 
RETCODE dbsqlexec (DBPROCESS *dbproc)
 send the SQL command to the server and wait for an answer.
+ More...
 
RETCODE dbsqlok (DBPROCESS *dbproc)
 Wait for results of a query from the server.
+ More...
 
RETCODE dbsqlsend (DBPROCESS *dbproc)
 Transmit the command buffer to the server. Non-blocking, does not wait for a response. More...
 
RETCODE dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
 Build a printable string from text containing placeholders for variables. More...
 
RETCODE dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest)
 Get a copy of a chunk of the command buffer. More...
 
+static RETCODE dbstring_assign (DBSTRING **dbstrp, const char *p)
 
+static RETCODE dbstring_concat (DBSTRING **dbstrp, const char *p)
 
+static void dbstring_free (DBSTRING **dbstrp)
 
+static char * dbstring_get (DBSTRING *dbstr)
 
+static int dbstring_getchar (DBSTRING *dbstr, int i)
 
+static DBINT dbstring_length (DBSTRING *dbstr)
 
int dbstrlen (DBPROCESS *dbproc)
 Get size of the command buffer, in bytes. More...
 
RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
 describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) More...
 
int dbtds (DBPROCESS *dbproc)
 Get the TDS version in use for dbproc.
+ More...
 
DBBINARY * dbtxptr (DBPROCESS *dbproc, int column)
 Get text pointer for a column in the current row. More...
 
DBBINARY * dbtxtimestamp (DBPROCESS *dbproc, int column)
 Get text timestamp for a column in the current row. More...
 
RETCODE dbuse (DBPROCESS *dbproc, const char *name)
 Change current database. More...
 
DBINT dbvarylen (DBPROCESS *dbproc, int column)
 Determine whether a column can vary in size. More...
 
const char * dbversion ()
 See which version of db-lib is in use. More...
 
DBBOOL dbwillconvert (int srctype, int desttype)
 Test whether or not a datatype can be converted to another datatype. More...
 
RETCODE dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
 Send text or image data to the server. More...
 
static int default_err_handler (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
 default error handler for db-lib (handles library-generated errors) More...
 
+static DBOPTIONinit_dboptions (void)
 
+static const char * prdbresults_state (int retcode)
 
+static const char * prdbretcode (RETCODE retcode)
 
+static const char * prresult_type (int result_type)
 
+static const char * prretcode (int retcode)
 
static const char * tds_prdatatype (int datatype_token)
 Returns type in string. More...
 
DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
 Form a connection with the server. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

+EHANDLEFUNC _dblib_err_handler = default_err_handler
 
+MHANDLEFUNC _dblib_msg_handler = NULL
 
+static const DBLIB_ERROR_MESSAGE dblib_error_messages []
 
+static tds_mutex dblib_mutex = TDS_MUTEX_INITIALIZER
 
+static NULLREP default_null_representations [MAXBINDTYPES]
 
+static DBLIBCONTEXT g_dblib_ctx
 
static int g_dblib_version
 
+static const DBBIGINT null_BIGINT = 0
 
+static const DBBIT null_BIT = 0
 
+static const DBCHAR null_CHAR = '\0'
 
+static const DBDATETIME null_DATETIME = { 0, 0 }
 
+static const TDS_DATETIMEALL null_DATETIMEALL = { 0, 0, 0, 0 }
 
+static const DBFLT8 null_FLT8 = 0
 
+static const DBINT null_INT = 0
 
+static const DBMONEY null_MONEY = { 0, 0 }
 
+static const DBNUMERIC null_NUMERIC = { 0, 0, {0} }
 
+static const DBREAL null_REAL = 0
 
+static const DBDATETIME4 null_SMALLDATETIME = { 0, 0 }
 
+static const DBSMALLINT null_SMALLINT = 0
 
+static const DBMONEY4 null_SMALLMONEY = {0}
 
+static const DBTINYINT null_TINYINT = 0
 
+static const DBVARYCHAR null_VARYCHAR = { 0, {0} }
 
+static const char *const opttext [DBNUMOPTIONS]
 
+

Detailed Description

+

Main implementation file for db-lib.

+

Typedef Documentation

+ +

◆ DBLIBCONTEXT

+ +
+
+ + + + +
typedef struct dblib_context DBLIBCONTEXT
+
+

\dblib_internal

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

Function Documentation

+ +

◆ dbcolinfo()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbcolinfo (DBPROCESSdbproc,
CI_TYPE type,
DBINT column,
DBINT computeid,
DBCOLpdbcol 
)
+
+ +

Get a bunch of column attributes with a single call (Microsoft-compatibility feature).

+


+

+
Parameters
+ + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
typemust be CI_REGULAR or CI_ALTERNATE (CI_CURSOR is defined by the vendor, but is not yet implemented).
columnNth in the result set, starting from 1.
computeid(ignored)
pdbcoladdress of structure to be populated by this function.
+
+
+
+
Returns
SUCCEED or FAIL.
+
See also
dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput().
+
Todo:
Support cursor rows.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbgetnull()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbgetnull (DBPROCESSdbproc,
int bindtype,
int varlen,
BYTE * varaddr 
)
+
+

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

+ +
+
+ +

◆ tds_prdatatype()

+ +
+
+ + + + + +
+ + + + + + + + +
static const char * tds_prdatatype (int datatype_token)
+
+static
+
+ +

Returns type in string.

+

Used for debugging purpose

+ +
+
+

Variable Documentation

+ +

◆ g_dblib_version

+ +
+
+ + + + + +
+ + + + +
int g_dblib_version
+
+static
+
+Initial value:
=
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
#define DBVERSION_UNKNOWN
DBVERSION_xxx are used with dbsetversion()
Definition: sybdb.h:70
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00081.map freetds-1.2.3/doc/reference/a00081.map --- freetds-1.1.6/doc/reference/a00081.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00081.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00081.md5 freetds-1.2.3/doc/reference/a00081.md5 --- freetds-1.1.6/doc/reference/a00081.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00081.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +ca39d4027681b25db318a239d8baeb4f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00081.svg freetds-1.2.3/doc/reference/a00081.svg --- freetds-1.1.6/doc/reference/a00081.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00081.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,601 @@ + + + + + + +src/dblib/dblib.c + + + +Node1 + + +src/dblib/dblib.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdarg.h + + + + + +Node1->Node3 + + + + + +Node4 + + +freetds/time.h + + + + + +Node1->Node4 + + + + + +Node5 + + +assert.h + + + + + +Node1->Node5 + + + + + +Node6 + + +stdio.h + + + + + +Node1->Node6 + + + + + +Node7 + + +freetds/tds.h + + + + + +Node1->Node7 + + + + + +Node12 + + +freetds/thread.h + + + + + +Node1->Node12 + + + + + +Node15 + + +freetds/utils/string.h + + + + + +Node1->Node15 + + + + + +Node18 + + +replacements.h + + + + + +Node1->Node18 + + + + + +Node22 + + +freetds/convert.h + + + + + +Node1->Node22 + + + + + +Node23 + + +freetds/data.h + + + + + +Node1->Node23 + + + + + +Node24 + + +sybfront.h + + + + + +Node1->Node24 + + + + + +Node25 + + +sybdb.h + + + + + +Node1->Node25 + + + + + +Node26 + + +syberror.h + + + + + +Node1->Node26 + + + + + +Node27 + + +dblib.h + + + + + +Node1->Node27 + + + + + +Node28 + + +buffering.h + + + + + +Node1->Node28 + + + + + +Node4->Node4 + + + + + +Node7->Node3 + + + + + +Node7->Node4 + + + + + +Node7->Node6 + + + + + +Node8 + + +freetds/version.h + + + + + +Node7->Node8 + + + + + +Node9 + + +tds_sysdep_public.h + + + + + +Node7->Node9 + + + + + +Node11 + + +freetds/sysdep_private.h + + + + + +Node7->Node11 + + + + + +Node7->Node12 + + + + + +Node13 + + +freetds/bool.h + + + + + +Node7->Node13 + + + + + +Node14 + + +freetds/macros.h + + + + + +Node7->Node14 + + + + + +Node7->Node15 + + + + + +Node16 + + +freetds/pushvis.h + + + + + +Node7->Node16 + + + + + +Node17 + + +freetds/popvis.h + + + + + +Node7->Node17 + + + + + +Node7->Node18 + + + + + +Node21 + + +freetds/proto.h + + + + + +Node7->Node21 + + + + + +Node10 + + +float.h + + + + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node3 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + + + + +Node19 + + +replacements/readpassphrase.h + + + + + +Node18->Node19 + + + + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + + + + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + + + + +Node23->Node16 + + + + + +Node23->Node17 + + + + + +Node24->Node25 + + + + + +Node25->Node9 + + + + + +Node27->Node16 + + + + + +Node27->Node17 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00089_source.html freetds-1.2.3/doc/reference/a00089_source.html --- freetds-1.1.6/doc/reference/a00089_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00089_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/dblib/error_table.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
error_table.h
-
-
-
1 { SYBEICONVI, EXINFO, "WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?')."},
2 { SYBEICONVO, EXUSER, "Error converting client characters into server's character set. Some character(s) could not be converted."},
3 { SYBEAAMT, EXPROGRAM, "User attempted a dbaltbind() with mismatched column and variable types."},
4 { SYBEABMT, EXPROGRAM, "User attempted a dbbind() with mismatched column and variable types."},
5 { SYBEABNC, EXPROGRAM, "Attempt to bind to a non-existent column."},
6 { SYBEABNP, EXPROGRAM, "Attempt to bind using NULL pointers."},
7 { SYBEABNV, EXPROGRAM, "Attempt to bind to a NULL program variable."},
8 { SYBEACNV, EXCONVERSION, "Attemp to do conversion with NULL destination variable."},
9 { SYBEADST, EXCONSISTENCY, "Error in attempting to determine the size of a pair of translation tables."},
10 { SYBEAICF, EXCONSISTENCY, "Error in attempting to install custom format."},
11 { SYBEALTT, EXCONSISTENCY, "Error in attempting to load a pair of translation tables."},
12 { SYBEAOLF, EXRESOURCE, "Error in attempting to open a localization file."},
13 { SYBEAPCT, EXCONSISTENCY, "Error in attempting to perform a character-set translation."},
14 { SYBEAPUT, EXPROGRAM, "Attempt to print unknown token."},
15 { SYBEARDI, EXRESOURCE, "Error in attempting to read datetime information from a localization file."},
16 { SYBEARDL, EXRESOURCE, "Error in attempting to read the dblib.loc localization file."},
17 { SYBEASEC, EXPROGRAM, "Attempt to send an empty command buffer to the SQL Server."},
18 { SYBEASNL, EXPROGRAM, "Attempt to set fields in a null loginrec."},
19 { SYBEASTF, 1, "VMS: Unable to setmode for control_c ast."},
20 { SYBEASTL, EXPROGRAM, "Synchronous IO attempted at AST level."},
21 { SYBEASUL, EXPROGRAM, "Attempt to set unknown loginrec field."},
22 { SYBEATTNACK, 1, "Timed out waiting for server to acknowledge attention."},
23 { SYBEAUTN, EXPROGRAM, "Attempt to update the timestamp of a table which has no timestamp column."},
24 { SYBEBADPK, EXINFO, "Packet size of %1! not supported. -- size of %2! used instead."},
25 { SYBEBADTYPE, 1, "Illegal value for type parameter given to %1!."},
26 { SYBEBBCI, EXINFO, "Batch successfully bulk-copied to SQL Server."},
27 { SYBEBBFL, 1, "-001- Batch failed in bulk-copy to SQL Server."},
28 { SYBEBBL, EXPROGRAM, "Bad bindlen parameter passed to dbsetnull()."},
29 { SYBEBCBC, EXPROGRAM, "bcp_columns() must be called before bcp_colfmt() and bcp_colfmt_ps()."},
30 { SYBEBCBNPR, EXPROGRAM, "bcp_bind(): if varaddr is NULL, prefixlen must be 0 and no terminator should be specified."},
31 { SYBEBCBNTYP, EXPROGRAM, "bcp_bind(): if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY."},
32 { SYBEBCBPREF, EXPROGRAM, "Illegal prefix length. Legal values are 0, 1, 2 or 4."},
33 { SYBEBCFO, EXUSER, "Bcp host-files must contain at least one column."},
34 { SYBEBCHLEN, EXPROGRAM, "host_collen should be greater than or equal to -1."},
35 { SYBEBCIS, EXCONSISTENCY, "Attempt to bulk-copy an illegally-sized column value to the SQL Server."},
36 { SYBEBCIT, EXPROGRAM, "It's illegal to use BCP terminators with program variables other than SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE."},
37 { SYBEBCITBLEN, EXPROGRAM, "bcp_init(): tblname parameter is too long."},
38 { SYBEBCITBNM, EXPROGRAM, "bcp_init(): tblname parameter cannot be NULL."},
39 { SYBEBCMTXT, EXPROGRAM, "bcp_moretext() may be used only when there is at least one text or image column in the server table."},
40 { SYBEBCNL, EXNONFATAL, "Negative length-prefix found in BCP data-file."},
41 { SYBEBCNN, EXUSER, "Attempt to bulk-copy a NULL value into Server column 0, which does not accept NULL values."},
42 { SYBEBCNT, EXUSER, "Attempt to use Bulk Copy with a non-existent Server table."},
43 { SYBEBCOR, EXCONSISTENCY, "Attempt to bulk-copy an oversized row to the SQL Server."},
44 { SYBEBCPB, EXPROGRAM, "bcp_bind(), bcp_moretext() and bcp_sendrow() may NOT be used after bcp_init() has been passed a non-NULL input file name."},
45 { SYBEBCPCTYP, EXPROGRAM, "bcp_colfmt(): If table_colnum is 0, host_type cannot be 0."},
46 { SYBEBCPI, EXPROGRAM, "bcp_init() must be called before any other bcp routines."},
47 { SYBEBCPN, EXPROGRAM, "bcp_bind(), bcp_collen(), bcp_colptr(), bcp_moretext() and bcp_sendrow() may be used only after bcp_init() has been called with the copy direction set to DB_IN."},
48 { SYBEBCPOPT, 1, "The option cannot be called while a bulk copy operation is progress."},
49 { SYBEBCPREC, EXNONFATAL, "Column %1!: Illegal precision value encountered."},
50 { SYBEBCPREF, EXPROGRAM, "Illegal prefix length. Legal values are -1, 0, 1, 2 or 4."},
51 { SYBEBCRE, EXNONFATAL, "IO error while reading bcp data-file."},
52 { SYBEBCRO, EXINFO, "The BCP hostfile '' contains only 0 rows. It was impossible to read the requested 0 rows."},
53 { SYBEBCSA, EXUSER, "The BCP hostfile '' contains only 0 rows. Skipping all of these rows is not allowed."},
54 { SYBEBCSET, EXCONSISTENCY, "Unknown character-set encountered."},
55 { SYBEBCSI, EXPROGRAM, "Host-file columns may be skipped only when copying INto the Server."},
56 { SYBEBCSNDROW, EXPROGRAM, "bcp_sendrow() may NOT be called unless all text data for the previous row has been sent using bcp_moretext()."},
57 { SYBEBCSNTYP, EXPROGRAM, "column number %1!: if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY."},
58 { SYBEBCUC, EXRESOURCE, "Bcp: Unable to close host data-file."},
59 { SYBEBCUO, EXRESOURCE, "Bcp: Unable to open host data-file."},
60 { SYBEBCVH, EXPROGRAM, "bcp_exec() may be called only after bcp_init() has been passed a valid host file."},
61 { SYBEBCVLEN, EXPROGRAM, "varlen should be greater than or equal to -1."},
62 { SYBEBCWE, EXNONFATAL, "IO error while writing bcp data-file."},
63 { SYBEBDIO, EXPROGRAM, "Bad bulk-copy direction. Must be either IN or OUT."},
64 { SYBEBEOF, EXNONFATAL, "Unexpected EOF encountered in BCP data-file."},
65 { SYBEBIHC, EXPROGRAM, "Incorrect host-column number found in bcp format-file."},
66 { SYBEBIVI, EXPROGRAM, "bcp_columns(), bcp_colfmt() and bcp_colfmt_ps() may be used only after bcp_init() has been passed a valid input file."},
67 { SYBEBNCR, EXPROGRAM, "Attempt to bind user variable to a non-existent compute row."},
68 { SYBEBNUM, EXPROGRAM, "Bad numbytes parameter passed to dbstrcpy()."},
69 { SYBEBOOL, 1, "Boolean parameters must be TRUE or FALSE."},
70 { SYBEBPKS, EXPROGRAM, "In DBSETLPACKET(), the packet size parameter must be between 0 and 999999."},
71 { SYBEBPREC, EXPROGRAM, "Illegal precision specified."},
72 { SYBEBPROBADDEF, EXCONSISTENCY, "bcp protocol error: illegal default column id received."},
73 { SYBEBPROBADLEN, 1, "bcp protocol error: illegal datatype length received."},
74 { SYBEBPROBADPREC, 1, "bcp protocol error: illegal precision value received."},
75 { SYBEBPROBADSCL, 1, "bcp protocol error: illegal scale value received."},
76 { SYBEBPROBADTYP, 1, "bcp protocol error: unknown column datatype."},
77 { SYBEBPROCOL, EXCONSISTENCY, "bcp protocol error: returned column count differs from the actual number of columns received."},
78 { SYBEBPRODEF, EXCONSISTENCY, "bcp protocol error: expected default information and got none."},
79 { SYBEBPRODEFID, EXCONSISTENCY, "bcp protocol error: default column id and actual column id are not same."},
80 { SYBEBPRODEFTYP, EXCONSISTENCY, "bcp protocol error: default value datatype differs from column datatype."},
81 { SYBEBPROEXTDEF, EXCONSISTENCY, "bcp protocol error: more than one row of default information received."},
82 { SYBEBPROEXTRES, EXCONSISTENCY, "bcp protocol error: unexpected set of results received."},
83 { SYBEBPRONODEF, EXCONSISTENCY, "bcp protocol error: default value received for column that does not have default."},
84 { SYBEBPRONUMDEF, EXCONSISTENCY, "bcp protocol error: expected number of defaults differs from the actual number of defaults received."},
85 { SYBEBRFF, EXRESOURCE, "IO error while reading bcp format-file."},
86 { SYBEBSCALE, EXPROGRAM, "Illegal scale specified."},
87 { SYBEBTMT, EXPROGRAM, "Attempt to send too much TEXT data via the bcp_moretext() call."},
88 { SYBEBTOK, EXCOMM, "Bad token from SQL Server: Data-stream processing out of sync."},
89 { SYBEBTYP, EXPROGRAM, "Unknown bind type passed to DB-LIBRARY function."},
90 { SYBEBTYPSRV, EXPROGRAM, "Datatype is not supported by the server."},
91 { SYBEBUCE, EXRESOURCE, "Bcp: Unable to close error-file."},
92 { SYBEBUCF, EXPROGRAM, "Bcp: Unable to close format-file."},
93 { SYBEBUDF, EXPROGRAM, "Bcp: Unrecognized datatype found in format-file."},
94 { SYBEBUFF, EXPROGRAM, "Bcp: Unable to create format-file."},
95 { SYBEBUFL, EXCONSISTENCY, "DB-LIBRARY internal error - send buffer length corrupted."},
96 { SYBEBUOE, EXRESOURCE, "Bcp: Unable to open error-file."},
97 { SYBEBUOF, EXPROGRAM, "Bcp: Unable to open format-file."},
98 { SYBEBWEF, EXNONFATAL, "IO error while writing bcp error-file."},
99 { SYBEBWFF, EXRESOURCE, "IO error while writing bcp format-file."},
100 { SYBECAP, EXCOMM, "DB-Library capabilities not accepted by the Server."},
101 { SYBECAPTYP, EXCOMM, "Unexpected capability type in CAPABILITY datastream."},
102 { SYBECDNS, EXCONSISTENCY, "Datastream indicates that a compute column is derived from a non-existent select-list member."},
103 { SYBECDOMAIN, EXCONVERSION, "Source field value is not within the domain of legal values."},
104 { SYBECINTERNAL, EXCONVERSION, "Internal Conversion error."},
105 { SYBECLOS, EXCOMM, "Error in closing network connection."},
106 { SYBECLOSEIN, 1, "Unable to close interface file."},
107 { SYBECLPR, EXCONVERSION, "Data-conversion resulted in loss of precision."},
108 { SYBECNOR, EXPROGRAM, "Column number out of range."},
109 { SYBECNOV, EXCONVERSION, "Attempt to set variable to NULL resulted in overflow."},
110 { SYBECOFL, EXCONVERSION, "Data-conversion resulted in overflow."},
111 { SYBECONN, EXCOMM, "Unable to connect socket -- SQL Server is unavailable or does not exist."},
112 { SYBECRNC, EXPROGRAM, "The current row is not a result of compute clause 0, so it is illegal to attempt to extract that data from this row."},
113 { SYBECRSAGR, EXPROGRAM, "Aggregate functions are not allowed in a cursor statement."},
114 { SYBECRSBROL, EXPROGRAM, "Backward scrolling cannot be used in a forward scrolling cursor."},
115 { SYBECRSBSKEY, EXPROGRAM, "Keyset cannot be scrolled backward in mixed cursors with a previous fetch type."},
116 { SYBECRSBUFR, EXPROGRAM, "Row buffering should not be turned on when using cursor APIs."},
117 { SYBECRSDIS, EXPROGRAM, "Cursor statement contains one of the disallowed phrases 'compute', 'union', 'for browse', or 'select into'."},
118 { SYBECRSFLAST, EXPROGRAM, "Fetch type LAST requires fully keyset driven cursors."},
119 { SYBECRSFRAND, EXPROGRAM, "Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors."},
120 { SYBECRSFROWN, EXPROGRAM, "Row number to be fetched is outside valid range."},
121 { SYBECRSFTYPE, EXRESOURCE, "Unknown fetch type."},
122 { SYBECRSINV, EXPROGRAM, "Invalid cursor statement."},
123 { SYBECRSINVALID, EXRESOURCE, "The cursor handle is invalid."},
124 { SYBECRSMROWS, EXRESOURCE, "Multiple rows are returned, only one is expected."},
125 { SYBECRSNOBIND, EXPROGRAM, "Cursor bind must be called prior to updating cursor."},
126 { SYBECRSNOCOUNT, EXPROGRAM, "The DBNOCOUNT option should not be turned on when doing updates or deletes with dbcursor()."},
127 { SYBECRSNOFREE, EXPROGRAM, "The DBNOAUTOFREE option should not be turned on when using cursor APIs."},
128 { SYBECRSNOIND, EXPROGRAM, "One of the tables involved in the cursor statement does not have a unique index."},
129 { SYBECRSNOKEYS, EXRESOURCE, "The entire keyset must be defined for KEYSET cursors."},
130 { SYBECRSNOLEN, EXRESOURCE, "No unique index found."},
131 { SYBECRSNOPTCC, EXRESOURCE, "No OPTCC was found."},
132 { SYBECRSNORDER, EXRESOURCE, "The order of clauses must be from, where, and order by."},
133 { SYBECRSNORES, EXPROGRAM, "Cursor statement generated no results."},
134 { SYBECRSNOTABLE, EXRESOURCE, "Table name is NULL."},
135 { SYBECRSNOUPD, EXPROGRAM, "Update or delete operation did not affect any rows."},
136 { SYBECRSNOWHERE, EXPROGRAM, "A WHERE clause is not allowed in a cursor update or insert."},
137 { SYBECRSNROWS, EXRESOURCE, "No rows returned, at least one is expected."},
138 { SYBECRSNUNIQUE, EXRESOURCE, "No unique keys associated with this view."},
139 { SYBECRSORD, EXPROGRAM, "Only fully keyset driven cursors can have 'order by', ' group by', or 'having' phrases."},
140 { SYBECRSRO, EXPROGRAM, "Data locking or modifications cannot be made in a READONLY cursor."},
141 { SYBECRSSET, EXPROGRAM, "A SET clause is required for a cursor update or insert."},
142 { SYBECRSTAB, EXPROGRAM, "Table name must be determined in operations involving data locking or modifications."},
143 { SYBECRSUPDNB, EXPROGRAM, "Update or insert operations cannot use bind variables when binding type is NOBIND."},
144 { SYBECRSUPDTAB, EXPROGRAM, "Update or insert operations using bind variables require single table cursors."},
145 { SYBECRSVAR, EXRESOURCE, "There is no valid address associated with this bind."},
146 { SYBECRSVIEW, EXPROGRAM, "A view cannot be joined with another table or a view in a cursor statement."},
147 { SYBECRSVIIND, EXPROGRAM, "The view used in the cursor statement does not include all the unique index columns of the underlying tables."},
148 { SYBECS, 1, "-004- cs context Error."},
149 { SYBECSYN, EXCONVERSION, "Attempt to convert data stopped by syntax error in source field."},
150 { SYBECUFL, EXCONVERSION, "Data-conversion resulted in underflow."},
151 { SYBECWLL, 1, "Attempt to set column width less than 1."},
152 { SYBEDBPS, EXRESOURCE, "Maximum number of DBPROCESSes already allocated."},
153 { SYBEDCL, 1, "-004- DCL Error."},
154 { SYBEDDNE, EXCOMM, "DBPROCESS is dead or not enabled."},
155 { SYBEDIVZ, EXUSER, "Attempt to divide by $0.00 in function %1!."},
156 { SYBEDNTI, EXPROGRAM, "Attempt to use dbtxtsput() to put a new text-timestamp into a column whose datatype is neither SYBTEXT nor SYBIMAGE."},
157 { SYBEDPOR, EXPROGRAM, "Out-of-range datepart constant."},
158 { SYBEDVOR, EXPROGRAM, "Day values must be between 1 and 7."},
159 { SYBEECAN, EXINFO, "Attempted to cancel unrequested event notification."},
160 { SYBEECRT, 1, "Must call dbregdefine() before dbregcreate()."},
161 { SYBEEINI, EXINFO, "Must call dbreginit() before dbregraise()."},
162 { SYBEEQVA, 1, "Error in queueing VMS AST routine."},
163 { SYBEERRLABEL, 1, "An illegal value was returned from the security label handler."},
164 { SYBEESSL, 1, "Login security level entered does not agree with operating system level."},
165 { SYBEETD, EXPROGRAM, "Failure to send the expected amount of TEXT or IMAGE data via dbmoretext()."},
166 { SYBEEUNR, EXCOMM, "Unsolicited event notification received."},
167 { SYBEEVOP, EXINFO, "Called dbregwatch() with a bad options parameter."},
168 { SYBEEVST, EXINFO, "Must initiate a transaction before calling dbregparam()."},
169 { SYBEFCON, EXCOMM, "SQL Server connection failed."},
170 { SYBEFENC, 1, "Password Encryption failed."},
171 { SYBEFGTL, 1, "Bcp: Row number of the first row to be copied cannot be greater than the row number for the last row to be copied."},
172 { SYBEFMODE, 1, "ReadWriteAppend mode denied on file."},
173 { SYBEFRES, EXFATAL, "Challenge-Response function failed."},
174 { SYBEFSHD, EXRESOURCE, "Error in attempting to find the Sybase home directory."},
175 { SYBEFUNC, EXPROGRAM, "Functionality not supported at the specified version level."},
176 { SYBEGENOS, 1, "General Operating System Error."},
177 { SYBEICN, EXPROGRAM, "Invalid computeid or compute column number."},
178 { SYBEIDCL, EXCONSISTENCY, "Illegal datetime column length returned by DataServer. Legal datetime lengths are 4 and 8 bytes."},
179 { SYBEIDECCL, EXCONSISTENCY, "Invalid decimal column length returned by the server."},
180 { SYBEIFCL, EXCONSISTENCY, "Illegal floating-point column length returned by DataServer. Legal floating-point lengths are 4 and 8 bytes."},
181 { SYBEIFNB, EXPROGRAM, "Illegal field number passed to bcp_control()."},
182 { SYBEIICL, EXCONSISTENCY, "Illegal integer column length returned by SQL Server. Legal integer lengths are 1, 2, and 4 bytes."},
183 { SYBEIMCL, EXCONSISTENCY, "Illegal money column length returned by DataServer. Legal money lengths are 4 and 8 bytes."},
184 { SYBEINLN, EXUSER, "Interface file: unexpected end-of-line."},
185 { SYBEINTF, EXUSER, "Server name not found in interface file."},
186 { SYBEINUMCL, EXCONSISTENCY, "Invalid numeric column length returned by the server."},
187 { SYBEIPV, EXINFO, "%1! is an illegal value for the %2! parameter of %3!."},
188 { SYBEISOI, EXCONSISTENCY, "Invalid sort-order information found."},
189 { SYBEISRVPREC, EXCONSISTENCY, "Illegal precision value returned by the server."},
190 { SYBEISRVSCL, EXCONSISTENCY, "Illegal scale value returned by the server."},
191 { SYBEITIM, EXPROGRAM, "Illegal timeout value specified."},
192 { SYBEIVERS, EXPROGRAM, "Illegal version level specified."},
193 { SYBEKBCI, EXINFO, "Bcp: 1000 rows sent to SQL Server."},
194 { SYBEKBCO, EXINFO, "1000 rows successfully bulk-copied to host-file."},
195 { SYBELBLEN, 1, "Security labels should be less than 256 characters long."},
196 { SYBEMEM, EXRESOURCE, "Unable to allocate sufficient memory."},
197 { SYBEMOV, EXUSER, "Money arithmetic resulted in overflow in function %1!."},
198 { SYBEMPLL, EXUSER, "Attempt to set maximum number of DBPROCESSes lower than 1."},
199 { SYBEMVOR, EXPROGRAM, "Month values must be between 1 and 12."},
200 { SYBENBUF, EXINFO, "called dbsendpassthru() with a NULL buf pointer."},
201 { SYBENBVP, EXPROGRAM, "Cannot pass dbsetnull() a NULL bindval pointer."},
202 { SYBENDC, EXPROGRAM, "Cannot have negative component in date in numeric form."},
203 { SYBENDTP, EXPROGRAM, "Called dbdatecrack() with a NULL datetime parameter."},
204 { SYBENEG, EXCOMM, "Negotiated login attempt failed."},
205 { SYBENEHA, 1, "Called dbreghandle() with a NULL handler parameter."},
206 { SYBENHAN, EXINFO, "called dbrecvpassthru() with a NULL handler parameter."},
207 { SYBENLNL, 1, "Program not linked with specified network library."},
208 { SYBENMOB, EXPROGRAM, "No such member of 'order by' clause."},
209 { SYBENOEV, EXINFO, "dbpoll() cannot be called if registered procedure notifications have been disabled."},
210 { SYBENOTI, 1, "No event handler installed."},
211 { SYBENOVALUE, 1, "Security labels require both a name and a value."},
212 { SYBENPRM, EXPROGRAM, "NULL parameter not allowed for this dboption."},
213 { SYBENSIP, EXPROGRAM, "Negative starting index passed to dbstrcpy()."},
214 { SYBENTLL, EXUSER, "Name too long for loginrec field."},
215 { SYBENTST, 1, "The file being opened must be a stream_lf."},
216 { SYBENTTN, EXPROGRAM, "Attempt to use dbtxtsput() to put a new text-timestamp into a non-existent data row."},
217 { SYBENULL, EXINFO, "NULL DBPROCESS pointer passed to DB-Library."},
218 { SYBENULP, EXPROGRAM, "Called with a NULL parameter."},
219 { SYBENUM, 1, "Incorrect number of arguments given to DB-Library."},
220 { SYBENXID, EXNONFATAL, "The Server did not grant us a distributed-transaction ID."},
221 { SYBEONCE, EXPROGRAM, "Function can be called only once."},
222 { SYBEOOB, EXCOMM, "Error in sending out-of-band data to SQL Server."},
223 { SYBEOPIN, EXNONFATAL, "Could not open interface file."},
224 { SYBEOPNA, EXNONFATAL, "The textimage facility is available only when using a SQL Server whose version number is 4.0 or greater."},
225 { SYBEOPTNO, 1, "Option is not allowed or is unreconized."},
226 { SYBEOREN, EXINFO, "Warning: an out-of-range error-number was encountered in dblib.loc. The maximum permissible error-number is defined as DBERRCOUNT in sybdb.h."},
227 { SYBEORPF, EXUSER, "Attempt to set remote password would overflow the login-record's remote-password field."},
228 { SYBEOSSL, 1, "Operating system login level not in range of Secure SQL Server."},
229 { SYBEPAGE, 1, "wrong resource type or length given for dbpage() operation."},
230 { SYBEPOLL, EXINFO, "Only one dbpoll() can be active at a time."},
231 { SYBEPRTF, EXINFO, "dbtracestring() may only be called from a printfunc()."},
232 { SYBEPWD, EXUSER, "Incorrect password."},
233 { SYBERDCN, EXCONVERSION, "Requested data-conversion does not exist."},
234 { SYBERDNR, EXPROGRAM, "Attempt to retrieve data from a non-existent row."},
235 { SYBEREAD, EXCOMM, "Read from SQL Server failed."},
236 { SYBERESP, EXPROGRAM, "Response function address passed to dbresponse() must be non-NULL."},
237 { SYBERFILE, 1, "Can not open resource file."},
238 { SYBERPCS, EXINFO, "Must call dbrpcinit() before dbrpcparam()."},
239 { SYBERPIL, EXPROGRAM, "It is illegal to pass -1 to dbrpcparam() for the datalen of parameters which are of type SYBCHAR, SYBVARCHAR, SYBBINARY, or SYBVARBINARY."},
240 { SYBERPNA, EXNONFATAL, "The RPC facility is available only when using a SQL Server whose version number is 4.0 or greater."},
241 { SYBERPND, EXPROGRAM, "Attempt to initiate a new SQL Server operation with results pending."},
242 { SYBERPNULL, EXPROGRAM, "value parameter for dbprcparam() can be NULL, only if the datalen parameter is 0."},
243 { SYBERPTXTIM, EXPROGRAM, "RPC parameters cannot be of type TextImage."},
244 { SYBERPUL, EXPROGRAM, "When passing a SYBINTN, SYBDATETIMN, SYBMONEYN, or SYBFLTN parameter via dbrpcparam(), it's necessary to specify the parameter's maximum or actual length, so that DB-Library can recognize it as a SYBINT1, SYBINT2, SYBINT4, SYBMONEY, or SYBMONEY4, etc."},
245 { SYBERTCC, EXPROGRAM, "dbreadtext() may not be used to receive the results of a query which contains a COMPUTE clause."},
246 { SYBERTSC, EXPROGRAM, "dbreadtext() may only be used to receive the results of a query which contains a single result column."},
247 { SYBERTYPE, 1, "Invalid resource type given to DB-Library."},
248 { SYBERXID, EXNONFATAL, "The Server did not recognize our distributed-transaction ID."},
249 { SYBESECURE, EXPROGRAM, "Secure Server function not supported in this version."},
250 { SYBESEFA, EXPROGRAM, "DBSETNOTIFS cannot be called if connections are present."},
251 { SYBESEOF, EXCOMM, "Unexpected EOF from SQL Server."},
252 { SYBESFOV, EXPROGRAM, "dbsafestr() overflowed its destination buffer."},
253 { SYBESLCT, 1, "Could not select or copy field specified."},
254 { SYBESMSG, EXSERVER, "General SQL Server error: Check messages from the SQL Server."},
255 { SYBESOCK, EXCOMM, "Unable to open socket."},
256 { SYBESPID, EXPROGRAM, "Called dbspid() with a NULL dbproc."},
257 { SYBESYNC, EXCOMM, "Read attempted while out of synchronization with SQL Server."},
258 { SYBETEXS, EXINFO, "Called dbmoretext() with a bad size parameter."},
259 { SYBETIME, EXTIME, "SQL Server connection timed out."},
260 { SYBETMCF, EXPROGRAM, "Attempt to install too many custom formats via dbfmtinstall()."},
261 { SYBETMTD, EXPROGRAM, "Attempt to send too much TEXT data via the dbmoretext() call."},
262 { SYBETPAR, EXPROGRAM, "No SYBTEXT or SYBIMAGE parameters were defined."},
263 { SYBETPTN, EXUSER, "Syntax error: only two periods are permitted in table names."},
264 { SYBETRAC, EXINFO, "Attempted to turn off a trace flag that was not on."},
265 { SYBETRAN, EXINFO, "DBPROCESS is being used for another transaction."},
266 { SYBETRAS, EXINFO, "DB-Library internal error - trace structure not found."},
267 { SYBETRSN, EXINFO, "Bad numbytes parameter passed to dbtracestring()."},
268 { SYBETSIT, EXINFO, "Attempt to call dbtsput() with an invalid timestamp."},
269 { SYBETTS, EXUSER, "The table which bulk-copy is attempting to copy to a host-file is shorter than the number of rows which bulk-copy was instructed to skip."},
270 { SYBETYPE, EXINFO, "Invalid argument type given to DB-Library."},
271 { SYBEUACS, 1, "VMS: Unable to assign channel to sys$command."},
272 { SYBEUAVE, 1, "Unable to allocate VMS event flag."},
273 { SYBEUCPT, EXUSER, "Unrecognized custom-format parameter-type encountered in dbstrbuild()."},
274 { SYBEUCRR, EXCONSISTENCY, "Internal software error: Unknown connection result reported by dbpasswd()."},
275 { SYBEUDTY, EXCONSISTENCY, "Unknown datatype encountered."},
276 { SYBEUFDS, EXUSER, "Unrecognized format encountered in dbstrbuild()."},
277 { SYBEUFDT, EXCONSISTENCY, "Unknown fixed-length datatype encountered."},
278 { SYBEUHST, EXUSER, "Unknown host machine name."},
279 { SYBEUMSG, EXCOMM, "Unknown message-id in MSG datastream."},
280 { SYBEUNAM, EXFATAL, "Unable to get current username from operating system."},
281 { SYBEUNOP, EXNONFATAL, "Unknown option passed to dbsetopt()."},
282 { SYBEUNT, EXUSER, "Unknown network type found in interface file."},
283 { SYBEURCI, EXRESOURCE, "Unable to read copyright information from the dblib localization file."},
284 { SYBEUREI, EXRESOURCE, "Unable to read error information from the dblib localization file."},
285 { SYBEUREM, EXRESOURCE, "Unable to read error mnemonic from the dblib localization file."},
286 { SYBEURES, EXRESOURCE, "Unable to read error string from the dblib localization file."},
287 { SYBEURMI, EXRESOURCE, "Unable to read money-format information from the dblib localization file."},
288 { SYBEUSCT, EXCOMM, "Unable to set communications timer."},
289 { SYBEUTDS, EXCOMM, "Unrecognized TDS version received from SQL Server."},
290 { SYBEUVBF, EXPROGRAM, "Attempt to read an unknown version of BCP format-file."},
291 { SYBEUVDT, EXCONSISTENCY, "Unknown variable-length datatype encountered."},
292 { SYBEVDPT, EXUSER, "For bulk copy, all variable-length data must have either a length-prefix or a terminator specified."},
293 { SYBEVMS, 1, "Sendflush: VMS IO error."},
294 { SYBEVOIDRET, 1, "Parameter of type SYBVOID cannot be a return parameter."},
295 { SYBEWAID, EXCONSISTENCY, "DB-LIBRARY internal error: ALTFMT following ALTNAME has wrong id."},
296 { SYBEWRIT, EXCOMM, "Write to SQL Server failed."},
297 { SYBEXOCI, EXNONFATAL, "A character-set translation overflowed its destination buffer while using bcp to copy data from a host-file to the SQL Server."},
298 { SYBEXTDN, EXPROGRAM, "Warning: the xlt_todisp parameter to dbfree_xlate() was NULL. The space associated with the xlt_tosrv parameter has been freed."},
299 { SYBEXTN, EXPROGRAM, "The xlt_todisp and xlt_tosrv parameters to dbfree_xlate() were NULL."},
300 { SYBEXTSN, EXPROGRAM, "Warning: the xlt_tosrv parameter to dbfree_xlate() was NULL. The space associated with the xlt_todisp parameter has been freed."},
301 { SYBEZTXT, EXINFO, "Attempt to send zero length TEXT or IMAGE to dataserver via dbwritetext()."},
302 { 0, 0, "Please add a description for this error to src/tds/error_table.h"}
- - - - diff -Nru freetds-1.1.6/doc/reference/a00092_source.html freetds-1.2.3/doc/reference/a00092_source.html --- freetds-1.1.6/doc/reference/a00092_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00092_source.html 2020-07-09 09:01:54.000000000 +0000 @@ -0,0 +1,647 @@ + + + + + + + +FreeTDS API: src/dblib/error_table.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
error_table.h
+
+
+
1 { SYBEICONVI, EXINFO, "WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?')."},
+
2 { SYBEICONVO, EXUSER, "Error converting client characters into server's character set. Some character(s) could not be converted."},
+
3 { SYBEAAMT, EXPROGRAM, "User attempted a dbaltbind() with mismatched column and variable types."},
+
4 { SYBEABMT, EXPROGRAM, "User attempted a dbbind() with mismatched column and variable types."},
+
5 { SYBEABNC, EXPROGRAM, "Attempt to bind to a non-existent column."},
+
6 { SYBEABNP, EXPROGRAM, "Attempt to bind using NULL pointers."},
+
7 { SYBEABNV, EXPROGRAM, "Attempt to bind to a NULL program variable."},
+
8 { SYBEACNV, EXCONVERSION, "Attemp to do conversion with NULL destination variable."},
+
9 { SYBEADST, EXCONSISTENCY, "Error in attempting to determine the size of a pair of translation tables."},
+
10 { SYBEAICF, EXCONSISTENCY, "Error in attempting to install custom format."},
+
11 { SYBEALTT, EXCONSISTENCY, "Error in attempting to load a pair of translation tables."},
+
12 { SYBEAOLF, EXRESOURCE, "Error in attempting to open a localization file."},
+
13 { SYBEAPCT, EXCONSISTENCY, "Error in attempting to perform a character-set translation."},
+
14 { SYBEAPUT, EXPROGRAM, "Attempt to print unknown token."},
+
15 { SYBEARDI, EXRESOURCE, "Error in attempting to read datetime information from a localization file."},
+
16 { SYBEARDL, EXRESOURCE, "Error in attempting to read the dblib.loc localization file."},
+
17 { SYBEASEC, EXPROGRAM, "Attempt to send an empty command buffer to the SQL Server."},
+
18 { SYBEASNL, EXPROGRAM, "Attempt to set fields in a null loginrec."},
+
19 { SYBEASTF, 1, "VMS: Unable to setmode for control_c ast."},
+
20 { SYBEASTL, EXPROGRAM, "Synchronous IO attempted at AST level."},
+
21 { SYBEASUL, EXPROGRAM, "Attempt to set unknown loginrec field."},
+
22 { SYBEATTNACK, 1, "Timed out waiting for server to acknowledge attention."},
+
23 { SYBEAUTN, EXPROGRAM, "Attempt to update the timestamp of a table which has no timestamp column."},
+
24 { SYBEBADPK, EXINFO, "Packet size of %1! not supported. -- size of %2! used instead."},
+
25 { SYBEBADTYPE, 1, "Illegal value for type parameter given to %1!."},
+
26 { SYBEBBCI, EXINFO, "Batch successfully bulk-copied to SQL Server."},
+
27 { SYBEBBFL, 1, "-001- Batch failed in bulk-copy to SQL Server."},
+
28 { SYBEBBL, EXPROGRAM, "Bad bindlen parameter passed to dbsetnull()."},
+
29 { SYBEBCBC, EXPROGRAM, "bcp_columns() must be called before bcp_colfmt() and bcp_colfmt_ps()."},
+
30 { SYBEBCBNPR, EXPROGRAM, "bcp_bind(): if varaddr is NULL, prefixlen must be 0 and no terminator should be specified."},
+
31 { SYBEBCBNTYP, EXPROGRAM, "bcp_bind(): if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY."},
+
32 { SYBEBCBPREF, EXPROGRAM, "Illegal prefix length. Legal values are 0, 1, 2 or 4."},
+
33 { SYBEBCFO, EXUSER, "Bcp host-files must contain at least one column."},
+
34 { SYBEBCHLEN, EXPROGRAM, "host_collen should be greater than or equal to -1."},
+
35 { SYBEBCIS, EXCONSISTENCY, "Attempt to bulk-copy an illegally-sized column value to the SQL Server."},
+
36 { SYBEBCIT, EXPROGRAM, "It's illegal to use BCP terminators with program variables other than SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE."},
+
37 { SYBEBCITBLEN, EXPROGRAM, "bcp_init(): tblname parameter is too long."},
+
38 { SYBEBCITBNM, EXPROGRAM, "bcp_init(): tblname parameter cannot be NULL."},
+
39 { SYBEBCMTXT, EXPROGRAM, "bcp_moretext() may be used only when there is at least one text or image column in the server table."},
+
40 { SYBEBCNL, EXNONFATAL, "Negative length-prefix found in BCP data-file."},
+
41 { SYBEBCNN, EXUSER, "Attempt to bulk-copy a NULL value into Server column 0, which does not accept NULL values."},
+
42 { SYBEBCNT, EXUSER, "Attempt to use Bulk Copy with a non-existent Server table."},
+
43 { SYBEBCOR, EXCONSISTENCY, "Attempt to bulk-copy an oversized row to the SQL Server."},
+
44 { SYBEBCPB, EXPROGRAM, "bcp_bind(), bcp_moretext() and bcp_sendrow() may NOT be used after bcp_init() has been passed a non-NULL input file name."},
+
45 { SYBEBCPCTYP, EXPROGRAM, "bcp_colfmt(): If table_colnum is 0, host_type cannot be 0."},
+
46 { SYBEBCPI, EXPROGRAM, "bcp_init() must be called before any other bcp routines."},
+
47 { SYBEBCPN, EXPROGRAM, "bcp_bind(), bcp_collen(), bcp_colptr(), bcp_moretext() and bcp_sendrow() may be used only after bcp_init() has been called with the copy direction set to DB_IN."},
+
48 { SYBEBCPOPT, 1, "The option cannot be called while a bulk copy operation is progress."},
+
49 { SYBEBCPREC, EXNONFATAL, "Column %1!: Illegal precision value encountered."},
+
50 { SYBEBCPREF, EXPROGRAM, "Illegal prefix length. Legal values are -1, 0, 1, 2 or 4."},
+
51 { SYBEBCRE, EXNONFATAL, "IO error while reading bcp data-file."},
+
52 { SYBEBCRO, EXINFO, "The BCP hostfile '' contains only 0 rows. It was impossible to read the requested 0 rows."},
+
53 { SYBEBCSA, EXUSER, "The BCP hostfile '' contains only 0 rows. Skipping all of these rows is not allowed."},
+
54 { SYBEBCSET, EXCONSISTENCY, "Unknown character-set encountered."},
+
55 { SYBEBCSI, EXPROGRAM, "Host-file columns may be skipped only when copying INto the Server."},
+
56 { SYBEBCSNDROW, EXPROGRAM, "bcp_sendrow() may NOT be called unless all text data for the previous row has been sent using bcp_moretext()."},
+
57 { SYBEBCSNTYP, EXPROGRAM, "column number %1!: if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY."},
+
58 { SYBEBCUC, EXRESOURCE, "Bcp: Unable to close host data-file."},
+
59 { SYBEBCUO, EXRESOURCE, "Bcp: Unable to open host data-file."},
+
60 { SYBEBCVH, EXPROGRAM, "bcp_exec() may be called only after bcp_init() has been passed a valid host file."},
+
61 { SYBEBCVLEN, EXPROGRAM, "varlen should be greater than or equal to -1."},
+
62 { SYBEBCWE, EXNONFATAL, "IO error while writing bcp data-file."},
+
63 { SYBEBDIO, EXPROGRAM, "Bad bulk-copy direction. Must be either IN or OUT."},
+
64 { SYBEBEOF, EXNONFATAL, "Unexpected EOF encountered in BCP data-file."},
+
65 { SYBEBIHC, EXPROGRAM, "Incorrect host-column number found in bcp format-file."},
+
66 { SYBEBIVI, EXPROGRAM, "bcp_columns(), bcp_colfmt() and bcp_colfmt_ps() may be used only after bcp_init() has been passed a valid input file."},
+
67 { SYBEBNCR, EXPROGRAM, "Attempt to bind user variable to a non-existent compute row."},
+
68 { SYBEBNUM, EXPROGRAM, "Bad numbytes parameter passed to dbstrcpy()."},
+
69 { SYBEBOOL, 1, "Boolean parameters must be TRUE or FALSE."},
+
70 { SYBEBPKS, EXPROGRAM, "In DBSETLPACKET(), the packet size parameter must be between 0 and 999999."},
+
71 { SYBEBPREC, EXPROGRAM, "Illegal precision specified."},
+
72 { SYBEBPROBADDEF, EXCONSISTENCY, "bcp protocol error: illegal default column id received."},
+
73 { SYBEBPROBADLEN, 1, "bcp protocol error: illegal datatype length received."},
+
74 { SYBEBPROBADPREC, 1, "bcp protocol error: illegal precision value received."},
+
75 { SYBEBPROBADSCL, 1, "bcp protocol error: illegal scale value received."},
+
76 { SYBEBPROBADTYP, 1, "bcp protocol error: unknown column datatype."},
+
77 { SYBEBPROCOL, EXCONSISTENCY, "bcp protocol error: returned column count differs from the actual number of columns received."},
+
78 { SYBEBPRODEF, EXCONSISTENCY, "bcp protocol error: expected default information and got none."},
+
79 { SYBEBPRODEFID, EXCONSISTENCY, "bcp protocol error: default column id and actual column id are not same."},
+
80 { SYBEBPRODEFTYP, EXCONSISTENCY, "bcp protocol error: default value datatype differs from column datatype."},
+
81 { SYBEBPROEXTDEF, EXCONSISTENCY, "bcp protocol error: more than one row of default information received."},
+
82 { SYBEBPROEXTRES, EXCONSISTENCY, "bcp protocol error: unexpected set of results received."},
+
83 { SYBEBPRONODEF, EXCONSISTENCY, "bcp protocol error: default value received for column that does not have default."},
+
84 { SYBEBPRONUMDEF, EXCONSISTENCY, "bcp protocol error: expected number of defaults differs from the actual number of defaults received."},
+
85 { SYBEBRFF, EXRESOURCE, "IO error while reading bcp format-file."},
+
86 { SYBEBSCALE, EXPROGRAM, "Illegal scale specified."},
+
87 { SYBEBTMT, EXPROGRAM, "Attempt to send too much TEXT data via the bcp_moretext() call."},
+
88 { SYBEBTOK, EXCOMM, "Bad token from SQL Server: Data-stream processing out of sync."},
+
89 { SYBEBTYP, EXPROGRAM, "Unknown bind type passed to DB-LIBRARY function."},
+
90 { SYBEBTYPSRV, EXPROGRAM, "Datatype is not supported by the server."},
+
91 { SYBEBUCE, EXRESOURCE, "Bcp: Unable to close error-file."},
+
92 { SYBEBUCF, EXPROGRAM, "Bcp: Unable to close format-file."},
+
93 { SYBEBUDF, EXPROGRAM, "Bcp: Unrecognized datatype found in format-file."},
+
94 { SYBEBUFF, EXPROGRAM, "Bcp: Unable to create format-file."},
+
95 { SYBEBUFL, EXCONSISTENCY, "DB-LIBRARY internal error - send buffer length corrupted."},
+
96 { SYBEBUOE, EXRESOURCE, "Bcp: Unable to open error-file."},
+
97 { SYBEBUOF, EXPROGRAM, "Bcp: Unable to open format-file."},
+
98 { SYBEBWEF, EXNONFATAL, "IO error while writing bcp error-file."},
+
99 { SYBEBWFF, EXRESOURCE, "IO error while writing bcp format-file."},
+
100 { SYBECAP, EXCOMM, "DB-Library capabilities not accepted by the Server."},
+
101 { SYBECAPTYP, EXCOMM, "Unexpected capability type in CAPABILITY datastream."},
+
102 { SYBECDNS, EXCONSISTENCY, "Datastream indicates that a compute column is derived from a non-existent select-list member."},
+
103 { SYBECDOMAIN, EXCONVERSION, "Source field value is not within the domain of legal values."},
+
104 { SYBECINTERNAL, EXCONVERSION, "Internal Conversion error."},
+
105 { SYBECLOS, EXCOMM, "Error in closing network connection."},
+
106 { SYBECLOSEIN, 1, "Unable to close interface file."},
+
107 { SYBECLPR, EXCONVERSION, "Data-conversion resulted in loss of precision."},
+
108 { SYBECNOR, EXPROGRAM, "Column number out of range."},
+
109 { SYBECNOV, EXCONVERSION, "Attempt to set variable to NULL resulted in overflow."},
+
110 { SYBECOFL, EXCONVERSION, "Data-conversion resulted in overflow."},
+
111 { SYBECONN, EXCOMM, "Unable to connect socket -- SQL Server is unavailable or does not exist."},
+
112 { SYBECRNC, EXPROGRAM, "The current row is not a result of compute clause 0, so it is illegal to attempt to extract that data from this row."},
+
113 { SYBECRSAGR, EXPROGRAM, "Aggregate functions are not allowed in a cursor statement."},
+
114 { SYBECRSBROL, EXPROGRAM, "Backward scrolling cannot be used in a forward scrolling cursor."},
+
115 { SYBECRSBSKEY, EXPROGRAM, "Keyset cannot be scrolled backward in mixed cursors with a previous fetch type."},
+
116 { SYBECRSBUFR, EXPROGRAM, "Row buffering should not be turned on when using cursor APIs."},
+
117 { SYBECRSDIS, EXPROGRAM, "Cursor statement contains one of the disallowed phrases 'compute', 'union', 'for browse', or 'select into'."},
+
118 { SYBECRSFLAST, EXPROGRAM, "Fetch type LAST requires fully keyset driven cursors."},
+
119 { SYBECRSFRAND, EXPROGRAM, "Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors."},
+
120 { SYBECRSFROWN, EXPROGRAM, "Row number to be fetched is outside valid range."},
+
121 { SYBECRSFTYPE, EXRESOURCE, "Unknown fetch type."},
+
122 { SYBECRSINV, EXPROGRAM, "Invalid cursor statement."},
+
123 { SYBECRSINVALID, EXRESOURCE, "The cursor handle is invalid."},
+
124 { SYBECRSMROWS, EXRESOURCE, "Multiple rows are returned, only one is expected."},
+
125 { SYBECRSNOBIND, EXPROGRAM, "Cursor bind must be called prior to updating cursor."},
+
126 { SYBECRSNOCOUNT, EXPROGRAM, "The DBNOCOUNT option should not be turned on when doing updates or deletes with dbcursor()."},
+
127 { SYBECRSNOFREE, EXPROGRAM, "The DBNOAUTOFREE option should not be turned on when using cursor APIs."},
+
128 { SYBECRSNOIND, EXPROGRAM, "One of the tables involved in the cursor statement does not have a unique index."},
+
129 { SYBECRSNOKEYS, EXRESOURCE, "The entire keyset must be defined for KEYSET cursors."},
+
130 { SYBECRSNOLEN, EXRESOURCE, "No unique index found."},
+
131 { SYBECRSNOPTCC, EXRESOURCE, "No OPTCC was found."},
+
132 { SYBECRSNORDER, EXRESOURCE, "The order of clauses must be from, where, and order by."},
+
133 { SYBECRSNORES, EXPROGRAM, "Cursor statement generated no results."},
+
134 { SYBECRSNOTABLE, EXRESOURCE, "Table name is NULL."},
+
135 { SYBECRSNOUPD, EXPROGRAM, "Update or delete operation did not affect any rows."},
+
136 { SYBECRSNOWHERE, EXPROGRAM, "A WHERE clause is not allowed in a cursor update or insert."},
+
137 { SYBECRSNROWS, EXRESOURCE, "No rows returned, at least one is expected."},
+
138 { SYBECRSNUNIQUE, EXRESOURCE, "No unique keys associated with this view."},
+
139 { SYBECRSORD, EXPROGRAM, "Only fully keyset driven cursors can have 'order by', ' group by', or 'having' phrases."},
+
140 { SYBECRSRO, EXPROGRAM, "Data locking or modifications cannot be made in a READONLY cursor."},
+
141 { SYBECRSSET, EXPROGRAM, "A SET clause is required for a cursor update or insert."},
+
142 { SYBECRSTAB, EXPROGRAM, "Table name must be determined in operations involving data locking or modifications."},
+
143 { SYBECRSUPDNB, EXPROGRAM, "Update or insert operations cannot use bind variables when binding type is NOBIND."},
+
144 { SYBECRSUPDTAB, EXPROGRAM, "Update or insert operations using bind variables require single table cursors."},
+
145 { SYBECRSVAR, EXRESOURCE, "There is no valid address associated with this bind."},
+
146 { SYBECRSVIEW, EXPROGRAM, "A view cannot be joined with another table or a view in a cursor statement."},
+
147 { SYBECRSVIIND, EXPROGRAM, "The view used in the cursor statement does not include all the unique index columns of the underlying tables."},
+
148 { SYBECS, 1, "-004- cs context Error."},
+
149 { SYBECSYN, EXCONVERSION, "Attempt to convert data stopped by syntax error in source field."},
+
150 { SYBECUFL, EXCONVERSION, "Data-conversion resulted in underflow."},
+
151 { SYBECWLL, 1, "Attempt to set column width less than 1."},
+
152 { SYBEDBPS, EXRESOURCE, "Maximum number of DBPROCESSes already allocated."},
+
153 { SYBEDCL, 1, "-004- DCL Error."},
+
154 { SYBEDDNE, EXCOMM, "DBPROCESS is dead or not enabled."},
+
155 { SYBEDIVZ, EXUSER, "Attempt to divide by $0.00 in function %1!."},
+
156 { SYBEDNTI, EXPROGRAM, "Attempt to use dbtxtsput() to put a new text-timestamp into a column whose datatype is neither SYBTEXT nor SYBIMAGE."},
+
157 { SYBEDPOR, EXPROGRAM, "Out-of-range datepart constant."},
+
158 { SYBEDVOR, EXPROGRAM, "Day values must be between 1 and 7."},
+
159 { SYBEECAN, EXINFO, "Attempted to cancel unrequested event notification."},
+
160 { SYBEECRT, 1, "Must call dbregdefine() before dbregcreate()."},
+
161 { SYBEEINI, EXINFO, "Must call dbreginit() before dbregraise()."},
+
162 { SYBEEQVA, 1, "Error in queueing VMS AST routine."},
+
163 { SYBEERRLABEL, 1, "An illegal value was returned from the security label handler."},
+
164 { SYBEESSL, 1, "Login security level entered does not agree with operating system level."},
+
165 { SYBEETD, EXPROGRAM, "Failure to send the expected amount of TEXT or IMAGE data via dbmoretext()."},
+
166 { SYBEEUNR, EXCOMM, "Unsolicited event notification received."},
+
167 { SYBEEVOP, EXINFO, "Called dbregwatch() with a bad options parameter."},
+
168 { SYBEEVST, EXINFO, "Must initiate a transaction before calling dbregparam()."},
+
169 { SYBEFCON, EXCOMM, "SQL Server connection failed."},
+
170 { SYBEFENC, 1, "Password Encryption failed."},
+
171 { SYBEFGTL, 1, "Bcp: Row number of the first row to be copied cannot be greater than the row number for the last row to be copied."},
+
172 { SYBEFMODE, 1, "ReadWriteAppend mode denied on file."},
+
173 { SYBEFRES, EXFATAL, "Challenge-Response function failed."},
+
174 { SYBEFSHD, EXRESOURCE, "Error in attempting to find the Sybase home directory."},
+
175 { SYBEFUNC, EXPROGRAM, "Functionality not supported at the specified version level."},
+
176 { SYBEGENOS, 1, "General Operating System Error."},
+
177 { SYBEICN, EXPROGRAM, "Invalid computeid or compute column number."},
+
178 { SYBEIDCL, EXCONSISTENCY, "Illegal datetime column length returned by DataServer. Legal datetime lengths are 4 and 8 bytes."},
+
179 { SYBEIDECCL, EXCONSISTENCY, "Invalid decimal column length returned by the server."},
+
180 { SYBEIFCL, EXCONSISTENCY, "Illegal floating-point column length returned by DataServer. Legal floating-point lengths are 4 and 8 bytes."},
+
181 { SYBEIFNB, EXPROGRAM, "Illegal field number passed to bcp_control()."},
+
182 { SYBEIICL, EXCONSISTENCY, "Illegal integer column length returned by SQL Server. Legal integer lengths are 1, 2, and 4 bytes."},
+
183 { SYBEIMCL, EXCONSISTENCY, "Illegal money column length returned by DataServer. Legal money lengths are 4 and 8 bytes."},
+
184 { SYBEINLN, EXUSER, "Interface file: unexpected end-of-line."},
+
185 { SYBEINTF, EXUSER, "Server name not found in interface file."},
+
186 { SYBEINUMCL, EXCONSISTENCY, "Invalid numeric column length returned by the server."},
+
187 { SYBEIPV, EXINFO, "%1! is an illegal value for the %2! parameter of %3!."},
+
188 { SYBEISOI, EXCONSISTENCY, "Invalid sort-order information found."},
+
189 { SYBEISRVPREC, EXCONSISTENCY, "Illegal precision value returned by the server."},
+
190 { SYBEISRVSCL, EXCONSISTENCY, "Illegal scale value returned by the server."},
+
191 { SYBEITIM, EXPROGRAM, "Illegal timeout value specified."},
+
192 { SYBEIVERS, EXPROGRAM, "Illegal version level specified."},
+
193 { SYBEKBCI, EXINFO, "Bcp: 1000 rows sent to SQL Server."},
+
194 { SYBEKBCO, EXINFO, "1000 rows successfully bulk-copied to host-file."},
+
195 { SYBELBLEN, 1, "Security labels should be less than 256 characters long."},
+
196 { SYBEMEM, EXRESOURCE, "Unable to allocate sufficient memory."},
+
197 { SYBEMOV, EXUSER, "Money arithmetic resulted in overflow in function %1!."},
+
198 { SYBEMPLL, EXUSER, "Attempt to set maximum number of DBPROCESSes lower than 1."},
+
199 { SYBEMVOR, EXPROGRAM, "Month values must be between 1 and 12."},
+
200 { SYBENBUF, EXINFO, "called dbsendpassthru() with a NULL buf pointer."},
+
201 { SYBENBVP, EXPROGRAM, "Cannot pass dbsetnull() a NULL bindval pointer."},
+
202 { SYBENDC, EXPROGRAM, "Cannot have negative component in date in numeric form."},
+
203 { SYBENDTP, EXPROGRAM, "Called dbdatecrack() with a NULL datetime parameter."},
+
204 { SYBENEG, EXCOMM, "Negotiated login attempt failed."},
+
205 { SYBENEHA, 1, "Called dbreghandle() with a NULL handler parameter."},
+
206 { SYBENHAN, EXINFO, "called dbrecvpassthru() with a NULL handler parameter."},
+
207 { SYBENLNL, 1, "Program not linked with specified network library."},
+
208 { SYBENMOB, EXPROGRAM, "No such member of 'order by' clause."},
+
209 { SYBENOEV, EXINFO, "dbpoll() cannot be called if registered procedure notifications have been disabled."},
+
210 { SYBENOTI, 1, "No event handler installed."},
+
211 { SYBENOVALUE, 1, "Security labels require both a name and a value."},
+
212 { SYBENPRM, EXPROGRAM, "NULL parameter not allowed for this dboption."},
+
213 { SYBENSIP, EXPROGRAM, "Negative starting index passed to dbstrcpy()."},
+
214 { SYBENTLL, EXUSER, "Name too long for loginrec field."},
+
215 { SYBENTST, 1, "The file being opened must be a stream_lf."},
+
216 { SYBENTTN, EXPROGRAM, "Attempt to use dbtxtsput() to put a new text-timestamp into a non-existent data row."},
+
217 { SYBENULL, EXINFO, "NULL DBPROCESS pointer passed to DB-Library."},
+
218 { SYBENULP, EXPROGRAM, "Called with a NULL parameter."},
+
219 { SYBENUM, 1, "Incorrect number of arguments given to DB-Library."},
+
220 { SYBENXID, EXNONFATAL, "The Server did not grant us a distributed-transaction ID."},
+
221 { SYBEONCE, EXPROGRAM, "Function can be called only once."},
+
222 { SYBEOOB, EXCOMM, "Error in sending out-of-band data to SQL Server."},
+
223 { SYBEOPIN, EXNONFATAL, "Could not open interface file."},
+
224 { SYBEOPNA, EXNONFATAL, "The textimage facility is available only when using a SQL Server whose version number is 4.0 or greater."},
+
225 { SYBEOPTNO, 1, "Option is not allowed or is unreconized."},
+
226 { SYBEOREN, EXINFO, "Warning: an out-of-range error-number was encountered in dblib.loc. The maximum permissible error-number is defined as DBERRCOUNT in sybdb.h."},
+
227 { SYBEORPF, EXUSER, "Attempt to set remote password would overflow the login-record's remote-password field."},
+
228 { SYBEOSSL, 1, "Operating system login level not in range of Secure SQL Server."},
+
229 { SYBEPAGE, 1, "wrong resource type or length given for dbpage() operation."},
+
230 { SYBEPOLL, EXINFO, "Only one dbpoll() can be active at a time."},
+
231 { SYBEPRTF, EXINFO, "dbtracestring() may only be called from a printfunc()."},
+
232 { SYBEPWD, EXUSER, "Incorrect password."},
+
233 { SYBERDCN, EXCONVERSION, "Requested data-conversion does not exist."},
+
234 { SYBERDNR, EXPROGRAM, "Attempt to retrieve data from a non-existent row."},
+
235 { SYBEREAD, EXCOMM, "Read from SQL Server failed."},
+
236 { SYBERESP, EXPROGRAM, "Response function address passed to dbresponse() must be non-NULL."},
+
237 { SYBERFILE, 1, "Can not open resource file."},
+
238 { SYBERPCS, EXINFO, "Must call dbrpcinit() before dbrpcparam()."},
+
239 { SYBERPIL, EXPROGRAM, "It is illegal to pass -1 to dbrpcparam() for the datalen of parameters which are of type SYBCHAR, SYBVARCHAR, SYBBINARY, or SYBVARBINARY."},
+
240 { SYBERPNA, EXNONFATAL, "The RPC facility is available only when using a SQL Server whose version number is 4.0 or greater."},
+
241 { SYBERPND, EXPROGRAM, "Attempt to initiate a new SQL Server operation with results pending."},
+
242 { SYBERPNULL, EXPROGRAM, "value parameter for dbprcparam() can be NULL, only if the datalen parameter is 0."},
+
243 { SYBERPTXTIM, EXPROGRAM, "RPC parameters cannot be of type TextImage."},
+
244 { SYBERPUL, EXPROGRAM, "When passing a SYBINTN, SYBDATETIMN, SYBMONEYN, or SYBFLTN parameter via dbrpcparam(), it's necessary to specify the parameter's maximum or actual length, so that DB-Library can recognize it as a SYBINT1, SYBINT2, SYBINT4, SYBMONEY, or SYBMONEY4, etc."},
+
245 { SYBERTCC, EXPROGRAM, "dbreadtext() may not be used to receive the results of a query which contains a COMPUTE clause."},
+
246 { SYBERTSC, EXPROGRAM, "dbreadtext() may only be used to receive the results of a query which contains a single result column."},
+
247 { SYBERTYPE, 1, "Invalid resource type given to DB-Library."},
+
248 { SYBERXID, EXNONFATAL, "The Server did not recognize our distributed-transaction ID."},
+
249 { SYBESECURE, EXPROGRAM, "Secure Server function not supported in this version."},
+
250 { SYBESEFA, EXPROGRAM, "DBSETNOTIFS cannot be called if connections are present."},
+
251 { SYBESEOF, EXCOMM, "Unexpected EOF from SQL Server."},
+
252 { SYBESFOV, EXPROGRAM, "dbsafestr() overflowed its destination buffer."},
+
253 { SYBESLCT, 1, "Could not select or copy field specified."},
+
254 { SYBESMSG, EXSERVER, "General SQL Server error: Check messages from the SQL Server."},
+
255 { SYBESOCK, EXCOMM, "Unable to open socket."},
+
256 { SYBESPID, EXPROGRAM, "Called dbspid() with a NULL dbproc."},
+
257 { SYBESYNC, EXCOMM, "Read attempted while out of synchronization with SQL Server."},
+
258 { SYBETEXS, EXINFO, "Called dbmoretext() with a bad size parameter."},
+
259 { SYBETIME, EXTIME, "SQL Server connection timed out."},
+
260 { SYBETMCF, EXPROGRAM, "Attempt to install too many custom formats via dbfmtinstall()."},
+
261 { SYBETMTD, EXPROGRAM, "Attempt to send too much TEXT data via the dbmoretext() call."},
+
262 { SYBETPAR, EXPROGRAM, "No SYBTEXT or SYBIMAGE parameters were defined."},
+
263 { SYBETPTN, EXUSER, "Syntax error: only two periods are permitted in table names."},
+
264 { SYBETRAC, EXINFO, "Attempted to turn off a trace flag that was not on."},
+
265 { SYBETRAN, EXINFO, "DBPROCESS is being used for another transaction."},
+
266 { SYBETRAS, EXINFO, "DB-Library internal error - trace structure not found."},
+
267 { SYBETRSN, EXINFO, "Bad numbytes parameter passed to dbtracestring()."},
+
268 { SYBETSIT, EXINFO, "Attempt to call dbtsput() with an invalid timestamp."},
+
269 { SYBETTS, EXUSER, "The table which bulk-copy is attempting to copy to a host-file is shorter than the number of rows which bulk-copy was instructed to skip."},
+
270 { SYBETYPE, EXINFO, "Invalid argument type given to DB-Library."},
+
271 { SYBEUACS, 1, "VMS: Unable to assign channel to sys$command."},
+
272 { SYBEUAVE, 1, "Unable to allocate VMS event flag."},
+
273 { SYBEUCPT, EXUSER, "Unrecognized custom-format parameter-type encountered in dbstrbuild()."},
+
274 { SYBEUCRR, EXCONSISTENCY, "Internal software error: Unknown connection result reported by dbpasswd()."},
+
275 { SYBEUDTY, EXCONSISTENCY, "Unknown datatype encountered."},
+
276 { SYBEUFDS, EXUSER, "Unrecognized format encountered in dbstrbuild()."},
+
277 { SYBEUFDT, EXCONSISTENCY, "Unknown fixed-length datatype encountered."},
+
278 { SYBEUHST, EXUSER, "Unknown host machine name."},
+
279 { SYBEUMSG, EXCOMM, "Unknown message-id in MSG datastream."},
+
280 { SYBEUNAM, EXFATAL, "Unable to get current username from operating system."},
+
281 { SYBEUNOP, EXNONFATAL, "Unknown option passed to dbsetopt()."},
+
282 { SYBEUNT, EXUSER, "Unknown network type found in interface file."},
+
283 { SYBEURCI, EXRESOURCE, "Unable to read copyright information from the dblib localization file."},
+
284 { SYBEUREI, EXRESOURCE, "Unable to read error information from the dblib localization file."},
+
285 { SYBEUREM, EXRESOURCE, "Unable to read error mnemonic from the dblib localization file."},
+
286 { SYBEURES, EXRESOURCE, "Unable to read error string from the dblib localization file."},
+
287 { SYBEURMI, EXRESOURCE, "Unable to read money-format information from the dblib localization file."},
+
288 { SYBEUSCT, EXCOMM, "Unable to set communications timer."},
+
289 { SYBEUTDS, EXCOMM, "Unrecognized TDS version received from SQL Server."},
+
290 { SYBEUVBF, EXPROGRAM, "Attempt to read an unknown version of BCP format-file."},
+
291 { SYBEUVDT, EXCONSISTENCY, "Unknown variable-length datatype encountered."},
+
292 { SYBEVDPT, EXUSER, "For bulk copy, all variable-length data must have either a length-prefix or a terminator specified."},
+
293 { SYBEVMS, 1, "Sendflush: VMS IO error."},
+
294 { SYBEVOIDRET, 1, "Parameter of type SYBVOID cannot be a return parameter."},
+
295 { SYBEWAID, EXCONSISTENCY, "DB-LIBRARY internal error: ALTFMT following ALTNAME has wrong id."},
+
296 { SYBEWRIT, EXCOMM, "Write to SQL Server failed."},
+
297 { SYBEXOCI, EXNONFATAL, "A character-set translation overflowed its destination buffer while using bcp to copy data from a host-file to the SQL Server."},
+
298 { SYBEXTDN, EXPROGRAM, "Warning: the xlt_todisp parameter to dbfree_xlate() was NULL. The space associated with the xlt_tosrv parameter has been freed."},
+
299 { SYBEXTN, EXPROGRAM, "The xlt_todisp and xlt_tosrv parameters to dbfree_xlate() were NULL."},
+
300 { SYBEXTSN, EXPROGRAM, "Warning: the xlt_tosrv parameter to dbfree_xlate() was NULL. The space associated with the xlt_todisp parameter has been freed."},
+
301 { SYBEZTXT, EXINFO, "Attempt to send zero length TEXT or IMAGE to dataserver via dbwritetext()."},
+
302 { 0, 0, "Please add a description for this error to src/tds/error_table.h"}
+
+
Definition: dbpivot.c:539
+
RETCODE dbsqlexec(DBPROCESS *dbproc)
send the SQL command to the server and wait for an answer.
Definition: dblib.c:1424
+
Primary include file for db-lib applications.
+
DBINT dbcurrow(DBPROCESS *dbproc)
Get number of the row currently being read.
Definition: dblib.c:6190
+
Definition: dblib.c:7742
+
Definition: sybdb.h:506
+
DBPROCESS * tdsdbopen(LOGINREC *login, const char *server, int msdblib)
Form a connection with the server.
Definition: dblib.c:1184
+
RETCODE dbmorecmds(DBPROCESS *dbproc)
See if more commands are to be processed.
Definition: dblib.c:6241
+
bool has_status
true is ret_status is valid
Definition: tds.h:1246
+
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
+
BYTE * dbretdata(DBPROCESS *dbproc, int retnum)
Get value of an output parameter filled by a stored procedure.
Definition: dblib.c:4757
+
TDS_INT month
month number (0-11)
Definition: tds.h:163
+
BOOL dbiscount(DBPROCESS *dbproc)
Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature).
Definition: dblib.c:2808
+
TDS_INT second
0-59
Definition: tds.h:169
+
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2171
+
RETCODE dbspr1row(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print a regular result row to a buffer.
Definition: dblib.c:3461
+
@ TDS_DONE_MORE_RESULTS
more results follow
Definition: tds.h:253
+
DBBOOL dbdead(DBPROCESS *dbproc)
Check if dbproc is an ex-parrot.
Definition: dblib.c:5062
+
int query_timeout
not used unless positive
Definition: dblib.c:188
+
DBBOOL dbhasretstat(DBPROCESS *dbproc)
Determine if query generated a return status number.
Definition: dblib.c:4654
+
int dbrettype(DBPROCESS *dbproc, int retnum)
Get datatype of a stored procedure's return parameter.
Definition: dblib.c:6270
+
DBINT dbprcollen(DBPROCESS *dbproc, int column)
Get size of a result column needed to print column.
Definition: dblib.c:3196
+
RETCODE dbmnyinc(DBPROCESS *dbproc, DBMONEY *amount)
Add $0.0001 to a DBMONEY value.
Definition: dblib.c:5467
+
RETCODE dbmnyminus(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
Negate a DBMONEY value.
Definition: dblib.c:5523
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
DBINT dbcount(DBPROCESS *dbproc)
Get count of rows processed.
Definition: dblib.c:2828
+
int dbalttype(DBPROCESS *dbproc, int computeid, int column)
Get datatype for a compute column.
Definition: dblib.c:4344
+
RETCODE dbsprline(DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
Get formatted string for underlining dbsprhead() column names.
Definition: dblib.c:3841
+
TDSCURSOR * cur_cursor
cursor in use
Definition: tds.h:1244
+
static RETCODE _dbresults(DBPROCESS *dbproc)
Definition: dblib.c:1707
+
char * dbchange(DBPROCESS *dbproc)
See if a command caused the current database to change.
Definition: dblib.c:6991
+
int dbnumcols(DBPROCESS *dbproc)
Return number of regular columns in a result set.
Definition: dblib.c:1852
+
RETCODE dbpivot(DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val)
Pivot the rows, creating a new resultset.
Definition: dbpivot.c:908
+
void dbrecftos(const char filename[])
Record to a file all SQL commands sent to the server.
Definition: dblib.c:6771
+
Definition: sybdb.h:269
+
Definition: sybdb.h:355
+
RETCODE dbcmd(DBPROCESS *dbproc, const char cmdstring[])
Append SQL to the command buffer.
Definition: dblib.c:1378
+
DBINT dbvarylen(DBPROCESS *dbproc, int column)
Determine whether a column can vary in size.
Definition: dblib.c:3222
+
char * dbcolname(DBPROCESS *dbproc, int column)
Return name of a regular result column.
Definition: dblib.c:1876
+
RETCODE dbanydatecrack(DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
Break any kind of date or time value into useful pieces.
Definition: dblib.c:5872
+ +
STATUS dbsetrow(DBPROCESS *dbproc, DBINT row)
Make a buffered row "current" without fetching it into bound variables.
Definition: dblib.c:2049
+
struct dblib_context DBLIBCONTEXT
+
RETCODE dbcancel(DBPROCESS *dbproc)
Cancel the current command batch.
Definition: dblib.c:3398
+
RETCODE dbsprhead(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print result set headings to a buffer.
Definition: dblib.c:3899
+
TDS_INT timezone
-840 - 840 minutes from UTC
Definition: tds.h:171
+
Definition: proto.h:33
+
const char * dbmonthname(DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
Get name of a month, in some human language.
Definition: dblib.c:6962
+
Information about blobs (e.g.
Definition: tds.h:594
+
void dbclrbuf(DBPROCESS *dbproc, DBINT n)
Clear n rows from the row buffer.
Definition: dblib.c:2848
+
RETCODE dbsetlname(LOGINREC *login, const char *value, int which)
Set the value of a string in a LOGINREC structure.
Definition: dblib.c:764
+
TDS_INT year
year
Definition: tds.h:161
+
void dbfreebuf(DBPROCESS *dbproc)
Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().
Definition: dblib.c:6064
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
DBINT dbconvert(DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
cf. dbconvert_ps(), above
Definition: dblib.c:2597
+
DBPROCESS * dbopen(LOGINREC *login, const char *server)
Normally not used.
Definition: dbopen.c:36
+
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1259
+
int dbgetpacket(DBPROCESS *dbproc)
Get TDS packet size for the connection.
Definition: dblib.c:4079
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
void dbsetinterrupt(DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
Set interrupt handler for db-lib to use while blocked against a read from the server.
Definition: dblib.c:4635
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
DBBINARY * dbtxptr(DBPROCESS *dbproc, int column)
Get text pointer for a column in the current row.
Definition: dblib.c:6561
+
int dbretlen(DBPROCESS *dbproc, int retnum)
Get size of an output parameter filled by a stored procedure.
Definition: dblib.c:4783
+
#define tds_dstr_empty(s)
Make a string empty.
Definition: string.h:91
+
Definition: bsqldb.c:80
+
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
+
Hold information for any results.
Definition: tds.h:770
+
int dbaltop(DBPROCESS *dbproc, int computeid, int column)
Get aggregation operator for a compute column.
Definition: dblib.c:4448
+
Definition: sybdb.h:295
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
int dbcolutype(DBPROCESS *dbproc, int column)
Get user-defined datatype of a regular result column.
Definition: dblib.c:2997
+
void dbsetavail(DBPROCESS *dbproc)
Mark a DBPROCESS as "available".
Definition: dblib.c:7279
+
int login_timeout
not used unless positive
Definition: dblib.c:187
+
int dbgetmaxprocs(void)
get maximum simultaneous connections db-lib will open to the server.
Definition: dblib.c:4175
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
const char * dbprtype(int token)
Print a token value's name to a buffer.
Definition: dblib.c:6451
+
Definition: sybdb.h:342
+
Information for a server connection.
Definition: tds.h:1164
+
RETCODE dbsettime(int seconds)
Set maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4196
+
RETCODE dbanullbind(DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
Tie a null-indicator to a compute result column.
Definition: dblib.c:2780
+
DBINT dbspr1rowlen(DBPROCESS *dbproc)
Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(),...
Definition: dblib.c:3423
+
DBINT dbcollen(DBPROCESS *dbproc, int column)
Get size of a regular result column.
Definition: dblib.c:3173
+
Definition: proto.h:45
+
MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler)
Set a message handler, for messages from the server.
Definition: dblib.c:5144
+
RETCODE dbstrcpy(DBPROCESS *dbproc, int start, int numbytes, char *dest)
Get a copy of a chunk of the command buffer.
Definition: dblib.c:6346
+
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition: query.c:210
+
#define is_datetime_type(x)
return true if type is a datetime (but not date or time)
Definition: tds.h:394
+
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
+
DBINT dblastrow(DBPROCESS *dbproc)
Get number of the last row in the row buffer.
Definition: dblib.c:7211
+
#define DBVERSION_UNKNOWN
DBVERSION_xxx are used with dbsetversion()
Definition: sybdb.h:70
+
char * dbservcharset(DBPROCESS *dbproc)
Get syscharset name of the server character set.
Definition: dblib.c:7027
+
RETCODE dbstrbuild(DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
Build a printable string from text containing placeholders for variables.
Definition: dblib.c:7304
+
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition: dblib.c:8131
+
RETCODE dbsetversion(DBINT version)
Specify a db-lib version level.
Definition: dblib.c:5980
+
DBINT dbdatlen(DBPROCESS *dbproc, int column)
Get size of current row's data in a regular result column.
Definition: dblib.c:3328
+
TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
Return declaration for column (like "varchar(20)").
Definition: query.c:718
+
const char * tds_prtype(int type)
Returns string representation of the given type.
Definition: token.c:3052
+
int _dblib_check_and_handle_interrupt(void *vdbproc)
check interrupts for libtds.
Definition: dbutil.c:192
+
Definition: sybdb.h:290
+
int ref_count
reference count, time dbinit called
Definition: dblib.c:174
+
Definition: tds.h:1030
+
RETCODE dbrows(DBPROCESS *dbproc)
Indicate whether a query returned rows.
Definition: dblib.c:4038
+
BYTE * dbbylist(DBPROCESS *dbproc, int computeid, int *size)
Get bylist for a compute row.
Definition: dblib.c:5003
+
void dbsetifile(char *filename)
set name and location of the interfaces file FreeTDS should use to look up a servername.
Definition: dblib.c:2715
+
int tds_ctx_ref_count
libTDS context reference counter
Definition: dblib.c:179
+
const char * dbversion()
See which version of db-lib is in use.
Definition: dblib.c:6844
+
static const char * tds_prdatatype(int datatype_token)
Returns type in string.
Definition: dblib.c:7354
+
RETCODE dbsafestr(DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
safely quotes character values in SQL text.
Definition: dblib.c:6390
+
void dbexit()
Close server connections and free all related structures.
Definition: dblib.c:1557
+
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).
Definition: dblib.c:3049
+
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.
Definition: convert.c:2968
+
RETCODE dbinit(void)
Initialize db-lib.
Definition: dblib.c:665
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
NULLREP nullreps[MAXBINDTYPES]
default null values
Definition: dblib.h:159
+
void dbclose(DBPROCESS *dbproc)
Close a connection to the server and free associated resources.
Definition: dblib.c:1490
+
Definition: proto.h:56
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
TDSRET tds_set_interfaces_file_loc(const char *interf)
Set the full name of interface file.
Definition: config.c:965
+
BYTE * dbadata(DBPROCESS *dbproc, int computeid, int column)
Get address of compute column data.
Definition: dblib.c:4419
+
char * dbname(DBPROCESS *dbproc)
Get name of current database.
Definition: dblib.c:7011
+
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
+
DBBINARY * dbtxtimestamp(DBPROCESS *dbproc, int column)
Get text timestamp for a column in the current row.
Definition: dblib.c:6531
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
+
static int default_err_handler(DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
default error handler for db-lib (handles library-generated errors)
Definition: dblib.c:5096
+
int msdblib
boolean use ms behaviour
Definition: dblib.h:154
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
RETCODE dbnullbind(DBPROCESS *dbproc, int column, DBINT *indicator)
Tie a null-indicator to a regular result column.
Definition: dblib.c:2744
+
char * dbcolsource(DBPROCESS *dbproc, int column)
Get base database column name for a result set column.
Definition: dblib.c:3148
+
RETCODE dbsetlbool(LOGINREC *login, int value, int which)
Set a boolean value in a LOGINREC structure.
Definition: dblib.c:901
+
int dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
Compare two DBMONEY4 values.
Definition: dblib.c:5716
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition: login.c:125
+
RETCODE dbmny4minus(DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
Negate a DBMONEY4 value.
Definition: dblib.c:5550
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
Definition: dbpivot.c:707
+
RETCODE dbclropt(DBPROCESS *dbproc, int option, const char param[])
Reset an option.
Definition: dblib.c:6099
+
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
+
Definition: dblib.h:110
+
int dbaltcolid(DBPROCESS *dbproc, int computeid, int column)
Get column ID of a compute column.
Definition: dblib.c:4288
+
DBINT dbaltlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in compute column.
Definition: dblib.c:7141
+
BYTE * dbdata(DBPROCESS *dbproc, int column)
Get address of data in a regular result column.
Definition: dblib.c:3356
+
Definition: sybdb.h:275
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
TDS_INT quarter
quarter (0-3)
Definition: tds.h:162
+
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition: dblib.c:534
+
RETCODE dbprrow(DBPROCESS *dbproc)
Print a result set to stdout.
Definition: dblib.c:3544
+
int dbstrlen(DBPROCESS *dbproc)
Get size of the command buffer, in bytes.
Definition: dblib.c:6295
+
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:530
+
STATUS dbrowtype(DBPROCESS *dbproc)
Get returned row's type.
Definition: dblib.c:6207
+
TDS_INT minute
0-59
Definition: tds.h:168
+
RETCODE dbmnyzero(DBPROCESS *dbproc, DBMONEY *dest)
Set a DBMONEY value to zero.
Definition: dblib.c:5328
+
void dbloginfree(LOGINREC *login)
free the LOGINREC
Definition: dblib.c:742
+
int dbmnycmp(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
Compare two DBMONEY values.
Definition: dblib.c:5270
+
int dbiordesc(DBPROCESS *dbproc)
Get file descriptor of the socket used by a DBPROCESS to read data coming from the server....
Definition: dblib.c:7235
+
RETCODE dbmny4sub(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
Subtract two DBMONEY4 values.
Definition: dblib.c:5628
+
RETCODE dbsetlversion(LOGINREC *login, BYTE version)
Set TDS version for future connections.
Definition: dblib.c:952
+
DBINT dbadlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in a compute column.
Definition: dblib.c:4314
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
DBBOOL dbisopt(DBPROCESS *dbproc, int option, const char param[])
Get value of an option.
Definition: dblib.c:6167
+
int dbdatecmp(DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
Compare DBDATETIME values, similar to strcmp(3).
Definition: dblib.c:5769
+
RETCODE dbcanquery(DBPROCESS *dbproc)
Cancel the query currently being retrieved, discarding all pending rows.
Definition: dblib.c:6035
+
@ TDS_DONE_ERROR
error occurred
Definition: tds.h:254
+
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
+
Definition: sybdb.h:263
+
Definition: convert.h:34
+
EHANDLEFUNC dberrhandle(EHANDLEFUNC handler)
Set an error handler, for messages from db-lib.
Definition: dblib.c:5125
+
int dbtds(DBPROCESS *dbproc)
Get the TDS version in use for dbproc.
Definition: dblib.c:6805
+
Definition: dblib.c:172
+
TDS_INT day
day of month (1-31)
Definition: tds.h:164
+
Definition: dblib.h:52
+
Definition: tds.h:877
+
RETCODE dbsetnull(DBPROCESS *dbproc, int bindtype, int bindlen, BYTE *bindval)
Define substitution values to be used when binding null values.
Definition: dblib.c:1966
+
Definition: dbpivot.c:1264
+
Definition: sybdb.h:374
+
Definition: tds.h:518
+
Definition: dblib.h:123
+
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
+
DBBOOL dbwillconvert(int srctype, int desttype)
Test whether or not a datatype can be converted to another datatype.
Definition: dblib.c:2878
+
RETCODE dbsetlogintime(int seconds)
Set maximum seconds db-lib waits for a server response to a login attempt.
Definition: dblib.c:4243
+
RETCODE dbgetrow(DBPROCESS *dbproc, DBINT row)
Read a row from the row buffer.
Definition: dblib.c:1934
+
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:1156
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
RETCODE dbresults(DBPROCESS *dbproc)
Set up query results.
Definition: dblib.c:1698
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
RETCODE dbmny4copy(DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
Copy a DBMONEY4 value.
Definition: dblib.c:5744
+
Definition: proto.h:50
+
RETCODE dbmnycopy(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
Copy a DBMONEY value.
Definition: dblib.c:6014
+
RETCODE dbsetopt(DBPROCESS *dbproc, int option, const char *char_param, int int_param)
Set db-lib or server option.
Definition: dblib.c:4475
+
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:166
+
const char * dbacolname(DBPROCESS *dbproc, int computeid, int column)
Return name of a computed result column.
Definition: dblib.c:1902
+
int dbnumrets(DBPROCESS *dbproc)
Get count of output parameters filled by a stored procedure.
Definition: dblib.c:4696
+
LOGINREC * dblogin(void)
Allocate a LOGINREC structure.
Definition: dblib.c:710
+
char * dbretname(DBPROCESS *dbproc, int retnum)
Get name of an output parameter filled by a stored procedure.
Definition: dblib.c:4728
+
Definition: dbpivot.c:76
+
RETCODE dbwritetext(DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
Send text or image data to the server.
Definition: dblib.c:6598
+
Definition: sybdb.h:301
+
Used by tds_datecrack.
Definition: tds.h:160
+
void dbsetuserdata(DBPROCESS *dbproc, BYTE *ptr)
Associate client-allocated (and defined) data with a DBPROCESS.
Definition: dblib.c:5944
+
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition: bulk.c:1173
+
void dbprhead(DBPROCESS *dbproc)
Print result set headings to stdout.
Definition: dblib.c:3963
+
int dbnumcompute(DBPROCESS *dbproc)
Get count of COMPUTE clauses for a result set.
Definition: dblib.c:4977
+
Definition: proto.h:26
+
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:1118
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
Definition: sybdb.h:474
+
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition: config.c:285
+
RETCODE dbmoretext(DBPROCESS *dbproc, DBINT size, const BYTE text[])
Send chunk of a text/image value to the server.
Definition: dblib.c:6736
+
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1251
+
RETCODE dbbind(DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
Tie a host variable to a resultset column.
Definition: dblib.c:2638
+
DBTYPEINFO * dbcoltypeinfo(DBPROCESS *dbproc, int column)
Get precision and scale information for a regular result column.
Definition: dblib.c:3020
+
static BYTE * _dbcoldata(TDSCOLUMN *colinfo)
Return data from a column.
Definition: dblib.c:3372
+
DSTR password
password of account login
Definition: tds.h:536
+
RETCODE dbsqlok(DBPROCESS *dbproc)
Wait for results of a query from the server.
Definition: dblib.c:4818
+
int dbgettime(void)
Get maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4227
+
RETCODE dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
Add two DBMONEY4 values.
Definition: dblib.c:5597
+
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
+
RETCODE dbdatecrack(DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime)
Break a DBDATETIME value into useful pieces.
Definition: dblib.c:5851
+
RETCODE dbcmdrow(DBPROCESS *dbproc)
See if the current command can return rows.
Definition: dblib.c:4264
+
RETCODE dbmnydec(DBPROCESS *dbproc, DBMONEY *amount)
Subtract $0.0001 from a DBMONEY value.
Definition: dblib.c:5495
+
RETCODE dbmnymaxneg(DBPROCESS *dbproc, DBMONEY *amount)
Get maximum negative DBMONEY value supported.
Definition: dblib.c:5370
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
int dbcoltype(DBPROCESS *dbproc, int column)
Get the datatype of a regular result set column.
Definition: dblib.c:2974
+
DBINT dbfirstrow(DBPROCESS *dbproc)
See if a server response has arrived.
Definition: dblib.c:7196
+
char * dbgetchar(DBPROCESS *dbproc, int pos)
Get address of a position in the command buffer.
Definition: dblib.c:6314
+
TDS_INT hour
0-23
Definition: tds.h:167
+
Definition: sybdb.h:336
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
+
DSTR user_name
account for login
Definition: tds.h:535
+
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
+
int dbcurcmd(DBPROCESS *dbproc)
Get number of the row just returned.
Definition: dblib.c:6224
+
int dbspid(DBPROCESS *dbproc)
Get server process ID for a DBPROCESS.
Definition: dblib.c:5924
+
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:165
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
#define DBTDS_UNKNOWN
DBTDS_xxx are returned by DBTDS() The integer values of the constants are poorly chosen.
Definition: sybdb.h:88
+
BYTE * dbgetuserdata(DBPROCESS *dbproc)
Get address of user-allocated data from a DBPROCESS.
Definition: dblib.c:5962
+
DBINT dbaltutype(DBPROCESS *dbproc, int computeid, int column)
Get user-defined datatype of a compute column.
Definition: dblib.c:7118
+
RETCODE dbsetllong(LOGINREC *login, long value, int which)
Set an integer value in a LOGINREC structure.
Definition: dblib.c:830
+
RETCODE dbaltbind(DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
Bind a compute column to a program variable.
Definition: dblib.c:4373
+
RETCODE dbsetmaxprocs(int maxprocs)
Set maximum simultaneous connections db-lib will open to the server.
Definition: dblib.c:4103
+
DBINT dbconvert_ps(DBPROCESS *dbproc, int db_srctype, const BYTE *src, DBINT srclen, int db_desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
Convert one datatype to another.
Definition: dblib.c:2304
+
RETCODE dbmny4zero(DBPROCESS *dbproc, DBMONEY4 *dest)
Zero a DBMONEY4 value.
Definition: dblib.c:5574
+
Definition: dbpivot.c:766
+
Definition: dblib.h:117
+
static TDSCOLUMN * dbcolptr(DBPROCESS *dbproc, int column)
Sanity checks for column-oriented functions.
Definition: dblib.c:336
+
RETCODE dbfcmd(DBPROCESS *dbproc, const char *fmt,...)
printf-like way to form SQL to send to the server.
Definition: dblib.c:1339
+
Definition: sybdb.h:284
+
TDSCONTEXT * tds_ctx
libTDS context
Definition: dblib.c:177
+
int dbnumalts(DBPROCESS *dbproc, int computeid)
Get count of columns in a compute row.
Definition: dblib.c:4944
+
STATUS dbreadtext(DBPROCESS *dbproc, void *buf, DBINT bufsize)
Fetch part of a text or image value from the server.
Definition: dblib.c:6667
+
int dbiowdesc(DBPROCESS *dbproc)
Get file descriptor of the socket used by a DBPROCESS to write data coming to the server....
Definition: dblib.c:7251
+
DBINT dbretstatus(DBPROCESS *dbproc)
Fetch status value returned by query or remote procedure call.
Definition: dblib.c:4678
+
#define DBDEAD(x)
Sybase macro mapping to the Microsoft (lower-case) function.
Definition: sybdb.h:761
+
RETCODE dbtablecolinfo(DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo)
Definition: dblib.c:6468
+
struct _dblib_error_message DBLIB_ERROR_MESSAGE
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+
RETCODE dbuse(DBPROCESS *dbproc, const char *name)
Change current database.
Definition: dblib.c:1450
+
RETCODE dbsqlsend(DBPROCESS *dbproc)
Transmit the command buffer to the server. Non-blocking, does not wait for a response.
Definition: dblib.c:7047
+
RETCODE dbmnymaxpos(DBPROCESS *dbproc, DBMONEY *amount)
Get maximum positive DBMONEY value supported.
Definition: dblib.c:5349
+
Definition: bsqlodbc.c:100
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00110_source.html freetds-1.2.3/doc/reference/a00110_source.html --- freetds-1.1.6/doc/reference/a00110_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00110_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/odbc/error_export.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
error_export.h
-
-
-
1 #undef tdsdump_log
2 
3 #ifdef ENABLE_ODBC_WIDE
4 static 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 
11 SQLRETURN 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 
35 SQLRETURN 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
68 static 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 
75 SQLRETURN 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 
99 SQLRETURN 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
132 static 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 
140 SQLRETURN 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 
167 SQLRETURN 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
- - - - diff -Nru freetds-1.1.6/doc/reference/a00113_source.html freetds-1.2.3/doc/reference/a00113_source.html --- freetds-1.1.6/doc/reference/a00113_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00113_source.html 2020-07-09 09:01:55.000000000 +0000 @@ -0,0 +1,366 @@ + + + + + + + +FreeTDS API: src/odbc/error_export.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
error_export.h
+
+
+
1 #undef tdsdump_log
+
2 
+
3 #ifdef ENABLE_ODBC_WIDE
+
4 static 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 
+
11 SQLRETURN 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 
+
35 SQLRETURN 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
+
68 static 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 
+
75 SQLRETURN 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 
+
99 SQLRETURN 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
+
132 static 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 
+
140 SQLRETURN 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 
+
167 SQLRETURN 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
+
+
Definition: dblib.h:101
+
Primary include file for db-lib applications.
+
Store variant informations.
Definition: tds.h:605
+
Definition: odbc.h:531
+
Definition: connectparams.c:518
+
TDS_INT month
month number (0-11)
Definition: tds.h:163
+
TDS_INT second
0-59
Definition: tds.h:169
+
struct addrinfo * ip_addrs
ip(s) of server
Definition: tds.h:547
+
RETCODE dbrpcparam(DBPROCESS *dbproc, const char paramname[], BYTE status, int db_type, DBINT maxlen, DBINT datalen, BYTE *value)
Add a parameter to a remote procedure call.
Definition: rpc.c:155
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
Definition: odbc.h:381
+ +
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition: query.c:1929
+
Definition: dblib.h:89
+
Information about blobs (e.g.
Definition: tds.h:594
+
TDS_INT year
year
Definition: tds.h:161
+
Definition: error.c:168
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
#define tds_dstr_empty(s)
Make a string empty.
Definition: string.h:91
+
Definition: odbc.h:230
+
Definition: odbcss.h:132
+
Hold information for any results.
Definition: tds.h:770
+
Definition: iconv.h:92
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
Information for a server connection.
Definition: tds.h:1164
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
RETCODE dbrpcsend(DBPROCESS *dbproc)
Execute the procedure and free associated memory.
Definition: rpc.c:281
+
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
+
DSTR db_filename
database filename to attach (MSSQL)
Definition: tds.h:530
+
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).
Definition: iconv.c:590
+
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition: dblib.c:8131
+
Definition: tds.h:1030
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
int port
port of database service
Definition: tds.h:520
+
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.
Definition: convert.c:2968
+
Definition: odbc.h:163
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
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:756
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
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:630
+
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
Definition: odbc.h:106
+
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2913
+
Definition: sybdb.h:275
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
TDS_INT minute
0-59
Definition: tds.h:168
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
+
Definition: convert.h:34
+
TDS_INT day
day of month (1-31)
Definition: tds.h:164
+
Definition: odbcss.h:139
+
Definition: odbc.h:94
+
Definition: tds.h:518
+
Definition: dblib.h:123
+
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
+
bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *param)
Read a section of configuration file (INI style file)
Definition: config.c:503
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
TDS_SMALLINT offset
time offset
Definition: tds.h:150
+
Definition: odbc.h:237
+
Used by tds_datecrack.
Definition: tds.h:160
+
RETCODE dbrpcinit(DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
Initialize a remote procedure call.
Definition: rpc.c:72
+
Definition: proto.h:26
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
bool tds_read_conf_file(TDSLOGIN *login, const char *server)
Read configuration info for given server return 0 on error.
Definition: config.c:346
+
DSTR password
password of account login
Definition: tds.h:536
+
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
+
Definition: proto.h:62
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: odbc.h:275
+
TDS_INT hour
0-23
Definition: tds.h:167
+
DSTR user_name
account for login
Definition: tds.h:535
+
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition: string.h:49
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
Definition: error.c:48
+
Definition: odbc.h:204
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+
Definition: bsqlodbc.c:100
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00125_source.html freetds-1.2.3/doc/reference/a00125_source.html --- freetds-1.1.6/doc/reference/a00125_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00125_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: src/odbc/odbc_export.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
odbc_export.h
-
-
-
1 #undef tdsdump_log
2 
3 #ifdef ENABLE_ODBC_WIDE
4 static SQLRETURN _SQLDriverConnect(SQLHDBC hdbc,
5  SQLHWND hwnd,
6  ODBC_CHAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
7  ODBC_CHAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT FAR* pcbConnStrOut,
8  SQLUSMALLINT fDriverCompletion, int wide);
9 
10 SQLRETURN ODBC_PUBLIC ODBC_API SQLDriverConnectW(
11  SQLHDBC hdbc,
12  SQLHWND hwnd,
13  SQLWCHAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
14  SQLWCHAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT FAR* pcbConnStrOut,
15  SQLUSMALLINT fDriverCompletion)
16 {
17  if (TDS_UNLIKELY(tds_write_dump)) {
18  SQLWSTR_BUFS(1);
19  tdsdump_log(TDS_DBG_FUNC, "SQLDriverConnectW(%p, %p, %ls, %d, %p, %d, %p, %u)\n",
20  hdbc,
21  hwnd,
22  SQLWSTR(szConnStrIn), (int) cbConnStrIn,
23  szConnStrOut, (int) cbConnStrOutMax, pcbConnStrOut,
24  (unsigned int) fDriverCompletion);
25  SQLWSTR_FREE();
26  }
27  return _SQLDriverConnect(hdbc,
28  hwnd,
29  (ODBC_CHAR*) szConnStrIn, cbConnStrIn,
30  (ODBC_CHAR*) szConnStrOut, cbConnStrOutMax, pcbConnStrOut,
31  fDriverCompletion, 1);
32 }
33 #endif
34 
35 SQLRETURN ODBC_PUBLIC ODBC_API SQLDriverConnect(
36  SQLHDBC hdbc,
37  SQLHWND hwnd,
38  SQLCHAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
39  SQLCHAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT FAR* pcbConnStrOut,
40  SQLUSMALLINT fDriverCompletion)
41 {
42  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLDriverConnect(%p, %p, %s, %d, %p, %d, %p, %u)\n",
43  hdbc,
44  hwnd,
45  (const char*) szConnStrIn, (int) cbConnStrIn,
46  szConnStrOut, (int) cbConnStrOutMax, pcbConnStrOut,
47  (unsigned int) fDriverCompletion);
48 #ifdef ENABLE_ODBC_WIDE
49  return _SQLDriverConnect(hdbc,
50  hwnd,
51  (ODBC_CHAR*) szConnStrIn, cbConnStrIn,
52  (ODBC_CHAR*) szConnStrOut, cbConnStrOutMax, pcbConnStrOut,
53  fDriverCompletion, 0);
54 #else
55  return _SQLDriverConnect(hdbc,
56  hwnd,
57  szConnStrIn, cbConnStrIn,
58  szConnStrOut, cbConnStrOutMax, pcbConnStrOut,
59  fDriverCompletion);
60 #endif
61 }
62 
63 #ifdef ENABLE_ODBC_WIDE
64 static SQLRETURN _SQLColumnPrivileges(SQLHSTMT hstmt,
65  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
66  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
67  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
68  ODBC_CHAR * szColumnName, SQLSMALLINT cbColumnName, int wide);
69 
70 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumnPrivilegesW(
71  SQLHSTMT hstmt,
72  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
73  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
74  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
75  SQLWCHAR * szColumnName, SQLSMALLINT cbColumnName)
76 {
77  if (TDS_UNLIKELY(tds_write_dump)) {
78  SQLWSTR_BUFS(4);
79  tdsdump_log(TDS_DBG_FUNC, "SQLColumnPrivilegesW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
80  hstmt,
81  SQLWSTR(szCatalogName), (int) cbCatalogName,
82  SQLWSTR(szSchemaName), (int) cbSchemaName,
83  SQLWSTR(szTableName), (int) cbTableName,
84  SQLWSTR(szColumnName), (int) cbColumnName);
85  SQLWSTR_FREE();
86  }
87  return _SQLColumnPrivileges(hstmt,
88  (ODBC_CHAR*) szCatalogName, cbCatalogName,
89  (ODBC_CHAR*) szSchemaName, cbSchemaName,
90  (ODBC_CHAR*) szTableName, cbTableName,
91  (ODBC_CHAR*) szColumnName, cbColumnName, 1);
92 }
93 #endif
94 
95 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumnPrivileges(
96  SQLHSTMT hstmt,
97  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
98  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
99  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
100  SQLCHAR * szColumnName, SQLSMALLINT cbColumnName)
101 {
102  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLColumnPrivileges(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
103  hstmt,
104  (const char*) szCatalogName, (int) cbCatalogName,
105  (const char*) szSchemaName, (int) cbSchemaName,
106  (const char*) szTableName, (int) cbTableName,
107  (const char*) szColumnName, (int) cbColumnName);
108 #ifdef ENABLE_ODBC_WIDE
109  return _SQLColumnPrivileges(hstmt,
110  (ODBC_CHAR*) szCatalogName, cbCatalogName,
111  (ODBC_CHAR*) szSchemaName, cbSchemaName,
112  (ODBC_CHAR*) szTableName, cbTableName,
113  (ODBC_CHAR*) szColumnName, cbColumnName, 0);
114 #else
115  return _SQLColumnPrivileges(hstmt,
116  szCatalogName, cbCatalogName,
117  szSchemaName, cbSchemaName,
118  szTableName, cbTableName,
119  szColumnName, cbColumnName);
120 #endif
121 }
122 
123 #ifdef ENABLE_ODBC_WIDE
124 static SQLRETURN _SQLForeignKeys(SQLHSTMT hstmt,
125  ODBC_CHAR * szPkCatalogName, SQLSMALLINT cbPkCatalogName,
126  ODBC_CHAR * szPkSchemaName, SQLSMALLINT cbPkSchemaName,
127  ODBC_CHAR * szPkTableName, SQLSMALLINT cbPkTableName,
128  ODBC_CHAR * szFkCatalogName, SQLSMALLINT cbFkCatalogName,
129  ODBC_CHAR * szFkSchemaName, SQLSMALLINT cbFkSchemaName,
130  ODBC_CHAR * szFkTableName, SQLSMALLINT cbFkTableName, int wide);
131 
132 SQLRETURN ODBC_PUBLIC ODBC_API SQLForeignKeysW(
133  SQLHSTMT hstmt,
134  SQLWCHAR * szPkCatalogName, SQLSMALLINT cbPkCatalogName,
135  SQLWCHAR * szPkSchemaName, SQLSMALLINT cbPkSchemaName,
136  SQLWCHAR * szPkTableName, SQLSMALLINT cbPkTableName,
137  SQLWCHAR * szFkCatalogName, SQLSMALLINT cbFkCatalogName,
138  SQLWCHAR * szFkSchemaName, SQLSMALLINT cbFkSchemaName,
139  SQLWCHAR * szFkTableName, SQLSMALLINT cbFkTableName)
140 {
141  if (TDS_UNLIKELY(tds_write_dump)) {
142  SQLWSTR_BUFS(6);
143  tdsdump_log(TDS_DBG_FUNC, "SQLForeignKeysW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
144  hstmt,
145  SQLWSTR(szPkCatalogName), (int) cbPkCatalogName,
146  SQLWSTR(szPkSchemaName), (int) cbPkSchemaName,
147  SQLWSTR(szPkTableName), (int) cbPkTableName,
148  SQLWSTR(szFkCatalogName), (int) cbFkCatalogName,
149  SQLWSTR(szFkSchemaName), (int) cbFkSchemaName,
150  SQLWSTR(szFkTableName), (int) cbFkTableName);
151  SQLWSTR_FREE();
152  }
153  return _SQLForeignKeys(hstmt,
154  (ODBC_CHAR*) szPkCatalogName, cbPkCatalogName,
155  (ODBC_CHAR*) szPkSchemaName, cbPkSchemaName,
156  (ODBC_CHAR*) szPkTableName, cbPkTableName,
157  (ODBC_CHAR*) szFkCatalogName, cbFkCatalogName,
158  (ODBC_CHAR*) szFkSchemaName, cbFkSchemaName,
159  (ODBC_CHAR*) szFkTableName, cbFkTableName, 1);
160 }
161 #endif
162 
163 SQLRETURN ODBC_PUBLIC ODBC_API SQLForeignKeys(
164  SQLHSTMT hstmt,
165  SQLCHAR * szPkCatalogName, SQLSMALLINT cbPkCatalogName,
166  SQLCHAR * szPkSchemaName, SQLSMALLINT cbPkSchemaName,
167  SQLCHAR * szPkTableName, SQLSMALLINT cbPkTableName,
168  SQLCHAR * szFkCatalogName, SQLSMALLINT cbFkCatalogName,
169  SQLCHAR * szFkSchemaName, SQLSMALLINT cbFkSchemaName,
170  SQLCHAR * szFkTableName, SQLSMALLINT cbFkTableName)
171 {
172  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLForeignKeys(%p, %s, %d, %s, %d, %s, %d, %s, %d, %s, %d, %s, %d)\n",
173  hstmt,
174  (const char*) szPkCatalogName, (int) cbPkCatalogName,
175  (const char*) szPkSchemaName, (int) cbPkSchemaName,
176  (const char*) szPkTableName, (int) cbPkTableName,
177  (const char*) szFkCatalogName, (int) cbFkCatalogName,
178  (const char*) szFkSchemaName, (int) cbFkSchemaName,
179  (const char*) szFkTableName, (int) cbFkTableName);
180 #ifdef ENABLE_ODBC_WIDE
181  return _SQLForeignKeys(hstmt,
182  (ODBC_CHAR*) szPkCatalogName, cbPkCatalogName,
183  (ODBC_CHAR*) szPkSchemaName, cbPkSchemaName,
184  (ODBC_CHAR*) szPkTableName, cbPkTableName,
185  (ODBC_CHAR*) szFkCatalogName, cbFkCatalogName,
186  (ODBC_CHAR*) szFkSchemaName, cbFkSchemaName,
187  (ODBC_CHAR*) szFkTableName, cbFkTableName, 0);
188 #else
189  return _SQLForeignKeys(hstmt,
190  szPkCatalogName, cbPkCatalogName,
191  szPkSchemaName, cbPkSchemaName,
192  szPkTableName, cbPkTableName,
193  szFkCatalogName, cbFkCatalogName,
194  szFkSchemaName, cbFkSchemaName,
195  szFkTableName, cbFkTableName);
196 #endif
197 }
198 
199 #ifdef ENABLE_ODBC_WIDE
200 static SQLRETURN _SQLNativeSql(SQLHDBC hdbc,
201  ODBC_CHAR * szSqlStrIn, SQLINTEGER cbSqlStrIn,
202  ODBC_CHAR * szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER FAR* pcbSqlStr, int wide);
203 
204 SQLRETURN ODBC_PUBLIC ODBC_API SQLNativeSqlW(
205  SQLHDBC hdbc,
206  SQLWCHAR * szSqlStrIn, SQLINTEGER cbSqlStrIn,
207  SQLWCHAR * szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER FAR* pcbSqlStr)
208 {
209  if (TDS_UNLIKELY(tds_write_dump)) {
210  SQLWSTR_BUFS(1);
211  tdsdump_log(TDS_DBG_FUNC, "SQLNativeSqlW(%p, %ls, %d, %p, %d, %p)\n",
212  hdbc,
213  SQLWSTR(szSqlStrIn), (int) cbSqlStrIn,
214  szSqlStr, (int) cbSqlStrMax, pcbSqlStr);
215  SQLWSTR_FREE();
216  }
217  return _SQLNativeSql(hdbc,
218  (ODBC_CHAR*) szSqlStrIn, cbSqlStrIn,
219  (ODBC_CHAR*) szSqlStr, cbSqlStrMax, pcbSqlStr, 1);
220 }
221 #endif
222 
223 SQLRETURN ODBC_PUBLIC ODBC_API SQLNativeSql(
224  SQLHDBC hdbc,
225  SQLCHAR * szSqlStrIn, SQLINTEGER cbSqlStrIn,
226  SQLCHAR * szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER FAR* pcbSqlStr)
227 {
228  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLNativeSql(%p, %s, %d, %p, %d, %p)\n",
229  hdbc,
230  (const char*) szSqlStrIn, (int) cbSqlStrIn,
231  szSqlStr, (int) cbSqlStrMax, pcbSqlStr);
232 #ifdef ENABLE_ODBC_WIDE
233  return _SQLNativeSql(hdbc,
234  (ODBC_CHAR*) szSqlStrIn, cbSqlStrIn,
235  (ODBC_CHAR*) szSqlStr, cbSqlStrMax, pcbSqlStr, 0);
236 #else
237  return _SQLNativeSql(hdbc,
238  szSqlStrIn, cbSqlStrIn,
239  szSqlStr, cbSqlStrMax, pcbSqlStr);
240 #endif
241 }
242 
243 #ifdef ENABLE_ODBC_WIDE
244 static SQLRETURN _SQLPrimaryKeys(SQLHSTMT hstmt,
245  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
246  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
247  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName, int wide);
248 
249 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrimaryKeysW(
250  SQLHSTMT hstmt,
251  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
252  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
253  SQLWCHAR * szTableName, SQLSMALLINT cbTableName)
254 {
255  if (TDS_UNLIKELY(tds_write_dump)) {
256  SQLWSTR_BUFS(3);
257  tdsdump_log(TDS_DBG_FUNC, "SQLPrimaryKeysW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
258  hstmt,
259  SQLWSTR(szCatalogName), (int) cbCatalogName,
260  SQLWSTR(szSchemaName), (int) cbSchemaName,
261  SQLWSTR(szTableName), (int) cbTableName);
262  SQLWSTR_FREE();
263  }
264  return _SQLPrimaryKeys(hstmt,
265  (ODBC_CHAR*) szCatalogName, cbCatalogName,
266  (ODBC_CHAR*) szSchemaName, cbSchemaName,
267  (ODBC_CHAR*) szTableName, cbTableName, 1);
268 }
269 #endif
270 
271 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrimaryKeys(
272  SQLHSTMT hstmt,
273  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
274  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
275  SQLCHAR * szTableName, SQLSMALLINT cbTableName)
276 {
277  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLPrimaryKeys(%p, %s, %d, %s, %d, %s, %d)\n",
278  hstmt,
279  (const char*) szCatalogName, (int) cbCatalogName,
280  (const char*) szSchemaName, (int) cbSchemaName,
281  (const char*) szTableName, (int) cbTableName);
282 #ifdef ENABLE_ODBC_WIDE
283  return _SQLPrimaryKeys(hstmt,
284  (ODBC_CHAR*) szCatalogName, cbCatalogName,
285  (ODBC_CHAR*) szSchemaName, cbSchemaName,
286  (ODBC_CHAR*) szTableName, cbTableName, 0);
287 #else
288  return _SQLPrimaryKeys(hstmt,
289  szCatalogName, cbCatalogName,
290  szSchemaName, cbSchemaName,
291  szTableName, cbTableName);
292 #endif
293 }
294 
295 #ifdef ENABLE_ODBC_WIDE
296 static SQLRETURN _SQLProcedureColumns(SQLHSTMT hstmt,
297  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
298  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
299  ODBC_CHAR * szProcName, SQLSMALLINT cbProcName,
300  ODBC_CHAR * szColumnName, SQLSMALLINT cbColumnName, int wide);
301 
302 SQLRETURN ODBC_PUBLIC ODBC_API SQLProcedureColumnsW(
303  SQLHSTMT hstmt,
304  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
305  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
306  SQLWCHAR * szProcName, SQLSMALLINT cbProcName,
307  SQLWCHAR * szColumnName, SQLSMALLINT cbColumnName)
308 {
309  if (TDS_UNLIKELY(tds_write_dump)) {
310  SQLWSTR_BUFS(4);
311  tdsdump_log(TDS_DBG_FUNC, "SQLProcedureColumnsW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
312  hstmt,
313  SQLWSTR(szCatalogName), (int) cbCatalogName,
314  SQLWSTR(szSchemaName), (int) cbSchemaName,
315  SQLWSTR(szProcName), (int) cbProcName,
316  SQLWSTR(szColumnName), (int) cbColumnName);
317  SQLWSTR_FREE();
318  }
319  return _SQLProcedureColumns(hstmt,
320  (ODBC_CHAR*) szCatalogName, cbCatalogName,
321  (ODBC_CHAR*) szSchemaName, cbSchemaName,
322  (ODBC_CHAR*) szProcName, cbProcName,
323  (ODBC_CHAR*) szColumnName, cbColumnName, 1);
324 }
325 #endif
326 
327 SQLRETURN ODBC_PUBLIC ODBC_API SQLProcedureColumns(
328  SQLHSTMT hstmt,
329  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
330  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
331  SQLCHAR * szProcName, SQLSMALLINT cbProcName,
332  SQLCHAR * szColumnName, SQLSMALLINT cbColumnName)
333 {
334  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLProcedureColumns(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
335  hstmt,
336  (const char*) szCatalogName, (int) cbCatalogName,
337  (const char*) szSchemaName, (int) cbSchemaName,
338  (const char*) szProcName, (int) cbProcName,
339  (const char*) szColumnName, (int) cbColumnName);
340 #ifdef ENABLE_ODBC_WIDE
341  return _SQLProcedureColumns(hstmt,
342  (ODBC_CHAR*) szCatalogName, cbCatalogName,
343  (ODBC_CHAR*) szSchemaName, cbSchemaName,
344  (ODBC_CHAR*) szProcName, cbProcName,
345  (ODBC_CHAR*) szColumnName, cbColumnName, 0);
346 #else
347  return _SQLProcedureColumns(hstmt,
348  szCatalogName, cbCatalogName,
349  szSchemaName, cbSchemaName,
350  szProcName, cbProcName,
351  szColumnName, cbColumnName);
352 #endif
353 }
354 
355 #ifdef ENABLE_ODBC_WIDE
356 static SQLRETURN _SQLProcedures(SQLHSTMT hstmt,
357  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
358  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
359  ODBC_CHAR * szProcName, SQLSMALLINT cbProcName, int wide);
360 
361 SQLRETURN ODBC_PUBLIC ODBC_API SQLProceduresW(
362  SQLHSTMT hstmt,
363  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
364  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
365  SQLWCHAR * szProcName, SQLSMALLINT cbProcName)
366 {
367  if (TDS_UNLIKELY(tds_write_dump)) {
368  SQLWSTR_BUFS(3);
369  tdsdump_log(TDS_DBG_FUNC, "SQLProceduresW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
370  hstmt,
371  SQLWSTR(szCatalogName), (int) cbCatalogName,
372  SQLWSTR(szSchemaName), (int) cbSchemaName,
373  SQLWSTR(szProcName), (int) cbProcName);
374  SQLWSTR_FREE();
375  }
376  return _SQLProcedures(hstmt,
377  (ODBC_CHAR*) szCatalogName, cbCatalogName,
378  (ODBC_CHAR*) szSchemaName, cbSchemaName,
379  (ODBC_CHAR*) szProcName, cbProcName, 1);
380 }
381 #endif
382 
383 SQLRETURN ODBC_PUBLIC ODBC_API SQLProcedures(
384  SQLHSTMT hstmt,
385  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
386  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
387  SQLCHAR * szProcName, SQLSMALLINT cbProcName)
388 {
389  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLProcedures(%p, %s, %d, %s, %d, %s, %d)\n",
390  hstmt,
391  (const char*) szCatalogName, (int) cbCatalogName,
392  (const char*) szSchemaName, (int) cbSchemaName,
393  (const char*) szProcName, (int) cbProcName);
394 #ifdef ENABLE_ODBC_WIDE
395  return _SQLProcedures(hstmt,
396  (ODBC_CHAR*) szCatalogName, cbCatalogName,
397  (ODBC_CHAR*) szSchemaName, cbSchemaName,
398  (ODBC_CHAR*) szProcName, cbProcName, 0);
399 #else
400  return _SQLProcedures(hstmt,
401  szCatalogName, cbCatalogName,
402  szSchemaName, cbSchemaName,
403  szProcName, cbProcName);
404 #endif
405 }
406 
407 #ifdef ENABLE_ODBC_WIDE
408 static SQLRETURN _SQLTablePrivileges(SQLHSTMT hstmt,
409  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
410  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
411  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName, int wide);
412 
413 SQLRETURN ODBC_PUBLIC ODBC_API SQLTablePrivilegesW(
414  SQLHSTMT hstmt,
415  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
416  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
417  SQLWCHAR * szTableName, SQLSMALLINT cbTableName)
418 {
419  if (TDS_UNLIKELY(tds_write_dump)) {
420  SQLWSTR_BUFS(3);
421  tdsdump_log(TDS_DBG_FUNC, "SQLTablePrivilegesW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
422  hstmt,
423  SQLWSTR(szCatalogName), (int) cbCatalogName,
424  SQLWSTR(szSchemaName), (int) cbSchemaName,
425  SQLWSTR(szTableName), (int) cbTableName);
426  SQLWSTR_FREE();
427  }
428  return _SQLTablePrivileges(hstmt,
429  (ODBC_CHAR*) szCatalogName, cbCatalogName,
430  (ODBC_CHAR*) szSchemaName, cbSchemaName,
431  (ODBC_CHAR*) szTableName, cbTableName, 1);
432 }
433 #endif
434 
435 SQLRETURN ODBC_PUBLIC ODBC_API SQLTablePrivileges(
436  SQLHSTMT hstmt,
437  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
438  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
439  SQLCHAR * szTableName, SQLSMALLINT cbTableName)
440 {
441  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLTablePrivileges(%p, %s, %d, %s, %d, %s, %d)\n",
442  hstmt,
443  (const char*) szCatalogName, (int) cbCatalogName,
444  (const char*) szSchemaName, (int) cbSchemaName,
445  (const char*) szTableName, (int) cbTableName);
446 #ifdef ENABLE_ODBC_WIDE
447  return _SQLTablePrivileges(hstmt,
448  (ODBC_CHAR*) szCatalogName, cbCatalogName,
449  (ODBC_CHAR*) szSchemaName, cbSchemaName,
450  (ODBC_CHAR*) szTableName, cbTableName, 0);
451 #else
452  return _SQLTablePrivileges(hstmt,
453  szCatalogName, cbCatalogName,
454  szSchemaName, cbSchemaName,
455  szTableName, cbTableName);
456 #endif
457 }
458 
459 #ifdef ENABLE_ODBC_WIDE
460 static SQLRETURN _SQLConnect(SQLHDBC hdbc,
461  ODBC_CHAR * szDSN, SQLSMALLINT cbDSN,
462  ODBC_CHAR * szUID, SQLSMALLINT cbUID,
463  ODBC_CHAR * szAuthStr, SQLSMALLINT cbAuthStr, int wide);
464 
465 SQLRETURN ODBC_PUBLIC ODBC_API SQLConnectW(
466  SQLHDBC hdbc,
467  SQLWCHAR * szDSN, SQLSMALLINT cbDSN,
468  SQLWCHAR * szUID, SQLSMALLINT cbUID,
469  SQLWCHAR * szAuthStr, SQLSMALLINT cbAuthStr)
470 {
471  if (TDS_UNLIKELY(tds_write_dump)) {
472  SQLWSTR_BUFS(3);
473  tdsdump_log(TDS_DBG_FUNC, "SQLConnectW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
474  hdbc,
475  SQLWSTR(szDSN), (int) cbDSN,
476  SQLWSTR(szUID), (int) cbUID,
477  SQLWSTR(szAuthStr), (int) cbAuthStr);
478  SQLWSTR_FREE();
479  }
480  return _SQLConnect(hdbc,
481  (ODBC_CHAR*) szDSN, cbDSN,
482  (ODBC_CHAR*) szUID, cbUID,
483  (ODBC_CHAR*) szAuthStr, cbAuthStr, 1);
484 }
485 #endif
486 
487 SQLRETURN ODBC_PUBLIC ODBC_API SQLConnect(
488  SQLHDBC hdbc,
489  SQLCHAR * szDSN, SQLSMALLINT cbDSN,
490  SQLCHAR * szUID, SQLSMALLINT cbUID,
491  SQLCHAR * szAuthStr, SQLSMALLINT cbAuthStr)
492 {
493  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLConnect(%p, %s, %d, %s, %d, %s, %d)\n",
494  hdbc,
495  (const char*) szDSN, (int) cbDSN,
496  (const char*) szUID, (int) cbUID,
497  (const char*) szAuthStr, (int) cbAuthStr);
498 #ifdef ENABLE_ODBC_WIDE
499  return _SQLConnect(hdbc,
500  (ODBC_CHAR*) szDSN, cbDSN,
501  (ODBC_CHAR*) szUID, cbUID,
502  (ODBC_CHAR*) szAuthStr, cbAuthStr, 0);
503 #else
504  return _SQLConnect(hdbc,
505  szDSN, cbDSN,
506  szUID, cbUID,
507  szAuthStr, cbAuthStr);
508 #endif
509 }
510 
511 #ifdef ENABLE_ODBC_WIDE
512 static SQLRETURN _SQLDescribeCol(SQLHSTMT hstmt,
513  SQLUSMALLINT icol,
514  ODBC_CHAR * szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT FAR* pcbColName,
515  SQLSMALLINT * pfSqlType,
516  SQLULEN * pcbColDef,
517  SQLSMALLINT * pibScale,
518  SQLSMALLINT * pfNullable, int wide);
519 
520 SQLRETURN ODBC_PUBLIC ODBC_API SQLDescribeColW(
521  SQLHSTMT hstmt,
522  SQLUSMALLINT icol,
523  SQLWCHAR * szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT FAR* pcbColName,
524  SQLSMALLINT * pfSqlType,
525  SQLULEN * pcbColDef,
526  SQLSMALLINT * pibScale,
527  SQLSMALLINT * pfNullable)
528 {
529  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLDescribeColW(%p, %u, %p, %d, %p, %p, %p, %p, %p)\n",
530  hstmt,
531  (unsigned int) icol,
532  szColName, (int) cbColNameMax, pcbColName,
533  pfSqlType,
534  pcbColDef,
535  pibScale,
536  pfNullable);
537  return _SQLDescribeCol(hstmt,
538  icol,
539  (ODBC_CHAR*) szColName, cbColNameMax, pcbColName,
540  pfSqlType,
541  pcbColDef,
542  pibScale,
543  pfNullable, 1);
544 }
545 #endif
546 
547 SQLRETURN ODBC_PUBLIC ODBC_API SQLDescribeCol(
548  SQLHSTMT hstmt,
549  SQLUSMALLINT icol,
550  SQLCHAR * szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT FAR* pcbColName,
551  SQLSMALLINT * pfSqlType,
552  SQLULEN * pcbColDef,
553  SQLSMALLINT * pibScale,
554  SQLSMALLINT * pfNullable)
555 {
556  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLDescribeCol(%p, %u, %p, %d, %p, %p, %p, %p, %p)\n",
557  hstmt,
558  (unsigned int) icol,
559  szColName, (int) cbColNameMax, pcbColName,
560  pfSqlType,
561  pcbColDef,
562  pibScale,
563  pfNullable);
564 #ifdef ENABLE_ODBC_WIDE
565  return _SQLDescribeCol(hstmt,
566  icol,
567  (ODBC_CHAR*) szColName, cbColNameMax, pcbColName,
568  pfSqlType,
569  pcbColDef,
570  pibScale,
571  pfNullable, 0);
572 #else
573  return _SQLDescribeCol(hstmt,
574  icol,
575  szColName, cbColNameMax, pcbColName,
576  pfSqlType,
577  pcbColDef,
578  pibScale,
579  pfNullable);
580 #endif
581 }
582 
583 #ifdef ENABLE_ODBC_WIDE
584 static SQLRETURN _SQLGetDescRec(SQLHDESC hdesc,
585  SQLSMALLINT RecordNumber,
586  ODBC_CHAR * szName, SQLSMALLINT cbNameMax, SQLSMALLINT FAR* pcbName,
587  SQLSMALLINT * Type,
588  SQLSMALLINT * SubType,
589  SQLLEN * Length,
590  SQLSMALLINT * Precision,
591  SQLSMALLINT * Scale,
592  SQLSMALLINT * Nullable, int wide);
593 
594 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescRecW(
595  SQLHDESC hdesc,
596  SQLSMALLINT RecordNumber,
597  SQLWCHAR * szName, SQLSMALLINT cbNameMax, SQLSMALLINT FAR* pcbName,
598  SQLSMALLINT * Type,
599  SQLSMALLINT * SubType,
600  SQLLEN * Length,
601  SQLSMALLINT * Precision,
602  SQLSMALLINT * Scale,
603  SQLSMALLINT * Nullable)
604 {
605  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescRecW(%p, %d, %p, %d, %p, %p, %p, %p, %p, %p, %p)\n",
606  hdesc,
607  (int) RecordNumber,
608  szName, (int) cbNameMax, pcbName,
609  Type,
610  SubType,
611  Length,
612  Precision,
613  Scale,
614  Nullable);
615  return _SQLGetDescRec(hdesc,
616  RecordNumber,
617  (ODBC_CHAR*) szName, cbNameMax, pcbName,
618  Type,
619  SubType,
620  Length,
621  Precision,
622  Scale,
623  Nullable, 1);
624 }
625 #endif
626 
627 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescRec(
628  SQLHDESC hdesc,
629  SQLSMALLINT RecordNumber,
630  SQLCHAR * szName, SQLSMALLINT cbNameMax, SQLSMALLINT FAR* pcbName,
631  SQLSMALLINT * Type,
632  SQLSMALLINT * SubType,
633  SQLLEN * Length,
634  SQLSMALLINT * Precision,
635  SQLSMALLINT * Scale,
636  SQLSMALLINT * Nullable)
637 {
638  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescRec(%p, %d, %p, %d, %p, %p, %p, %p, %p, %p, %p)\n",
639  hdesc,
640  (int) RecordNumber,
641  szName, (int) cbNameMax, pcbName,
642  Type,
643  SubType,
644  Length,
645  Precision,
646  Scale,
647  Nullable);
648 #ifdef ENABLE_ODBC_WIDE
649  return _SQLGetDescRec(hdesc,
650  RecordNumber,
651  (ODBC_CHAR*) szName, cbNameMax, pcbName,
652  Type,
653  SubType,
654  Length,
655  Precision,
656  Scale,
657  Nullable, 0);
658 #else
659  return _SQLGetDescRec(hdesc,
660  RecordNumber,
661  szName, cbNameMax, pcbName,
662  Type,
663  SubType,
664  Length,
665  Precision,
666  Scale,
667  Nullable);
668 #endif
669 }
670 
671 #ifdef ENABLE_ODBC_WIDE
672 static SQLRETURN _SQLGetDescField(SQLHDESC hdesc,
673  SQLSMALLINT icol,
674  SQLSMALLINT fDescType,
675  SQLPOINTER Value,
676  SQLINTEGER BufferLength,
677  SQLINTEGER * StringLength, int wide);
678 
679 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescFieldW(
680  SQLHDESC hdesc,
681  SQLSMALLINT icol,
682  SQLSMALLINT fDescType,
683  SQLPOINTER Value,
684  SQLINTEGER BufferLength,
685  SQLINTEGER * StringLength)
686 {
687  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescFieldW(%p, %d, %d, %p, %d, %p)\n",
688  hdesc,
689  (int) icol,
690  (int) fDescType,
691  Value,
692  (int) BufferLength,
693  StringLength);
694  return _SQLGetDescField(hdesc,
695  icol,
696  fDescType,
697  Value,
698  BufferLength,
699  StringLength, 1);
700 }
701 #endif
702 
703 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescField(
704  SQLHDESC hdesc,
705  SQLSMALLINT icol,
706  SQLSMALLINT fDescType,
707  SQLPOINTER Value,
708  SQLINTEGER BufferLength,
709  SQLINTEGER * StringLength)
710 {
711  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescField(%p, %d, %d, %p, %d, %p)\n",
712  hdesc,
713  (int) icol,
714  (int) fDescType,
715  Value,
716  (int) BufferLength,
717  StringLength);
718 #ifdef ENABLE_ODBC_WIDE
719  return _SQLGetDescField(hdesc,
720  icol,
721  fDescType,
722  Value,
723  BufferLength,
724  StringLength, 0);
725 #else
726  return _SQLGetDescField(hdesc,
727  icol,
728  fDescType,
729  Value,
730  BufferLength,
731  StringLength);
732 #endif
733 }
734 
735 #ifdef ENABLE_ODBC_WIDE
736 static SQLRETURN _SQLSetDescField(SQLHDESC hdesc,
737  SQLSMALLINT icol,
738  SQLSMALLINT fDescType,
739  SQLPOINTER Value,
740  SQLINTEGER BufferLength, int wide);
741 
742 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetDescFieldW(
743  SQLHDESC hdesc,
744  SQLSMALLINT icol,
745  SQLSMALLINT fDescType,
746  SQLPOINTER Value,
747  SQLINTEGER BufferLength)
748 {
749  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetDescFieldW(%p, %d, %d, %p, %d)\n",
750  hdesc,
751  (int) icol,
752  (int) fDescType,
753  Value,
754  (int) BufferLength);
755  return _SQLSetDescField(hdesc,
756  icol,
757  fDescType,
758  Value,
759  BufferLength, 1);
760 }
761 #endif
762 
763 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetDescField(
764  SQLHDESC hdesc,
765  SQLSMALLINT icol,
766  SQLSMALLINT fDescType,
767  SQLPOINTER Value,
768  SQLINTEGER BufferLength)
769 {
770  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetDescField(%p, %d, %d, %p, %d)\n",
771  hdesc,
772  (int) icol,
773  (int) fDescType,
774  Value,
775  (int) BufferLength);
776 #ifdef ENABLE_ODBC_WIDE
777  return _SQLSetDescField(hdesc,
778  icol,
779  fDescType,
780  Value,
781  BufferLength, 0);
782 #else
783  return _SQLSetDescField(hdesc,
784  icol,
785  fDescType,
786  Value,
787  BufferLength);
788 #endif
789 }
790 
791 #ifdef ENABLE_ODBC_WIDE
792 static SQLRETURN _SQLExecDirect(SQLHSTMT hstmt,
793  ODBC_CHAR * szSqlStr, SQLINTEGER cbSqlStr, int wide);
794 
795 SQLRETURN ODBC_PUBLIC ODBC_API SQLExecDirectW(
796  SQLHSTMT hstmt,
797  SQLWCHAR * szSqlStr, SQLINTEGER cbSqlStr)
798 {
799  if (TDS_UNLIKELY(tds_write_dump)) {
800  SQLWSTR_BUFS(1);
801  tdsdump_log(TDS_DBG_FUNC, "SQLExecDirectW(%p, %ls, %d)\n",
802  hstmt,
803  SQLWSTR(szSqlStr), (int) cbSqlStr);
804  SQLWSTR_FREE();
805  }
806  return _SQLExecDirect(hstmt,
807  (ODBC_CHAR*) szSqlStr, cbSqlStr, 1);
808 }
809 #endif
810 
811 SQLRETURN ODBC_PUBLIC ODBC_API SQLExecDirect(
812  SQLHSTMT hstmt,
813  SQLCHAR * szSqlStr, SQLINTEGER cbSqlStr)
814 {
815  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLExecDirect(%p, %s, %d)\n",
816  hstmt,
817  (const char*) szSqlStr, (int) cbSqlStr);
818 #ifdef ENABLE_ODBC_WIDE
819  return _SQLExecDirect(hstmt,
820  (ODBC_CHAR*) szSqlStr, cbSqlStr, 0);
821 #else
822  return _SQLExecDirect(hstmt,
823  szSqlStr, cbSqlStr);
824 #endif
825 }
826 
827 #ifdef ENABLE_ODBC_WIDE
828 static SQLRETURN _SQLPrepare(SQLHSTMT hstmt,
829  ODBC_CHAR * szSqlStr, SQLINTEGER cbSqlStr, int wide);
830 
831 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrepareW(
832  SQLHSTMT hstmt,
833  SQLWCHAR * szSqlStr, SQLINTEGER cbSqlStr)
834 {
835  if (TDS_UNLIKELY(tds_write_dump)) {
836  SQLWSTR_BUFS(1);
837  tdsdump_log(TDS_DBG_FUNC, "SQLPrepareW(%p, %ls, %d)\n",
838  hstmt,
839  SQLWSTR(szSqlStr), (int) cbSqlStr);
840  SQLWSTR_FREE();
841  }
842  return _SQLPrepare(hstmt,
843  (ODBC_CHAR*) szSqlStr, cbSqlStr, 1);
844 }
845 #endif
846 
847 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrepare(
848  SQLHSTMT hstmt,
849  SQLCHAR * szSqlStr, SQLINTEGER cbSqlStr)
850 {
851  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLPrepare(%p, %s, %d)\n",
852  hstmt,
853  (const char*) szSqlStr, (int) cbSqlStr);
854 #ifdef ENABLE_ODBC_WIDE
855  return _SQLPrepare(hstmt,
856  (ODBC_CHAR*) szSqlStr, cbSqlStr, 0);
857 #else
858  return _SQLPrepare(hstmt,
859  szSqlStr, cbSqlStr);
860 #endif
861 }
862 
863 #ifdef ENABLE_ODBC_WIDE
864 static SQLRETURN _SQLSetCursorName(SQLHSTMT hstmt,
865  ODBC_CHAR * szCursor, SQLSMALLINT cbCursor, int wide);
866 
867 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetCursorNameW(
868  SQLHSTMT hstmt,
869  SQLWCHAR * szCursor, SQLSMALLINT cbCursor)
870 {
871  if (TDS_UNLIKELY(tds_write_dump)) {
872  SQLWSTR_BUFS(1);
873  tdsdump_log(TDS_DBG_FUNC, "SQLSetCursorNameW(%p, %ls, %d)\n",
874  hstmt,
875  SQLWSTR(szCursor), (int) cbCursor);
876  SQLWSTR_FREE();
877  }
878  return _SQLSetCursorName(hstmt,
879  (ODBC_CHAR*) szCursor, cbCursor, 1);
880 }
881 #endif
882 
883 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetCursorName(
884  SQLHSTMT hstmt,
885  SQLCHAR * szCursor, SQLSMALLINT cbCursor)
886 {
887  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetCursorName(%p, %s, %d)\n",
888  hstmt,
889  (const char*) szCursor, (int) cbCursor);
890 #ifdef ENABLE_ODBC_WIDE
891  return _SQLSetCursorName(hstmt,
892  (ODBC_CHAR*) szCursor, cbCursor, 0);
893 #else
894  return _SQLSetCursorName(hstmt,
895  szCursor, cbCursor);
896 #endif
897 }
898 
899 #ifdef ENABLE_ODBC_WIDE
900 static SQLRETURN _SQLGetCursorName(SQLHSTMT hstmt,
901  ODBC_CHAR * szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT FAR* pcbCursor, int wide);
902 
903 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetCursorNameW(
904  SQLHSTMT hstmt,
905  SQLWCHAR * szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT FAR* pcbCursor)
906 {
907  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetCursorNameW(%p, %p, %d, %p)\n",
908  hstmt,
909  szCursor, (int) cbCursorMax, pcbCursor);
910  return _SQLGetCursorName(hstmt,
911  (ODBC_CHAR*) szCursor, cbCursorMax, pcbCursor, 1);
912 }
913 #endif
914 
915 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetCursorName(
916  SQLHSTMT hstmt,
917  SQLCHAR * szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT FAR* pcbCursor)
918 {
919  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetCursorName(%p, %p, %d, %p)\n",
920  hstmt,
921  szCursor, (int) cbCursorMax, pcbCursor);
922 #ifdef ENABLE_ODBC_WIDE
923  return _SQLGetCursorName(hstmt,
924  (ODBC_CHAR*) szCursor, cbCursorMax, pcbCursor, 0);
925 #else
926  return _SQLGetCursorName(hstmt,
927  szCursor, cbCursorMax, pcbCursor);
928 #endif
929 }
930 
931 #ifdef ENABLE_ODBC_WIDE
932 static SQLRETURN _SQLColumns(SQLHSTMT hstmt,
933  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
934  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
935  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
936  ODBC_CHAR * szColumnName, SQLSMALLINT cbColumnName, int wide);
937 
938 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumnsW(
939  SQLHSTMT hstmt,
940  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
941  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
942  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
943  SQLWCHAR * szColumnName, SQLSMALLINT cbColumnName)
944 {
945  if (TDS_UNLIKELY(tds_write_dump)) {
946  SQLWSTR_BUFS(4);
947  tdsdump_log(TDS_DBG_FUNC, "SQLColumnsW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
948  hstmt,
949  SQLWSTR(szCatalogName), (int) cbCatalogName,
950  SQLWSTR(szSchemaName), (int) cbSchemaName,
951  SQLWSTR(szTableName), (int) cbTableName,
952  SQLWSTR(szColumnName), (int) cbColumnName);
953  SQLWSTR_FREE();
954  }
955  return _SQLColumns(hstmt,
956  (ODBC_CHAR*) szCatalogName, cbCatalogName,
957  (ODBC_CHAR*) szSchemaName, cbSchemaName,
958  (ODBC_CHAR*) szTableName, cbTableName,
959  (ODBC_CHAR*) szColumnName, cbColumnName, 1);
960 }
961 #endif
962 
963 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumns(
964  SQLHSTMT hstmt,
965  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
966  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
967  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
968  SQLCHAR * szColumnName, SQLSMALLINT cbColumnName)
969 {
970  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLColumns(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
971  hstmt,
972  (const char*) szCatalogName, (int) cbCatalogName,
973  (const char*) szSchemaName, (int) cbSchemaName,
974  (const char*) szTableName, (int) cbTableName,
975  (const char*) szColumnName, (int) cbColumnName);
976 #ifdef ENABLE_ODBC_WIDE
977  return _SQLColumns(hstmt,
978  (ODBC_CHAR*) szCatalogName, cbCatalogName,
979  (ODBC_CHAR*) szSchemaName, cbSchemaName,
980  (ODBC_CHAR*) szTableName, cbTableName,
981  (ODBC_CHAR*) szColumnName, cbColumnName, 0);
982 #else
983  return _SQLColumns(hstmt,
984  szCatalogName, cbCatalogName,
985  szSchemaName, cbSchemaName,
986  szTableName, cbTableName,
987  szColumnName, cbColumnName);
988 #endif
989 }
990 
991 #ifdef ENABLE_ODBC_WIDE
992 static SQLRETURN _SQLGetConnectAttr(SQLHDBC hdbc,
993  SQLINTEGER Attribute,
994  SQLPOINTER Value,
995  SQLINTEGER BufferLength,
996  SQLINTEGER * StringLength, int wide);
997 
998 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetConnectAttrW(
999  SQLHDBC hdbc,
1000  SQLINTEGER Attribute,
1001  SQLPOINTER Value,
1002  SQLINTEGER BufferLength,
1003  SQLINTEGER * StringLength)
1004 {
1005  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetConnectAttrW(%p, %d, %p, %d, %p)\n",
1006  hdbc,
1007  (int) Attribute,
1008  Value,
1009  (int) BufferLength,
1010  StringLength);
1011  return _SQLGetConnectAttr(hdbc,
1012  Attribute,
1013  Value,
1014  BufferLength,
1015  StringLength, 1);
1016 }
1017 #endif
1018 
1019 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetConnectAttr(
1020  SQLHDBC hdbc,
1021  SQLINTEGER Attribute,
1022  SQLPOINTER Value,
1023  SQLINTEGER BufferLength,
1024  SQLINTEGER * StringLength)
1025 {
1026  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetConnectAttr(%p, %d, %p, %d, %p)\n",
1027  hdbc,
1028  (int) Attribute,
1029  Value,
1030  (int) BufferLength,
1031  StringLength);
1032 #ifdef ENABLE_ODBC_WIDE
1033  return _SQLGetConnectAttr(hdbc,
1034  Attribute,
1035  Value,
1036  BufferLength,
1037  StringLength, 0);
1038 #else
1039  return _SQLGetConnectAttr(hdbc,
1040  Attribute,
1041  Value,
1042  BufferLength,
1043  StringLength);
1044 #endif
1045 }
1046 
1047 #ifdef ENABLE_ODBC_WIDE
1048 static SQLRETURN _SQLSetConnectAttr(SQLHDBC hdbc,
1049  SQLINTEGER Attribute,
1050  SQLPOINTER ValuePtr,
1051  SQLINTEGER StringLength, int wide);
1052 
1053 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetConnectAttrW(
1054  SQLHDBC hdbc,
1055  SQLINTEGER Attribute,
1056  SQLPOINTER ValuePtr,
1057  SQLINTEGER StringLength)
1058 {
1059  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetConnectAttrW(%p, %d, %p, %d)\n",
1060  hdbc,
1061  (int) Attribute,
1062  ValuePtr,
1063  (int) StringLength);
1064  return _SQLSetConnectAttr(hdbc,
1065  Attribute,
1066  ValuePtr,
1067  StringLength, 1);
1068 }
1069 #endif
1070 
1071 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetConnectAttr(
1072  SQLHDBC hdbc,
1073  SQLINTEGER Attribute,
1074  SQLPOINTER ValuePtr,
1075  SQLINTEGER StringLength)
1076 {
1077  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetConnectAttr(%p, %d, %p, %d)\n",
1078  hdbc,
1079  (int) Attribute,
1080  ValuePtr,
1081  (int) StringLength);
1082 #ifdef ENABLE_ODBC_WIDE
1083  return _SQLSetConnectAttr(hdbc,
1084  Attribute,
1085  ValuePtr,
1086  StringLength, 0);
1087 #else
1088  return _SQLSetConnectAttr(hdbc,
1089  Attribute,
1090  ValuePtr,
1091  StringLength);
1092 #endif
1093 }
1094 
1095 #ifdef ENABLE_ODBC_WIDE
1096 static SQLRETURN _SQLSpecialColumns(SQLHSTMT hstmt,
1097  SQLUSMALLINT fColType,
1098  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1099  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1100  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
1101  SQLUSMALLINT fScope,
1102  SQLUSMALLINT fNullable, int wide);
1103 
1104 SQLRETURN ODBC_PUBLIC ODBC_API SQLSpecialColumnsW(
1105  SQLHSTMT hstmt,
1106  SQLUSMALLINT fColType,
1107  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1108  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1109  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
1110  SQLUSMALLINT fScope,
1111  SQLUSMALLINT fNullable)
1112 {
1113  if (TDS_UNLIKELY(tds_write_dump)) {
1114  SQLWSTR_BUFS(3);
1115  tdsdump_log(TDS_DBG_FUNC, "SQLSpecialColumnsW(%p, %u, %ls, %d, %ls, %d, %ls, %d, %u, %u)\n",
1116  hstmt,
1117  (unsigned int) fColType,
1118  SQLWSTR(szCatalogName), (int) cbCatalogName,
1119  SQLWSTR(szSchemaName), (int) cbSchemaName,
1120  SQLWSTR(szTableName), (int) cbTableName,
1121  (unsigned int) fScope,
1122  (unsigned int) fNullable);
1123  SQLWSTR_FREE();
1124  }
1125  return _SQLSpecialColumns(hstmt,
1126  fColType,
1127  (ODBC_CHAR*) szCatalogName, cbCatalogName,
1128  (ODBC_CHAR*) szSchemaName, cbSchemaName,
1129  (ODBC_CHAR*) szTableName, cbTableName,
1130  fScope,
1131  fNullable, 1);
1132 }
1133 #endif
1134 
1135 SQLRETURN ODBC_PUBLIC ODBC_API SQLSpecialColumns(
1136  SQLHSTMT hstmt,
1137  SQLUSMALLINT fColType,
1138  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1139  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1140  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
1141  SQLUSMALLINT fScope,
1142  SQLUSMALLINT fNullable)
1143 {
1144  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSpecialColumns(%p, %u, %s, %d, %s, %d, %s, %d, %u, %u)\n",
1145  hstmt,
1146  (unsigned int) fColType,
1147  (const char*) szCatalogName, (int) cbCatalogName,
1148  (const char*) szSchemaName, (int) cbSchemaName,
1149  (const char*) szTableName, (int) cbTableName,
1150  (unsigned int) fScope,
1151  (unsigned int) fNullable);
1152 #ifdef ENABLE_ODBC_WIDE
1153  return _SQLSpecialColumns(hstmt,
1154  fColType,
1155  (ODBC_CHAR*) szCatalogName, cbCatalogName,
1156  (ODBC_CHAR*) szSchemaName, cbSchemaName,
1157  (ODBC_CHAR*) szTableName, cbTableName,
1158  fScope,
1159  fNullable, 0);
1160 #else
1161  return _SQLSpecialColumns(hstmt,
1162  fColType,
1163  szCatalogName, cbCatalogName,
1164  szSchemaName, cbSchemaName,
1165  szTableName, cbTableName,
1166  fScope,
1167  fNullable);
1168 #endif
1169 }
1170 
1171 #ifdef ENABLE_ODBC_WIDE
1172 static SQLRETURN _SQLStatistics(SQLHSTMT hstmt,
1173  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1174  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1175  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
1176  SQLUSMALLINT fUnique,
1177  SQLUSMALLINT fAccuracy, int wide);
1178 
1179 SQLRETURN ODBC_PUBLIC ODBC_API SQLStatisticsW(
1180  SQLHSTMT hstmt,
1181  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1182  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1183  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
1184  SQLUSMALLINT fUnique,
1185  SQLUSMALLINT fAccuracy)
1186 {
1187  if (TDS_UNLIKELY(tds_write_dump)) {
1188  SQLWSTR_BUFS(3);
1189  tdsdump_log(TDS_DBG_FUNC, "SQLStatisticsW(%p, %ls, %d, %ls, %d, %ls, %d, %u, %u)\n",
1190  hstmt,
1191  SQLWSTR(szCatalogName), (int) cbCatalogName,
1192  SQLWSTR(szSchemaName), (int) cbSchemaName,
1193  SQLWSTR(szTableName), (int) cbTableName,
1194  (unsigned int) fUnique,
1195  (unsigned int) fAccuracy);
1196  SQLWSTR_FREE();
1197  }
1198  return _SQLStatistics(hstmt,
1199  (ODBC_CHAR*) szCatalogName, cbCatalogName,
1200  (ODBC_CHAR*) szSchemaName, cbSchemaName,
1201  (ODBC_CHAR*) szTableName, cbTableName,
1202  fUnique,
1203  fAccuracy, 1);
1204 }
1205 #endif
1206 
1207 SQLRETURN ODBC_PUBLIC ODBC_API SQLStatistics(
1208  SQLHSTMT hstmt,
1209  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1210  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1211  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
1212  SQLUSMALLINT fUnique,
1213  SQLUSMALLINT fAccuracy)
1214 {
1215  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLStatistics(%p, %s, %d, %s, %d, %s, %d, %u, %u)\n",
1216  hstmt,
1217  (const char*) szCatalogName, (int) cbCatalogName,
1218  (const char*) szSchemaName, (int) cbSchemaName,
1219  (const char*) szTableName, (int) cbTableName,
1220  (unsigned int) fUnique,
1221  (unsigned int) fAccuracy);
1222 #ifdef ENABLE_ODBC_WIDE
1223  return _SQLStatistics(hstmt,
1224  (ODBC_CHAR*) szCatalogName, cbCatalogName,
1225  (ODBC_CHAR*) szSchemaName, cbSchemaName,
1226  (ODBC_CHAR*) szTableName, cbTableName,
1227  fUnique,
1228  fAccuracy, 0);
1229 #else
1230  return _SQLStatistics(hstmt,
1231  szCatalogName, cbCatalogName,
1232  szSchemaName, cbSchemaName,
1233  szTableName, cbTableName,
1234  fUnique,
1235  fAccuracy);
1236 #endif
1237 }
1238 
1239 #ifdef ENABLE_ODBC_WIDE
1240 static SQLRETURN _SQLTables(SQLHSTMT hstmt,
1241  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1242  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1243  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
1244  ODBC_CHAR * szTableType, SQLSMALLINT cbTableType, int wide);
1245 
1246 SQLRETURN ODBC_PUBLIC ODBC_API SQLTablesW(
1247  SQLHSTMT hstmt,
1248  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1249  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1250  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
1251  SQLWCHAR * szTableType, SQLSMALLINT cbTableType)
1252 {
1253  if (TDS_UNLIKELY(tds_write_dump)) {
1254  SQLWSTR_BUFS(4);
1255  tdsdump_log(TDS_DBG_FUNC, "SQLTablesW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
1256  hstmt,
1257  SQLWSTR(szCatalogName), (int) cbCatalogName,
1258  SQLWSTR(szSchemaName), (int) cbSchemaName,
1259  SQLWSTR(szTableName), (int) cbTableName,
1260  SQLWSTR(szTableType), (int) cbTableType);
1261  SQLWSTR_FREE();
1262  }
1263  return _SQLTables(hstmt,
1264  (ODBC_CHAR*) szCatalogName, cbCatalogName,
1265  (ODBC_CHAR*) szSchemaName, cbSchemaName,
1266  (ODBC_CHAR*) szTableName, cbTableName,
1267  (ODBC_CHAR*) szTableType, cbTableType, 1);
1268 }
1269 #endif
1270 
1271 SQLRETURN ODBC_PUBLIC ODBC_API SQLTables(
1272  SQLHSTMT hstmt,
1273  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
1274  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
1275  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
1276  SQLCHAR * szTableType, SQLSMALLINT cbTableType)
1277 {
1278  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLTables(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
1279  hstmt,
1280  (const char*) szCatalogName, (int) cbCatalogName,
1281  (const char*) szSchemaName, (int) cbSchemaName,
1282  (const char*) szTableName, (int) cbTableName,
1283  (const char*) szTableType, (int) cbTableType);
1284 #ifdef ENABLE_ODBC_WIDE
1285  return _SQLTables(hstmt,
1286  (ODBC_CHAR*) szCatalogName, cbCatalogName,
1287  (ODBC_CHAR*) szSchemaName, cbSchemaName,
1288  (ODBC_CHAR*) szTableName, cbTableName,
1289  (ODBC_CHAR*) szTableType, cbTableType, 0);
1290 #else
1291  return _SQLTables(hstmt,
1292  szCatalogName, cbCatalogName,
1293  szSchemaName, cbSchemaName,
1294  szTableName, cbTableName,
1295  szTableType, cbTableType);
1296 #endif
1297 }
1298 
1299 #define tdsdump_log TDSDUMP_LOG_FAST
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
-
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00128_source.html freetds-1.2.3/doc/reference/a00128_source.html --- freetds-1.1.6/doc/reference/a00128_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00128_source.html 2020-07-09 09:01:55.000000000 +0000 @@ -0,0 +1,1511 @@ + + + + + + + +FreeTDS API: src/odbc/odbc_export.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
odbc_export.h
+
+
+
1 #undef tdsdump_log
+
2 
+
3 #ifdef ENABLE_ODBC_WIDE
+
4 static SQLRETURN _SQLDriverConnect(SQLHDBC hdbc,
+
5  SQLHWND hwnd,
+
6  ODBC_CHAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
+
7  ODBC_CHAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT FAR* pcbConnStrOut,
+
8  SQLUSMALLINT fDriverCompletion, int wide);
+
9 
+
10 SQLRETURN ODBC_PUBLIC ODBC_API SQLDriverConnectW(
+
11  SQLHDBC hdbc,
+
12  SQLHWND hwnd,
+
13  SQLWCHAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
+
14  SQLWCHAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT FAR* pcbConnStrOut,
+
15  SQLUSMALLINT fDriverCompletion)
+
16 {
+
17  if (TDS_UNLIKELY(tds_write_dump)) {
+
18  SQLWSTR_BUFS(1);
+
19  tdsdump_log(TDS_DBG_FUNC, "SQLDriverConnectW(%p, %p, %ls, %d, %p, %d, %p, %u)\n",
+
20  hdbc,
+
21  hwnd,
+
22  SQLWSTR(szConnStrIn), (int) cbConnStrIn,
+
23  szConnStrOut, (int) cbConnStrOutMax, pcbConnStrOut,
+
24  (unsigned int) fDriverCompletion);
+
25  SQLWSTR_FREE();
+
26  }
+
27  return _SQLDriverConnect(hdbc,
+
28  hwnd,
+
29  (ODBC_CHAR*) szConnStrIn, cbConnStrIn,
+
30  (ODBC_CHAR*) szConnStrOut, cbConnStrOutMax, pcbConnStrOut,
+
31  fDriverCompletion, 1);
+
32 }
+
33 #endif
+
34 
+
35 SQLRETURN ODBC_PUBLIC ODBC_API SQLDriverConnect(
+
36  SQLHDBC hdbc,
+
37  SQLHWND hwnd,
+
38  SQLCHAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
+
39  SQLCHAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT FAR* pcbConnStrOut,
+
40  SQLUSMALLINT fDriverCompletion)
+
41 {
+
42  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLDriverConnect(%p, %p, %s, %d, %p, %d, %p, %u)\n",
+
43  hdbc,
+
44  hwnd,
+
45  (const char*) szConnStrIn, (int) cbConnStrIn,
+
46  szConnStrOut, (int) cbConnStrOutMax, pcbConnStrOut,
+
47  (unsigned int) fDriverCompletion);
+
48 #ifdef ENABLE_ODBC_WIDE
+
49  return _SQLDriverConnect(hdbc,
+
50  hwnd,
+
51  (ODBC_CHAR*) szConnStrIn, cbConnStrIn,
+
52  (ODBC_CHAR*) szConnStrOut, cbConnStrOutMax, pcbConnStrOut,
+
53  fDriverCompletion, 0);
+
54 #else
+
55  return _SQLDriverConnect(hdbc,
+
56  hwnd,
+
57  szConnStrIn, cbConnStrIn,
+
58  szConnStrOut, cbConnStrOutMax, pcbConnStrOut,
+
59  fDriverCompletion);
+
60 #endif
+
61 }
+
62 
+
63 #ifdef ENABLE_ODBC_WIDE
+
64 static SQLRETURN _SQLColumnPrivileges(SQLHSTMT hstmt,
+
65  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
66  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
67  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
+
68  ODBC_CHAR * szColumnName, SQLSMALLINT cbColumnName, int wide);
+
69 
+
70 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumnPrivilegesW(
+
71  SQLHSTMT hstmt,
+
72  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
73  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
74  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
+
75  SQLWCHAR * szColumnName, SQLSMALLINT cbColumnName)
+
76 {
+
77  if (TDS_UNLIKELY(tds_write_dump)) {
+
78  SQLWSTR_BUFS(4);
+
79  tdsdump_log(TDS_DBG_FUNC, "SQLColumnPrivilegesW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
+
80  hstmt,
+
81  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
82  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
83  SQLWSTR(szTableName), (int) cbTableName,
+
84  SQLWSTR(szColumnName), (int) cbColumnName);
+
85  SQLWSTR_FREE();
+
86  }
+
87  return _SQLColumnPrivileges(hstmt,
+
88  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
89  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
90  (ODBC_CHAR*) szTableName, cbTableName,
+
91  (ODBC_CHAR*) szColumnName, cbColumnName, 1);
+
92 }
+
93 #endif
+
94 
+
95 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumnPrivileges(
+
96  SQLHSTMT hstmt,
+
97  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
98  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
99  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
+
100  SQLCHAR * szColumnName, SQLSMALLINT cbColumnName)
+
101 {
+
102  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLColumnPrivileges(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
+
103  hstmt,
+
104  (const char*) szCatalogName, (int) cbCatalogName,
+
105  (const char*) szSchemaName, (int) cbSchemaName,
+
106  (const char*) szTableName, (int) cbTableName,
+
107  (const char*) szColumnName, (int) cbColumnName);
+
108 #ifdef ENABLE_ODBC_WIDE
+
109  return _SQLColumnPrivileges(hstmt,
+
110  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
111  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
112  (ODBC_CHAR*) szTableName, cbTableName,
+
113  (ODBC_CHAR*) szColumnName, cbColumnName, 0);
+
114 #else
+
115  return _SQLColumnPrivileges(hstmt,
+
116  szCatalogName, cbCatalogName,
+
117  szSchemaName, cbSchemaName,
+
118  szTableName, cbTableName,
+
119  szColumnName, cbColumnName);
+
120 #endif
+
121 }
+
122 
+
123 #ifdef ENABLE_ODBC_WIDE
+
124 static SQLRETURN _SQLForeignKeys(SQLHSTMT hstmt,
+
125  ODBC_CHAR * szPkCatalogName, SQLSMALLINT cbPkCatalogName,
+
126  ODBC_CHAR * szPkSchemaName, SQLSMALLINT cbPkSchemaName,
+
127  ODBC_CHAR * szPkTableName, SQLSMALLINT cbPkTableName,
+
128  ODBC_CHAR * szFkCatalogName, SQLSMALLINT cbFkCatalogName,
+
129  ODBC_CHAR * szFkSchemaName, SQLSMALLINT cbFkSchemaName,
+
130  ODBC_CHAR * szFkTableName, SQLSMALLINT cbFkTableName, int wide);
+
131 
+
132 SQLRETURN ODBC_PUBLIC ODBC_API SQLForeignKeysW(
+
133  SQLHSTMT hstmt,
+
134  SQLWCHAR * szPkCatalogName, SQLSMALLINT cbPkCatalogName,
+
135  SQLWCHAR * szPkSchemaName, SQLSMALLINT cbPkSchemaName,
+
136  SQLWCHAR * szPkTableName, SQLSMALLINT cbPkTableName,
+
137  SQLWCHAR * szFkCatalogName, SQLSMALLINT cbFkCatalogName,
+
138  SQLWCHAR * szFkSchemaName, SQLSMALLINT cbFkSchemaName,
+
139  SQLWCHAR * szFkTableName, SQLSMALLINT cbFkTableName)
+
140 {
+
141  if (TDS_UNLIKELY(tds_write_dump)) {
+
142  SQLWSTR_BUFS(6);
+
143  tdsdump_log(TDS_DBG_FUNC, "SQLForeignKeysW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
+
144  hstmt,
+
145  SQLWSTR(szPkCatalogName), (int) cbPkCatalogName,
+
146  SQLWSTR(szPkSchemaName), (int) cbPkSchemaName,
+
147  SQLWSTR(szPkTableName), (int) cbPkTableName,
+
148  SQLWSTR(szFkCatalogName), (int) cbFkCatalogName,
+
149  SQLWSTR(szFkSchemaName), (int) cbFkSchemaName,
+
150  SQLWSTR(szFkTableName), (int) cbFkTableName);
+
151  SQLWSTR_FREE();
+
152  }
+
153  return _SQLForeignKeys(hstmt,
+
154  (ODBC_CHAR*) szPkCatalogName, cbPkCatalogName,
+
155  (ODBC_CHAR*) szPkSchemaName, cbPkSchemaName,
+
156  (ODBC_CHAR*) szPkTableName, cbPkTableName,
+
157  (ODBC_CHAR*) szFkCatalogName, cbFkCatalogName,
+
158  (ODBC_CHAR*) szFkSchemaName, cbFkSchemaName,
+
159  (ODBC_CHAR*) szFkTableName, cbFkTableName, 1);
+
160 }
+
161 #endif
+
162 
+
163 SQLRETURN ODBC_PUBLIC ODBC_API SQLForeignKeys(
+
164  SQLHSTMT hstmt,
+
165  SQLCHAR * szPkCatalogName, SQLSMALLINT cbPkCatalogName,
+
166  SQLCHAR * szPkSchemaName, SQLSMALLINT cbPkSchemaName,
+
167  SQLCHAR * szPkTableName, SQLSMALLINT cbPkTableName,
+
168  SQLCHAR * szFkCatalogName, SQLSMALLINT cbFkCatalogName,
+
169  SQLCHAR * szFkSchemaName, SQLSMALLINT cbFkSchemaName,
+
170  SQLCHAR * szFkTableName, SQLSMALLINT cbFkTableName)
+
171 {
+
172  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLForeignKeys(%p, %s, %d, %s, %d, %s, %d, %s, %d, %s, %d, %s, %d)\n",
+
173  hstmt,
+
174  (const char*) szPkCatalogName, (int) cbPkCatalogName,
+
175  (const char*) szPkSchemaName, (int) cbPkSchemaName,
+
176  (const char*) szPkTableName, (int) cbPkTableName,
+
177  (const char*) szFkCatalogName, (int) cbFkCatalogName,
+
178  (const char*) szFkSchemaName, (int) cbFkSchemaName,
+
179  (const char*) szFkTableName, (int) cbFkTableName);
+
180 #ifdef ENABLE_ODBC_WIDE
+
181  return _SQLForeignKeys(hstmt,
+
182  (ODBC_CHAR*) szPkCatalogName, cbPkCatalogName,
+
183  (ODBC_CHAR*) szPkSchemaName, cbPkSchemaName,
+
184  (ODBC_CHAR*) szPkTableName, cbPkTableName,
+
185  (ODBC_CHAR*) szFkCatalogName, cbFkCatalogName,
+
186  (ODBC_CHAR*) szFkSchemaName, cbFkSchemaName,
+
187  (ODBC_CHAR*) szFkTableName, cbFkTableName, 0);
+
188 #else
+
189  return _SQLForeignKeys(hstmt,
+
190  szPkCatalogName, cbPkCatalogName,
+
191  szPkSchemaName, cbPkSchemaName,
+
192  szPkTableName, cbPkTableName,
+
193  szFkCatalogName, cbFkCatalogName,
+
194  szFkSchemaName, cbFkSchemaName,
+
195  szFkTableName, cbFkTableName);
+
196 #endif
+
197 }
+
198 
+
199 #ifdef ENABLE_ODBC_WIDE
+
200 static SQLRETURN _SQLNativeSql(SQLHDBC hdbc,
+
201  ODBC_CHAR * szSqlStrIn, SQLINTEGER cbSqlStrIn,
+
202  ODBC_CHAR * szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER FAR* pcbSqlStr, int wide);
+
203 
+
204 SQLRETURN ODBC_PUBLIC ODBC_API SQLNativeSqlW(
+
205  SQLHDBC hdbc,
+
206  SQLWCHAR * szSqlStrIn, SQLINTEGER cbSqlStrIn,
+
207  SQLWCHAR * szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER FAR* pcbSqlStr)
+
208 {
+
209  if (TDS_UNLIKELY(tds_write_dump)) {
+
210  SQLWSTR_BUFS(1);
+
211  tdsdump_log(TDS_DBG_FUNC, "SQLNativeSqlW(%p, %ls, %d, %p, %d, %p)\n",
+
212  hdbc,
+
213  SQLWSTR(szSqlStrIn), (int) cbSqlStrIn,
+
214  szSqlStr, (int) cbSqlStrMax, pcbSqlStr);
+
215  SQLWSTR_FREE();
+
216  }
+
217  return _SQLNativeSql(hdbc,
+
218  (ODBC_CHAR*) szSqlStrIn, cbSqlStrIn,
+
219  (ODBC_CHAR*) szSqlStr, cbSqlStrMax, pcbSqlStr, 1);
+
220 }
+
221 #endif
+
222 
+
223 SQLRETURN ODBC_PUBLIC ODBC_API SQLNativeSql(
+
224  SQLHDBC hdbc,
+
225  SQLCHAR * szSqlStrIn, SQLINTEGER cbSqlStrIn,
+
226  SQLCHAR * szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER FAR* pcbSqlStr)
+
227 {
+
228  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLNativeSql(%p, %s, %d, %p, %d, %p)\n",
+
229  hdbc,
+
230  (const char*) szSqlStrIn, (int) cbSqlStrIn,
+
231  szSqlStr, (int) cbSqlStrMax, pcbSqlStr);
+
232 #ifdef ENABLE_ODBC_WIDE
+
233  return _SQLNativeSql(hdbc,
+
234  (ODBC_CHAR*) szSqlStrIn, cbSqlStrIn,
+
235  (ODBC_CHAR*) szSqlStr, cbSqlStrMax, pcbSqlStr, 0);
+
236 #else
+
237  return _SQLNativeSql(hdbc,
+
238  szSqlStrIn, cbSqlStrIn,
+
239  szSqlStr, cbSqlStrMax, pcbSqlStr);
+
240 #endif
+
241 }
+
242 
+
243 #ifdef ENABLE_ODBC_WIDE
+
244 static SQLRETURN _SQLPrimaryKeys(SQLHSTMT hstmt,
+
245  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
246  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
247  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName, int wide);
+
248 
+
249 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrimaryKeysW(
+
250  SQLHSTMT hstmt,
+
251  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
252  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
253  SQLWCHAR * szTableName, SQLSMALLINT cbTableName)
+
254 {
+
255  if (TDS_UNLIKELY(tds_write_dump)) {
+
256  SQLWSTR_BUFS(3);
+
257  tdsdump_log(TDS_DBG_FUNC, "SQLPrimaryKeysW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
+
258  hstmt,
+
259  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
260  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
261  SQLWSTR(szTableName), (int) cbTableName);
+
262  SQLWSTR_FREE();
+
263  }
+
264  return _SQLPrimaryKeys(hstmt,
+
265  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
266  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
267  (ODBC_CHAR*) szTableName, cbTableName, 1);
+
268 }
+
269 #endif
+
270 
+
271 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrimaryKeys(
+
272  SQLHSTMT hstmt,
+
273  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
274  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
275  SQLCHAR * szTableName, SQLSMALLINT cbTableName)
+
276 {
+
277  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLPrimaryKeys(%p, %s, %d, %s, %d, %s, %d)\n",
+
278  hstmt,
+
279  (const char*) szCatalogName, (int) cbCatalogName,
+
280  (const char*) szSchemaName, (int) cbSchemaName,
+
281  (const char*) szTableName, (int) cbTableName);
+
282 #ifdef ENABLE_ODBC_WIDE
+
283  return _SQLPrimaryKeys(hstmt,
+
284  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
285  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
286  (ODBC_CHAR*) szTableName, cbTableName, 0);
+
287 #else
+
288  return _SQLPrimaryKeys(hstmt,
+
289  szCatalogName, cbCatalogName,
+
290  szSchemaName, cbSchemaName,
+
291  szTableName, cbTableName);
+
292 #endif
+
293 }
+
294 
+
295 #ifdef ENABLE_ODBC_WIDE
+
296 static SQLRETURN _SQLProcedureColumns(SQLHSTMT hstmt,
+
297  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
298  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
299  ODBC_CHAR * szProcName, SQLSMALLINT cbProcName,
+
300  ODBC_CHAR * szColumnName, SQLSMALLINT cbColumnName, int wide);
+
301 
+
302 SQLRETURN ODBC_PUBLIC ODBC_API SQLProcedureColumnsW(
+
303  SQLHSTMT hstmt,
+
304  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
305  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
306  SQLWCHAR * szProcName, SQLSMALLINT cbProcName,
+
307  SQLWCHAR * szColumnName, SQLSMALLINT cbColumnName)
+
308 {
+
309  if (TDS_UNLIKELY(tds_write_dump)) {
+
310  SQLWSTR_BUFS(4);
+
311  tdsdump_log(TDS_DBG_FUNC, "SQLProcedureColumnsW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
+
312  hstmt,
+
313  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
314  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
315  SQLWSTR(szProcName), (int) cbProcName,
+
316  SQLWSTR(szColumnName), (int) cbColumnName);
+
317  SQLWSTR_FREE();
+
318  }
+
319  return _SQLProcedureColumns(hstmt,
+
320  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
321  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
322  (ODBC_CHAR*) szProcName, cbProcName,
+
323  (ODBC_CHAR*) szColumnName, cbColumnName, 1);
+
324 }
+
325 #endif
+
326 
+
327 SQLRETURN ODBC_PUBLIC ODBC_API SQLProcedureColumns(
+
328  SQLHSTMT hstmt,
+
329  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
330  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
331  SQLCHAR * szProcName, SQLSMALLINT cbProcName,
+
332  SQLCHAR * szColumnName, SQLSMALLINT cbColumnName)
+
333 {
+
334  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLProcedureColumns(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
+
335  hstmt,
+
336  (const char*) szCatalogName, (int) cbCatalogName,
+
337  (const char*) szSchemaName, (int) cbSchemaName,
+
338  (const char*) szProcName, (int) cbProcName,
+
339  (const char*) szColumnName, (int) cbColumnName);
+
340 #ifdef ENABLE_ODBC_WIDE
+
341  return _SQLProcedureColumns(hstmt,
+
342  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
343  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
344  (ODBC_CHAR*) szProcName, cbProcName,
+
345  (ODBC_CHAR*) szColumnName, cbColumnName, 0);
+
346 #else
+
347  return _SQLProcedureColumns(hstmt,
+
348  szCatalogName, cbCatalogName,
+
349  szSchemaName, cbSchemaName,
+
350  szProcName, cbProcName,
+
351  szColumnName, cbColumnName);
+
352 #endif
+
353 }
+
354 
+
355 #ifdef ENABLE_ODBC_WIDE
+
356 static SQLRETURN _SQLProcedures(SQLHSTMT hstmt,
+
357  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
358  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
359  ODBC_CHAR * szProcName, SQLSMALLINT cbProcName, int wide);
+
360 
+
361 SQLRETURN ODBC_PUBLIC ODBC_API SQLProceduresW(
+
362  SQLHSTMT hstmt,
+
363  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
364  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
365  SQLWCHAR * szProcName, SQLSMALLINT cbProcName)
+
366 {
+
367  if (TDS_UNLIKELY(tds_write_dump)) {
+
368  SQLWSTR_BUFS(3);
+
369  tdsdump_log(TDS_DBG_FUNC, "SQLProceduresW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
+
370  hstmt,
+
371  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
372  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
373  SQLWSTR(szProcName), (int) cbProcName);
+
374  SQLWSTR_FREE();
+
375  }
+
376  return _SQLProcedures(hstmt,
+
377  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
378  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
379  (ODBC_CHAR*) szProcName, cbProcName, 1);
+
380 }
+
381 #endif
+
382 
+
383 SQLRETURN ODBC_PUBLIC ODBC_API SQLProcedures(
+
384  SQLHSTMT hstmt,
+
385  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
386  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
387  SQLCHAR * szProcName, SQLSMALLINT cbProcName)
+
388 {
+
389  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLProcedures(%p, %s, %d, %s, %d, %s, %d)\n",
+
390  hstmt,
+
391  (const char*) szCatalogName, (int) cbCatalogName,
+
392  (const char*) szSchemaName, (int) cbSchemaName,
+
393  (const char*) szProcName, (int) cbProcName);
+
394 #ifdef ENABLE_ODBC_WIDE
+
395  return _SQLProcedures(hstmt,
+
396  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
397  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
398  (ODBC_CHAR*) szProcName, cbProcName, 0);
+
399 #else
+
400  return _SQLProcedures(hstmt,
+
401  szCatalogName, cbCatalogName,
+
402  szSchemaName, cbSchemaName,
+
403  szProcName, cbProcName);
+
404 #endif
+
405 }
+
406 
+
407 #ifdef ENABLE_ODBC_WIDE
+
408 static SQLRETURN _SQLTablePrivileges(SQLHSTMT hstmt,
+
409  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
410  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
411  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName, int wide);
+
412 
+
413 SQLRETURN ODBC_PUBLIC ODBC_API SQLTablePrivilegesW(
+
414  SQLHSTMT hstmt,
+
415  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
416  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
417  SQLWCHAR * szTableName, SQLSMALLINT cbTableName)
+
418 {
+
419  if (TDS_UNLIKELY(tds_write_dump)) {
+
420  SQLWSTR_BUFS(3);
+
421  tdsdump_log(TDS_DBG_FUNC, "SQLTablePrivilegesW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
+
422  hstmt,
+
423  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
424  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
425  SQLWSTR(szTableName), (int) cbTableName);
+
426  SQLWSTR_FREE();
+
427  }
+
428  return _SQLTablePrivileges(hstmt,
+
429  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
430  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
431  (ODBC_CHAR*) szTableName, cbTableName, 1);
+
432 }
+
433 #endif
+
434 
+
435 SQLRETURN ODBC_PUBLIC ODBC_API SQLTablePrivileges(
+
436  SQLHSTMT hstmt,
+
437  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
438  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
439  SQLCHAR * szTableName, SQLSMALLINT cbTableName)
+
440 {
+
441  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLTablePrivileges(%p, %s, %d, %s, %d, %s, %d)\n",
+
442  hstmt,
+
443  (const char*) szCatalogName, (int) cbCatalogName,
+
444  (const char*) szSchemaName, (int) cbSchemaName,
+
445  (const char*) szTableName, (int) cbTableName);
+
446 #ifdef ENABLE_ODBC_WIDE
+
447  return _SQLTablePrivileges(hstmt,
+
448  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
449  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
450  (ODBC_CHAR*) szTableName, cbTableName, 0);
+
451 #else
+
452  return _SQLTablePrivileges(hstmt,
+
453  szCatalogName, cbCatalogName,
+
454  szSchemaName, cbSchemaName,
+
455  szTableName, cbTableName);
+
456 #endif
+
457 }
+
458 
+
459 #ifdef ENABLE_ODBC_WIDE
+
460 static SQLRETURN _SQLConnect(SQLHDBC hdbc,
+
461  ODBC_CHAR * szDSN, SQLSMALLINT cbDSN,
+
462  ODBC_CHAR * szUID, SQLSMALLINT cbUID,
+
463  ODBC_CHAR * szAuthStr, SQLSMALLINT cbAuthStr, int wide);
+
464 
+
465 SQLRETURN ODBC_PUBLIC ODBC_API SQLConnectW(
+
466  SQLHDBC hdbc,
+
467  SQLWCHAR * szDSN, SQLSMALLINT cbDSN,
+
468  SQLWCHAR * szUID, SQLSMALLINT cbUID,
+
469  SQLWCHAR * szAuthStr, SQLSMALLINT cbAuthStr)
+
470 {
+
471  if (TDS_UNLIKELY(tds_write_dump)) {
+
472  SQLWSTR_BUFS(3);
+
473  tdsdump_log(TDS_DBG_FUNC, "SQLConnectW(%p, %ls, %d, %ls, %d, %ls, %d)\n",
+
474  hdbc,
+
475  SQLWSTR(szDSN), (int) cbDSN,
+
476  SQLWSTR(szUID), (int) cbUID,
+
477  SQLWSTR(szAuthStr), (int) cbAuthStr);
+
478  SQLWSTR_FREE();
+
479  }
+
480  return _SQLConnect(hdbc,
+
481  (ODBC_CHAR*) szDSN, cbDSN,
+
482  (ODBC_CHAR*) szUID, cbUID,
+
483  (ODBC_CHAR*) szAuthStr, cbAuthStr, 1);
+
484 }
+
485 #endif
+
486 
+
487 SQLRETURN ODBC_PUBLIC ODBC_API SQLConnect(
+
488  SQLHDBC hdbc,
+
489  SQLCHAR * szDSN, SQLSMALLINT cbDSN,
+
490  SQLCHAR * szUID, SQLSMALLINT cbUID,
+
491  SQLCHAR * szAuthStr, SQLSMALLINT cbAuthStr)
+
492 {
+
493  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLConnect(%p, %s, %d, %s, %d, %s, %d)\n",
+
494  hdbc,
+
495  (const char*) szDSN, (int) cbDSN,
+
496  (const char*) szUID, (int) cbUID,
+
497  (const char*) szAuthStr, (int) cbAuthStr);
+
498 #ifdef ENABLE_ODBC_WIDE
+
499  return _SQLConnect(hdbc,
+
500  (ODBC_CHAR*) szDSN, cbDSN,
+
501  (ODBC_CHAR*) szUID, cbUID,
+
502  (ODBC_CHAR*) szAuthStr, cbAuthStr, 0);
+
503 #else
+
504  return _SQLConnect(hdbc,
+
505  szDSN, cbDSN,
+
506  szUID, cbUID,
+
507  szAuthStr, cbAuthStr);
+
508 #endif
+
509 }
+
510 
+
511 #ifdef ENABLE_ODBC_WIDE
+
512 static SQLRETURN _SQLDescribeCol(SQLHSTMT hstmt,
+
513  SQLUSMALLINT icol,
+
514  ODBC_CHAR * szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT FAR* pcbColName,
+
515  SQLSMALLINT * pfSqlType,
+
516  SQLULEN * pcbColDef,
+
517  SQLSMALLINT * pibScale,
+
518  SQLSMALLINT * pfNullable, int wide);
+
519 
+
520 SQLRETURN ODBC_PUBLIC ODBC_API SQLDescribeColW(
+
521  SQLHSTMT hstmt,
+
522  SQLUSMALLINT icol,
+
523  SQLWCHAR * szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT FAR* pcbColName,
+
524  SQLSMALLINT * pfSqlType,
+
525  SQLULEN * pcbColDef,
+
526  SQLSMALLINT * pibScale,
+
527  SQLSMALLINT * pfNullable)
+
528 {
+
529  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLDescribeColW(%p, %u, %p, %d, %p, %p, %p, %p, %p)\n",
+
530  hstmt,
+
531  (unsigned int) icol,
+
532  szColName, (int) cbColNameMax, pcbColName,
+
533  pfSqlType,
+
534  pcbColDef,
+
535  pibScale,
+
536  pfNullable);
+
537  return _SQLDescribeCol(hstmt,
+
538  icol,
+
539  (ODBC_CHAR*) szColName, cbColNameMax, pcbColName,
+
540  pfSqlType,
+
541  pcbColDef,
+
542  pibScale,
+
543  pfNullable, 1);
+
544 }
+
545 #endif
+
546 
+
547 SQLRETURN ODBC_PUBLIC ODBC_API SQLDescribeCol(
+
548  SQLHSTMT hstmt,
+
549  SQLUSMALLINT icol,
+
550  SQLCHAR * szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT FAR* pcbColName,
+
551  SQLSMALLINT * pfSqlType,
+
552  SQLULEN * pcbColDef,
+
553  SQLSMALLINT * pibScale,
+
554  SQLSMALLINT * pfNullable)
+
555 {
+
556  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLDescribeCol(%p, %u, %p, %d, %p, %p, %p, %p, %p)\n",
+
557  hstmt,
+
558  (unsigned int) icol,
+
559  szColName, (int) cbColNameMax, pcbColName,
+
560  pfSqlType,
+
561  pcbColDef,
+
562  pibScale,
+
563  pfNullable);
+
564 #ifdef ENABLE_ODBC_WIDE
+
565  return _SQLDescribeCol(hstmt,
+
566  icol,
+
567  (ODBC_CHAR*) szColName, cbColNameMax, pcbColName,
+
568  pfSqlType,
+
569  pcbColDef,
+
570  pibScale,
+
571  pfNullable, 0);
+
572 #else
+
573  return _SQLDescribeCol(hstmt,
+
574  icol,
+
575  szColName, cbColNameMax, pcbColName,
+
576  pfSqlType,
+
577  pcbColDef,
+
578  pibScale,
+
579  pfNullable);
+
580 #endif
+
581 }
+
582 
+
583 #ifdef ENABLE_ODBC_WIDE
+
584 static SQLRETURN _SQLGetDescRec(SQLHDESC hdesc,
+
585  SQLSMALLINT RecordNumber,
+
586  ODBC_CHAR * szName, SQLSMALLINT cbNameMax, SQLSMALLINT FAR* pcbName,
+
587  SQLSMALLINT * Type,
+
588  SQLSMALLINT * SubType,
+
589  SQLLEN * Length,
+
590  SQLSMALLINT * Precision,
+
591  SQLSMALLINT * Scale,
+
592  SQLSMALLINT * Nullable, int wide);
+
593 
+
594 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescRecW(
+
595  SQLHDESC hdesc,
+
596  SQLSMALLINT RecordNumber,
+
597  SQLWCHAR * szName, SQLSMALLINT cbNameMax, SQLSMALLINT FAR* pcbName,
+
598  SQLSMALLINT * Type,
+
599  SQLSMALLINT * SubType,
+
600  SQLLEN * Length,
+
601  SQLSMALLINT * Precision,
+
602  SQLSMALLINT * Scale,
+
603  SQLSMALLINT * Nullable)
+
604 {
+
605  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescRecW(%p, %d, %p, %d, %p, %p, %p, %p, %p, %p, %p)\n",
+
606  hdesc,
+
607  (int) RecordNumber,
+
608  szName, (int) cbNameMax, pcbName,
+
609  Type,
+
610  SubType,
+
611  Length,
+
612  Precision,
+
613  Scale,
+
614  Nullable);
+
615  return _SQLGetDescRec(hdesc,
+
616  RecordNumber,
+
617  (ODBC_CHAR*) szName, cbNameMax, pcbName,
+
618  Type,
+
619  SubType,
+
620  Length,
+
621  Precision,
+
622  Scale,
+
623  Nullable, 1);
+
624 }
+
625 #endif
+
626 
+
627 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescRec(
+
628  SQLHDESC hdesc,
+
629  SQLSMALLINT RecordNumber,
+
630  SQLCHAR * szName, SQLSMALLINT cbNameMax, SQLSMALLINT FAR* pcbName,
+
631  SQLSMALLINT * Type,
+
632  SQLSMALLINT * SubType,
+
633  SQLLEN * Length,
+
634  SQLSMALLINT * Precision,
+
635  SQLSMALLINT * Scale,
+
636  SQLSMALLINT * Nullable)
+
637 {
+
638  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescRec(%p, %d, %p, %d, %p, %p, %p, %p, %p, %p, %p)\n",
+
639  hdesc,
+
640  (int) RecordNumber,
+
641  szName, (int) cbNameMax, pcbName,
+
642  Type,
+
643  SubType,
+
644  Length,
+
645  Precision,
+
646  Scale,
+
647  Nullable);
+
648 #ifdef ENABLE_ODBC_WIDE
+
649  return _SQLGetDescRec(hdesc,
+
650  RecordNumber,
+
651  (ODBC_CHAR*) szName, cbNameMax, pcbName,
+
652  Type,
+
653  SubType,
+
654  Length,
+
655  Precision,
+
656  Scale,
+
657  Nullable, 0);
+
658 #else
+
659  return _SQLGetDescRec(hdesc,
+
660  RecordNumber,
+
661  szName, cbNameMax, pcbName,
+
662  Type,
+
663  SubType,
+
664  Length,
+
665  Precision,
+
666  Scale,
+
667  Nullable);
+
668 #endif
+
669 }
+
670 
+
671 #ifdef ENABLE_ODBC_WIDE
+
672 static SQLRETURN _SQLGetDescField(SQLHDESC hdesc,
+
673  SQLSMALLINT icol,
+
674  SQLSMALLINT fDescType,
+
675  SQLPOINTER Value,
+
676  SQLINTEGER BufferLength,
+
677  SQLINTEGER * StringLength, int wide);
+
678 
+
679 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescFieldW(
+
680  SQLHDESC hdesc,
+
681  SQLSMALLINT icol,
+
682  SQLSMALLINT fDescType,
+
683  SQLPOINTER Value,
+
684  SQLINTEGER BufferLength,
+
685  SQLINTEGER * StringLength)
+
686 {
+
687  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescFieldW(%p, %d, %d, %p, %d, %p)\n",
+
688  hdesc,
+
689  (int) icol,
+
690  (int) fDescType,
+
691  Value,
+
692  (int) BufferLength,
+
693  StringLength);
+
694  return _SQLGetDescField(hdesc,
+
695  icol,
+
696  fDescType,
+
697  Value,
+
698  BufferLength,
+
699  StringLength, 1);
+
700 }
+
701 #endif
+
702 
+
703 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDescField(
+
704  SQLHDESC hdesc,
+
705  SQLSMALLINT icol,
+
706  SQLSMALLINT fDescType,
+
707  SQLPOINTER Value,
+
708  SQLINTEGER BufferLength,
+
709  SQLINTEGER * StringLength)
+
710 {
+
711  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDescField(%p, %d, %d, %p, %d, %p)\n",
+
712  hdesc,
+
713  (int) icol,
+
714  (int) fDescType,
+
715  Value,
+
716  (int) BufferLength,
+
717  StringLength);
+
718 #ifdef ENABLE_ODBC_WIDE
+
719  return _SQLGetDescField(hdesc,
+
720  icol,
+
721  fDescType,
+
722  Value,
+
723  BufferLength,
+
724  StringLength, 0);
+
725 #else
+
726  return _SQLGetDescField(hdesc,
+
727  icol,
+
728  fDescType,
+
729  Value,
+
730  BufferLength,
+
731  StringLength);
+
732 #endif
+
733 }
+
734 
+
735 #ifdef ENABLE_ODBC_WIDE
+
736 static SQLRETURN _SQLSetDescField(SQLHDESC hdesc,
+
737  SQLSMALLINT icol,
+
738  SQLSMALLINT fDescType,
+
739  SQLPOINTER Value,
+
740  SQLINTEGER BufferLength, int wide);
+
741 
+
742 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetDescFieldW(
+
743  SQLHDESC hdesc,
+
744  SQLSMALLINT icol,
+
745  SQLSMALLINT fDescType,
+
746  SQLPOINTER Value,
+
747  SQLINTEGER BufferLength)
+
748 {
+
749  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetDescFieldW(%p, %d, %d, %p, %d)\n",
+
750  hdesc,
+
751  (int) icol,
+
752  (int) fDescType,
+
753  Value,
+
754  (int) BufferLength);
+
755  return _SQLSetDescField(hdesc,
+
756  icol,
+
757  fDescType,
+
758  Value,
+
759  BufferLength, 1);
+
760 }
+
761 #endif
+
762 
+
763 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetDescField(
+
764  SQLHDESC hdesc,
+
765  SQLSMALLINT icol,
+
766  SQLSMALLINT fDescType,
+
767  SQLPOINTER Value,
+
768  SQLINTEGER BufferLength)
+
769 {
+
770  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetDescField(%p, %d, %d, %p, %d)\n",
+
771  hdesc,
+
772  (int) icol,
+
773  (int) fDescType,
+
774  Value,
+
775  (int) BufferLength);
+
776 #ifdef ENABLE_ODBC_WIDE
+
777  return _SQLSetDescField(hdesc,
+
778  icol,
+
779  fDescType,
+
780  Value,
+
781  BufferLength, 0);
+
782 #else
+
783  return _SQLSetDescField(hdesc,
+
784  icol,
+
785  fDescType,
+
786  Value,
+
787  BufferLength);
+
788 #endif
+
789 }
+
790 
+
791 #ifdef ENABLE_ODBC_WIDE
+
792 static SQLRETURN _SQLExecDirect(SQLHSTMT hstmt,
+
793  ODBC_CHAR * szSqlStr, SQLINTEGER cbSqlStr, int wide);
+
794 
+
795 SQLRETURN ODBC_PUBLIC ODBC_API SQLExecDirectW(
+
796  SQLHSTMT hstmt,
+
797  SQLWCHAR * szSqlStr, SQLINTEGER cbSqlStr)
+
798 {
+
799  if (TDS_UNLIKELY(tds_write_dump)) {
+
800  SQLWSTR_BUFS(1);
+
801  tdsdump_log(TDS_DBG_FUNC, "SQLExecDirectW(%p, %ls, %d)\n",
+
802  hstmt,
+
803  SQLWSTR(szSqlStr), (int) cbSqlStr);
+
804  SQLWSTR_FREE();
+
805  }
+
806  return _SQLExecDirect(hstmt,
+
807  (ODBC_CHAR*) szSqlStr, cbSqlStr, 1);
+
808 }
+
809 #endif
+
810 
+
811 SQLRETURN ODBC_PUBLIC ODBC_API SQLExecDirect(
+
812  SQLHSTMT hstmt,
+
813  SQLCHAR * szSqlStr, SQLINTEGER cbSqlStr)
+
814 {
+
815  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLExecDirect(%p, %s, %d)\n",
+
816  hstmt,
+
817  (const char*) szSqlStr, (int) cbSqlStr);
+
818 #ifdef ENABLE_ODBC_WIDE
+
819  return _SQLExecDirect(hstmt,
+
820  (ODBC_CHAR*) szSqlStr, cbSqlStr, 0);
+
821 #else
+
822  return _SQLExecDirect(hstmt,
+
823  szSqlStr, cbSqlStr);
+
824 #endif
+
825 }
+
826 
+
827 #ifdef ENABLE_ODBC_WIDE
+
828 static SQLRETURN _SQLPrepare(SQLHSTMT hstmt,
+
829  ODBC_CHAR * szSqlStr, SQLINTEGER cbSqlStr, int wide);
+
830 
+
831 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrepareW(
+
832  SQLHSTMT hstmt,
+
833  SQLWCHAR * szSqlStr, SQLINTEGER cbSqlStr)
+
834 {
+
835  if (TDS_UNLIKELY(tds_write_dump)) {
+
836  SQLWSTR_BUFS(1);
+
837  tdsdump_log(TDS_DBG_FUNC, "SQLPrepareW(%p, %ls, %d)\n",
+
838  hstmt,
+
839  SQLWSTR(szSqlStr), (int) cbSqlStr);
+
840  SQLWSTR_FREE();
+
841  }
+
842  return _SQLPrepare(hstmt,
+
843  (ODBC_CHAR*) szSqlStr, cbSqlStr, 1);
+
844 }
+
845 #endif
+
846 
+
847 SQLRETURN ODBC_PUBLIC ODBC_API SQLPrepare(
+
848  SQLHSTMT hstmt,
+
849  SQLCHAR * szSqlStr, SQLINTEGER cbSqlStr)
+
850 {
+
851  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLPrepare(%p, %s, %d)\n",
+
852  hstmt,
+
853  (const char*) szSqlStr, (int) cbSqlStr);
+
854 #ifdef ENABLE_ODBC_WIDE
+
855  return _SQLPrepare(hstmt,
+
856  (ODBC_CHAR*) szSqlStr, cbSqlStr, 0);
+
857 #else
+
858  return _SQLPrepare(hstmt,
+
859  szSqlStr, cbSqlStr);
+
860 #endif
+
861 }
+
862 
+
863 #ifdef ENABLE_ODBC_WIDE
+
864 static SQLRETURN _SQLSetCursorName(SQLHSTMT hstmt,
+
865  ODBC_CHAR * szCursor, SQLSMALLINT cbCursor, int wide);
+
866 
+
867 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetCursorNameW(
+
868  SQLHSTMT hstmt,
+
869  SQLWCHAR * szCursor, SQLSMALLINT cbCursor)
+
870 {
+
871  if (TDS_UNLIKELY(tds_write_dump)) {
+
872  SQLWSTR_BUFS(1);
+
873  tdsdump_log(TDS_DBG_FUNC, "SQLSetCursorNameW(%p, %ls, %d)\n",
+
874  hstmt,
+
875  SQLWSTR(szCursor), (int) cbCursor);
+
876  SQLWSTR_FREE();
+
877  }
+
878  return _SQLSetCursorName(hstmt,
+
879  (ODBC_CHAR*) szCursor, cbCursor, 1);
+
880 }
+
881 #endif
+
882 
+
883 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetCursorName(
+
884  SQLHSTMT hstmt,
+
885  SQLCHAR * szCursor, SQLSMALLINT cbCursor)
+
886 {
+
887  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetCursorName(%p, %s, %d)\n",
+
888  hstmt,
+
889  (const char*) szCursor, (int) cbCursor);
+
890 #ifdef ENABLE_ODBC_WIDE
+
891  return _SQLSetCursorName(hstmt,
+
892  (ODBC_CHAR*) szCursor, cbCursor, 0);
+
893 #else
+
894  return _SQLSetCursorName(hstmt,
+
895  szCursor, cbCursor);
+
896 #endif
+
897 }
+
898 
+
899 #ifdef ENABLE_ODBC_WIDE
+
900 static SQLRETURN _SQLGetCursorName(SQLHSTMT hstmt,
+
901  ODBC_CHAR * szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT FAR* pcbCursor, int wide);
+
902 
+
903 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetCursorNameW(
+
904  SQLHSTMT hstmt,
+
905  SQLWCHAR * szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT FAR* pcbCursor)
+
906 {
+
907  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetCursorNameW(%p, %p, %d, %p)\n",
+
908  hstmt,
+
909  szCursor, (int) cbCursorMax, pcbCursor);
+
910  return _SQLGetCursorName(hstmt,
+
911  (ODBC_CHAR*) szCursor, cbCursorMax, pcbCursor, 1);
+
912 }
+
913 #endif
+
914 
+
915 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetCursorName(
+
916  SQLHSTMT hstmt,
+
917  SQLCHAR * szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT FAR* pcbCursor)
+
918 {
+
919  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetCursorName(%p, %p, %d, %p)\n",
+
920  hstmt,
+
921  szCursor, (int) cbCursorMax, pcbCursor);
+
922 #ifdef ENABLE_ODBC_WIDE
+
923  return _SQLGetCursorName(hstmt,
+
924  (ODBC_CHAR*) szCursor, cbCursorMax, pcbCursor, 0);
+
925 #else
+
926  return _SQLGetCursorName(hstmt,
+
927  szCursor, cbCursorMax, pcbCursor);
+
928 #endif
+
929 }
+
930 
+
931 #ifdef ENABLE_ODBC_WIDE
+
932 static SQLRETURN _SQLColumns(SQLHSTMT hstmt,
+
933  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
934  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
935  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
+
936  ODBC_CHAR * szColumnName, SQLSMALLINT cbColumnName, int wide);
+
937 
+
938 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumnsW(
+
939  SQLHSTMT hstmt,
+
940  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
941  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
942  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
+
943  SQLWCHAR * szColumnName, SQLSMALLINT cbColumnName)
+
944 {
+
945  if (TDS_UNLIKELY(tds_write_dump)) {
+
946  SQLWSTR_BUFS(4);
+
947  tdsdump_log(TDS_DBG_FUNC, "SQLColumnsW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
+
948  hstmt,
+
949  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
950  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
951  SQLWSTR(szTableName), (int) cbTableName,
+
952  SQLWSTR(szColumnName), (int) cbColumnName);
+
953  SQLWSTR_FREE();
+
954  }
+
955  return _SQLColumns(hstmt,
+
956  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
957  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
958  (ODBC_CHAR*) szTableName, cbTableName,
+
959  (ODBC_CHAR*) szColumnName, cbColumnName, 1);
+
960 }
+
961 #endif
+
962 
+
963 SQLRETURN ODBC_PUBLIC ODBC_API SQLColumns(
+
964  SQLHSTMT hstmt,
+
965  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
966  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
967  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
+
968  SQLCHAR * szColumnName, SQLSMALLINT cbColumnName)
+
969 {
+
970  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLColumns(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
+
971  hstmt,
+
972  (const char*) szCatalogName, (int) cbCatalogName,
+
973  (const char*) szSchemaName, (int) cbSchemaName,
+
974  (const char*) szTableName, (int) cbTableName,
+
975  (const char*) szColumnName, (int) cbColumnName);
+
976 #ifdef ENABLE_ODBC_WIDE
+
977  return _SQLColumns(hstmt,
+
978  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
979  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
980  (ODBC_CHAR*) szTableName, cbTableName,
+
981  (ODBC_CHAR*) szColumnName, cbColumnName, 0);
+
982 #else
+
983  return _SQLColumns(hstmt,
+
984  szCatalogName, cbCatalogName,
+
985  szSchemaName, cbSchemaName,
+
986  szTableName, cbTableName,
+
987  szColumnName, cbColumnName);
+
988 #endif
+
989 }
+
990 
+
991 #ifdef ENABLE_ODBC_WIDE
+
992 static SQLRETURN _SQLGetConnectAttr(SQLHDBC hdbc,
+
993  SQLINTEGER Attribute,
+
994  SQLPOINTER Value,
+
995  SQLINTEGER BufferLength,
+
996  SQLINTEGER * StringLength, int wide);
+
997 
+
998 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetConnectAttrW(
+
999  SQLHDBC hdbc,
+
1000  SQLINTEGER Attribute,
+
1001  SQLPOINTER Value,
+
1002  SQLINTEGER BufferLength,
+
1003  SQLINTEGER * StringLength)
+
1004 {
+
1005  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetConnectAttrW(%p, %d, %p, %d, %p)\n",
+
1006  hdbc,
+
1007  (int) Attribute,
+
1008  Value,
+
1009  (int) BufferLength,
+
1010  StringLength);
+
1011  return _SQLGetConnectAttr(hdbc,
+
1012  Attribute,
+
1013  Value,
+
1014  BufferLength,
+
1015  StringLength, 1);
+
1016 }
+
1017 #endif
+
1018 
+
1019 SQLRETURN ODBC_PUBLIC ODBC_API SQLGetConnectAttr(
+
1020  SQLHDBC hdbc,
+
1021  SQLINTEGER Attribute,
+
1022  SQLPOINTER Value,
+
1023  SQLINTEGER BufferLength,
+
1024  SQLINTEGER * StringLength)
+
1025 {
+
1026  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetConnectAttr(%p, %d, %p, %d, %p)\n",
+
1027  hdbc,
+
1028  (int) Attribute,
+
1029  Value,
+
1030  (int) BufferLength,
+
1031  StringLength);
+
1032 #ifdef ENABLE_ODBC_WIDE
+
1033  return _SQLGetConnectAttr(hdbc,
+
1034  Attribute,
+
1035  Value,
+
1036  BufferLength,
+
1037  StringLength, 0);
+
1038 #else
+
1039  return _SQLGetConnectAttr(hdbc,
+
1040  Attribute,
+
1041  Value,
+
1042  BufferLength,
+
1043  StringLength);
+
1044 #endif
+
1045 }
+
1046 
+
1047 #ifdef ENABLE_ODBC_WIDE
+
1048 static SQLRETURN _SQLSetConnectAttr(SQLHDBC hdbc,
+
1049  SQLINTEGER Attribute,
+
1050  SQLPOINTER ValuePtr,
+
1051  SQLINTEGER StringLength, int wide);
+
1052 
+
1053 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetConnectAttrW(
+
1054  SQLHDBC hdbc,
+
1055  SQLINTEGER Attribute,
+
1056  SQLPOINTER ValuePtr,
+
1057  SQLINTEGER StringLength)
+
1058 {
+
1059  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetConnectAttrW(%p, %d, %p, %d)\n",
+
1060  hdbc,
+
1061  (int) Attribute,
+
1062  ValuePtr,
+
1063  (int) StringLength);
+
1064  return _SQLSetConnectAttr(hdbc,
+
1065  Attribute,
+
1066  ValuePtr,
+
1067  StringLength, 1);
+
1068 }
+
1069 #endif
+
1070 
+
1071 SQLRETURN ODBC_PUBLIC ODBC_API SQLSetConnectAttr(
+
1072  SQLHDBC hdbc,
+
1073  SQLINTEGER Attribute,
+
1074  SQLPOINTER ValuePtr,
+
1075  SQLINTEGER StringLength)
+
1076 {
+
1077  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSetConnectAttr(%p, %d, %p, %d)\n",
+
1078  hdbc,
+
1079  (int) Attribute,
+
1080  ValuePtr,
+
1081  (int) StringLength);
+
1082 #ifdef ENABLE_ODBC_WIDE
+
1083  return _SQLSetConnectAttr(hdbc,
+
1084  Attribute,
+
1085  ValuePtr,
+
1086  StringLength, 0);
+
1087 #else
+
1088  return _SQLSetConnectAttr(hdbc,
+
1089  Attribute,
+
1090  ValuePtr,
+
1091  StringLength);
+
1092 #endif
+
1093 }
+
1094 
+
1095 #ifdef ENABLE_ODBC_WIDE
+
1096 static SQLRETURN _SQLSpecialColumns(SQLHSTMT hstmt,
+
1097  SQLUSMALLINT fColType,
+
1098  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1099  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1100  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
+
1101  SQLUSMALLINT fScope,
+
1102  SQLUSMALLINT fNullable, int wide);
+
1103 
+
1104 SQLRETURN ODBC_PUBLIC ODBC_API SQLSpecialColumnsW(
+
1105  SQLHSTMT hstmt,
+
1106  SQLUSMALLINT fColType,
+
1107  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1108  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1109  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
+
1110  SQLUSMALLINT fScope,
+
1111  SQLUSMALLINT fNullable)
+
1112 {
+
1113  if (TDS_UNLIKELY(tds_write_dump)) {
+
1114  SQLWSTR_BUFS(3);
+
1115  tdsdump_log(TDS_DBG_FUNC, "SQLSpecialColumnsW(%p, %u, %ls, %d, %ls, %d, %ls, %d, %u, %u)\n",
+
1116  hstmt,
+
1117  (unsigned int) fColType,
+
1118  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
1119  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
1120  SQLWSTR(szTableName), (int) cbTableName,
+
1121  (unsigned int) fScope,
+
1122  (unsigned int) fNullable);
+
1123  SQLWSTR_FREE();
+
1124  }
+
1125  return _SQLSpecialColumns(hstmt,
+
1126  fColType,
+
1127  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
1128  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
1129  (ODBC_CHAR*) szTableName, cbTableName,
+
1130  fScope,
+
1131  fNullable, 1);
+
1132 }
+
1133 #endif
+
1134 
+
1135 SQLRETURN ODBC_PUBLIC ODBC_API SQLSpecialColumns(
+
1136  SQLHSTMT hstmt,
+
1137  SQLUSMALLINT fColType,
+
1138  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1139  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1140  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
+
1141  SQLUSMALLINT fScope,
+
1142  SQLUSMALLINT fNullable)
+
1143 {
+
1144  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLSpecialColumns(%p, %u, %s, %d, %s, %d, %s, %d, %u, %u)\n",
+
1145  hstmt,
+
1146  (unsigned int) fColType,
+
1147  (const char*) szCatalogName, (int) cbCatalogName,
+
1148  (const char*) szSchemaName, (int) cbSchemaName,
+
1149  (const char*) szTableName, (int) cbTableName,
+
1150  (unsigned int) fScope,
+
1151  (unsigned int) fNullable);
+
1152 #ifdef ENABLE_ODBC_WIDE
+
1153  return _SQLSpecialColumns(hstmt,
+
1154  fColType,
+
1155  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
1156  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
1157  (ODBC_CHAR*) szTableName, cbTableName,
+
1158  fScope,
+
1159  fNullable, 0);
+
1160 #else
+
1161  return _SQLSpecialColumns(hstmt,
+
1162  fColType,
+
1163  szCatalogName, cbCatalogName,
+
1164  szSchemaName, cbSchemaName,
+
1165  szTableName, cbTableName,
+
1166  fScope,
+
1167  fNullable);
+
1168 #endif
+
1169 }
+
1170 
+
1171 #ifdef ENABLE_ODBC_WIDE
+
1172 static SQLRETURN _SQLStatistics(SQLHSTMT hstmt,
+
1173  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1174  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1175  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
+
1176  SQLUSMALLINT fUnique,
+
1177  SQLUSMALLINT fAccuracy, int wide);
+
1178 
+
1179 SQLRETURN ODBC_PUBLIC ODBC_API SQLStatisticsW(
+
1180  SQLHSTMT hstmt,
+
1181  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1182  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1183  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
+
1184  SQLUSMALLINT fUnique,
+
1185  SQLUSMALLINT fAccuracy)
+
1186 {
+
1187  if (TDS_UNLIKELY(tds_write_dump)) {
+
1188  SQLWSTR_BUFS(3);
+
1189  tdsdump_log(TDS_DBG_FUNC, "SQLStatisticsW(%p, %ls, %d, %ls, %d, %ls, %d, %u, %u)\n",
+
1190  hstmt,
+
1191  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
1192  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
1193  SQLWSTR(szTableName), (int) cbTableName,
+
1194  (unsigned int) fUnique,
+
1195  (unsigned int) fAccuracy);
+
1196  SQLWSTR_FREE();
+
1197  }
+
1198  return _SQLStatistics(hstmt,
+
1199  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
1200  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
1201  (ODBC_CHAR*) szTableName, cbTableName,
+
1202  fUnique,
+
1203  fAccuracy, 1);
+
1204 }
+
1205 #endif
+
1206 
+
1207 SQLRETURN ODBC_PUBLIC ODBC_API SQLStatistics(
+
1208  SQLHSTMT hstmt,
+
1209  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1210  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1211  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
+
1212  SQLUSMALLINT fUnique,
+
1213  SQLUSMALLINT fAccuracy)
+
1214 {
+
1215  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLStatistics(%p, %s, %d, %s, %d, %s, %d, %u, %u)\n",
+
1216  hstmt,
+
1217  (const char*) szCatalogName, (int) cbCatalogName,
+
1218  (const char*) szSchemaName, (int) cbSchemaName,
+
1219  (const char*) szTableName, (int) cbTableName,
+
1220  (unsigned int) fUnique,
+
1221  (unsigned int) fAccuracy);
+
1222 #ifdef ENABLE_ODBC_WIDE
+
1223  return _SQLStatistics(hstmt,
+
1224  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
1225  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
1226  (ODBC_CHAR*) szTableName, cbTableName,
+
1227  fUnique,
+
1228  fAccuracy, 0);
+
1229 #else
+
1230  return _SQLStatistics(hstmt,
+
1231  szCatalogName, cbCatalogName,
+
1232  szSchemaName, cbSchemaName,
+
1233  szTableName, cbTableName,
+
1234  fUnique,
+
1235  fAccuracy);
+
1236 #endif
+
1237 }
+
1238 
+
1239 #ifdef ENABLE_ODBC_WIDE
+
1240 static SQLRETURN _SQLTables(SQLHSTMT hstmt,
+
1241  ODBC_CHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1242  ODBC_CHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1243  ODBC_CHAR * szTableName, SQLSMALLINT cbTableName,
+
1244  ODBC_CHAR * szTableType, SQLSMALLINT cbTableType, int wide);
+
1245 
+
1246 SQLRETURN ODBC_PUBLIC ODBC_API SQLTablesW(
+
1247  SQLHSTMT hstmt,
+
1248  SQLWCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1249  SQLWCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1250  SQLWCHAR * szTableName, SQLSMALLINT cbTableName,
+
1251  SQLWCHAR * szTableType, SQLSMALLINT cbTableType)
+
1252 {
+
1253  if (TDS_UNLIKELY(tds_write_dump)) {
+
1254  SQLWSTR_BUFS(4);
+
1255  tdsdump_log(TDS_DBG_FUNC, "SQLTablesW(%p, %ls, %d, %ls, %d, %ls, %d, %ls, %d)\n",
+
1256  hstmt,
+
1257  SQLWSTR(szCatalogName), (int) cbCatalogName,
+
1258  SQLWSTR(szSchemaName), (int) cbSchemaName,
+
1259  SQLWSTR(szTableName), (int) cbTableName,
+
1260  SQLWSTR(szTableType), (int) cbTableType);
+
1261  SQLWSTR_FREE();
+
1262  }
+
1263  return _SQLTables(hstmt,
+
1264  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
1265  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
1266  (ODBC_CHAR*) szTableName, cbTableName,
+
1267  (ODBC_CHAR*) szTableType, cbTableType, 1);
+
1268 }
+
1269 #endif
+
1270 
+
1271 SQLRETURN ODBC_PUBLIC ODBC_API SQLTables(
+
1272  SQLHSTMT hstmt,
+
1273  SQLCHAR * szCatalogName, SQLSMALLINT cbCatalogName,
+
1274  SQLCHAR * szSchemaName, SQLSMALLINT cbSchemaName,
+
1275  SQLCHAR * szTableName, SQLSMALLINT cbTableName,
+
1276  SQLCHAR * szTableType, SQLSMALLINT cbTableType)
+
1277 {
+
1278  TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLTables(%p, %s, %d, %s, %d, %s, %d, %s, %d)\n",
+
1279  hstmt,
+
1280  (const char*) szCatalogName, (int) cbCatalogName,
+
1281  (const char*) szSchemaName, (int) cbSchemaName,
+
1282  (const char*) szTableName, (int) cbTableName,
+
1283  (const char*) szTableType, (int) cbTableType);
+
1284 #ifdef ENABLE_ODBC_WIDE
+
1285  return _SQLTables(hstmt,
+
1286  (ODBC_CHAR*) szCatalogName, cbCatalogName,
+
1287  (ODBC_CHAR*) szSchemaName, cbSchemaName,
+
1288  (ODBC_CHAR*) szTableName, cbTableName,
+
1289  (ODBC_CHAR*) szTableType, cbTableType, 0);
+
1290 #else
+
1291  return _SQLTables(hstmt,
+
1292  szCatalogName, cbCatalogName,
+
1293  szSchemaName, cbSchemaName,
+
1294  szTableName, cbTableName,
+
1295  szTableType, cbTableType);
+
1296 #endif
+
1297 }
+
1298 
+
1299 #define tdsdump_log TDSDUMP_LOG_FAST
+
+
int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Check if dynamic request must be unprepared.
Definition: query.c:1752
+
DSTR new_password
new password to set (TDS 7.2+)
Definition: tds.h:537
+
Definition: odbc.h:531
+
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition: query.c:1797
+
Definition: tds.h:575
+
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2171
+
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition: tds.h:994
+
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition: tdsstring.c:165
+
int tds_canonical_charset(const char *charset_name)
Determine canonical iconv character set.
Definition: iconv.c:968
+
#define TDS_MS_VER(maj, min, x)
Calc a version number for mssql.
Definition: tds.h:1720
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
+
@ TDS_IDLE
no data expected
Definition: tds.h:791
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
Definition: odbc.h:381
+
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition: query.c:1630
+
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
+
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition: query.c:1929
+
DSTR query
query to execute
Definition: odbc.h:387
+
Information about blobs (e.g.
Definition: tds.h:594
+
TDSRET tds_submit_begin_tran(TDSSOCKET *tds)
Send a rollback request.
Definition: query.c:3665
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
TDS_INT cursor_rows
< number of updatable columns
Definition: tds.h:952
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition: tdsstring.c:107
+
#define tds_dstr_empty(s)
Make a string empty.
Definition: string.h:91
+
Definition: odbc.h:230
+
Definition: odbcss.h:132
+
struct _hstmt * current_statement
Statement executing.
Definition: odbc.h:293
+
Hold information for any results.
Definition: tds.h:770
+
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
+
TDS_INT type
row fetched from this cursor
Definition: tds.h:957
+
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1094
+
unsigned need_reprepare
Prepared statement needs to be prepared again.
Definition: odbc.h:404
+
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition: tds.h:942
+
Information for a server connection.
Definition: tds.h:1164
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
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:877
+
const char * tds_skip_quoted(const char *s)
Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])
Definition: query.c:515
+
struct _hstmt * stmt_list
list of all statements allocated from this connection
Definition: odbc.h:295
+
Definition: native.c:356
+
TDSPARAMINFO * params
parameters saved
Definition: odbc.h:409
+
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition: tdsstring.c:55
+
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition: query.c:210
+
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition: mem.c:800
+
static void tds_dstr_init(DSTR *s)
init a string with empty
Definition: string.h:53
+
TDSSOCKET * tds
socket (only if active)
Definition: odbc.h:389
+
Definition: tds.h:1030
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:669
+
const char * tds_skip_comment(const char *s)
Skip a comment in a query.
Definition: query.c:490
+
int tds_count_placeholders(const char *query)
Count the number of placeholders ('?') in a query.
Definition: query.c:571
+
TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont)
Send a rollback request.
Definition: query.c:3693
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
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
+
Definition: odbc.h:163
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:2007
+
void odbc_rdbms_version(TDSSOCKET *tds, char *pversion_string)
Returns the version of the RDBMS in the ODBC format.
Definition: odbc_util.c:881
+
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:756
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
Definition: odbc.h:106
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
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:1249
+
int param_num
last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
Definition: odbc.h:411
+
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:1127
+
TDSPARAMINFO * params
query parameters.
Definition: tds.h:1008
+
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:530
+
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
+
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition: mem.c:206
+
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:1005
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
@ TDS_DONE_ERROR
error occurred
Definition: tds.h:254
+
TDS_SYS_SOCKET s
tcp socket, INVALID_SOCKET if not connected
Definition: tds.h:1097
+
Definition: native.c:348
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
Holds informations about a cursor.
Definition: tds.h:938
+
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
+
Definition: odbcss.h:139
+
Definition: tds.h:877
+
Definition: odbc.h:441
+
TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Submit a prepared query with parameters.
Definition: query.c:1256
+
Definition: tds.h:518
+
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
+
struct _hstmt * prev
previous in list
Definition: odbc.h:394
+
TDS_INT8 row_count
row count to return
Definition: odbc.h:421
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
Definition: odbc.h:237
+
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
+
unsigned int cursor_support
<>0 if server handle cursors
Definition: odbc.h:300
+
size_t prepared_pos
position in prepared query to check parameters, used only in RPC
Definition: odbc.h:413
+
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition: config.c:285
+
DSTR password
password of account login
Definition: tds.h:536
+
TDSRET tds_submit_commit(TDSSOCKET *tds, int cont)
Send a commit request.
Definition: query.c:3724
+
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
+
@ TDS_DONE_COUNT
count field in packet is valid
Definition: tds.h:257
+
void tds_release_dynamic(TDSDYNAMIC **pdyn)
Frees dynamic statement.
Definition: mem.c:253
+
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:2076
+
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition: tdsstring.c:134
+
TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Unprepare dynamic on idle.
Definition: query.c:1774
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
TDS_DESC * uad[TDS_MAX_APP_DESC]
descriptors associated to connection
Definition: odbc.h:298
+
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:543
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: odbc.h:275
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:2034
+
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
+
#define TDS_IS_MSSQL(x)
Check if product is Microsft SQL Server.
Definition: tds.h:1715
+
DSTR user_name
account for login
Definition: tds.h:535
+
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
+
struct _hstmt * next
next in list
Definition: odbc.h:392
+
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition: string.h:49
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor)
Deallocate cursor on idle.
Definition: query.c:3057
+
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1380
+
unsigned int param_count
number of parameter in current query
Definition: odbc.h:418
+
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
+
#define TDS_IS_SYBASE(x)
Check if product is Sybase (such as Adaptive Server Enterrprice).
Definition: tds.h:1713
+
TDS_CURSOR_STATUS status
cursor parameter
Definition: tds.h:954
+
Definition: odbc.h:204
+
Definition: tds.h:1020
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition: query.c:3006
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00134_source.html freetds-1.2.3/doc/reference/a00134_source.html --- freetds-1.1.6/doc/reference/a00134_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00134_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/odbc/resource.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
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
- - - - diff -Nru freetds-1.1.6/doc/reference/a00137_source.html freetds-1.2.3/doc/reference/a00137_source.html --- freetds-1.1.6/doc/reference/a00137_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00137_source.html 2020-07-09 09:01:55.000000000 +0000 @@ -0,0 +1,156 @@ + + + + + + + +FreeTDS API: src/odbc/resource.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
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
+
+
bool has_status
true is ret_status is valid
Definition: tds.h:1246
+
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition: mem.c:320
+
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition: tdsstring.c:165
+
Definition: iconv.h:78
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
Definition: odbc.h:381
+
DSTR query
query to execute
Definition: odbc.h:387
+
Information about blobs (e.g.
Definition: tds.h:594
+
Hold information for any results.
Definition: tds.h:770
+
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
+
Definition: iconv.h:92
+
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1094
+
unsigned need_reprepare
Prepared statement needs to be prepared again.
Definition: odbc.h:404
+
Information for a server connection.
Definition: tds.h:1164
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
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:890
+
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).
Definition: iconv.c:590
+
TDSPARAMINFO * params
parameters saved
Definition: odbc.h:409
+
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:300
+
TDSSOCKET * tds
socket (only if active)
Definition: odbc.h:389
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
Definition: odbc.h:163
+
void odbc_rdbms_version(TDSSOCKET *tds, char *pversion_string)
Returns the version of the RDBMS in the ODBC format.
Definition: odbc_util.c:881
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
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:630
+
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
Definition: odbc.h:106
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
int param_num
last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
Definition: odbc.h:411
+
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:1127
+
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:1005
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
Definition: convert.h:34
+
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
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
size_t prepared_pos
position in prepared query to check parameters, used only in RPC
Definition: odbc.h:413
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1251
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: odbc.h:275
+
Definition: tds.h:1092
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
unsigned int param_count
number of parameter in current query
Definition: odbc.h:418
+
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
+
Definition: odbc.h:204
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00143_source.html freetds-1.2.3/doc/reference/a00143_source.html --- freetds-1.1.6/doc/reference/a00143_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00143_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/odbc/sqlwparams.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
sqlwparams.h
-
-
-
1 #if 0
2 # ODBC_FUNC(SQLTest, (P(SQLSMALLINT, x), PCHAR(y) WIDE))
3 #endif
4 
5 #undef WIDE
6 #undef P
7 #undef PCHAR
8 #undef PCHARIN
9 #undef PCHAROUT
10 
11 #ifdef ENABLE_ODBC_WIDE
12 # define WIDE , int wide
13 # define PCHAR(a) ODBC_CHAR* a
14 #else
15 # define WIDE
16 # define PCHAR(a) SQLCHAR* a
17 #endif
18 
19 #define P(a,b) a b
20 #define PCHARIN(n,t) PCHAR(sz ## n), P(t, cb ## n)
21 #define PCHAROUT(n,t) PCHAR(sz ## n), P(t, cb ## n ## Max), P(t FAR*, pcb ## n)
22 
23 #define ODBC_FUNC(name, params) \
24  static SQLRETURN _ ## name params
25 
- - - - diff -Nru freetds-1.1.6/doc/reference/a00146_source.html freetds-1.2.3/doc/reference/a00146_source.html --- freetds-1.1.6/doc/reference/a00146_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00146_source.html 2020-07-09 09:01:55.000000000 +0000 @@ -0,0 +1,134 @@ + + + + + + + +FreeTDS API: src/odbc/sqlwparams.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
sqlwparams.h
+
+
+
1 #if 0
+
2 # ODBC_FUNC(SQLTest, (P(SQLSMALLINT, x), PCHAR(y) WIDE))
+
3 #endif
+
4 
+
5 #undef WIDE
+
6 #undef P
+
7 #undef PCHAR
+
8 #undef PCHARIN
+
9 #undef PCHAROUT
+
10 
+
11 #ifdef ENABLE_ODBC_WIDE
+
12 # define WIDE , int wide
+
13 # define PCHAR(a) ODBC_CHAR* a
+
14 #else
+
15 # define WIDE
+
16 # define PCHAR(a) SQLCHAR* a
+
17 #endif
+
18 
+
19 #define P(a,b) a b
+
20 #define PCHARIN(n,t) PCHAR(sz ## n), P(t, cb ## n)
+
21 #define PCHAROUT(n,t) PCHAR(sz ## n), P(t, cb ## n ## Max), P(t FAR*, pcb ## n)
+
22 
+
23 #define ODBC_FUNC(name, params) \
+
24  static SQLRETURN _ ## name params
+
25 
+
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
Definition: odbc.h:381
+
Information about blobs (e.g.
Definition: tds.h:594
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
Definition: iconv.h:92
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
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:890
+
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
+
Definition: odbc.h:163
+
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:756
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
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:630
+
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2913
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
Definition: convert.h:34
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
TDS_UINT8 time
time, 7 digit precision
Definition: tds.h:148
+
Definition: proto.h:26
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: odbc.h:275
+
Definition: tds.h:1092
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
Definition: odbc.h:204
+
TDS_INT date
date, 0 = 1900-01-01
Definition: tds.h:149
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00161_source.html freetds-1.2.3/doc/reference/a00161_source.html --- freetds-1.1.6/doc/reference/a00161_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00161_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: src/pool/pool.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
pool.h
-
-
-
1 /* TDSPool - Connection pooling for TDS based databases
2  * Copyright (C) 2001 Brian Bruns
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 _pool_h_
21 #define _pool_h_
22 
23 #include <assert.h>
24 
25 #if HAVE_SYS_TYPES_H
26 #include <sys/types.h>
27 #endif
28 
29 #if HAVE_NETINET_IN_H
30 #include <netinet/in.h>
31 #endif
32 
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>
41 #include <freetds/utils/dlist.h>
42 
43 /* defines */
44 #define PGSIZ 2048
45 #define BLOCKSIZ 512
46 #define MAX_POOL_USERS 1024
47 
48 /* enums and typedefs */
49 typedef enum
50 {
51  TDS_SRV_WAIT, /* if no members are free wait */
52  TDS_SRV_QUERY,
53 } TDS_USER_STATE;
54 
55 /* forward declaration */
56 typedef struct tds_pool_event TDS_POOL_EVENT;
57 typedef struct tds_pool_socket TDS_POOL_SOCKET;
58 typedef struct tds_pool_member TDS_POOL_MEMBER;
59 typedef struct tds_pool_user TDS_POOL_USER;
60 typedef struct tds_pool TDS_POOL;
61 typedef void (*TDS_POOL_EXECUTE)(TDS_POOL_EVENT *event);
62 
64 {
65  TDS_POOL_EVENT *next;
66  TDS_POOL_EXECUTE execute;
67 };
68 
70 {
71  TDSSOCKET *tds;
72  bool poll_recv;
73  bool poll_send;
74 };
75 
77 {
78  TDS_POOL_SOCKET sock;
79  DLIST_FIELDS(dlist_user_item);
80  TDSLOGIN *login;
81  TDS_USER_STATE user_state;
82  TDS_POOL_MEMBER *assigned_member;
83 };
84 
86 {
87  TDS_POOL_SOCKET sock;
88  DLIST_FIELDS(dlist_member_item);
89  bool doing_async;
90  time_t last_used_tm;
91  TDS_POOL_USER *current_user;
92 };
93 
94 #define DLIST_PREFIX dlist_member
95 #define DLIST_LIST_TYPE dlist_members
96 #define DLIST_ITEM_TYPE TDS_POOL_MEMBER
97 #include <freetds/utils/dlist.tmpl.h>
98 
99 #define DLIST_PREFIX dlist_user
100 #define DLIST_LIST_TYPE dlist_users
101 #define DLIST_ITEM_TYPE TDS_POOL_USER
102 #include <freetds/utils/dlist.tmpl.h>
103 
104 struct tds_pool
105 {
106  char *name;
107  char *user;
108  char *password;
109  char *server;
110  char *database;
111  char *server_user;
112  char *server_password;
113  int port;
114  int max_member_age; /* in seconds */
115  int min_open_conn;
116  int max_open_conn;
117  tds_mutex events_mtx;
118  TDS_SYS_SOCKET listen_fd;
119  TDS_SYS_SOCKET wakeup_fd;
120  TDS_SYS_SOCKET event_fd;
121  TDS_POOL_EVENT *events;
122 
123  int num_active_members;
124  dlist_members active_members;
125  dlist_members idle_members;
126 
128  dlist_users waiters;
129  int num_users;
130  dlist_users users;
131  TDSCONTEXT *ctx;
132 
133  unsigned long user_logins;
134  unsigned long member_logins;
135 };
136 
137 /* prototypes */
138 
139 /* member.c */
140 void pool_process_members(TDS_POOL * pool, fd_set * rfds, fd_set * wfds);
141 TDS_POOL_MEMBER *pool_assign_idle_member(TDS_POOL * pool, TDS_POOL_USER *user);
142 void pool_mbr_init(TDS_POOL * pool);
143 void pool_mbr_destroy(TDS_POOL * pool);
144 void pool_free_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr);
145 void pool_assign_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr, TDS_POOL_USER *puser);
146 void pool_deassign_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr);
147 void pool_reset_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr);
148 bool pool_packet_read(TDSSOCKET * tds);
149 
150 /* user.c */
151 void pool_process_users(TDS_POOL * pool, fd_set * rfds, fd_set * wfds);
152 void pool_user_init(TDS_POOL * pool);
153 void pool_user_destroy(TDS_POOL * pool);
154 TDS_POOL_USER *pool_user_create(TDS_POOL * pool, TDS_SYS_SOCKET s);
155 void pool_free_user(TDS_POOL * pool, TDS_POOL_USER * puser);
156 void pool_user_query(TDS_POOL * pool, TDS_POOL_USER * puser);
157 bool pool_user_send_login_ack(TDS_POOL * pool, TDS_POOL_USER * puser);
158 void pool_user_finish_login(TDS_POOL * pool, TDS_POOL_USER * puser);
159 
160 /* util.c */
161 void dump_login(TDSLOGIN * login);
162 void pool_event_add(TDS_POOL *pool, TDS_POOL_EVENT *ev, TDS_POOL_EXECUTE execute);
163 int pool_write(TDS_SYS_SOCKET sock, const void *buf, size_t len);
164 bool pool_write_data(TDS_POOL_SOCKET *from, TDS_POOL_SOCKET *to);
165 
166 /* config.c */
167 bool pool_read_conf_files(const char *path, const char *poolname, TDS_POOL * pool, char **err);
168 
169 
170 #endif
Information for a server connection.
Definition: tds.h:1141
-
Definition: tds.h:511
-
Definition: pool.h:76
-
Definition: pool.h:104
-
Definition: tds.h:1029
-
Definition: pool.h:69
-
dlist_users waiters
users in wait state
Definition: pool.h:128
-
Definition: pool.h:85
-
Definition: pool.h:63
-
Main include file for libtds.
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00164_source.html freetds-1.2.3/doc/reference/a00164_source.html --- freetds-1.1.6/doc/reference/a00164_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00164_source.html 2020-07-09 09:01:55.000000000 +0000 @@ -0,0 +1,333 @@ + + + + + + + +FreeTDS API: src/pool/pool.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pool.h
+
+
+
1 /* TDSPool - Connection pooling for TDS based databases
+
2  * Copyright (C) 2001 Brian Bruns
+
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 _pool_h_
+
21 #define _pool_h_
+
22 
+
23 #include <assert.h>
+
24 
+
25 #if HAVE_SYS_TYPES_H
+
26 #include <sys/types.h>
+
27 #endif
+
28 
+
29 #if HAVE_NETINET_IN_H
+
30 #include <netinet/in.h>
+
31 #endif
+
32 
+
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>
+
41 #include <freetds/utils/dlist.h>
+
42 
+
43 /* defines */
+
44 #define PGSIZ 2048
+
45 #define BLOCKSIZ 512
+
46 #define MAX_POOL_USERS 1024
+
47 
+
48 /* enums and typedefs */
+
49 typedef enum
+
50 {
+
51  TDS_SRV_WAIT, /* if no members are free wait */
+
52  TDS_SRV_QUERY,
+
53 } TDS_USER_STATE;
+
54 
+
55 /* forward declaration */
+
56 typedef struct tds_pool_event TDS_POOL_EVENT;
+
57 typedef struct tds_pool_socket TDS_POOL_SOCKET;
+
58 typedef struct tds_pool_member TDS_POOL_MEMBER;
+
59 typedef struct tds_pool_user TDS_POOL_USER;
+
60 typedef struct tds_pool TDS_POOL;
+
61 typedef void (*TDS_POOL_EXECUTE)(TDS_POOL_EVENT *event);
+
62 
+ +
64 {
+
65  TDS_POOL_EVENT *next;
+
66  TDS_POOL_EXECUTE execute;
+
67 };
+
68 
+ +
70 {
+
71  TDSSOCKET *tds;
+
72  bool poll_recv;
+
73  bool poll_send;
+
74 };
+
75 
+ +
77 {
+
78  TDS_POOL_SOCKET sock;
+
79  DLIST_FIELDS(dlist_user_item);
+
80  TDSLOGIN *login;
+
81  TDS_USER_STATE user_state;
+
82  TDS_POOL_MEMBER *assigned_member;
+
83 };
+
84 
+ +
86 {
+
87  TDS_POOL_SOCKET sock;
+
88  DLIST_FIELDS(dlist_member_item);
+
89  bool doing_async;
+
90  time_t last_used_tm;
+
91  TDS_POOL_USER *current_user;
+
92 };
+
93 
+
94 #define DLIST_PREFIX dlist_member
+
95 #define DLIST_LIST_TYPE dlist_members
+
96 #define DLIST_ITEM_TYPE TDS_POOL_MEMBER
+
97 #include <freetds/utils/dlist.tmpl.h>
+
98 
+
99 #define DLIST_PREFIX dlist_user
+
100 #define DLIST_LIST_TYPE dlist_users
+
101 #define DLIST_ITEM_TYPE TDS_POOL_USER
+
102 #include <freetds/utils/dlist.tmpl.h>
+
103 
+
104 struct tds_pool
+
105 {
+
106  char *name;
+
107  char *user;
+
108  char *password;
+
109  char *server;
+
110  char *database;
+
111  char *server_user;
+
112  char *server_password;
+
113  int port;
+
114  int max_member_age; /* in seconds */
+
115  int min_open_conn;
+
116  int max_open_conn;
+
117  tds_mutex events_mtx;
+
118  TDS_SYS_SOCKET listen_fd;
+
119  TDS_SYS_SOCKET wakeup_fd;
+
120  TDS_SYS_SOCKET event_fd;
+
121  TDS_POOL_EVENT *events;
+
122 
+
123  int num_active_members;
+
124  dlist_members active_members;
+
125  dlist_members idle_members;
+
126 
+
128  dlist_users waiters;
+
129  int num_users;
+
130  dlist_users users;
+
131  TDSCONTEXT *ctx;
+
132 
+
133  unsigned long user_logins;
+
134  unsigned long member_logins;
+
135 };
+
136 
+
137 /* prototypes */
+
138 
+
139 /* member.c */
+
140 int pool_process_members(TDS_POOL * pool, fd_set * rfds, fd_set * wfds);
+
141 TDS_POOL_MEMBER *pool_assign_idle_member(TDS_POOL * pool, TDS_POOL_USER *user);
+
142 void pool_mbr_init(TDS_POOL * pool);
+
143 void pool_mbr_destroy(TDS_POOL * pool);
+
144 void pool_free_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr);
+
145 void pool_assign_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr, TDS_POOL_USER *puser);
+
146 void pool_deassign_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr);
+
147 void pool_reset_member(TDS_POOL *pool, TDS_POOL_MEMBER * pmbr);
+
148 bool pool_packet_read(TDSSOCKET * tds);
+
149 
+
150 /* user.c */
+
151 void pool_process_users(TDS_POOL * pool, fd_set * rfds, fd_set * wfds);
+
152 void pool_user_init(TDS_POOL * pool);
+
153 void pool_user_destroy(TDS_POOL * pool);
+
154 TDS_POOL_USER *pool_user_create(TDS_POOL * pool, TDS_SYS_SOCKET s);
+
155 void pool_free_user(TDS_POOL * pool, TDS_POOL_USER * puser);
+
156 void pool_user_query(TDS_POOL * pool, TDS_POOL_USER * puser);
+
157 bool pool_user_send_login_ack(TDS_POOL * pool, TDS_POOL_USER * puser);
+
158 void pool_user_finish_login(TDS_POOL * pool, TDS_POOL_USER * puser);
+
159 
+
160 /* util.c */
+
161 void dump_login(TDSLOGIN * login);
+
162 void pool_event_add(TDS_POOL *pool, TDS_POOL_EVENT *ev, TDS_POOL_EXECUTE execute);
+
163 int pool_write(TDS_SYS_SOCKET sock, const void *buf, size_t len);
+
164 bool pool_write_data(TDS_POOL_SOCKET *from, TDS_POOL_SOCKET *to);
+
165 
+
166 /* config.c */
+
167 bool pool_read_conf_files(const char *path, const char *poolname, TDS_POOL * pool, char **err);
+
168 
+
169 
+
170 #endif
+
+
unsigned int bulk_copy
if bulk copy should be enabled
Definition: tds.h:557
+
TDS_USMALLINT tds_version
TDS version.
Definition: tds.h:521
+
DSTR new_password
new password to set (TDS 7.2+)
Definition: tds.h:537
+
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition: net.c:168
+
struct addrinfo * ip_addrs
ip(s) of server
Definition: tds.h:547
+
DSTR cafile
certificate authorities file
Definition: tds.h:531
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
Definition: main.c:205
+
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
void tds_start_query(TDSSOCKET *tds, unsigned char packet_type)
Start query packet of a given type.
Definition: query.c:332
+ +
char * database
database name
Definition: tds.h:971
+
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition: tdsstring.c:107
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
Definition: pool.h:64
+
#define tds_dstr_empty(s)
Make a string empty.
Definition: string.h:91
+
static int tds_read_interfaces(const char *server, TDSLOGIN *login)
Try to find the IP number and port for a (possibly) logical server name.
Definition: config.c:1191
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
DSTR crlfile
certificate revocation file
Definition: tds.h:532
+
@ TDS_WRITING
client is writing data
Definition: tds.h:792
+
DSTR db_filename
database filename to attach (MSSQL)
Definition: tds.h:530
+
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:877
+
DSTR origdsn
original name of the data source
Definition: winsetup.c:64
+
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition: tdsstring.c:55
+
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition: mem.c:800
+
static void tds_dstr_init(DSTR *s)
init a string with empty
Definition: string.h:53
+
DSTR server_spn
server SPN (in freetds.conf)
Definition: tds.h:529
+
Definition: tds.h:1030
+
A structure to hold all the compile-time settings.
Definition: tds.h:83
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
int port
port of database service
Definition: tds.h:520
+
Definition: pool.h:105
+
DSTR server_charset
charset of server e.g.
Definition: tds.h:524
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
TDSRET tds_set_interfaces_file_loc(const char *interf)
Set the full name of interface file.
Definition: config.c:965
+
int tds_put_string(TDSSOCKET *tds, const char *s, int len)
Output a string to wire automatic translate string to unicode if needed.
Definition: write.c:97
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
Definition: pool.h:77
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
Definition: member.c:401
+
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition: login.c:125
+
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
+
DSTR dsn
edited name of the data source
Definition: winsetup.c:65
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
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:1249
+
static int search_interface_file(TDSLOGIN *login, const char *dir, const char *file, const char *host)
Open and read the file 'file' searching for a logical server by the name of 'host'.
Definition: config.c:1068
+
Definition: config.c:55
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
unsigned char out_flag
output buffer type
Definition: tds.h:1197
+
Definition: pool.h:70
+
Definition: tds.h:518
+
bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *param)
Read a section of configuration file (INI style file)
Definition: config.c:503
+
Structure to hold a string.
Definition: string.h:36
+
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
+
TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login)
Set TDS version from given string.
Definition: config.c:922
+
Definition: winsetup.c:63
+
static int tds_lookup_port(const char *portname)
Given a portname lookup the port.
Definition: config.c:1030
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
bool tds_read_conf_file(TDSLOGIN *login, const char *server)
Read configuration info for given server return 0 on error.
Definition: config.c:346
+
Definition: tds.h:583
+
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition: config.c:285
+
DSTR password
password of account login
Definition: tds.h:536
+
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:1341
+
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition: tdsstring.c:134
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
Provide poll call where missing.
+
char * tds_get_home_file(const char *file)
Return filename from HOME directory.
Definition: config.c:325
+
TDSLOGIN * login
everything else
Definition: winsetup.c:66
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
+
DSTR user_name
account for login
Definition: tds.h:535
+
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition: string.h:49
+
dlist_users waiters
users in wait state
Definition: pool.h:128
+
static int parse_server_name_for_port(TDSLOGIN *connection, TDSLOGIN *login, bool update_server)
Check the server name to find port info first Warning: connection-> & login-> are all modified when n...
Definition: config.c:1297
+
struct addrinfo * tds_lookup_host(const char *servername)
Get the IP address for a hostname.
Definition: config.c:991
+
Definition: config.c:904
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
void tdsdump_close(void)
Close the TDS dump log file.
Definition: log.c:193
+
DSTR server_realm_name
server realm name (in freetds.conf)
Definition: tds.h:528
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+
Definition: pool.h:86
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00194_source.html freetds-1.2.3/doc/reference/a00194_source.html --- freetds-1.1.6/doc/reference/a00194_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00194_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/replacements/iconv_charsets.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
iconv_charsets.h
-
-
-
1 /*
2  * Autogenerated file.
3  * Generated by iconv_charsets.pl
4  */
5 
6 #define CP1252_ALL \
7  CP1252(0x80, 8364) \
8  CP1252(0x82, 8218) \
9  CP1252(0x83, 402) \
10  CP1252(0x84, 8222) \
11  CP1252(0x85, 8230) \
12  CP1252(0x86, 8224) \
13  CP1252(0x87, 8225) \
14  CP1252(0x88, 710) \
15  CP1252(0x89, 8240) \
16  CP1252(0x8a, 352) \
17  CP1252(0x8b, 8249) \
18  CP1252(0x8c, 338) \
19  CP1252(0x8e, 381) \
20  CP1252(0x91, 8216) \
21  CP1252(0x92, 8217) \
22  CP1252(0x93, 8220) \
23  CP1252(0x94, 8221) \
24  CP1252(0x95, 8226) \
25  CP1252(0x96, 8211) \
26  CP1252(0x97, 8212) \
27  CP1252(0x98, 732) \
28  CP1252(0x99, 8482) \
29  CP1252(0x9a, 353) \
30  CP1252(0x9b, 8250) \
31  CP1252(0x9c, 339) \
32  CP1252(0x9e, 382) \
33  CP1252(0x9f, 376)
34 
35 static const uint16_t cp1252_0080_00a0[] = {
36  0x20ac,
37  0x81,
38  0x201a,
39  0x192,
40  0x201e,
41  0x2026,
42  0x2020,
43  0x2021,
44  0x2c6,
45  0x2030,
46  0x160,
47  0x2039,
48  0x152,
49  0x8d,
50  0x17d,
51  0x8f,
52  0x90,
53  0x2018,
54  0x2019,
55  0x201c,
56  0x201d,
57  0x2022,
58  0x2013,
59  0x2014,
60  0x2dc,
61  0x2122,
62  0x161,
63  0x203a,
64  0x153,
65  0x9d,
66  0x17e,
67  0x178,
68 };
69 
70 TDS_COMPILE_CHECK(cp1252size, sizeof(cp1252_0080_00a0) == 0x20*sizeof(uint16_t));
- - - - diff -Nru freetds-1.1.6/doc/reference/a00197_source.html freetds-1.2.3/doc/reference/a00197_source.html --- freetds-1.1.6/doc/reference/a00197_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00197_source.html 2020-07-09 09:01:55.000000000 +0000 @@ -0,0 +1,269 @@ + + + + + + + +FreeTDS API: src/replacements/iconv_charsets.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
iconv_charsets.h
+
+
+
1 /*
+
2  * Autogenerated file.
+
3  * Generated by iconv_charsets.pl
+
4  */
+
5 
+
6 #define CP1252_ALL \
+
7  CP1252(0x80, 8364) \
+
8  CP1252(0x82, 8218) \
+
9  CP1252(0x83, 402) \
+
10  CP1252(0x84, 8222) \
+
11  CP1252(0x85, 8230) \
+
12  CP1252(0x86, 8224) \
+
13  CP1252(0x87, 8225) \
+
14  CP1252(0x88, 710) \
+
15  CP1252(0x89, 8240) \
+
16  CP1252(0x8a, 352) \
+
17  CP1252(0x8b, 8249) \
+
18  CP1252(0x8c, 338) \
+
19  CP1252(0x8e, 381) \
+
20  CP1252(0x91, 8216) \
+
21  CP1252(0x92, 8217) \
+
22  CP1252(0x93, 8220) \
+
23  CP1252(0x94, 8221) \
+
24  CP1252(0x95, 8226) \
+
25  CP1252(0x96, 8211) \
+
26  CP1252(0x97, 8212) \
+
27  CP1252(0x98, 732) \
+
28  CP1252(0x99, 8482) \
+
29  CP1252(0x9a, 353) \
+
30  CP1252(0x9b, 8250) \
+
31  CP1252(0x9c, 339) \
+
32  CP1252(0x9e, 382) \
+
33  CP1252(0x9f, 376)
+
34 
+
35 static const uint16_t cp1252_0080_00a0[] = {
+
36  0x20ac,
+
37  0x81,
+
38  0x201a,
+
39  0x192,
+
40  0x201e,
+
41  0x2026,
+
42  0x2020,
+
43  0x2021,
+
44  0x2c6,
+
45  0x2030,
+
46  0x160,
+
47  0x2039,
+
48  0x152,
+
49  0x8d,
+
50  0x17d,
+
51  0x8f,
+
52  0x90,
+
53  0x2018,
+
54  0x2019,
+
55  0x201c,
+
56  0x201d,
+
57  0x2022,
+
58  0x2013,
+
59  0x2014,
+
60  0x2dc,
+
61  0x2122,
+
62  0x161,
+
63  0x203a,
+
64  0x153,
+
65  0x9d,
+
66  0x17e,
+
67  0x178,
+
68 };
+
69 
+
70 TDS_COMPILE_CHECK(cp1252size, sizeof(cp1252_0080_00a0) == 0x20*sizeof(uint16_t));
+
+
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition: stream.c:354
+
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition: net.c:168
+
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
+
unsigned pkt_pos
position in pkt
Definition: tds.h:1572
+
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2171
+
int tds_canonical_charset(const char *charset_name)
Determine canonical iconv character set.
Definition: iconv.c:968
+
unsigned size_len
length size (0, 1, 2 or 4)
Definition: tds.h:1574
+
size_t size
size of data inside buffer
Definition: stream.h:106
+
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition: tds.h:1204
+
void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
Initialize a data output stream.
Definition: stream.c:244
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
Definition: user.c:521
+
@ TDS_IDLE
no data expected
Definition: tds.h:791
+
Definition: iconv.h:78
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
TDSCURSOR * cur_cursor
cursor in use
Definition: tds.h:1244
+
input stream to read data from a static buffer
Definition: stream.h:81
+
Definition: tds.h:1566
+
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
+
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
+
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition: packet.c:527
+
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 ** buf
where is stored the pointer
Definition: stream.h:102
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
Definition: pool.h:64
+
int tds_iconv_alloc(TDSCONNECTION *conn)
Allocate iconv stuff.
Definition: iconv.c:305
+
Hold information for any results.
Definition: tds.h:770
+
Definition: iconv.h:92
+
unsigned char * out_buf
Output buffer.
Definition: tds.h:1186
+
@ TDS_SENDING
client would send data
Definition: tds.h:793
+
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
+
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1094
+
Definition: user.c:100
+
static int tds_iconv_init(void)
Initialize charset searching for UTF-8, UCS-2 and ISO8859-1.
Definition: iconv.c:90
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
static const char * tds_set_iconv_name(int charset)
Get iconv name given canonic.
Definition: iconv.c:236
+
@ TDS_WRITING
client is writing data
Definition: tds.h:792
+
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.
Definition: iconv.c:864
+
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:877
+
static int tds_staticin_stream_read(TDSINSTREAM *stream, void *ptr, size_t len)
Reads data from a static allocated buffer.
Definition: stream.c:268
+
unsigned char canonic
internal numeric index into array of all encodings
Definition: tds.h:625
+
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).
Definition: iconv.c:590
+
Information relevant to libiconv.
Definition: tds.h:619
+
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_freeze_abort(TDSFREEZE *freeze)
Discard all data written after the freeze.
Definition: packet.c:961
+
define a stream of data used for output
Definition: stream.h:39
+
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
+
Definition: tds.h:1030
+
char * charset
character set encoding
Definition: tds.h:969
+
enum tds_states TDS_STATE
values for tds->state
+
Definition: pool.h:105
+
DSTR server_charset
charset of server e.g.
Definition: tds.h:524
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
TDSPACKET * pkt
first packet frozen
Definition: tds.h:1570
+
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
+
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
+
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:756
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
Definition: util.c:237
+
Definition: pool.h:77
+
Definition: iconv.h:85
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
+
output stream to write data to a static buffer.
Definition: stream.h:92
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
static int tds_staticout_stream_write(TDSOUTSTREAM *stream, size_t len)
Writes data to a static allocated buffer.
Definition: stream.c:298
+
static int tds_dynamic_stream_write(TDSOUTSTREAM *stream, size_t len)
Writes data to a dynamic allocated buffer.
Definition: stream.c:324
+
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_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:2750
+
size_t wire_size
bytes still to read
Definition: stream.h:65
+
const char * name
name of the encoding (ie UTF-8)
Definition: tds.h:621
+
static int tds_dataout_stream_write(TDSOUTSTREAM *stream, size_t len)
Writes data to network for output stream.
Definition: stream.c:215
+
output stream to write data to tds protocol
Definition: stream.h:72
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
unsigned char out_flag
output buffer type
Definition: tds.h:1197
+
define a stream of data used for input
Definition: stream.h:30
+
Definition: pool.h:70
+
Definition: tds.h:877
+
const char * tds_canonical_charset_name(const char *charset_name)
Determine canonical iconv character set name.
Definition: iconv.c:980
+
Definition: tds.h:518
+
void * tds_realloc(void **pp, size_t new_size)
Reallocate a pointer and update it if success.
Definition: mem.c:1876
+
unsigned out_pos
current position in out_buf
Definition: tds.h:1194
+
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:408
+
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:1234
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
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
+
input stream to read data from tds protocol
Definition: stream.h:63
+
Definition: tds.h:1058
+
Definition: replacements.h:88
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
TDSSOCKET * tds
which socket we refer to
Definition: tds.h:1568
+
DSTR password
password of account login
Definition: tds.h:536
+
size_t allocated
currently allocated buffer
Definition: stream.h:104
+
static int tds_datain_stream_read(TDSINSTREAM *stream, void *ptr, size_t len)
Reads data from network for input stream.
Definition: stream.c:185
+
Definition: stream.c:44
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1192
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
static int tds_iconv_info_init(TDSICONV *char_conv, int client_canonic, int server_canonic)
Open iconv descriptors to convert between character sets (both directions).
Definition: iconv.c:442
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
Definition: tds.h:1092
+
DSTR user_name
account for login
Definition: tds.h:535
+
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
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
dlist_users waiters
users in wait state
Definition: pool.h:128
+
unsigned char in_flag
input buffer type
Definition: tds.h:1196
+
Definition: charset_lookup.h:36
+
char * buffer
write buffer.
Definition: stream.h:50
+
output stream to write data to a dynamic buffer
Definition: stream.h:99
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
@ TDS_READING
client is reading data
Definition: tds.h:795
+
Definition: pool.h:86
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00233_source.html freetds-1.2.3/doc/reference/a00233_source.html --- freetds-1.1.6/doc/reference/a00233_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00233_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/alternative_character_sets.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
alternative_character_sets.h
-
-
-
1 /*
2  * Copyright 2003 James K. Lowden <jklowden@schemamania.org>
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted, provided that redistributions of source
5  * code retain the above copyright notice.
6  */
7 
8  /*
9  * The purpose of this file is to help look up character set names.
10  *
11  * Any given encoding may be known by several (usually similar) aliases.
12  * For example, a system using ASCII encoding may report the character set as
13  * "ASCII", "US-ASCII", or "ISO646-US", among others. For details on what your system
14  * uses, you may wish to consult the nl_langinfo(3) manual page.
15  *
16  * GNU iconv converts a byte sequence from one encoding to another, but before it can do
17  * so, it must be told which is which. In the list below, the preferred GNU iconv(3) name
18  * is on the left and an alias is on the right. It is a simple exercise, left to the reader,
19  * to write a function that uses these data to look up the canonical name when provided
20  * an alias.
21  */
22 
23 #ifndef _ALTERNATIVE_CHARACTER_SETS_H_
24 #define _ALTERNATIVE_CHARACTER_SETS_H_
25 
26 /*
27  * $Id: alternative_character_sets.h,v 1.10 2005-02-26 13:08:32 freddy77 Exp $
28  */
29 
30 /*
31  * This list is sorted alphabetically, except that the most
32  * commonly used character sets are first.
33  */
34  /* ASCII */
35  { "US-ASCII", "US-ASCII" }
36  , { "US-ASCII", "ANSI_X3.4-1968" }
37  , { "US-ASCII", "ANSI_X3.4-1986" }
38  , { "US-ASCII", "ASCII" }
39  , { "US-ASCII", "CP367" }
40  , { "US-ASCII", "CSASCII" }
41  , { "US-ASCII", "IBM367" }
42  , { "US-ASCII", "ISO-IR-6" }
43  , { "US-ASCII", "ISO646-US" }
44  , { "US-ASCII", "ISO_646.IRV:1991" }
45  , { "US-ASCII", "US" }
46  , { "US-ASCII", "646" } /* NetBSD default */
47  /* ISO_8859-1 */
48  , { "ISO-8859-1", "ISO-8859-1" }
49  , { "ISO-8859-1", "CP819" }
50  , { "ISO-8859-1", "CSISOLATIN1" }
51  , { "ISO-8859-1", "IBM819" }
52  , { "ISO-8859-1", "ISO-IR-100" }
53  , { "ISO-8859-1", "ISO8859-1" }
54  , { "ISO-8859-1", "ISO_8859-1" }
55  , { "ISO-8859-1", "ISO_8859-1:1987" }
56  , { "ISO-8859-1", "L1" }
57  , { "ISO-8859-1", "LATIN1" }
58  , { "ISO-8859-1", "iso81" }
59  , { "ISO-8859-1", "iso88591" }
60  /* UCS-2 */
61  , { "UCS-2", "UCS-2" }
62  , { "UCS-2", "CSUNICODE" }
63  , { "UCS-2", "ISO-10646-UCS-2" }
64  , { "UCS-2", "UCS2" }
65  , { "UCS-2", "ucs2" }
66  , { "UCS-2-INTERNAL", "UCS-2-INTERNAL" }
67  , { "UCS-2-SWAPPED", "UCS-2-SWAPPED" }
68  , { "UCS-2BE", "UCS-2BE" }
69  , { "UCS-2BE", "CSUNICODE11" }
70  , { "UCS-2BE", "UNICODE-1-1" }
71  , { "UCS-2BE", "UNICODEBIG" }
72  , { "UCS-2LE", "UCS-2LE" }
73  , { "UCS-2LE", "UNICODELITTLE" }
74  /* UTF-8 */
75  , { "UTF-8", "UTF-8" }
76  , { "UTF-8", "UTF8" }
77  , { "UTF-8", "utf8" }
78 
79  /* Basically alphabetical from here */
80  , { "ARMSCII-8", "ARMSCII-8" }
81  , { "BIG-5", "BIG-5" }
82  , { "BIG-5", "BIG-FIVE" }
83  , { "BIG-5", "BIG5" }
84  , { "BIG-5", "BIGFIVE" }
85  , { "BIG-5", "CN-BIG5" }
86  , { "BIG-5", "CSBIG5" }
87  , { "BIG-5", "big5" }
88  , { "BIG5-HKSCS", "BIG5-HKSCS" }
89  , { "BIG5-HKSCS", "BIG5HKSCS" }
90  , { "C99", "C99" }
91  , { "CHINESE", "CHINESE" }
92  , { "CHINESE", "CSISO58GB231280" }
93  , { "CHINESE", "GB_2312-80" }
94  , { "CHINESE", "ISO-IR-58" }
95  , { "CHINESE", "hp15CN" }
96  , { "CN", "CN" }
97  , { "CN", "CSISO57GB1988" }
98  , { "CN", "GB_1988-80" }
99  , { "CN", "ISO-IR-57" }
100  , { "CN", "ISO646-CN" }
101  , { "CN-GB", "CN-GB" }
102  , { "CN-GB", "CSGB2312" }
103  , { "CN-GB", "EUC-CN" }
104  , { "CN-GB", "EUCCN" }
105  , { "CN-GB", "GB2312" }
106  , { "CN-GB-ISOIR165", "CN-GB-ISOIR165" }
107  , { "CN-GB-ISOIR165", "ISO-IR-165" }
108  , { "CP1133", "CP1133" }
109  , { "CP1133", "IBM-CP1133" }
110  , { "CP1250", "CP1250" }
111  , { "CP1250", "MS-EE" }
112  , { "CP1250", "WINDOWS-1250" }
113  , { "CP1250", "cp1250" }
114  , { "CP1251", "CP1251" }
115  , { "CP1251", "MS-CYRL" }
116  , { "CP1251", "WINDOWS-1251" }
117  , { "CP1251", "cp1251" }
118  , { "CP1252", "CP1252" }
119  , { "CP1252", "MS-ANSI" }
120  , { "CP1252", "WINDOWS-1252" }
121  , { "CP1252", "cp1252" }
122  , { "CP1253", "CP1253" }
123  , { "CP1253", "MS-GREEK" }
124  , { "CP1253", "WINDOWS-1253" }
125  , { "CP1253", "cp1253" }
126  , { "CP1254", "CP1254" }
127  , { "CP1254", "MS-TURK" }
128  , { "CP1254", "WINDOWS-1254" }
129  , { "CP1254", "cp1254" }
130  , { "CP1255", "CP1255" }
131  , { "CP1255", "MS-HEBR" }
132  , { "CP1255", "WINDOWS-1255" }
133  , { "CP1255", "cp1255" }
134  , { "CP1256", "CP1256" }
135  , { "CP1256", "MS-ARAB" }
136  , { "CP1256", "WINDOWS-1256" }
137  , { "CP1256", "cp1256" }
138  , { "CP1257", "CP1257" }
139  , { "CP1257", "WINBALTRIM" }
140  , { "CP1257", "WINDOWS-1257" }
141  , { "CP1257", "cp1257" }
142  , { "CP1258", "CP1258" }
143  , { "CP1258", "WINDOWS-1258" }
144  , { "CP1258", "cp1258" }
145  , { "CP1361", "CP1361" }
146  , { "CP1361", "JOHAB" }
147  , { "CP850", "CP850" }
148  , { "CP850", "850" }
149  , { "CP850", "CSPC850MULTILINGUAL" }
150  , { "CP850", "IBM850" }
151  , { "CP850", "cp850" }
152  , { "CP862", "CP862" }
153  , { "CP862", "862" }
154  , { "CP862", "CSPC862LATINHEBREW" }
155  , { "CP862", "IBM862" }
156  , { "CP862", "cp862" }
157  , { "CP866", "CP866" }
158  , { "CP866", "866" }
159  , { "CP866", "CSIBM866" }
160  , { "CP866", "IBM866" }
161  , { "CP866", "cp866" }
162  , { "CP874", "CP874" }
163  , { "CP874", "WINDOWS-874" }
164  , { "CP874", "cp874" }
165  , { "CP932", "CP932" }
166  , { "CP936", "CP936" }
167  , { "CP936", "GBK" }
168  , { "CP949", "CP949" }
169  , { "CP949", "UHC" }
170  , { "CP950", "CP950" }
171  , { "CP437", "CP437" }
172  , { "CP437", "cp437" }
173  , { "CP437", "IBM437" }
174  , { "EUC-JP", "EUC-JP" }
175  , { "EUC-JP", "CSEUCPKDFMTJAPANESE" }
176  , { "EUC-JP", "EUCJP" }
177  , { "EUC-JP", "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE"}
178  , { "EUC-JP", "eucJP" }
179  , { "EUC-KR", "EUC-KR" }
180  , { "EUC-KR", "CSEUCKR" }
181  , { "EUC-KR", "EUCKR" }
182  , { "EUC-KR", "eucKR" }
183  , { "EUC-TW", "CSEUCTW" }
184  , { "EUC-TW", "EUC-TW" }
185  , { "EUC-TW", "EUCTW" }
186  , { "EUC-TW", "eucTW" }
187  , { "GB18030", "GB18030" }
188  , { "GEORGIAN-ACADEMY", "GEORGIAN-ACADEMY" }
189  , { "GEORGIAN-PS", "GEORGIAN-PS" }
190  , { "HZ", "HZ" }
191  , { "HZ", "HZ-GB-2312" }
192  , { "ISO-2022-CN", "ISO-2022-CN" }
193  , { "ISO-2022-CN", "CSISO2022CN" }
194  , { "ISO-2022-CN-EXT", "ISO-2022-CN-EXT" }
195  , { "ISO-2022-JP", "ISO-2022-JP" }
196  , { "ISO-2022-JP", "CSISO2022JP" }
197  , { "ISO-2022-JP-1", "ISO-2022-JP-1" }
198  , { "ISO-2022-JP-2", "ISO-2022-JP-2" }
199  , { "ISO-2022-JP-2", "CSISO2022JP2" }
200  , { "ISO-2022-KR", "ISO-2022-KR" }
201  , { "ISO-2022-KR", "CSISO2022KR" }
202  , { "ISO-8859-10", "ISO-8859-10" }
203  , { "ISO-8859-10", "CSISOLATIN6" }
204  , { "ISO-8859-10", "ISO-IR-157" }
205  , { "ISO-8859-10", "ISO8859-10" }
206  , { "ISO-8859-10", "ISO_8859-10" }
207  , { "ISO-8859-10", "ISO_8859-10:1992" }
208  , { "ISO-8859-10", "L6" }
209  , { "ISO-8859-10", "LATIN6" }
210  , { "ISO-8859-13", "ISO-8859-13" }
211  , { "ISO-8859-13", "ISO-IR-179" }
212  , { "ISO-8859-13", "ISO_8859-13" }
213  , { "ISO-8859-13", "L7" }
214  , { "ISO-8859-13", "LATIN7" }
215  , { "ISO-8859-14", "ISO-8859-14" }
216  , { "ISO-8859-14", "ISO-CELTIC" }
217  , { "ISO-8859-14", "ISO-IR-199" }
218  , { "ISO-8859-14", "ISO_8859-14" }
219  , { "ISO-8859-14", "ISO_8859-14:1998" }
220  , { "ISO-8859-14", "L8" }
221  , { "ISO-8859-14", "LATIN8" }
222  , { "ISO-8859-15", "ISO8859-15" }
223  , { "ISO-8859-15", "ISO-8859-15" }
224  , { "ISO-8859-15", "ISO-IR-203" }
225  , { "ISO-8859-15", "ISO_8859-15" }
226  , { "ISO-8859-15", "ISO_8859-15:1998" }
227  , { "ISO-8859-15", "iso815" }
228  , { "ISO-8859-15", "iso885915" }
229  , { "ISO-8859-16", "ISO-8859-16" }
230  , { "ISO-8859-16", "ISO-IR-226" }
231  , { "ISO-8859-16", "ISO_8859-16" }
232  , { "ISO-8859-16", "ISO_8859-16:2000" }
233  , { "ISO-8859-2", "ISO-8859-2" }
234  , { "ISO-8859-2", "CSISOLATIN2" }
235  , { "ISO-8859-2", "ISO8859-2" }
236  , { "ISO-8859-2", "ISO-IR-101" }
237  , { "ISO-8859-2", "ISO_8859-2" }
238  , { "ISO-8859-2", "ISO_8859-2:1987" }
239  , { "ISO-8859-2", "L2" }
240  , { "ISO-8859-2", "LATIN2" }
241  , { "ISO-8859-2", "iso82" }
242  , { "ISO-8859-2", "iso88592" }
243  , { "ISO-8859-3", "ISO-8859-3" }
244  , { "ISO-8859-3", "CSISOLATIN3" }
245  , { "ISO-8859-3", "ISO-IR-109" }
246  , { "ISO-8859-3", "ISO_8859-3" }
247  , { "ISO-8859-3", "ISO_8859-3:1988" }
248  , { "ISO-8859-3", "L3" }
249  , { "ISO-8859-3", "LATIN3" }
250  , { "ISO-8859-3", "iso83" }
251  , { "ISO-8859-3", "iso88593" }
252  , { "ISO-8859-4", "ISO8859-4" }
253  , { "ISO-8859-4", "CSISOLATIN4" }
254  , { "ISO-8859-4", "ISO-8859-4" }
255  , { "ISO-8859-4", "ISO-IR-110" }
256  , { "ISO-8859-4", "ISO_8859-4" }
257  , { "ISO-8859-4", "ISO_8859-4:1988" }
258  , { "ISO-8859-4", "L4" }
259  , { "ISO-8859-4", "LATIN4" }
260  , { "ISO-8859-4", "iso84" }
261  , { "ISO-8859-4", "iso88594" }
262  , { "ISO-8859-5", "ISO-8859-5" }
263  , { "ISO-8859-5", "CSISOLATINCYRILLIC" }
264  , { "ISO-8859-5", "CYRILLIC" }
265  , { "ISO-8859-5", "ISO8859-5" }
266  , { "ISO-8859-5", "ISO-IR-144" }
267  , { "ISO-8859-5", "ISO8859-5" }
268  , { "ISO-8859-5", "ISO_8859-5" }
269  , { "ISO-8859-5", "ISO_8859-5:1988" }
270  , { "ISO-8859-5", "iso85" }
271  , { "ISO-8859-5", "iso88595" }
272  , { "ISO-8859-6", "ISO-8859-6" }
273  , { "ISO-8859-6", "ARABIC" }
274  , { "ISO-8859-6", "ASMO-708" }
275  , { "ISO-8859-6", "CSISOLATINARABIC" }
276  , { "ISO-8859-6", "ECMA-114" }
277  , { "ISO-8859-6", "ISO-IR-127" }
278  , { "ISO-8859-6", "ISO8859-6" }
279  , { "ISO-8859-6", "ISO_8859-6" }
280  , { "ISO-8859-6", "ISO_8859-6:1987" }
281  , { "ISO-8859-6", "iso86" }
282  , { "ISO-8859-6", "iso88596" }
283  , { "ISO-8859-7", "ISO-8859-7" }
284  , { "ISO-8859-7", "CSISOLATINGREEK" }
285  , { "ISO-8859-7", "ECMA-118" }
286  , { "ISO-8859-7", "ELOT_928" }
287  , { "ISO-8859-7", "GREEK" }
288  , { "ISO-8859-7", "GREEK8" }
289  , { "ISO-8859-7", "ISO-IR-126" }
290  , { "ISO-8859-7", "ISO8859-7" }
291  , { "ISO-8859-7", "ISO_8859-7" }
292  , { "ISO-8859-7", "ISO_8859-7:1987" }
293  , { "ISO-8859-7", "iso87" }
294  , { "ISO-8859-7", "iso88597" }
295  , { "ISO-8859-8", "ISO-8859-8" }
296  , { "ISO-8859-8", "CSISOLATINHEBREW" }
297  , { "ISO-8859-8", "HEBREW" }
298  , { "ISO-8859-8", "ISO8859-8" }
299  , { "ISO-8859-8", "ISO-IR-138" }
300  , { "ISO-8859-8", "ISO_8859-8" }
301  , { "ISO-8859-8", "ISO_8859-8:1988" }
302  , { "ISO-8859-8", "iso88" }
303  , { "ISO-8859-8", "iso88598" }
304  , { "ISO-8859-9", "ISO-8859-9" }
305  , { "ISO-8859-9", "CSISOLATIN5" }
306  , { "ISO-8859-9", "ISO-IR-148" }
307  , { "ISO-8859-9", "ISO8859-9" }
308  , { "ISO-8859-9", "ISO_8859-9" }
309  , { "ISO-8859-9", "ISO_8859-9:1989" }
310  , { "ISO-8859-9", "L5" }
311  , { "ISO-8859-9", "LATIN5" }
312  , { "ISO-8859-9", "iso88599" }
313  , { "ISO-8859-9", "iso89" }
314  , { "ISO-IR-14", "ISO-IR-14" }
315  , { "ISO-IR-14", "CSISO14JISC6220RO" }
316  , { "ISO-IR-14", "ISO646-JP" }
317  , { "ISO-IR-14", "JIS_C6220-1969-RO" }
318  , { "ISO-IR-14", "JP" }
319  , { "ISO-IR-149", "ISO-IR-149" }
320  , { "ISO-IR-149", "CSKSC56011987" }
321  , { "ISO-IR-149", "KOREAN" }
322  , { "ISO-IR-149", "KSC_5601" }
323  , { "ISO-IR-149", "KS_C_5601-1987" }
324  , { "ISO-IR-149", "KS_C_5601-1989" }
325  , { "ISO-IR-159", "ISO-IR-159" }
326  , { "ISO-IR-159", "CSISO159JISX02121990" }
327  , { "ISO-IR-159", "JIS_X0212" }
328  , { "ISO-IR-159", "JIS_X0212-1990" }
329  , { "ISO-IR-159", "JIS_X0212.1990-0" }
330  , { "ISO-IR-159", "X0212" }
331  , { "ISO-IR-166", "ISO-IR-166" }
332  , { "ISO-IR-166", "TIS-620" }
333  , { "ISO-IR-166", "TIS620" }
334  , { "ISO-IR-166", "TIS620-0" }
335  , { "ISO-IR-166", "TIS620.2529-1" }
336  , { "ISO-IR-166", "TIS620.2533-0" }
337  , { "ISO-IR-166", "TIS620.2533-1" }
338  , { "ISO-IR-166", "thai8" }
339  , { "ISO-IR-166", "tis620" }
340  , { "ISO-IR-87", "ISO-IR-87" }
341  , { "ISO-IR-87", "CSISO87JISX0208" }
342  , { "ISO-IR-87", "JIS0208" }
343  , { "ISO-IR-87", "JIS_C6226-1983" }
344  , { "ISO-IR-87", "JIS_X0208" }
345  , { "ISO-IR-87", "JIS_X0208-1983" }
346  , { "ISO-IR-87", "JIS_X0208-1990" }
347  , { "ISO-IR-87", "X0208" }
348  , { "JAVA", "JAVA" }
349  , { "JISX0201-1976", "JISX0201-1976" }
350  , { "JISX0201-1976", "CSHALFWIDTHKATAKANA" }
351  , { "JISX0201-1976", "JIS_X0201" }
352  , { "JISX0201-1976", "X0201" }
353  , { "KOI8-R", "KOI8-R" }
354  , { "KOI8-R", "CSKOI8R" }
355  , { "KOI8-RU", "KOI8-RU" }
356  , { "KOI8-T", "KOI8-T" }
357  , { "KOI8-U", "KOI8-U" }
358  , { "MAC", "MAC" }
359  , { "MAC", "CSMACINTOSH" }
360  , { "MAC", "MACINTOSH" }
361  , { "MAC", "MACROMAN" }
362  , { "MACARABIC", "MACARABIC" }
363  , { "MACCENTRALEUROPE", "MACCENTRALEUROPE" }
364  , { "MACCROATIAN", "MACCROATIAN" }
365  , { "MACCYRILLIC", "MACCYRILLIC" }
366  , { "MACGREEK", "MACGREEK" }
367  , { "MACHEBREW", "MACHEBREW" }
368  , { "MACICELAND", "MACICELAND" }
369  , { "MACROMANIA", "MACROMANIA" }
370  , { "MACTHAI", "MACTHAI" }
371  , { "MACTURKISH", "MACTURKISH" }
372  , { "MACUKRAINE", "MACUKRAINE" }
373  , { "MULELAO-1", "MULELAO-1" }
374  , { "NEXTSTEP", "NEXTSTEP" }
375  , { "ROMAN8", "ROMAN8" }
376  , { "ROMAN8", "CSHPROMAN8" }
377  , { "ROMAN8", "HP-ROMAN8" }
378  , { "ROMAN8", "R8" }
379  , { "ROMAN8", "roma8" }
380  , { "ROMAN8", "roman8" }
381  , { "SJIS", "SJIS" }
382  , { "SJIS", "CSSHIFTJIS" }
383  , { "SJIS", "MS_KANJI" }
384  , { "SJIS", "SHIFT-JIS" }
385  , { "SJIS", "SHIFT_JIS" }
386  , { "SJIS", "sjis" }
387  , { "TCVN", "TCVN" }
388  , { "TCVN", "TCVN-5712" }
389  , { "TCVN", "TCVN5712-1" }
390  , { "TCVN", "TCVN5712-1:1993" }
391  , { "UCS-4", "UCS-4" }
392  , { "UCS-4", "CSUCS4" }
393  , { "UCS-4", "ISO-10646-UCS-4" }
394  , { "UCS-4", "UCS4" }
395  , { "UCS-4", "ucs4" }
396  , { "UCS-4-INTERNAL", "UCS-4-INTERNAL" }
397  , { "UCS-4-SWAPPED", "UCS-4-SWAPPED" }
398  , { "UCS-4BE", "UCS-4BE" }
399  , { "UCS-4LE", "UCS-4LE" }
400  , { "UTF-16", "UTF-16" }
401  , { "UTF-16", "UTF16" }
402  , { "UTF-16BE", "UTF-16BE" }
403  , { "UTF-16LE", "UTF-16LE" }
404  , { "UTF-32", "UTF-32" }
405  , { "UTF-32BE", "UTF-32BE" }
406  , { "UTF-32LE", "UTF-32LE" }
407  , { "UTF-7", "UTF-7" }
408  , { "UTF-7", "CSUNICODE11UTF7" }
409  , { "UTF-7", "UNICODE-1-1-UTF-7" }
410  , { "UTF-7", "UTF7" }
411  , { "VISCII", "VISCII" }
412  , { "VISCII", "CSVISCII" }
413  , { "VISCII", "VISCII1.1-1" }
414 
415  /*
416  * The following are noted in Tru64 manuals, but
417  * have no canonical names in FreeTDS
418  *
419  * TACTIS TACTIS codeset
420  * dechanyu DEC Hanyu codeset
421  * dechanzi DEC Hanzi codeset
422  * deckanji DEC Kanji codeset
423  * deckorean DEC Korean codeset
424  * sdeckanji Super DEC Kanji codeset
425  */
426 
427  /* no stopper row; add your own */
428 #endif
- - - - diff -Nru freetds-1.1.6/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.map freetds-1.2.3/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.map --- freetds-1.1.6/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.md5 freetds-1.2.3/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -b59f8ee7b23ba8bd4e4b77b0992d221a \ No newline at end of file +9947f2628742eb5a417e65fb01a538ae \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.svg freetds-1.2.3/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.svg --- freetds-1.1.6/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a1b83c9db016b481aa1fa0352f976d50d_icgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds_file_stream_read - - -Node29 - -tds_file_stream_read - - -Node30 - - -tds_bcp_fread + + + +Node1 + + +tds_file_stream_read - -Node29->Node30 - - + + +Node2 + + +tds_bcp_fread + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.map freetds-1.2.3/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.map --- freetds-1.1.6/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.md5 freetds-1.2.3/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -dcbf8aa16e323dcbfef3c82909bfd95d \ No newline at end of file +3783aaadf070d5273455e4ac497c7ec5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.svg freetds-1.2.3/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds7_build_bulk_insert_stmt - - -Node3 - -tds7_build_bulk_insert_stmt - - -Node4 - - -tdsdump_log + + + +Node1 + + +tds7_build_bulk_insert_stmt - -Node3->Node4 - - + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.map freetds-1.2.3/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.map --- freetds-1.1.6/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.md5 freetds-1.2.3/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -c6b74657dd04627a26e574a75d464664 \ No newline at end of file +0a8d18f9d89df4609e3d3d2d2d1123f1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.svg freetds-1.2.3/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a4daaa551e54dbd978650e2eef89e09ff_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds7_bcp_send_colmetadata - - -Node0 - -tds7_bcp_send_colmetadata - + -Node1 - - -tdsdump_log + +Node1 + + +tds7_bcp_send_colmetadata + + + + + +Node2 + + +tdsdump_log - -Node0->Node1 - - + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.map freetds-1.2.3/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.map --- freetds-1.1.6/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.md5 freetds-1.2.3/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -bafc5b317739968a3e23bbe29f40e766 \ No newline at end of file +de002511e9e704a7198f61675b64c2ea \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.svg freetds-1.2.3/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a5eec23828b0610c58de248c4edb53879_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds_bcp_start_copy_in - - -Node23 - -tds_bcp_start_copy_in - - -Node24 - - -tdsdump_log + + + +Node1 + + +tds_bcp_start_copy_in - -Node23->Node24 - - + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.map freetds-1.2.3/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.map --- freetds-1.1.6/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 freetds-1.2.3/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -d84f3cd7b1b1ef6dd59d41b6a80e389d \ No newline at end of file +185d141dccf6551dcd8d18b9c3a028dc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg freetds-1.2.3/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds_writetext_start - - -Node39 - -tds_writetext_start - - -Node40 - - -tds_submit_queryf + + + +Node1 + + +tds_writetext_start - -Node39->Node40 - - + + +Node2 + + +tds_submit_queryf + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map freetds-1.2.3/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map --- freetds-1.1.6/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 freetds-1.2.3/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -82f9eedc02a9d1179ccdfe93897c807b \ No newline at end of file +2820d4b6d3981af9a1a2b7dec66ac610 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg freetds-1.2.3/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds_bcp_start - - -Node20 - -tds_bcp_start - - -Node21 - - -tdsdump_log + + + +Node1 + + +tds_bcp_start - -Node20->Node21 - - + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.map freetds-1.2.3/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.map --- freetds-1.1.6/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.md5 freetds-1.2.3/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -a5ba0c8b7c915f3a71cf090894ea843a \ No newline at end of file +80e8433dc7b61acd0e4829ef76a1bf3d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.svg freetds-1.2.3/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds_bcp_fread - - -Node13 - -tds_bcp_fread - - -Node14 - - -tds_file_stream_read + + + +Node1 + + +tds_bcp_fread - -Node13->Node14 - - + + +Node2 + + +tds_file_stream_read + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.map freetds-1.2.3/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.map --- freetds-1.1.6/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,4 +1,5 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 freetds-1.2.3/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -d655614c7d8c1caa95b6b085940a8ae5 \ No newline at end of file +7e932de87744e8fb5da208058355439a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg freetds-1.2.3/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,44 +1,52 @@ - - + tds_writetext_continue - - -Node31 - -tds_writetext_continue - - -Node32 - - -tds_set_state + + + +Node1 + + +tds_writetext_continue - -Node31->Node32 - - - - -Node33 - - -tdsdump_log + + +Node2 + + +tds_set_state - -Node32->Node33 - - + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node2->Node3 + + diff -Nru freetds-1.1.6/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.map freetds-1.2.3/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.map --- freetds-1.1.6/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,4 +1,5 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.md5 freetds-1.2.3/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -45776bd16b8803ff0abc4d42f7950258 \ No newline at end of file +6bc6b9911e8f2a223f020121572d556a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.svg freetds-1.2.3/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ac1e460551f1188620ea478238864ac4b_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,44 +1,52 @@ - - + tds_writetext_end - - -Node35 - -tds_writetext_end - - -Node36 - - -tds_set_state + + + +Node1 + + +tds_writetext_end - -Node35->Node36 - - - - -Node37 - - -tdsdump_log + + +Node2 + + +tds_set_state - -Node36->Node37 - - + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node2->Node3 + + diff -Nru freetds-1.1.6/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.map freetds-1.2.3/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.map --- freetds-1.1.6/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - + + diff -Nru freetds-1.1.6/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.md5 freetds-1.2.3/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.md5 --- freetds-1.1.6/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -c8f1056eb259dedd6d3b4566298e2e54 \ No newline at end of file +b748612108c6a026568ba2ec3e2a91a3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.svg freetds-1.2.3/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.svg --- freetds-1.1.6/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236_ade7df2db455b61edc83819ad60edb339_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - + tds_bcp_done - - -Node10 - -tds_bcp_done - - -Node11 - - -tdsdump_log + + + +Node1 + + +tds_bcp_done - -Node10->Node11 - - + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00236.html freetds-1.2.3/doc/reference/a00236.html --- freetds-1.1.6/doc/reference/a00236.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00236.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: src/tds/bulk.c File Reference @@ -29,18 +29,21 @@ - + +/* @license-end */
@@ -75,7 +78,7 @@ 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>
@@ -85,87 +88,87 @@
Include dependency graph for bulk.c:
-
+
- - + + - - + +

Classes

struct  tds_file_stream
 input stream to read a file More...
struct  tds_file_stream
 input stream to read a file More...
 
struct  tds_pbcb
 Holds clause buffer. More...
struct  tds_pbcb
 Holds clause buffer. More...
 
- - - - - - + + + + + +

Typedefs

-typedef struct tds_file_stream TDSFILESTREAM
 input stream to read a file
 
-typedef struct tds_pbcb TDSPBCB
 Holds clause buffer.
 
+typedef struct tds_file_stream TDSFILESTREAM
 input stream to read a file
 
+typedef struct tds_pbcb TDSPBCB
 Holds clause buffer.
 
- - + + - - + + - - + + - - + + - - + + - - + + - - + + +static void  - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

Functions

static TDSRET tds7_bcp_send_colmetadata (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Send BCP metadata to server. More...
static TDSRET tds7_bcp_send_colmetadata (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Send BCP metadata to server. More...
 
static TDSRET tds7_build_bulk_insert_stmt (TDSSOCKET *tds, TDSPBCB *clause, TDSCOLUMN *bcpcol, int first)
 Help to build query to be sent to server. More...
static TDSRET tds7_build_bulk_insert_stmt (TDSSOCKET *tds, TDSPBCB *clause, TDSCOLUMN *bcpcol, int first)
 Help to build query to be sent to server. More...
 
static int tds_bcp_add_fixed_columns (TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error ignored, int offset, unsigned char *rowbuffer, int start)
 Add fixed size columns to the row. More...
static int tds_bcp_add_fixed_columns (TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error ignored, int offset, unsigned char *rowbuffer, int start)
 Add fixed size columns to the row. More...
 
static int tds_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. More...
static int tds_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. More...
 
TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
 Tell we finished sending BCP data to server. More...
TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
 Tell we finished sending BCP data to server. More...
 
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(). More...
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(). More...
 
TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Initialize BCP information. More...
TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Initialize BCP information. More...
 
-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 ignored, int offset)
 Send one row of data to server. More...
TDSRET tds_bcp_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error ignored, int offset)
 Send one row of data to server. More...
 
TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start sending BCP data to server. More...
TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start sending BCP data to server. More...
 
TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start bulk copy to server. More...
TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start bulk copy to server. More...
 
static TDSRET tds_bcp_start_insert_stmt (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Prepare the query to be sent to server to request BCP information. More...
static TDSRET tds_bcp_start_insert_stmt (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Prepare the query to be sent to server to request BCP information. More...
 
static int tds_file_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
 Reads a chunk of data from file stream checking for terminator. More...
static int tds_file_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
 Reads a chunk of data from file stream checking for terminator. More...
 
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. More...
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. More...
 
TDSRET tds_writetext_end (TDSSOCKET *tds)
 Finish sending writetext data. More...
TDSRET tds_writetext_end (TDSSOCKET *tds)
 Finish sending writetext data. More...
 
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. More...
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. More...
 

Detailed Description

Handle bulk copy.

Function Documentation

-

§ tds7_bcp_send_colmetadata()

+

◆ tds7_bcp_send_colmetadata()

@@ -176,13 +179,13 @@ static TDSRET tds7_bcp_send_colmetadata ( - TDSSOCKET *  + TDSSOCKETtds, - TDSBCPINFO *  + TDSBCPINFObcpinfo  @@ -210,14 +213,14 @@
Here is the call graph for this function:
-
+
-

§ tds7_build_bulk_insert_stmt()

+

◆ tds7_build_bulk_insert_stmt()

@@ -228,19 +231,19 @@ static TDSRET tds7_build_bulk_insert_stmt ( - TDSSOCKET *  + TDSSOCKETtds, - TDSPBCB *  + TDSPBCBclause, - TDSCOLUMN *  + TDSCOLUMNbcpcol, @@ -276,14 +279,14 @@
Here is the call graph for this function:
-
+
-

§ tds_bcp_add_fixed_columns()

+

◆ tds_bcp_add_fixed_columns()

@@ -294,7 +297,7 @@ static int tds_bcp_add_fixed_columns ( - TDSBCPINFO *  + TDSBCPINFObcpinfo, @@ -357,7 +360,7 @@
-

§ tds_bcp_add_variable_columns()

+

◆ tds_bcp_add_variable_columns()

@@ -368,7 +371,7 @@ static int tds_bcp_add_variable_columns ( - TDSBCPINFO *  + TDSBCPINFObcpinfo, @@ -429,7 +432,8 @@ offsetpassed to get_col_data and null_error to specify the row to get rowbufferThe row image that will be sent to the server. startWhere to begin copying data into the rowbuffer. - pncolsAddress of output variable holding the count of columns added to the rowbuffer. + pncolsAddress of output variable holding the count of columns added to the rowbuffer.
+ @@ -438,7 +442,7 @@
-

§ tds_bcp_done()

+

◆ tds_bcp_done()

@@ -446,7 +450,7 @@ TDSRET tds_bcp_done ( - TDSSOCKET *  + TDSSOCKETtds, @@ -474,14 +478,14 @@
Here is the call graph for this function:
-
+
-

§ tds_bcp_fread()

+

◆ tds_bcp_fread()

@@ -489,13 +493,13 @@ TDSRET tds_bcp_fread ( - TDSSOCKET *  + TDSSOCKETtds, - TDSICONV *  + TDSICONVchar_conv, @@ -548,14 +552,14 @@
Here is the call graph for this function:
-
+
-

§ tds_bcp_init()

+

◆ tds_bcp_init()

@@ -563,13 +567,13 @@ TDSRET tds_bcp_init ( - TDSSOCKET *  + TDSSOCKETtds, - TDSBCPINFO *  + TDSBCPINFObcpinfo  @@ -592,7 +596,7 @@
-

§ tds_bcp_send_record()

+

◆ tds_bcp_send_record()

@@ -600,13 +604,13 @@ TDSRET tds_bcp_send_record ( - TDSSOCKET *  + TDSSOCKETtds, - TDSBCPINFO *  + TDSBCPINFObcpinfo, @@ -651,7 +655,7 @@
-

§ tds_bcp_start()

+

◆ tds_bcp_start()

@@ -659,13 +663,13 @@ TDSRET tds_bcp_start ( - TDSSOCKET *  + TDSSOCKETtds, - TDSBCPINFO *  + TDSBCPINFObcpinfo  @@ -687,14 +691,14 @@
Here is the call graph for this function:
-
+
-

§ tds_bcp_start_copy_in()

+

◆ tds_bcp_start_copy_in()

@@ -702,13 +706,13 @@ TDSRET tds_bcp_start_copy_in ( - TDSSOCKET *  + TDSSOCKETtds, - TDSBCPINFO *  + TDSBCPINFObcpinfo  @@ -730,14 +734,14 @@
Here is the call graph for this function:
-
+
-

§ tds_bcp_start_insert_stmt()

+

◆ tds_bcp_start_insert_stmt()

@@ -748,13 +752,13 @@ static TDSRET tds_bcp_start_insert_stmt ( - TDSSOCKET *  + TDSSOCKETtds, - TDSBCPINFO *  + TDSBCPINFObcpinfo  @@ -782,7 +786,7 @@
-

§ tds_file_stream_read()

+

◆ tds_file_stream_read()

@@ -793,7 +797,7 @@ static int tds_file_stream_read ( - TDSINSTREAM *  + TDSINSTREAMstream, @@ -833,14 +837,14 @@
Here is the caller graph for this function:
-
+
-

§ tds_writetext_continue()

+

◆ tds_writetext_continue()

@@ -848,7 +852,7 @@ TDSRET tds_writetext_continue ( - TDSSOCKET *  + TDSSOCKETtds, @@ -883,14 +887,14 @@
Here is the call graph for this function:
-
+
-

§ tds_writetext_end()

+

◆ tds_writetext_end()

@@ -898,7 +902,7 @@ TDSRET tds_writetext_end ( - TDSSOCKET *  + TDSSOCKETtds) @@ -915,14 +919,14 @@
Here is the call graph for this function:
-
+
-

§ tds_writetext_start()

+

◆ tds_writetext_start()

@@ -930,7 +934,7 @@ TDSRET tds_writetext_start ( - TDSSOCKET *  + TDSSOCKETtds, @@ -986,7 +990,7 @@
Here is the call graph for this function:
-
+
@@ -997,7 +1001,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00237.map freetds-1.2.3/doc/reference/a00237.map --- freetds-1.1.6/doc/reference/a00237.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00237.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,22 +1,27 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00237.md5 freetds-1.2.3/doc/reference/a00237.md5 --- freetds-1.1.6/doc/reference/a00237.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00237.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -232190eeff914ed2a77bc4662dc44398 \ No newline at end of file +c43cc71d3dc81ef8bb9ba59fc1e91af9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00237.svg freetds-1.2.3/doc/reference/a00237.svg --- freetds-1.1.6/doc/reference/a00237.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00237.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,433 +1,520 @@ - - + src/tds/bulk.c - - -Node0 - -src/tds/bulk.c - + -Node1 - - -config.h + +Node1 + + +src/tds/bulk.c - -Node0->Node1 - - - -Node2 - -assert.h - - -Node0->Node2 - - + +Node2 + + +config.h + + + + + +Node1->Node2 + + -Node3 - - -freetds/tds.h + +Node3 + + +assert.h - -Node0->Node3 - - + + +Node1->Node3 + + - -Node14 - - -freetds/utils/string.h + + +Node4 + + +freetds/tds.h - -Node0->Node14 - - + + +Node1->Node4 + + - -Node17 - - -replacements.h + + +Node15 + + +freetds/utils/string.h - -Node0->Node17 - - + + +Node1->Node15 + + - -Node21 - - -freetds/checks.h + + +Node18 + + +replacements.h - -Node0->Node21 - - + + +Node1->Node18 + + -Node22 - - -freetds/bytes.h + +Node22 + + +freetds/checks.h - -Node0->Node22 - - + + +Node1->Node22 + + -Node23 - - -freetds/iconv.h + +Node23 + + +freetds/bytes.h - -Node0->Node23 - - + + +Node1->Node23 + + -Node24 - - -freetds/stream.h + +Node24 + + +freetds/iconv.h - -Node0->Node24 - - + + +Node1->Node24 + + + + + +Node25 + + +freetds/stream.h + - -Node4 - -stdarg.h - - -Node3->Node4 - - + + + +Node1->Node25 + + -Node5 - -stdio.h - - -Node3->Node5 - - + +Node5 + + +stdarg.h + + + + + +Node4->Node5 + + -Node6 - - -time.h + +Node6 + + +stdio.h - -Node3->Node6 - - + + +Node4->Node6 + + -Node7 - - -freetds/version.h + +Node7 + + +time.h - -Node3->Node7 - - + + +Node4->Node7 + + -Node8 - - -tds_sysdep_public.h + +Node8 + + +freetds/version.h - -Node3->Node8 - - + + +Node4->Node8 + + - -Node10 - - -freetds/sysdep_private.h + + +Node9 + + +tds_sysdep_public.h - -Node3->Node10 - - + + +Node4->Node9 + + -Node11 - - -freetds/thread.h + +Node11 + + +freetds/sysdep_private.h - -Node3->Node11 - - + + +Node4->Node11 + + -Node12 - - -freetds/bool.h + +Node12 + + +freetds/thread.h - -Node3->Node12 - - + + +Node4->Node12 + + -Node13 - - -freetds/macros.h + +Node13 + + +freetds/bool.h - -Node3->Node13 - - - - -Node3->Node14 - - + + +Node4->Node13 + + - -Node15 - - -freetds/pushvis.h + + +Node14 + + +freetds/macros.h - -Node3->Node15 - - + + +Node4->Node14 + + + + + +Node4->Node15 + + -Node16 - - -freetds/popvis.h + +Node16 + + +freetds/pushvis.h - -Node3->Node16 - - - - -Node3->Node17 - - + + +Node4->Node16 + + - -Node20 - - -freetds/proto.h + + +Node17 + + +freetds/popvis.h - -Node3->Node20 - - - - -Node6->Node6 - - + + +Node4->Node17 + + + + + +Node4->Node18 + + - -Node9 - -float.h - - -Node8->Node9 - - - - -Node11->Node8 - - - - -Node14->Node13 - - - - -Node14->Node15 - - - - -Node14->Node16 - - - - -Node17->Node4 - - - - -Node17->Node8 - - - - -Node17->Node10 - - - - -Node17->Node15 - - - - -Node17->Node16 - - + + +Node21 + + +freetds/proto.h + - -Node18 - - -replacements/readpassphrase.h + + + +Node4->Node21 + + + + + +Node7->Node7 + + + + + +Node10 + + +float.h - -Node17->Node18 - - + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node5 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + -Node19 - - -replacements/poll.h + +Node19 + + +replacements/readpassphrase.h - -Node17->Node19 - - - - -Node18->Node15 - - + + +Node18->Node19 + + - -Node18->Node16 - - - - -Node19->Node1 - - - - -Node19->Node15 - - + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + -Node19->Node16 - - - - -Node21->Node15 - - - - -Node21->Node16 - - - - -Node23->Node15 - - - - -Node23->Node16 - - - - -Node24->Node15 - - + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + -Node24->Node16 - - + +Node24->Node16 + + + + + +Node24->Node17 + + + + + +Node25->Node16 + + + + + +Node25->Node17 + + diff -Nru freetds-1.1.6/doc/reference/a00242_source.html freetds-1.2.3/doc/reference/a00242_source.html --- freetds-1.1.6/doc/reference/a00242_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00242_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/character_sets.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
character_sets.h
-
-
-
1 /*
2  * These are the canonical names for character sets accepted by GNU iconv.
3  * See its documentation for the standard it follows.
4  *
5  * GNU iconv accepts other character set names, too, and your favorite operating system
6  * very likely uses still other names to represent the _same_ character set.
7  *
8  * Alternative character set names are mapped to these canonical ones in
9  * alternative_character_sets.h and are accessed with canonical_charset();
10  */
11  {"ISO-8859-1", 1, 1}
12  , {"UTF-8", 1, 4}
13  , {"UCS-2LE", 2, 2}
14  , {"UCS-2BE", 2, 2}
15  , {"UCS-2", 2, 2}
16  , {"US-ASCII", 1, 1}
17  , {"UCS-4", 4, 4}
18  , {"UCS-4BE", 4, 4}
19  , {"UCS-4LE", 4, 4}
20  , {"UTF-16", 2, 4}
21  , {"UTF-16BE", 2, 4}
22  , {"UTF-16LE", 2, 4}
23  , {"UTF-32", 4, 4}
24  , {"UTF-32BE", 4, 4}
25  , {"UTF-32LE", 4, 4}
26  , {"UTF-7", 1, 4}
27  , {"UCS-2-INTERNAL", 2, 2}
28  , {"UCS-2-SWAPPED", 2, 2}
29  , {"UCS-4-INTERNAL", 4, 4}
30  , {"UCS-4-SWAPPED", 4, 4}
31  , {"C99", 1, 1}
32  , {"JAVA", 1, 1}
33  , {"ISO-8859-2", 1, 1}
34  , {"ISO-8859-3", 1, 1}
35  , {"ISO-8859-4", 1, 1}
36  , {"ISO-8859-5", 1, 1}
37  , {"ISO-8859-6", 1, 1}
38  , {"ISO-8859-7", 1, 1}
39  , {"ISO-8859-8", 1, 1}
40  , {"ISO-8859-9", 1, 1}
41  , {"ISO-8859-10", 1, 1}
42  , {"ISO-8859-13", 1, 1}
43  , {"ISO-8859-14", 1, 1}
44  , {"ISO-8859-15", 1, 1}
45  , {"ISO-8859-16", 1, 1}
46  , {"KOI8-R", 1, 1}
47  , {"KOI8-U", 1, 1}
48  , {"KOI8-RU", 1, 1}
49  , {"CP1250", 1, 1}
50  , {"CP1251", 1, 1}
51  , {"CP1252", 1, 1}
52  , {"CP1253", 1, 1}
53  , {"CP1254", 1, 1}
54  , {"CP1255", 1, 1}
55  , {"CP1256", 1, 1}
56  , {"CP1257", 1, 1}
57  , {"CP1258", 1, 1}
58  , {"CP850", 1, 1}
59  , {"CP862", 1, 1}
60  , {"CP866", 1, 1}
61  , {"CP437", 1, 1}
62  , {"MAC", 1, 1}
63  , {"MACCENTRALEUROPE", 1, 1}
64  , {"MACICELAND", 1, 1}
65  , {"MACCROATIAN", 1, 1}
66  , {"MACROMANIA", 1, 1}
67  , {"MACCYRILLIC", 1, 1}
68  , {"MACUKRAINE", 1, 1}
69  , {"MACGREEK", 1, 1}
70  , {"MACTURKISH", 1, 1}
71  , {"MACHEBREW", 1, 1}
72  , {"MACARABIC", 1, 1}
73  , {"MACTHAI", 1, 1}
74  , {"ROMAN8", 1, 1}
75  , {"NEXTSTEP", 1, 1}
76  , {"ARMSCII-8", 1, 1}
77  , {"GEORGIAN-ACADEMY", 1, 1}
78  , {"GEORGIAN-PS", 1, 1}
79  , {"KOI8-T", 1, 1}
80  , {"MULELAO-1", 1, 1}
81  , {"CP1133", 1, 1}
82  , {"ISO-IR-166", 1, 1}
83  , {"CP874", 1, 1}
84  , {"CP936", 1, 2}
85  , {"CN", 1, 1}
86  , {"CP932", 1, 2}
87  , {"CN-GB", 1, 2}
88  , {"CP950", 1, 2}
89  , {"CP949", 1, 2}
90  , {"CP1361", 1, 2}
91  , {"BIG-5", 1, 2}
92  , {"BIG5-HKSCS", 1, 2}
93  , {"SJIS", 1, 2}
94  , {"EUC-KR", 1, 2}
95  , {"VISCII", 1, 1}
96  , {"ISO-IR-14", 1, 1}
97  , {"EUC-JP", 1, 3}
98  , {"EUC-TW", 1, 4}
99  , {"ISO-2022-JP", 1, 1}
100  , {"ISO-2022-KR", 1, 2}
101  , {"ISO-2022-CN", 1, 4}
102  , {"ISO-2022-CN-EXT", 1, 4}
103  , {"ISO-2022-JP-2", 1, 1}
104  , {"GB18030", 1, 4}
105  /*
106  * Beyond this point, I don't know the right answers.
107  * If you can provide the correct min/max (byte/char) values, please
108  * correct them if necessary and move them above the stopper row.
109  * Will the person vetting the last unknown row please turn off the lights?
110  * --jkl April 2003
111  */
112  , {"", 0, 0} /* stopper row */
113 
114  , {"TCVN", 1, 1}
115  , {"JISX0201-1976", 1, 1}
116  , {"ISO-IR-87", 1, 1}
117  , {"ISO-IR-159", 1, 1}
118  , {"CHINESE", 1, 1}
119  , {"CN-GB-ISOIR165", 1, 1}
120  , {"ISO-IR-149", 1, 1}
121  , {"ISO-2022-JP-1", 1, 1}
122  , {"HZ", 1, 1}
123  /* stopper row */
124  , {"", 0, 0}
125 
- - - - diff -Nru freetds-1.1.6/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.map freetds-1.2.3/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.map --- freetds-1.1.6/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.md5 freetds-1.2.3/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.md5 --- freetds-1.1.6/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +5bb3daf698a463929554cd742bd5a890 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.svg freetds-1.2.3/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.svg --- freetds-1.1.6/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245_a84e17808683ba2dd956e811a42e23176_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_generic_put + + + +Node1 + + +tds_generic_put + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.map freetds-1.2.3/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.map --- freetds-1.1.6/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 freetds-1.2.3/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 --- freetds-1.1.6/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +935121396cbba3aa23a3c418631125b8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.svg freetds-1.2.3/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.svg --- freetds-1.1.6/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245_aabd0e5f15615b5c141c525b76e746520_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_generic_put_info + + + +Node1 + + +tds_generic_put_info + + + + + +Node2 + + +tds_fix_column_size + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00245.html freetds-1.2.3/doc/reference/a00245.html --- freetds-1.1.6/doc/reference/a00245.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00245.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,544 @@ + + + + + + + +FreeTDS API: src/tds/data.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
data.c File Reference
+
+
+ +

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/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>
+#include "tds_types.h"
+
+Include dependency graph for data.c:
+
+
+
+
+
+ + + +

+Classes

struct  tds_varmax_stream
 
+ + + + + + + + + + + +

+Macros

+#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
+#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 
+#define TDS_DECLARE_FUNCS(name)   extern const TDSCOLUMNFUNCS tds_ ## name ## _funcs
 
+#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
 
+#define USE_ICONV   (tds->conn->use_iconv)
 
+ + + +

+Typedefs

+typedef struct tds_varmax_stream TDSVARMAXSTREAM
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+static TDSRET tds72_get_varmax (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
+TDSRET tds_clrudt_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+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_size, sizeof(((TDSVARIANT *) 0) ->data)==sizeof(((TDSBLOB *) 0) ->textvalue))
 
TDS_COMPILE_CHECK (variant_size, sizeof(TDSBLOB) >=sizeof(TDSVARIANT))
 
TDS_DECLARE_FUNCS (clrudt)
 
TDS_DECLARE_FUNCS (generic)
 
TDS_DECLARE_FUNCS (invalid)
 
TDS_DECLARE_FUNCS (msdatetime)
 
TDS_DECLARE_FUNCS (numeric)
 
TDS_DECLARE_FUNCS (sybbigtime)
 
TDS_DECLARE_FUNCS (variant)
 
TDSRET tds_generic_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Read a data from wire. More...
 
+TDSRET tds_generic_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_generic_put (TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
 Write data to wire. More...
 
TDSRET tds_generic_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 Put data information to wire. More...
 
+TDS_INT tds_generic_row_len (TDSCOLUMN *col)
 
+TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype)
 
+static TDSRET tds_get_char_dynamic (TDSSOCKET *tds, TDSCOLUMN *curcol, void **pp, size_t allocated, TDSINSTREAM *r_stream)
 
+static const TDSCOLUMNFUNCStds_get_column_funcs (TDSCONNECTION *conn, int type)
 
+TDSRET tds_invalid_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_invalid_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_invalid_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
+TDSRET tds_invalid_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDS_INT tds_invalid_row_len (TDSCOLUMN *col)
 
+TDSRET tds_msdatetime_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_msdatetime_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_msdatetime_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
+TDSRET tds_msdatetime_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDS_INT tds_msdatetime_row_len (TDSCOLUMN *col)
 
+TDSRET tds_numeric_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
+TDSRET tds_numeric_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_numeric_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
+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)
 Set type of column initializing all dependency. More...
 
void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
 Set type of column initializing all dependency. More...
 
static void tds_swap_numeric (TDS_NUMERIC *num)
 Converts numeric from Microsoft representation to internal one (Sybase). More...
 
+TDSRET tds_sybbigtime_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_sybbigtime_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDSRET tds_sybbigtime_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
+TDSRET tds_sybbigtime_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+TDS_INT tds_sybbigtime_row_len (TDSCOLUMN *col)
 
+TDSRET tds_variant_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
+TDSRET tds_variant_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
+TDSRET tds_variant_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
+static int tds_varmax_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
 
+

Detailed Description

+

Handle different data handling from network.

+

Function Documentation

+ +

◆ tds_generic_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDSRET tds_generic_get (TDSSOCKETtds,
TDSCOLUMNcurcol 
)
+
+ +

Read a data from wire.

+
Parameters
+ + + +
tdsstate information for the socket and the TDS protocol
curcolcolumn where store column information
+
+
+
Returns
TDS_FAIL on error or TDS_SUCCESS
+ +
+
+ +

◆ tds_generic_put()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
TDSRET tds_generic_put (TDSSOCKETtds,
TDSCOLUMNcurcol,
int bcp7 
)
+
+ +

Write data to wire.

+
Parameters
+ + + +
tdsstate information for the socket and the TDS protocol
curcolcolumn where store column information
+
+
+
Returns
TDS_FAIL on error or TDS_SUCCESS
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_generic_put_info()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDSRET tds_generic_put_info (TDSSOCKETtds,
TDSCOLUMNcol 
)
+
+ +

Put data information to wire.

+
Parameters
+ + + +
tdsstate information for the socket and the TDS protocol
colcolumn where to store information
+
+
+
Returns
TDS_SUCCESS or TDS_FAIL
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_set_column_type()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tds_set_column_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
+
+ +

Set type of column initializing all dependency.

+

column_usertype should already be set.

Parameters
+ + + +
curcolcolumn to set
typetype to set
+
+
+ +
+
+ +

◆ tds_set_param_type()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tds_set_param_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
+
+ +

Set type of column initializing all dependency.

+
Parameters
+ + + + +
tdsstate information for the socket and the TDS protocol
curcolcolumn to set
typetype to set
+
+
+ +
+
+ +

◆ tds_swap_numeric()

+ +
+
+ + + + + +
+ + + + + + + + +
static void tds_swap_numeric (TDS_NUMERICnum)
+
+static
+
+ +

Converts numeric from Microsoft representation to internal one (Sybase).

+
Parameters
+ + +
numnumeric data to convert
+
+
+ +
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00246.map freetds-1.2.3/doc/reference/a00246.map --- freetds-1.1.6/doc/reference/a00246.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00246.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00246.md5 freetds-1.2.3/doc/reference/a00246.md5 --- freetds-1.1.6/doc/reference/a00246.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00246.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +33790eea7bf42496d3c934f970fa00b0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00246.svg freetds-1.2.3/doc/reference/a00246.svg --- freetds-1.1.6/doc/reference/a00246.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00246.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,613 @@ + + + + + + +src/tds/data.c + + + +Node1 + + +src/tds/data.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdarg.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + +Node5 + + +assert.h + + + + + +Node1->Node5 + + + + + +Node6 + + +freetds/utils.h + + + + + +Node1->Node6 + + + + + +Node9 + + +freetds/pushvis.h + + + + + +Node1->Node9 + + + + + +Node10 + + +freetds/popvis.h + + + + + +Node1->Node10 + + + + + +Node11 + + +freetds/tds.h + + + + + +Node1->Node11 + + + + + +Node23 + + +freetds/bytes.h + + + + + +Node1->Node23 + + + + + +Node24 + + +freetds/iconv.h + + + + + +Node1->Node24 + + + + + +Node25 + + +freetds/checks.h + + + + + +Node1->Node25 + + + + + +Node26 + + +freetds/stream.h + + + + + +Node1->Node26 + + + + + +Node27 + + +freetds/data.h + + + + + +Node1->Node27 + + + + + +Node28 + + +tds_types.h + + + + + +Node1->Node28 + + + + + +Node7 + + +freetds/time.h + + + + + +Node6->Node7 + + + + + +Node8 + + +freetds/sysdep_private.h + + + + + +Node6->Node8 + + + + + +Node6->Node9 + + + + + +Node6->Node10 + + + + + +Node7->Node7 + + + + + +Node11->Node3 + + + + + +Node11->Node4 + + + + + +Node11->Node7 + + + + + +Node11->Node8 + + + + + +Node11->Node9 + + + + + +Node11->Node10 + + + + + +Node12 + + +freetds/version.h + + + + + +Node11->Node12 + + + + + +Node13 + + +tds_sysdep_public.h + + + + + +Node11->Node13 + + + + + +Node15 + + +freetds/thread.h + + + + + +Node11->Node15 + + + + + +Node16 + + +freetds/bool.h + + + + + +Node11->Node16 + + + + + +Node17 + + +freetds/macros.h + + + + + +Node11->Node17 + + + + + +Node18 + + +freetds/utils/string.h + + + + + +Node11->Node18 + + + + + +Node19 + + +replacements.h + + + + + +Node11->Node19 + + + + + +Node22 + + +freetds/proto.h + + + + + +Node11->Node22 + + + + + +Node14 + + +float.h + + + + + +Node13->Node14 + + + + + +Node15->Node13 + + + + + +Node18->Node9 + + + + + +Node18->Node10 + + + + + +Node18->Node17 + + + + + +Node19->Node3 + + + + + +Node19->Node8 + + + + + +Node19->Node9 + + + + + +Node19->Node10 + + + + + +Node19->Node13 + + + + + +Node20 + + +replacements/readpassphrase.h + + + + + +Node19->Node20 + + + + + +Node21 + + +replacements/poll.h + + + + + +Node19->Node21 + + + + + +Node20->Node9 + + + + + +Node20->Node10 + + + + + +Node21->Node2 + + + + + +Node21->Node9 + + + + + +Node21->Node10 + + + + + +Node24->Node9 + + + + + +Node24->Node10 + + + + + +Node25->Node9 + + + + + +Node25->Node10 + + + + + +Node26->Node9 + + + + + +Node26->Node10 + + + + + +Node27->Node9 + + + + + +Node27->Node10 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.map freetds-1.2.3/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.map --- freetds-1.1.6/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.md5 freetds-1.2.3/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.md5 --- freetds-1.1.6/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c4d3c3fd9bdbd4a82c12f39f9a60a458 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.svg freetds-1.2.3/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.svg --- freetds-1.1.6/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_a84e17808683ba2dd956e811a42e23176_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_generic_put - - -Node3 - -tds_generic_put - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.map freetds-1.2.3/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.map --- freetds-1.1.6/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 freetds-1.2.3/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 --- freetds-1.1.6/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6cfa1b775d550c550bed42f6381df4d4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.svg freetds-1.2.3/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.svg --- freetds-1.1.6/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_aabd0e5f15615b5c141c525b76e746520_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_generic_put_info - - -Node6 - -tds_generic_put_info - - -Node7 - - -tds_fix_column_size - - - - -Node6->Node7 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.map freetds-1.2.3/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.map --- freetds-1.1.6/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.md5 freetds-1.2.3/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e045b06ac6ec08666a4d39ca3405df61 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.svg freetds-1.2.3/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.svg --- freetds-1.1.6/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248_abac4d689e0e31e80587f89247c6395a4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_generic_get - - -Node0 - -tds_generic_get - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00248.html freetds-1.2.3/doc/reference/a00248.html --- freetds-1.1.6/doc/reference/a00248.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00248.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,562 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/data.c File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
data.c File Reference
-
-
- -

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/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>
-#include "tds_types.h"
-
-Include dependency graph for data.c:
-
-
-
-
-
- - - -

-Classes

struct  tds_varmax_stream
 
- - - - - - - - - - - -

-Macros

-#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
-#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 
-#define TDS_DECLARE_FUNCS(name)   extern const TDSCOLUMNFUNCS tds_ ## name ## _funcs
 
-#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
 
-#define USE_ICONV   (tds->conn->use_iconv)
 
- - - -

-Typedefs

-typedef struct tds_varmax_stream TDSVARMAXSTREAM
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-static TDSRET tds72_get_varmax (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
-TDSRET tds_clrudt_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_clrudt_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-unsigned tds_clrudt_put_info_len (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDS_INT tds_clrudt_row_len (TDSCOLUMN *col)
 
TDS_COMPILE_CHECK (variant_size, sizeof(TDSBLOB) >=sizeof(TDSVARIANT))
 
TDS_COMPILE_CHECK (tds_variant_size, sizeof(((TDSVARIANT *) 0) ->data)==sizeof(((TDSBLOB *) 0) ->textvalue))
 
TDS_COMPILE_CHECK (tds_variant_offset, TDS_OFFSET(TDSVARIANT, data)==TDS_OFFSET(TDSBLOB, textvalue))
 
TDS_DECLARE_FUNCS (generic)
 
TDS_DECLARE_FUNCS (numeric)
 
TDS_DECLARE_FUNCS (variant)
 
TDS_DECLARE_FUNCS (msdatetime)
 
TDS_DECLARE_FUNCS (clrudt)
 
TDS_DECLARE_FUNCS (sybbigtime)
 
TDS_DECLARE_FUNCS (invalid)
 
TDSRET tds_generic_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Read a data from wire. More...
 
-TDSRET tds_generic_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
TDSRET tds_generic_put (TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
 Write data to wire. More...
 
TDSRET tds_generic_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 Put data information to wire. More...
 
-unsigned tds_generic_put_info_len (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDS_INT tds_generic_row_len (TDSCOLUMN *col)
 
-TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype)
 
-static TDSRET tds_get_char_dynamic (TDSSOCKET *tds, TDSCOLUMN *curcol, void **pp, size_t allocated, TDSINSTREAM *r_stream)
 
-static const TDSCOLUMNFUNCStds_get_column_funcs (TDSCONNECTION *conn, int type)
 
-TDSRET tds_invalid_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_invalid_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_invalid_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
-TDSRET tds_invalid_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-unsigned tds_invalid_put_info_len (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDS_INT tds_invalid_row_len (TDSCOLUMN *col)
 
-TDSRET tds_msdatetime_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_msdatetime_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_msdatetime_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
-TDSRET tds_msdatetime_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDS_INT tds_msdatetime_row_len (TDSCOLUMN *col)
 
-TDSRET tds_numeric_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
-TDSRET tds_numeric_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_numeric_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
-TDSRET tds_numeric_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-unsigned tds_numeric_put_info_len (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)
 Set type of column initializing all dependency. More...
 
void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
 Set type of column initializing all dependency. More...
 
static void tds_swap_numeric (TDS_NUMERIC *num)
 Converts numeric from Microsoft representation to internal one (Sybase). More...
 
-TDSRET tds_sybbigtime_get (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_sybbigtime_get_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDSRET tds_sybbigtime_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
-TDSRET tds_sybbigtime_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-unsigned tds_sybbigtime_put_info_len (TDSSOCKET *tds, TDSCOLUMN *col)
 
-TDS_INT tds_sybbigtime_row_len (TDSCOLUMN *col)
 
-TDSRET tds_variant_get (TDSSOCKET *tds, TDSCOLUMN *curcol)
 
-TDSRET tds_variant_put (TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
-TDSRET tds_variant_put_info (TDSSOCKET *tds, TDSCOLUMN *col)
 
-static int tds_varmax_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
 
-

Detailed Description

-

Handle different data handling from network.

-

Function Documentation

- -

§ tds_generic_get()

- -
-
- - - - - - - - - - - - - - - - - - -
TDSRET tds_generic_get (TDSSOCKETtds,
TDSCOLUMNcurcol 
)
-
- -

Read a data from wire.

-
Parameters
- - - -
tdsstate information for the socket and the TDS protocol
curcolcolumn where store column information
-
-
-
Returns
TDS_FAIL on error or TDS_SUCCESS
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_generic_put()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
TDSRET tds_generic_put (TDSSOCKETtds,
TDSCOLUMNcurcol,
int bcp7 
)
-
- -

Write data to wire.

-
Parameters
- - - -
tdsstate information for the socket and the TDS protocol
curcolcolumn where store column information
-
-
-
Returns
TDS_FAIL on error or TDS_SUCCESS
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_generic_put_info()

- -
-
- - - - - - - - - - - - - - - - - - -
TDSRET tds_generic_put_info (TDSSOCKETtds,
TDSCOLUMNcol 
)
-
- -

Put data information to wire.

-
Parameters
- - - -
tdsstate information for the socket and the TDS protocol
colcolumn where to store information
-
-
-
Returns
TDS_SUCCESS or TDS_FAIL
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_set_column_type()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void tds_set_column_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
-
- -

Set type of column initializing all dependency.

-

column_usertype should already be set.

Parameters
- - - -
curcolcolumn to set
typetype to set
-
-
- -
-
- -

§ tds_set_param_type()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void tds_set_param_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
-
- -

Set type of column initializing all dependency.

-
Parameters
- - - - -
tdsstate information for the socket and the TDS protocol
curcolcolumn to set
typetype to set
-
-
- -
-
- -

§ tds_swap_numeric()

- -
-
- - - - - -
- - - - - - - - -
static void tds_swap_numeric (TDS_NUMERICnum)
-
-static
-
- -

Converts numeric from Microsoft representation to internal one (Sybase).

-
Parameters
- - -
numnumeric data to convert
-
-
- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00249.map freetds-1.2.3/doc/reference/a00249.map --- freetds-1.1.6/doc/reference/a00249.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00249.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00249.md5 freetds-1.2.3/doc/reference/a00249.md5 --- freetds-1.1.6/doc/reference/a00249.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00249.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cafd0a8352593ba865885208095796a0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00249.svg freetds-1.2.3/doc/reference/a00249.svg --- freetds-1.1.6/doc/reference/a00249.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00249.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,512 +0,0 @@ - - - - - - -src/tds/data.c - - -Node0 - -src/tds/data.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -stdarg.h - - -Node0->Node2 - - - - -Node3 - -stdio.h - - -Node0->Node3 - - - - -Node4 - -assert.h - - -Node0->Node4 - - - - -Node5 - - -freetds/utils.h - - - - -Node0->Node5 - - - - -Node8 - - -freetds/pushvis.h - - - - -Node0->Node8 - - - - -Node9 - - -freetds/popvis.h - - - - -Node0->Node9 - - - - -Node10 - - -freetds/tds.h - - - - -Node0->Node10 - - - - -Node22 - - -freetds/bytes.h - - - - -Node0->Node22 - - - - -Node23 - - -freetds/iconv.h - - - - -Node0->Node23 - - - - -Node24 - - -freetds/checks.h - - - - -Node0->Node24 - - - - -Node25 - - -freetds/stream.h - - - - -Node0->Node25 - - - - -Node26 - - -freetds/data.h - - - - -Node0->Node26 - - - - -Node27 - - -tds_types.h - - - - -Node0->Node27 - - - - -Node6 - - -freetds/time.h - - - - -Node5->Node6 - - - - -Node7 - - -freetds/sysdep_private.h - - - - -Node5->Node7 - - - - -Node5->Node8 - - - - -Node5->Node9 - - - - -Node6->Node6 - - - - -Node10->Node2 - - - - -Node10->Node3 - - - - -Node10->Node6 - - - - -Node10->Node7 - - - - -Node10->Node8 - - - - -Node10->Node9 - - - - -Node11 - - -freetds/version.h - - - - -Node10->Node11 - - - - -Node12 - - -tds_sysdep_public.h - - - - -Node10->Node12 - - - - -Node14 - - -freetds/thread.h - - - - -Node10->Node14 - - - - -Node15 - - -freetds/bool.h - - - - -Node10->Node15 - - - - -Node16 - - -freetds/macros.h - - - - -Node10->Node16 - - - - -Node17 - - -freetds/utils/string.h - - - - -Node10->Node17 - - - - -Node18 - - -replacements.h - - - - -Node10->Node18 - - - - -Node21 - - -freetds/proto.h - - - - -Node10->Node21 - - - - -Node13 - -float.h - - -Node12->Node13 - - - - -Node14->Node12 - - - - -Node17->Node8 - - - - -Node17->Node9 - - - - -Node17->Node16 - - - - -Node18->Node2 - - - - -Node18->Node7 - - - - -Node18->Node8 - - - - -Node18->Node9 - - - - -Node18->Node12 - - - - -Node19 - - -replacements/readpassphrase.h - - - - -Node18->Node19 - - - - -Node20 - - -replacements/poll.h - - - - -Node18->Node20 - - - - -Node19->Node8 - - - - -Node19->Node9 - - - - -Node20->Node1 - - - - -Node20->Node8 - - - - -Node20->Node9 - - - - -Node23->Node8 - - - - -Node23->Node9 - - - - -Node24->Node8 - - - - -Node24->Node9 - - - - -Node25->Node8 - - - - -Node25->Node9 - - - - -Node26->Node8 - - - - -Node26->Node9 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00251_source.html freetds-1.2.3/doc/reference/a00251_source.html --- freetds-1.1.6/doc/reference/a00251_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00251_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/encodings.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
encodings.h
-
-
-
1 /*
2  * This file produced from ./encodings.pl on Mon Apr 29 09:00:39 2019
3  */
4 #ifdef TDS_ICONV_ENCODING_TABLES
5 
6 static 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 
104 static 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 static const CHARACTER_SET_ALIAS sybase_aliases[] = {
465  { "ascii_8", 0 },
466  { "big5", 5 },
467  { "cp1250", 13 },
468  { "cp1251", 14 },
469  { "cp1252", 15 },
470  { "cp1253", 16 },
471  { "cp1254", 17 },
472  { "cp1255", 18 },
473  { "cp1256", 19 },
474  { "cp1257", 20 },
475  { "cp1258", 21 },
476  { "cp437", 23 },
477  { "cp850", 24 },
478  { "cp862", 25 },
479  { "cp866", 26 },
480  { "cp874", 27 },
481  { "cp932", 28 },
482  { "cp936", 29 },
483  { "cp949", 30 },
484  { "cp950", 31 },
485  { "greek8", 55 },
486  { "iso10", 45 },
487  { "iso13", 46 },
488  { "iso14", 47 },
489  { "iso15", 48 },
490  { "iso646", 88 },
491  { "iso88592", 50 },
492  { "iso88595", 53 },
493  { "iso88596", 54 },
494  { "iso88597", 55 },
495  { "iso88598", 56 },
496  { "iso88599", 57 },
497  { "iso_1", 0 },
498  { "koi8", 65 },
499  { "mac", 69 },
500  { "mac_cyr", 73 },
501  { "macgreek", 74 },
502  { "macthai", 78 },
503  { "macturk", 79 },
504  { "roman8", 83 },
505  { "sjis", 84 },
506  { "tis620", 61 },
507  { "utf8", 1 },
508  {NULL, 0}
509 };
510 #endif
511 
512 enum {
513  TDS_CHARSET_ISO_8859_1 = 0,
514  TDS_CHARSET_UTF_8 = 1,
515  TDS_CHARSET_UCS_2LE = 2,
516  TDS_CHARSET_UCS_2BE = 3,
517  TDS_CHARSET_ARMSCII_8 = 4,
518  TDS_CHARSET_BIG_5 = 5,
519  TDS_CHARSET_BIG5_HKSCS = 6,
520  TDS_CHARSET_C99 = 7,
521  TDS_CHARSET_CHINESE = 8,
522  TDS_CHARSET_CN = 9,
523  TDS_CHARSET_CN_GB = 10,
524  TDS_CHARSET_CN_GB_ISOIR165 = 11,
525  TDS_CHARSET_CP1133 = 12,
526  TDS_CHARSET_CP1250 = 13,
527  TDS_CHARSET_CP1251 = 14,
528  TDS_CHARSET_CP1252 = 15,
529  TDS_CHARSET_CP1253 = 16,
530  TDS_CHARSET_CP1254 = 17,
531  TDS_CHARSET_CP1255 = 18,
532  TDS_CHARSET_CP1256 = 19,
533  TDS_CHARSET_CP1257 = 20,
534  TDS_CHARSET_CP1258 = 21,
535  TDS_CHARSET_CP1361 = 22,
536  TDS_CHARSET_CP437 = 23,
537  TDS_CHARSET_CP850 = 24,
538  TDS_CHARSET_CP862 = 25,
539  TDS_CHARSET_CP866 = 26,
540  TDS_CHARSET_CP874 = 27,
541  TDS_CHARSET_CP932 = 28,
542  TDS_CHARSET_CP936 = 29,
543  TDS_CHARSET_CP949 = 30,
544  TDS_CHARSET_CP950 = 31,
545  TDS_CHARSET_EUC_JP = 32,
546  TDS_CHARSET_EUC_KR = 33,
547  TDS_CHARSET_EUC_TW = 34,
548  TDS_CHARSET_GB18030 = 35,
549  TDS_CHARSET_GEORGIAN_ACADEMY = 36,
550  TDS_CHARSET_GEORGIAN_PS = 37,
551  TDS_CHARSET_HZ = 38,
552  TDS_CHARSET_ISO_2022_CN = 39,
553  TDS_CHARSET_ISO_2022_CN_EXT = 40,
554  TDS_CHARSET_ISO_2022_JP = 41,
555  TDS_CHARSET_ISO_2022_JP_1 = 42,
556  TDS_CHARSET_ISO_2022_JP_2 = 43,
557  TDS_CHARSET_ISO_2022_KR = 44,
558  TDS_CHARSET_ISO_8859_10 = 45,
559  TDS_CHARSET_ISO_8859_13 = 46,
560  TDS_CHARSET_ISO_8859_14 = 47,
561  TDS_CHARSET_ISO_8859_15 = 48,
562  TDS_CHARSET_ISO_8859_16 = 49,
563  TDS_CHARSET_ISO_8859_2 = 50,
564  TDS_CHARSET_ISO_8859_3 = 51,
565  TDS_CHARSET_ISO_8859_4 = 52,
566  TDS_CHARSET_ISO_8859_5 = 53,
567  TDS_CHARSET_ISO_8859_6 = 54,
568  TDS_CHARSET_ISO_8859_7 = 55,
569  TDS_CHARSET_ISO_8859_8 = 56,
570  TDS_CHARSET_ISO_8859_9 = 57,
571  TDS_CHARSET_ISO_IR_14 = 58,
572  TDS_CHARSET_ISO_IR_149 = 59,
573  TDS_CHARSET_ISO_IR_159 = 60,
574  TDS_CHARSET_ISO_IR_166 = 61,
575  TDS_CHARSET_ISO_IR_87 = 62,
576  TDS_CHARSET_JAVA = 63,
577  TDS_CHARSET_JISX0201_1976 = 64,
578  TDS_CHARSET_KOI8_R = 65,
579  TDS_CHARSET_KOI8_RU = 66,
580  TDS_CHARSET_KOI8_T = 67,
581  TDS_CHARSET_KOI8_U = 68,
582  TDS_CHARSET_MAC = 69,
583  TDS_CHARSET_MACARABIC = 70,
584  TDS_CHARSET_MACCENTRALEUROPE = 71,
585  TDS_CHARSET_MACCROATIAN = 72,
586  TDS_CHARSET_MACCYRILLIC = 73,
587  TDS_CHARSET_MACGREEK = 74,
588  TDS_CHARSET_MACHEBREW = 75,
589  TDS_CHARSET_MACICELAND = 76,
590  TDS_CHARSET_MACROMANIA = 77,
591  TDS_CHARSET_MACTHAI = 78,
592  TDS_CHARSET_MACTURKISH = 79,
593  TDS_CHARSET_MACUKRAINE = 80,
594  TDS_CHARSET_MULELAO_1 = 81,
595  TDS_CHARSET_NEXTSTEP = 82,
596  TDS_CHARSET_ROMAN8 = 83,
597  TDS_CHARSET_SJIS = 84,
598  TDS_CHARSET_TCVN = 85,
599  TDS_CHARSET_UCS_4BE = 86,
600  TDS_CHARSET_UCS_4LE = 87,
601  TDS_CHARSET_US_ASCII = 88,
602  TDS_CHARSET_UTF_16BE = 89,
603  TDS_CHARSET_UTF_16LE = 90,
604  TDS_CHARSET_UTF_32BE = 91,
605  TDS_CHARSET_UTF_32LE = 92,
606  TDS_CHARSET_UTF_7 = 93,
607  TDS_CHARSET_VISCII = 94,
608  TDS_NUM_CHARSETS = 95
609 };
610 
Information relevant to libiconv.
Definition: tds.h:612
-
Definition: iconv.h:72
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00266_source.html freetds-1.2.3/doc/reference/a00266_source.html --- freetds-1.1.6/doc/reference/a00266_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00266_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,816 @@ + + + + + + + +FreeTDS API: src/tds/num_limits.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
num_limits.h
+
+
+
1 #define LIMIT_INDEXES_ADJUST 4
+
2 
+
3 static 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 
+
85 static 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 };
+
+
int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Check if dynamic request must be unprepared.
Definition: query.c:1752
+
Definition: challenge.c:564
+
int tds7_get_instance_port(struct addrinfo *addr, const char *instance)
Get port of given instance.
Definition: net.c:1229
+
unsigned int bulk_copy
if bulk copy should be enabled
Definition: tds.h:557
+
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition: stream.c:354
+
TDS_USMALLINT tds_version
TDS version.
Definition: tds.h:521
+
static const char * tds_skip_comment_ucs2le(const char *s, const char *end)
Skip a comment in a query.
Definition: query.c:589
+
Definition: proto.h:39
+
input stream to read a file
Definition: bulk.c:974
+
DSTR new_password
new password to set (TDS 7.2+)
Definition: tds.h:537
+
Definition: des.h:16
+
Store variant informations.
Definition: tds.h:605
+
FILE * f
file to read from
Definition: bulk.c:978
+
TDSRET tds_get_char_data(TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition: read.c:195
+
void tds_detach_results(TDSRESULTINFO *info)
Detach result info from it current socket.
Definition: mem.c:488
+
Definition: data.c:489
+
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition: net.c:168
+
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server
Definition: tds.h:1108
+
bool has_status
true is ret_status is valid
Definition: tds.h:1246
+
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
+
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition: mem.c:320
+
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition: query.c:1797
+
Definition: tds.h:575
+
TDS_INT month
month number (0-11)
Definition: tds.h:163
+
bool bulk_query
true is query sent was a bulk query so we need to switch state to QUERYING
Definition: tds.h:1245
+
TDS_INT second
0-59
Definition: tds.h:169
+
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2171
+
struct addrinfo * ip_addrs
ip(s) of server
Definition: tds.h:547
+
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition: tds.h:994
+
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition: tdsstring.c:165
+
unsigned int from_malloc
true is buffer came from malloc
Definition: bulk.c:65
+
DSTR cafile
certificate authorities file
Definition: tds.h:531
+
void tdsdump_on(void)
Turn logging back on.
Definition: log.c:88
+
size_t size
size of data inside buffer
Definition: stream.h:106
+
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition: tds.h:1204
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start bulk copy to server.
Definition: bulk.c:887
+
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
+
const char * terminator
terminator
Definition: bulk.c:981
+
@ TDS_IDLE
no data expected
Definition: tds.h:791
+
Definition: iconv.h:78
+
static void tds_quote_and_put(TDSSOCKET *tds, const char *s, const char *end)
Send a string to server while quoting it.
Definition: query.c:3079
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
TDSCURSOR * cur_cursor
cursor in use
Definition: tds.h:1244
+
void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Set current dynamic.
Definition: query.c:192
+
input stream to read data from a static buffer
Definition: stream.h:81
+
TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id)
Allocate a dynamic statement.
Definition: mem.c:160
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id)
Finds a dynamic given string id.
Definition: token.c:2583
+
void tds_start_query(TDSSOCKET *tds, unsigned char packet_type)
Start query packet of a given type.
Definition: query.c:332
+
Definition: tds.h:1566
+
static TDSRET tds_query_flush_packet(TDSSOCKET *tds)
Flush query packet.
Definition: query.c:178
+
Definition: tds.h:512
+
static TDSRET tds_bcp_start_insert_stmt(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Prepare the query to be sent to server to request BCP information.
Definition: bulk.c:264
+
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition: query.c:1630
+
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
+
TDSINSTREAM stream
common fields, must be the first field
Definition: bulk.c:976
+
TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream to another.
Definition: stream.c:163
+ +
#define TDS_SYB_VER(maj, min, x)
Calc a version number for Sybase.
Definition: tds.h:1724
+
Definition: challenge.c:72
+
static TDSRET tds7_send_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send dynamic request on TDS 7+ to be executed.
Definition: query.c:1593
+
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition: query.c:1929
+
Definition: tds.h:1086
+
static const char * tds_next_placeholder_ucs2le(const char *start, const char *end, int named)
Found the next placeholder (? or @param) in a string.
Definition: query.c:644
+
Definition: tds.h:331
+
TDS_INT timezone
-840 - 840 minutes from UTC
Definition: tds.h:171
+
tds_func_put_data * put_data
Send column data to server.
Definition: tds.h:663
+
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
+
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
+
TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...)
Format and submit a query.
Definition: query.c:467
+
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition: packet.c:527
+
Information about blobs (e.g.
Definition: tds.h:594
+
void tds_freeze(TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len)
Stop writing to server and cache every packet not sending them to server.
Definition: packet.c:907
+
static TDSRET tds_put_data_info(TDSSOCKET *tds, TDSCOLUMN *curcol, int flags)
Put data information to wire.
Definition: query.c:1533
+
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
+
char * database
database name
Definition: tds.h:971
+
TDSRET tds_submit_begin_tran(TDSSOCKET *tds)
Send a rollback request.
Definition: query.c:3665
+
size_t term_len
terminator length in bytes
Definition: bulk.c:983
+
TDS_INT year
year
Definition: tds.h:161
+
Definition: login.c:170
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied)
Tell we finished sending BCP data to server.
Definition: bulk.c:810
+
TDSPACKET * send_packet
packet we are preparing to send
Definition: tds.h:1232
+
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1259
+
TDS_INT cursor_rows
< number of updatable columns
Definition: tds.h:952
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition: tdsstring.c:107
+
TDSRET tds_generic_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
Put data information to wire.
Definition: data.c:871
+
TDS 7.2 SMP packet header.
Definition: proto.h:361
+
TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start sending BCP data to server.
Definition: bulk.c:840
+
TDSRET tds_generic_put(TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
Write data to wire.
Definition: data.c:915
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
bool defer_close
true if dynamic was marker to be closed when connection is idle
Definition: tds.h:998
+
#define tds_dstr_empty(s)
Make a string empty.
Definition: string.h:91
+
int tds_iconv_alloc(TDSCONNECTION *conn)
Allocate iconv stuff.
Definition: iconv.c:305
+
Hold information for any results.
Definition: tds.h:770
+
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
+
Definition: iconv.h:92
+
unsigned char * out_buf
Output buffer.
Definition: tds.h:1186
+
@ TDS_SENDING
client would send data
Definition: tds.h:793
+
Definition: tds.h:1048
+
static size_t tds_quote(TDSSOCKET *tds, char *buffer, char quoting, const char *id, size_t len)
Quote a string properly.
Definition: query.c:2128
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
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
+
TDS_INT type
row fetched from this cursor
Definition: tds.h:957
+
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1094
+
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition: tds.h:942
+
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
+
char * pb
buffer
Definition: bulk.c:61
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
DSTR crlfile
certificate revocation file
Definition: tds.h:532
+
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
+
@ TDS_WRITING
client is writing data
Definition: tds.h:792
+
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
+
DSTR db_filename
database filename to attach (MSSQL)
Definition: tds.h:530
+
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:877
+
const char * tds_skip_quoted(const char *s)
Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])
Definition: query.c:515
+
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:127
+
unsigned char canonic
internal numeric index into array of all encodings
Definition: tds.h:625
+
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
+
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).
Definition: iconv.c:590
+
tds_func_put_info * put_info
Send metadata column information to server.
Definition: tds.h:653
+
Definition: proto.h:45
+
Definition: login.c:183
+
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server
Definition: tds.h:1113
+
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition: tdsstring.c:55
+
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition: query.c:210
+
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition: mem.c:800
+
bool in_row
true if we are getting rows
Definition: tds.h:1247
+
TDSRET tds_freeze_abort(TDSFREEZE *freeze)
Discard all data written after the freeze.
Definition: packet.c:961
+
define a stream of data used for output
Definition: stream.h:39
+
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
+
static const char * parse_numeric(const char *buf, const char *pend, bool *p_negative, size_t *p_digits, size_t *p_decimals)
Parse a string for numbers.
Definition: convert.c:3385
+
char * query
saved query, we need to know original query if prepare is impossible
Definition: tds.h:1010
+
Definition: poll.h:52
+
static void tds_swap_numeric(TDS_NUMERIC *num)
Converts numeric from Microsoft representation to internal one (Sybase).
Definition: data.c:1667
+
int tm_sec
seconds (0-59)
Definition: convert.c:61
+
static void tds_dstr_init(DSTR *s)
init a string with empty
Definition: string.h:53
+
DSTR server_spn
server SPN (in freetds.conf)
Definition: tds.h:529
+
TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
Return declaration for column (like "varchar(20)").
Definition: query.c:718
+
const char * tds_prtype(int type)
Returns string representation of the given type.
Definition: token.c:3052
+
static TDS_INT string_to_uint8(const char *buf, const char *pend, TDS_UINT8 *res)
convert a number in string to TDS_UINT8
Definition: convert.c:3347
+
Definition: tds.h:1030
+
TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds)
Build a NTLMSPP packet to send to server.
Definition: challenge.c:721
+
TDSRET tds_generic_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
Read a data from wire.
Definition: data.c:709
+
char * charset
character set encoding
Definition: tds.h:969
+
TDSRET tds_process_login_tokens(TDSSOCKET *tds)
tds_process_login_tokens() is called after sending the login packet to the server.
Definition: token.c:410
+
static int tds_socket_read(TDSCONNECTION *conn, TDSSOCKET *tds, unsigned char *buf, int buflen)
Read from an OS socket @TODO remove tds, save error somewhere, report error in another way.
Definition: net.c:727
+
const char * tds_skip_comment(const char *s)
Skip a comment in a query.
Definition: query.c:490
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:940
+
int tds_count_placeholders(const char *query)
Count the number of placeholders ('?') in a query.
Definition: query.c:571
+
int port
port of database service
Definition: tds.h:520
+
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition: tds.h:1257
+
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.
Definition: convert.c:2968
+
TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont)
Send a rollback request.
Definition: query.c:3693
+
int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen)
Loops until we have received some characters return -1 on failure.
Definition: net.c:916
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
+
static int tds_socket_write(TDSCONNECTION *conn, TDSSOCKET *tds, const unsigned char *buf, int buflen)
Write to an OS socket.
Definition: net.c:762
+
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
+
static TDSRET tds7_build_bulk_insert_stmt(TDSSOCKET *tds, TDSPBCB *clause, TDSCOLUMN *bcpcol, int first)
Help to build query to be sent to server.
Definition: bulk.c:217
+
DSTR server_charset
charset of server e.g.
Definition: tds.h:524
+
Definition: proto.h:56
+
char * cursor_name
name of the cursor
Definition: tds.h:941
+
struct tds_blob TDSBLOB
Information about blobs (e.g.
+
static void tds_set_cur_cursor(TDSSOCKET *tds, TDSCURSOR *cursor)
Set current cursor.
Definition: query.c:2253
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
Definition: md4.h:9
+
Definition: tds.h:644
+
static char * tds5_fix_dot_query(const char *query, size_t *query_len, TDSPARAMINFO *params)
Substitute ?-style placeholders with named (@param) ones.
Definition: query.c:227
+
static int string_to_numeric(const char *instr, const char *pend, CONV_RESULT *cr)
convert a number in string to a TDSNUMERIC
Definition: convert.c:2266
+
int tds_put_string(TDSSOCKET *tds, const char *s, int len)
Output a string to wire automatic translate string to unicode if needed.
Definition: write.c:97
+
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
+
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
+
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().
Definition: bulk.c:1048
+
static const char * tds_skip_quoted_ucs2le(const char *s, const char *end)
Return pointer to end of a quoted string.
Definition: query.c:618
+
size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len)
Quote a string.
Definition: query.c:2241
+
#define tds_put_tinyint(tds, ti)
Output a tinyint value.
Definition: tds.h:1468
+
char * query
SQL query.
Definition: tds.h:948
+
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:756
+
struct tds_cursor * next
next in linked list, keep first
Definition: tds.h:939
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
+
int tm_mday
month day (1-31)
Definition: convert.c:58
+
char * left
buffer for store bytes readed that could be the terminator
Definition: bulk.c:986
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
static TDSRET tds_put_data(TDSSOCKET *tds, TDSCOLUMN *curcol)
Write data to wire.
Definition: query.c:279
+
Definition: util.c:237
+
static int stringz_to_numeric(const char *instr, CONV_RESULT *cr)
convert a zero terminated string to NUMERIC
Definition: convert.c:2260
+
int tm_min
minutes (0-59)
Definition: convert.c:60
+
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2913
+
static TDSRET tds4_send_emulated_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params)
Send RPC as string query.
Definition: query.c:1873
+
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
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
static TDSERRNO tds_setup_socket(TDS_SYS_SOCKET *p_sock, struct addrinfo *addr, unsigned int port, int *p_oserr)
Setup the socket and attempt a connection.
Definition: net.c:249
+
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition: login.c:125
+
static TDS_INT string_to_result(int desttype, const char *s, CONV_RESULT *cr)
Copy a terminated string to result and return len or TDS_CONVERT_NOMEM.
Definition: convert.c:161
+
void tdsdump_off(void)
Temporarily turn off logging.
Definition: log.c:76
+
TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error ignored, int offset)
Send one row of data to server.
Definition: bulk.c:337
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
+
static TDSRET tds7_write_param_def_from_params(TDSSOCKET *tds, const char *query, size_t query_len, TDSPARAMINFO *params) TDS_WUR
Write string with parameters definition, useful for TDS7+.
Definition: query.c:964
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
TDS_INT quarter
quarter (0-3)
Definition: tds.h:162
+
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:1249
+
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
+
bool defer_close
true if cursor was marker to be closed when connection is idle
Definition: tds.h:947
+
static int tds_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.
Definition: bulk.c:484
+
TDSPARAMINFO * params
query parameters.
Definition: tds.h:1008
+
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:530
+
TDS_INT minute
0-59
Definition: tds.h:168
+
size_t wire_size
bytes still to read
Definition: stream.h:65
+
TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size)
Stop keeping data for this specific freeze.
Definition: packet.c:1031
+
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)
Definition: query.c:1064
+
#define TDS_PUT_N_AS_UCS2(tds, s)
Utility to convert a constant ascii string to ucs2 and send to server.
Definition: query.c:110
+
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition: mem.c:206
+
static TDS_INT string_to_int8(const char *buf, const char *pend, TDS_INT8 *res)
convert a number in string to TDS_INT8
Definition: convert.c:3318
+
Definition: query.c:3098
+
int tm_hour
hours (0-23)
Definition: convert.c:59
+
unsigned data_len
data length, this does not account SMP header, only TDS part
Definition: tds.h:1072
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
static TDSRET tds7_write_param_def_from_query(TDSSOCKET *tds, const char *converted_query, size_t converted_query_len, TDSPARAMINFO *params) TDS_WUR
Write string with parameters definition, useful for TDS7+.
Definition: query.c:903
+
@ TDS_DONE_ERROR
error occurred
Definition: tds.h:254
+
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
+
Definition: login.c:176
+
TDS_SYS_SOCKET s
tcp socket, INVALID_SOCKET if not connected
Definition: tds.h:1097
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
Holds informations about a cursor.
Definition: tds.h:938
+
unsigned char out_flag
output buffer type
Definition: tds.h:1197
+
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:612
+
Definition: convert.h:34
+
Holds clause buffer.
Definition: bulk.c:59
+
define a stream of data used for input
Definition: stream.h:30
+
TDS_INT day
day of month (1-31)
Definition: tds.h:164
+
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
+
Definition: tds.h:877
+
const char * tds_canonical_charset_name(const char *charset_name)
Determine canonical iconv character set name.
Definition: iconv.c:980
+
Definition: convert.c:55
+
TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Submit a prepared query with parameters.
Definition: query.c:1256
+
Definition: tds.h:1656
+
static TDSRET tds7_bcp_send_colmetadata(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Send BCP metadata to server.
Definition: bulk.c:710
+
Definition: tds.h:518
+
void * tds_realloc(void **pp, size_t new_size)
Reallocate a pointer and update it if success.
Definition: mem.c:1876
+
int tm_year
year (0=1900)
Definition: convert.c:56
+
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
+
TDSRET tds_freeze_close(TDSFREEZE *freeze)
Stop keeping data for this specific freeze.
Definition: packet.c:996
+
unsigned out_pos
current position in out_buf
Definition: tds.h:1194
+
static int tds_count_placeholders_ucs2le(const char *query, const char *query_end)
Count the number of placeholders ('?') in a query.
Definition: query.c:692
+
TDS_INT num_id
numeric id for mssql7+
Definition: tds.h:982
+
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:408
+
unsigned int pending_close
true is connection has pending closing (cursors or dynamic)
Definition: tds.h:1124
+
int tm_ns
nanoseconds (0-999999999)
Definition: convert.c:62
+
TDSPARAMINFO * res_info
query results
Definition: tds.h:1000
+
bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *param)
Read a section of configuration file (INI style file)
Definition: config.c:503
+
static void tds_bcp_row_free(TDSRESULTINFO *result, unsigned char *row)
Free row data allocated in the result set.
Definition: bulk.c:875
+
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:1156
+
static TDSRET tds5_put_params(TDSSOCKET *tds, TDSPARAMINFO *info, int flags) TDS_WUR
Send parameters to server.
Definition: query.c:1693
+
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:1234
+
char id[30]
id of dynamic.
Definition: tds.h:988
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
static size_t tds_ascii_to_ucs2(char *buffer, const char *buf)
Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not co...
Definition: query.c:91
+
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
+
static int tds_file_stream_read(TDSINSTREAM *stream, void *ptr, size_t len)
Reads a chunk of data from file stream checking for terminator.
Definition: bulk.c:1018
+
Definition: proto.h:50
+
Definition: net.c:364
+
TDS_SMALLINT offset
time offset
Definition: tds.h:150
+
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:166
+
Definition: tds.h:629
+
static TDS_INT parse_int8(const char *buf, const char *pend, TDS_UINT8 *res, bool *p_negative)
convert a number in string to TDS_INT8
Definition: convert.c:3288
+
Definition: challenge.c:65
+
input stream to read data from tds protocol
Definition: stream.h:63
+
Definition: tds.h:1058
+
TDSLOCALE * tds_get_locale(void)
Get locale information.
Definition: locale.c:50
+
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
+
TDS_UINT8 time
time, 7 digit precision
Definition: tds.h:148
+
Used by tds_datecrack.
Definition: tds.h:160
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:980
+
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition: bulk.c:1173
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
Definition: proto.h:26
+
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:1118
+
size_t tds_freeze_written(TDSFREEZE *freeze)
Compute how many bytes has been written from freeze.
Definition: packet.c:935
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
int tm_mon
month (0-11)
Definition: convert.c:57
+
struct tds_dynamic * next
next in linked list, keep first
Definition: tds.h:979
+
Definition: tds.h:583
+
static TDSCOMPUTEINFO * tds_alloc_compute_result(TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
Allocate memory for storing compute info return NULL on out of memory.
Definition: mem.c:395
+
static void unix_to_nt_time(uint64_t *nt, struct timeval *tv)
put a 8 byte filetime from a time_t This takes GMT as input
Definition: challenge.c:586
+
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1251
+
DSTR password
password of account login
Definition: tds.h:536
+
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
+
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
+
TDSRET tds_submit_commit(TDSSOCKET *tds, int cont)
Send a commit request.
Definition: query.c:3724
+
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
+
int tds7_get_instance_ports(FILE *output, struct addrinfo *addr)
Get port of all instances.
Definition: net.c:1093
+
@ TDS_DONE_COUNT
count field in packet is valid
Definition: tds.h:257
+
const char * tds_next_placeholder(const char *start)
Get position of next placeholder.
Definition: query.c:535
+
void tds_release_dynamic(TDSDYNAMIC **pdyn)
Frees dynamic statement.
Definition: mem.c:253
+
void tdsdump_col(const TDSCOLUMN *col)
Write a column value to the debug log.
Definition: log.c:408
+
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition: tdsstring.c:134
+
TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Unprepare dynamic on idle.
Definition: query.c:1774
+
TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Initialize BCP information.
Definition: bulk.c:82
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
Provide poll call where missing.
+
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1192
+
Definition: proto.h:62
+
static int tds_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.
Definition: bulk.c:569
+
int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
Definition: net.c:987
+
Definition: md5.h:8
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
TDS_INT hour
0-23
Definition: tds.h:167
+
int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on)
Set socket to not throw SIGPIPE.
Definition: net.c:72
+
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition: query.c:1491
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
Definition: tds.h:1092
+
#define TDS_IS_MSSQL(x)
Check if product is Microsft SQL Server.
Definition: tds.h:1715
+
struct tds_file_stream TDSFILESTREAM
input stream to read a file
+
DSTR user_name
account for login
Definition: tds.h:535
+
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
+
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition: string.h:49
+
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:165
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
static int tds_get_socket_error(TDS_SYS_SOCKET sock)
Returns error stored in the socket.
Definition: net.c:217
+
unsigned char in_flag
input buffer type
Definition: tds.h:1196
+
TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor)
Deallocate cursor on idle.
Definition: query.c:3057
+
static char * tds_get_dynid(TDSCONNECTION *conn, char *id)
Get an id for dynamic query based on TDS information.
Definition: mem.c:94
+
static TDS_INT binary_to_result(int desttype, const void *data, size_t len, CONV_RESULT *cr)
Copy binary data to to result and return len or TDS_CONVERT_NOMEM.
Definition: convert.c:179
+
static TDSRET tds_put_param_as_string(TDSSOCKET *tds, TDSPARAMINFO *params, int n)
Send a parameter to server.
Definition: query.c:3189
+
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
+
static bool tds_cursor_check_allocated(TDSCONNECTION *conn, TDSCURSOR *cursor)
Check if a cursor is allocated into the server.
Definition: query.c:2991
+
TDS_CURSOR_STATUS status
cursor parameter
Definition: tds.h:954
+
char * buffer
write buffer.
Definition: stream.h:50
+
Definition: tds.h:1020
+
output stream to write data to a dynamic buffer
Definition: stream.h:99
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
TDS_INT date
date, 0 = 1900-01-01
Definition: tds.h:149
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+
static TDSRET tds_send_emulated_execute(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)
Emulate prepared execute traslating to a normal language.
Definition: query.c:3269
+
void tdsdump_close(void)
Close the TDS dump log file.
Definition: log.c:193
+
static TDSRET tds_answer_challenge(TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, int names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
Crypt a given password using schema required for NTLMv1 or NTLM2 authentication.
Definition: challenge.c:291
+
DSTR server_realm_name
server realm name (in freetds.conf)
Definition: tds.h:528
+
static TDSRET tds_start_query_head(TDSSOCKET *tds, unsigned char packet_type, TDSHEADERS *head)
Start query packet of a given type.
Definition: query.c:291
+
unsigned int cb
buffer length
Definition: bulk.c:63
+
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition: query.c:3006
+
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition: numeric.c:95
+
static int store_monthname(const char *, struct tds_time *)
Test if a string is a month name and store correct month number.
Definition: convert.c:2706
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+
struct tds_pbcb TDSPBCB
Holds clause buffer.
+
static TDS_INT string_to_int(const char *buf, const char *pend, TDS_INT *res)
convert a number in string to TDS_INT
Definition: convert.c:3249
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00272_source.html freetds-1.2.3/doc/reference/a00272_source.html --- freetds-1.1.6/doc/reference/a00272_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00272_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/num_limits.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
num_limits.h
-
-
-
1 #define LIMIT_INDEXES_ADJUST 4
2 
3 static 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 
85 static 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 };
- - - - diff -Nru freetds-1.1.6/doc/reference/a00278.html freetds-1.2.3/doc/reference/a00278.html --- freetds-1.1.6/doc/reference/a00278.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00278.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,140 @@ + + + + + + + +FreeTDS API: src/tds/read.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
read.c File Reference
+
+
+ +

Grab data from TDS packets. +More...

+
#include <config.h>
+#include <assert.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:
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

static size_t read_and_convert (TDSSOCKET *tds, TDSICONV *char_conv, size_t *wire_size, char *outbuf, size_t outbytesleft)
 For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not aligned with the character boundary. More...
 
DSTRtds_dstr_get (TDSSOCKET *tds, DSTR *s, size_t len)
 Reads a string from wire and put in a DSTR. More...
 
unsigned char tds_get_byte (TDSSOCKET *tds)
 Return a single byte from the input buffer. More...
 
TDSRET tds_get_char_data (TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
 Fetch character data the wire. More...
 
bool tds_get_n (TDSSOCKET *tds, void *dest, size_t need)
 Get N bytes from the buffer and return them in the already allocated space
+ given to us. More...
 
size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
 Fetch a string from the wire. More...
 
TDS_UINT tds_get_uint (TDSSOCKET *tds)
 Get an int32 from the server. More...
 
TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
 Get an uint64 from the server. More...
 
+TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
 Get an int16 from the server.
 
unsigned char tds_peek (TDSSOCKET *tds)
 Reads a byte from the TDS stream without removing it. More...
 
void tds_unget_byte (TDSSOCKET *tds)
 Unget will always work as long as you don't call it twice in a row. More...
 
+

Detailed Description

+

Grab data from TDS packets.

+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00279.map freetds-1.2.3/doc/reference/a00279.map --- freetds-1.1.6/doc/reference/a00279.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00279.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00279.md5 freetds-1.2.3/doc/reference/a00279.md5 --- freetds-1.1.6/doc/reference/a00279.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00279.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6bba987c27a1d96bc33e78dbd429441e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00279.svg freetds-1.2.3/doc/reference/a00279.svg --- freetds-1.1.6/doc/reference/a00279.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00279.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,514 @@ + + + + + + +src/tds/read.c + + + +Node1 + + +src/tds/read.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +assert.h + + + + + +Node1->Node3 + + + + + +Node4 + + +freetds/tds.h + + + + + +Node1->Node4 + + + + + +Node15 + + +freetds/utils/string.h + + + + + +Node1->Node15 + + + + + +Node22 + + +freetds/iconv.h + + + + + +Node1->Node22 + + + + + +Node23 + + +freetds/bytes.h + + + + + +Node1->Node23 + + + + + +Node24 + + +freetds/stream.h + + + + + +Node1->Node24 + + + + + +Node25 + + +freetds/checks.h + + + + + +Node1->Node25 + + + + + +Node5 + + +stdarg.h + + + + + +Node4->Node5 + + + + + +Node6 + + +stdio.h + + + + + +Node4->Node6 + + + + + +Node7 + + +time.h + + + + + +Node4->Node7 + + + + + +Node8 + + +freetds/version.h + + + + + +Node4->Node8 + + + + + +Node9 + + +tds_sysdep_public.h + + + + + +Node4->Node9 + + + + + +Node11 + + +freetds/sysdep_private.h + + + + + +Node4->Node11 + + + + + +Node12 + + +freetds/thread.h + + + + + +Node4->Node12 + + + + + +Node13 + + +freetds/bool.h + + + + + +Node4->Node13 + + + + + +Node14 + + +freetds/macros.h + + + + + +Node4->Node14 + + + + + +Node4->Node15 + + + + + +Node16 + + +freetds/pushvis.h + + + + + +Node4->Node16 + + + + + +Node17 + + +freetds/popvis.h + + + + + +Node4->Node17 + + + + + +Node18 + + +replacements.h + + + + + +Node4->Node18 + + + + + +Node21 + + +freetds/proto.h + + + + + +Node4->Node21 + + + + + +Node7->Node7 + + + + + +Node10 + + +float.h + + + + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node5 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + + + + +Node19 + + +replacements/readpassphrase.h + + + + + +Node18->Node19 + + + + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + + + + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + + + + +Node24->Node16 + + + + + +Node24->Node17 + + + + + +Node25->Node16 + + + + + +Node25->Node17 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00284.html freetds-1.2.3/doc/reference/a00284.html --- freetds-1.1.6/doc/reference/a00284.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00284.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/read.c File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
read.c File Reference
-
-
- -

Grab data from TDS packets. -More...

-
#include <config.h>
-#include <assert.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:
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

static size_t read_and_convert (TDSSOCKET *tds, TDSICONV *char_conv, size_t *wire_size, char *outbuf, size_t outbytesleft)
 For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not aligned with the character boundary. More...
 
DSTRtds_dstr_get (TDSSOCKET *tds, DSTR *s, size_t len)
 Reads a string from wire and put in a DSTR. More...
 
unsigned char tds_get_byte (TDSSOCKET *tds)
 Return a single byte from the input buffer. More...
 
TDSRET tds_get_char_data (TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
 Fetch character data the wire. More...
 
bool tds_get_n (TDSSOCKET *tds, void *dest, size_t need)
 Get N bytes from the buffer and return them in the already allocated space given to us. More...
 
size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
 Fetch a string from the wire. More...
 
TDS_UINT tds_get_uint (TDSSOCKET *tds)
 Get an int32 from the server. More...
 
TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
 Get an uint64 from the server. More...
 
-TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
 Get an int16 from the server.
 
unsigned char tds_peek (TDSSOCKET *tds)
 Reads a byte from the TDS stream without removing it. More...
 
void tds_unget_byte (TDSSOCKET *tds)
 Unget will always work as long as you don't call it twice in a row. More...
 
-

Detailed Description

-

Grab data from TDS packets.

-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00284_source.html freetds-1.2.3/doc/reference/a00284_source.html --- freetds-1.1.6/doc/reference/a00284_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00284_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,514 @@ + + + + + + + +FreeTDS API: src/tds/sec_negotiate_gnutls.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
sec_negotiate_gnutls.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 #include <gnutls/gnutls.h>
+
21 #include <gnutls/crypto.h>
+
22 #ifdef HAVE_GNUTLS_ABSTRACT_H
+
23 # include <gnutls/abstract.h>
+
24 #endif
+
25 
+
26 #if !defined(HAVE_NETTLE) || !defined(HAVE_GMP) || !defined(HAVE_GNUTLS_RND)
+
27 # include <gcrypt.h>
+
28 #endif
+
29 
+
30 #ifndef HAVE_NETTLE
+
31 # include <libtasn1.h>
+
32 #endif
+
33 
+
34 #ifdef HAVE_NETTLE
+
35 # include <nettle/asn1.h>
+
36 # include <nettle/rsa.h>
+
37 # include <nettle/bignum.h>
+
38 #endif
+
39 
+
51 #ifndef HAVE_GNUTLS
+
52 #error HAVE_GNUTLS not defines, this file should not be included
+
53 #endif
+
54 
+
55 /* emulate GMP if not present */
+
56 #ifndef HAVE_GMP
+
57 #define HAVE_GMP 1
+
58 
+
59 typedef struct {
+
60  gcry_mpi_t num;
+
61 } mpz_t[1];
+
62 
+
63 #define mpz_powm(w,n,e,m) \
+
64  gcry_mpi_powm((w)->num, (n)->num, (e)->num, (m)->num);
+
65 #define mpz_init(n) do { (n)->num = NULL; } while(0)
+
66 #define mpz_clear(n) gcry_mpi_release((n)->num)
+
67 
+
68 #endif
+
69 
+
70 
+
71 /* emulate Nettle is not present */
+
72 #ifndef HAVE_NETTLE
+
73 #define HAVE_NETTLE 1
+
74 
+
75 typedef void nettle_random_func(void *ctx, size_t len, uint8_t *out);
+
76 
+
77 static inline void
+
78 nettle_mpz_set_str_256_u(mpz_t x, unsigned length, const uint8_t *s)
+
79 {
+
80  gcry_mpi_scan(&x->num, GCRYMPI_FMT_USG, s, length, NULL);
+
81 }
+
82 
+
83 static inline void
+
84 nettle_mpz_get_str_256(unsigned length, uint8_t *s, const mpz_t x)
+
85 {
+
86  gcry_mpi_print(GCRYMPI_FMT_USG, s, length, NULL, x->num);
+
87 }
+
88 
+ +
90  const unsigned char *data, *data_end;
+
91  unsigned long length;
+
92  unsigned long type;
+
93 };
+
94 
+
95 enum asn1_iterator_result {
+
96  ASN1_ITERATOR_ERROR,
+
97  ASN1_ITERATOR_PRIMITIVE,
+
98  ASN1_ITERATOR_CONSTRUCTED,
+
99  ASN1_ITERATOR_END,
+
100 };
+
101 
+
102 enum {
+
103  ASN1_SEQUENCE = ASN1_TAG_SEQUENCE,
+
104 };
+
105 
+
106 static enum asn1_iterator_result
+
107 asn1_der_iterator_next(struct asn1_der_iterator *der)
+
108 {
+
109  unsigned char cls;
+
110  unsigned long tag;
+
111  int len;
+
112  long l;
+
113 
+
114  if (asn1_get_tag_der(der->data, der->data_end - der->data, &cls, &len, &tag) != ASN1_SUCCESS)
+
115  return ASN1_ITERATOR_ERROR;
+
116  der->type = tag;
+
117  der->data += len;
+
118  l = asn1_get_length_der(der->data, der->data_end - der->data, &len);
+
119  if (l < 0)
+
120  return ASN1_ITERATOR_ERROR;
+
121  der->data += len;
+
122  der->length = l;
+
123  if (cls == ASN1_CLASS_STRUCTURED)
+
124  return ASN1_ITERATOR_CONSTRUCTED;
+
125  return ASN1_ITERATOR_PRIMITIVE;
+
126 }
+
127 
+
128 static enum asn1_iterator_result
+
129 asn1_der_iterator_first(struct asn1_der_iterator *der, int size, const void *der_buf)
+
130 {
+
131  der->data = (const unsigned char *) der_buf;
+
132  der->data_end = der->data + size;
+
133 
+
134  return asn1_der_iterator_next(der);
+
135 }
+
136 
+ +
138  unsigned size;
+
139  mpz_t n, e;
+
140 };
+
141 
+
142 static void
+
143 rsa_public_key_init(struct rsa_public_key *key)
+
144 {
+
145  key->size = 0;
+
146  mpz_init(key->n);
+
147  mpz_init(key->e);
+
148 }
+
149 
+
150 static void
+
151 rsa_public_key_clear(struct rsa_public_key *key)
+
152 {
+
153  mpz_clear(key->n);
+
154  mpz_clear(key->e);
+
155 }
+
156 
+
157 static int
+
158 rsa_public_key_from_der_iterator(struct rsa_public_key *key, unsigned key_bits, struct asn1_der_iterator *der)
+
159 {
+
160  enum asn1_iterator_result ret;
+
161 
+
162  ret = asn1_der_iterator_next(der);
+
163  if (ret != ASN1_ITERATOR_PRIMITIVE || der->type != ASN1_TAG_INTEGER)
+
164  return 0;
+
165  gcry_mpi_scan(&key->n->num, GCRYMPI_FMT_USG, der->data, der->length, NULL);
+
166  key->size = (gcry_mpi_get_nbits(key->n->num)+7)/8;
+
167  der->data += der->length;
+
168 
+
169  ret = asn1_der_iterator_next(der);
+
170  if (ret != ASN1_ITERATOR_PRIMITIVE || der->type != ASN1_TAG_INTEGER)
+
171  return 0;
+
172  gcry_mpi_scan(&key->e->num, GCRYMPI_FMT_USG, der->data, der->length, NULL);
+
173 
+
174  return 1;
+
175 }
+
176 
+
177 static void
+
178 sha1(uint8_t *hash, const void *data, size_t len)
+
179 {
+
180  gcry_md_hash_buffer(GCRY_MD_SHA1, hash, data, len);
+
181 }
+
182 #else
+
183 static void
+
184 sha1(uint8_t *hash, const void *data, size_t len)
+
185 {
+
186  struct sha1_ctx ctx;
+
187  sha1_init(&ctx);
+
188  sha1_update(&ctx, len, (const uint8_t *) data);
+
189  sha1_digest(&ctx, 20, hash);
+
190 }
+
191 #endif
+
192 
+
193 
+
194 static void
+
195 rnd_func(void *ctx, size_t len, uint8_t * out)
+
196 {
+
197  tds_random_buffer(out, len);
+
198 }
+
199 
+
200 #define dumpl(b,l) tdsdump_dump_buf(TDS_DBG_INFO1, #b, b, l)
+
201 #ifndef dumpl
+
202 #define dumpl(b,l) do {} while(0)
+
203 #endif
+
204 #define dump(b) dumpl(b, sizeof(b))
+
205 
+
206 /* OAEP configuration parameters */
+
207 #define hash_func sha1
+
208 enum { hash_len = 20 }; /* sha1 length */
+
209 enum { key_size_max = 1024 }; /* max key in bytes */
+
210 static const char label[] = "";
+
211 
+
212 static void
+
213 memxor(uint8_t *dest, const uint8_t *src, size_t len)
+
214 {
+
215  size_t n;
+
216  for (n = 0; n < len; ++n)
+
217  dest[n] = dest[n] ^ src[n];
+
218 }
+
219 
+
220 static void
+
221 mgf_mask(uint8_t *dest, size_t dest_len, const uint8_t *mask, size_t mask_len)
+
222 {
+
223  unsigned n = 0;
+
224  uint8_t hash[hash_len];
+
225  uint8_t seed[mask_len + 4];
+
226 
+
227  memcpy(seed, mask, mask_len);
+
228  /* we always have some data and check is done internally */
+
229  for (;;) {
+
230  TDS_PUT_UA4BE(seed+mask_len, n);
+
231 
+
232  hash_func(hash, seed, sizeof(seed));
+
233  if (dest_len <= hash_len) {
+
234  memxor(dest, hash, dest_len);
+
235  break;
+
236  }
+
237 
+
238  memxor(dest, hash, hash_len);
+
239  dest += hash_len;
+
240  dest_len -= hash_len;
+
241  ++n;
+
242  }
+
243 }
+
244 
+
245 static int
+
246 oaep_encrypt(size_t key_size, void *random_ctx, nettle_random_func *random,
+
247  size_t length, const uint8_t *message, mpz_t m)
+
248 {
+
249  /* EM: 0x00 ROS (HASH 0x00.. 0x01 message) */
+
250  struct {
+
251  uint8_t all[1]; /* zero but used to access all data */
+
252  uint8_t ros[hash_len];
+
253  uint8_t db[key_size_max - hash_len - 1];
+
254  } em;
+
255  const unsigned db_len = key_size - hash_len - 1;
+
256 
+
257  if (length + hash_len * 2 + 2 > key_size)
+
258  /* Message too long for this key. */
+
259  return 0;
+
260 
+
261  /* create db */
+
262  memset(&em, 0, sizeof(em));
+
263  hash_func(em.db, label, strlen(label));
+
264  em.all[key_size - length - 1] = 0x1;
+
265  memcpy(em.all+(key_size - length), message, length);
+
266  dumpl(em.db, db_len);
+
267 
+
268  /* create ros */
+
269  random(random_ctx, hash_len, em.ros);
+
270  dump(em.ros);
+
271 
+
272  /* mask db */
+
273  mgf_mask(em.db, db_len, em.ros, hash_len);
+
274  dumpl(em.db, db_len);
+
275 
+
276  /* mask ros */
+
277  mgf_mask(em.ros, hash_len, em.db, db_len);
+
278  dump(em.ros);
+
279 
+
280  nettle_mpz_set_str_256_u(m, key_size, em.all);
+
281 
+
282  return 1;
+
283 }
+
284 
+
285 static int
+
286 rsa_encrypt_oaep(const struct rsa_public_key *key, void *random_ctx, nettle_random_func *random,
+
287  size_t length, const uint8_t *message, mpz_t gibberish)
+
288 {
+
289  if (!oaep_encrypt(key->size, random_ctx, random, length, message, gibberish))
+
290  return 0;
+
291 
+
292  mpz_powm(gibberish, gibberish, key->e, key->n);
+
293  return 1;
+
294 }
+
295 
+
296 static void*
+
297 tds5_rsa_encrypt(const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size)
+
298 {
+
299  int ret;
+
300  mpz_t p;
+
301  gnutls_datum_t pubkey_datum = { (unsigned char *) key, key_len };
+
302  struct asn1_der_iterator der;
+
303  struct rsa_public_key pubkey;
+
304  uint8_t *message;
+
305  size_t message_len, pwd_len;
+
306  uint8_t *em = NULL;
+
307  unsigned char der_buf[2048];
+
308  size_t size = sizeof(der_buf);
+
309 
+
310  mpz_init(p);
+
311  rsa_public_key_init(&pubkey);
+
312 
+
313  pwd_len = strlen(pwd);
+
314  message_len = nonce_len + pwd_len;
+
315  message = tds_new(uint8_t, message_len);
+
316  if (!message)
+
317  return NULL;
+
318  memcpy(message, nonce, nonce_len);
+
319  memcpy(message + nonce_len, pwd, pwd_len);
+
320 
+
321  /* use nettle directly */
+
322  /* parse PEM, get DER */
+
323  ret = gnutls_pem_base64_decode("RSA PUBLIC KEY", &pubkey_datum, der_buf, &size);
+
324  if (ret) {
+
325  tdsdump_log(TDS_DBG_ERROR, "Error %d decoding public key: %s\n", ret, gnutls_strerror(ret));
+
326  goto error;
+
327  }
+
328 
+
329  /* get key with nettle using DER */
+
330  ret = asn1_der_iterator_first(&der, size, der_buf);
+
331  if (ret != ASN1_ITERATOR_CONSTRUCTED || der.type != ASN1_SEQUENCE) {
+
332  tdsdump_log(TDS_DBG_ERROR, "Invalid DER content\n");
+
333  goto error;
+
334  }
+
335 
+
336  ret = rsa_public_key_from_der_iterator(&pubkey, key_size_max * 8, &der);
+
337  if (!ret) {
+
338  tdsdump_log(TDS_DBG_ERROR, "Invalid DER content\n");
+
339  goto error;
+
340  }
+
341 
+
342  /* get password encrypted */
+
343  ret = rsa_encrypt_oaep(&pubkey, NULL, rnd_func, message_len, message, p);
+
344  if (!ret) {
+
345  tdsdump_log(TDS_DBG_ERROR, "Error encrypting message\n");
+
346  goto error;
+
347  }
+
348 
+
349  em = tds_new(uint8_t, pubkey.size);
+
350  *em_size = pubkey.size;
+
351  if (!em)
+
352  goto error;
+
353 
+
354  nettle_mpz_get_str_256(pubkey.size, em, p);
+
355 
+
356  tdsdump_dump_buf(TDS_DBG_INFO1, "em", em, pubkey.size);
+
357 
+
358 error:
+
359  free(message);
+
360  rsa_public_key_clear(&pubkey);
+
361  mpz_clear(p);
+
362  return em;
+
363 }
+
364 
+
+
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition: read.c:100
+
Definition: proto.h:39
+
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
+
TDSRET tds_get_char_data(TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition: read.c:195
+
unsigned pkt_pos
position in pkt
Definition: tds.h:1572
+
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition: tdsstring.c:165
+
unsigned size_len
length size (0, 1, 2 or 4)
Definition: tds.h:1574
+
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition: tds.h:1204
+
Definition: sec_negotiate_gnutls.h:59
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
Definition: tds.h:1566
+ +
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
+
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition: packet.c:527
+
Information about blobs (e.g.
Definition: tds.h:594
+
void tds_freeze(TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len)
Stop writing to server and cache every packet not sending them to server.
Definition: packet.c:907
+
TDSPACKET * send_packet
packet we are preparing to send
Definition: tds.h:1232
+
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1259
+
TDS 7.2 SMP packet header.
Definition: proto.h:361
+
Definition: sec_negotiate_gnutls.h:137
+
Hold information for any results.
Definition: tds.h:770
+
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
+
Definition: iconv.h:92
+
unsigned char * out_buf
Output buffer.
Definition: tds.h:1186
+
Definition: tds.h:1048
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
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
+
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:127
+
TDSRET tds_freeze_abort(TDSFREEZE *freeze)
Discard all data written after the freeze.
Definition: packet.c:961
+
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
+
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
+
TDSPACKET * pkt
first packet frozen
Definition: tds.h:1570
+
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
+
#define tds_put_tinyint(tds, ti)
Output a tinyint value.
Definition: tds.h:1468
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
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
+
Definition: sec_negotiate_gnutls.h:89
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
+
output stream to write data to a static buffer.
Definition: stream.h:92
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
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:1249
+
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
+
TDS_UINT8 tds_get_uint8(TDSSOCKET *tds)
Get an uint64 from the server.
Definition: read.c:140
+
size_t wire_size
bytes still to read
Definition: stream.h:65
+
TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size)
Stop keeping data for this specific freeze.
Definition: packet.c:1031
+
unsigned data_len
data length, this does not account SMP header, only TDS part
Definition: tds.h:1072
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
unsigned char out_flag
output buffer type
Definition: tds.h:1197
+
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:612
+
TDSRET tds_freeze_close(TDSFREEZE *freeze)
Stop keeping data for this specific freeze.
Definition: packet.c:996
+
unsigned out_pos
current position in out_buf
Definition: tds.h:1194
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
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
+
input stream to read data from tds protocol
Definition: stream.h:63
+
Definition: tds.h:1058
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
Definition: proto.h:26
+
size_t tds_freeze_written(TDSFREEZE *freeze)
Compute how many bytes has been written from freeze.
Definition: packet.c:935
+
TDSSOCKET * tds
which socket we refer to
Definition: tds.h:1568
+
DSTR password
password of account login
Definition: tds.h:536
+
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
+
Provide poll call where missing.
+
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1192
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
Definition: tds.h:1092
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
unsigned char in_flag
input buffer type
Definition: tds.h:1196
+
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
+
char * buffer
write buffer.
Definition: stream.h:50
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
static size_t read_and_convert(TDSSOCKET *tds, TDSICONV *char_conv, size_t *wire_size, char *outbuf, size_t outbytesleft)
For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al...
Definition: read.c:269
+
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition: numeric.c:95
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00285.map freetds-1.2.3/doc/reference/a00285.map --- freetds-1.1.6/doc/reference/a00285.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00285.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00285.md5 freetds-1.2.3/doc/reference/a00285.md5 --- freetds-1.1.6/doc/reference/a00285.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00285.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8c7968e94499572bb1dd853cec69a134 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00285.svg freetds-1.2.3/doc/reference/a00285.svg --- freetds-1.1.6/doc/reference/a00285.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00285.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,428 +0,0 @@ - - - - - - -src/tds/read.c - - -Node0 - -src/tds/read.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -assert.h - - -Node0->Node2 - - - - -Node3 - - -freetds/tds.h - - - - -Node0->Node3 - - - - -Node14 - - -freetds/utils/string.h - - - - -Node0->Node14 - - - - -Node21 - - -freetds/iconv.h - - - - -Node0->Node21 - - - - -Node22 - - -freetds/bytes.h - - - - -Node0->Node22 - - - - -Node23 - - -freetds/stream.h - - - - -Node0->Node23 - - - - -Node24 - - -freetds/checks.h - - - - -Node0->Node24 - - - - -Node4 - -stdarg.h - - -Node3->Node4 - - - - -Node5 - -stdio.h - - -Node3->Node5 - - - - -Node6 - - -time.h - - - - -Node3->Node6 - - - - -Node7 - - -freetds/version.h - - - - -Node3->Node7 - - - - -Node8 - - -tds_sysdep_public.h - - - - -Node3->Node8 - - - - -Node10 - - -freetds/sysdep_private.h - - - - -Node3->Node10 - - - - -Node11 - - -freetds/thread.h - - - - -Node3->Node11 - - - - -Node12 - - -freetds/bool.h - - - - -Node3->Node12 - - - - -Node13 - - -freetds/macros.h - - - - -Node3->Node13 - - - - -Node3->Node14 - - - - -Node15 - - -freetds/pushvis.h - - - - -Node3->Node15 - - - - -Node16 - - -freetds/popvis.h - - - - -Node3->Node16 - - - - -Node17 - - -replacements.h - - - - -Node3->Node17 - - - - -Node20 - - -freetds/proto.h - - - - -Node3->Node20 - - - - -Node6->Node6 - - - - -Node9 - -float.h - - -Node8->Node9 - - - - -Node11->Node8 - - - - -Node14->Node13 - - - - -Node14->Node15 - - - - -Node14->Node16 - - - - -Node17->Node4 - - - - -Node17->Node8 - - - - -Node17->Node10 - - - - -Node17->Node15 - - - - -Node17->Node16 - - - - -Node18 - - -replacements/readpassphrase.h - - - - -Node17->Node18 - - - - -Node19 - - -replacements/poll.h - - - - -Node17->Node19 - - - - -Node18->Node15 - - - - -Node18->Node16 - - - - -Node19->Node1 - - - - -Node19->Node15 - - - - -Node19->Node16 - - - - -Node21->Node15 - - - - -Node21->Node16 - - - - -Node23->Node15 - - - - -Node23->Node16 - - - - -Node24->Node15 - - - - -Node24->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00287_source.html freetds-1.2.3/doc/reference/a00287_source.html --- freetds-1.1.6/doc/reference/a00287_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00287_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,171 @@ + + + + + + + +FreeTDS API: src/tds/sec_negotiate_openssl.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
sec_negotiate_openssl.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 #include <openssl/rand.h>
+
21 #include <openssl/bio.h>
+
22 #include <openssl/pem.h>
+
23 #include <openssl/err.h>
+
24 
+
36 #ifndef HAVE_OPENSSL
+
37 #error HAVE_OPENSSL not defines, this file should not be included
+
38 #endif
+
39 
+
40 static inline const BIGNUM*
+
41 rsa_get_n(const RSA *rsa)
+
42 {
+
43 #if HAVE_RSA_GET0_KEY
+
44  const BIGNUM *n, *e, *d;
+
45  RSA_get0_key(rsa, &n, &e, &d);
+
46  return n;
+
47 #else
+
48  return rsa->n;
+
49 #endif
+
50 }
+
51 
+
52 static void*
+
53 tds5_rsa_encrypt(const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size)
+
54 {
+
55  RSA *rsa = NULL;
+
56  BIO *keybio;
+
57 
+
58  uint8_t *message = NULL;
+
59  size_t message_len, pwd_len;
+
60  uint8_t *em = NULL;
+
61 
+
62  int result;
+
63 
+
64  keybio = BIO_new_mem_buf((void*) key, key_len);
+
65  if (keybio == NULL)
+
66  goto error;
+
67 
+
68  rsa = PEM_read_bio_RSAPublicKey(keybio, &rsa, NULL, NULL);
+
69  if (!rsa)
+
70  goto error;
+
71 
+
72  pwd_len = strlen(pwd);
+
73  message_len = nonce_len + pwd_len;
+
74  message = tds_new(uint8_t, message_len);
+
75  if (!message)
+
76  goto error;
+
77  memcpy(message, nonce, nonce_len);
+
78  memcpy(message + nonce_len, pwd, pwd_len);
+
79 
+
80  em = tds_new(uint8_t, BN_num_bytes(rsa_get_n(rsa)));
+
81  if (!em)
+
82  goto error;
+
83 
+
84  result = RSA_public_encrypt(message_len, message, em, rsa, RSA_PKCS1_OAEP_PADDING);
+
85  if (result < 0)
+
86  goto error;
+
87 
+
88  free(message);
+
89  RSA_free(rsa);
+
90  BIO_free(keybio);
+
91 
+
92  *em_size = result;
+
93  return em;
+
94 
+
95 error:
+
96  free(message);
+
97  free(em);
+
98  RSA_free(rsa);
+
99  BIO_free(keybio);
+
100  return NULL;
+
101 }
+
102 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00290_source.html freetds-1.2.3/doc/reference/a00290_source.html --- freetds-1.1.6/doc/reference/a00290_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00290_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/sec_negotiate_gnutls.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
sec_negotiate_gnutls.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 #include <gnutls/gnutls.h>
21 #include <gnutls/crypto.h>
22 #ifdef HAVE_GNUTLS_ABSTRACT_H
23 # include <gnutls/abstract.h>
24 #endif
25 
26 #if !defined(HAVE_NETTLE) || !defined(HAVE_GMP) || !defined(HAVE_GNUTLS_RND)
27 # include <gcrypt.h>
28 #endif
29 
30 #ifndef HAVE_NETTLE
31 # include <libtasn1.h>
32 #endif
33 
34 #ifdef HAVE_NETTLE
35 # include <nettle/asn1.h>
36 # include <nettle/rsa.h>
37 # include <nettle/bignum.h>
38 #endif
39 
51 #ifndef HAVE_GNUTLS
52 #error HAVE_GNUTLS not defines, this file should not be included
53 #endif
54 
55 /* emulate GMP if not present */
56 #ifndef HAVE_GMP
57 #define HAVE_GMP 1
58 
59 typedef struct {
60  gcry_mpi_t num;
61 } mpz_t[1];
62 
63 #define mpz_powm(w,n,e,m) \
64  gcry_mpi_powm((w)->num, (n)->num, (e)->num, (m)->num);
65 #define mpz_init(n) do { (n)->num = NULL; } while(0)
66 #define mpz_clear(n) gcry_mpi_release((n)->num)
67 
68 #endif
69 
70 
71 /* emulate Nettle is not present */
72 #ifndef HAVE_NETTLE
73 #define HAVE_NETTLE 1
74 
75 typedef void nettle_random_func(void *ctx, size_t len, uint8_t *out);
76 
77 static inline void
78 nettle_mpz_set_str_256_u(mpz_t x, unsigned length, const uint8_t *s)
79 {
80  gcry_mpi_scan(&x->num, GCRYMPI_FMT_USG, s, length, NULL);
81 }
82 
83 static inline void
84 nettle_mpz_get_str_256(unsigned length, uint8_t *s, const mpz_t x)
85 {
86  gcry_mpi_print(GCRYMPI_FMT_USG, s, length, NULL, x->num);
87 }
88 
90  const unsigned char *data, *data_end;
91  unsigned long length;
92  unsigned long type;
93 };
94 
95 enum asn1_iterator_result {
96  ASN1_ITERATOR_ERROR,
97  ASN1_ITERATOR_PRIMITIVE,
98  ASN1_ITERATOR_CONSTRUCTED,
99  ASN1_ITERATOR_END,
100 };
101 
102 enum {
103  ASN1_SEQUENCE = ASN1_TAG_SEQUENCE,
104 };
105 
106 static enum asn1_iterator_result
107 asn1_der_iterator_next(struct asn1_der_iterator *der)
108 {
109  unsigned char cls;
110  unsigned long tag;
111  int len;
112  long l;
113 
114  if (asn1_get_tag_der(der->data, der->data_end - der->data, &cls, &len, &tag) != ASN1_SUCCESS)
115  return ASN1_ITERATOR_ERROR;
116  der->type = tag;
117  der->data += len;
118  l = asn1_get_length_der(der->data, der->data_end - der->data, &len);
119  if (l < 0)
120  return ASN1_ITERATOR_ERROR;
121  der->data += len;
122  der->length = l;
123  if (cls == ASN1_CLASS_STRUCTURED)
124  return ASN1_ITERATOR_CONSTRUCTED;
125  return ASN1_ITERATOR_PRIMITIVE;
126 }
127 
128 static enum asn1_iterator_result
129 asn1_der_iterator_first(struct asn1_der_iterator *der, int size, const void *der_buf)
130 {
131  der->data = (const unsigned char *) der_buf;
132  der->data_end = der->data + size;
133 
134  return asn1_der_iterator_next(der);
135 }
136 
138  unsigned size;
139  mpz_t n, e;
140 };
141 
142 static void
143 rsa_public_key_init(struct rsa_public_key *key)
144 {
145  key->size = 0;
146  mpz_init(key->n);
147  mpz_init(key->e);
148 }
149 
150 static void
151 rsa_public_key_clear(struct rsa_public_key *key)
152 {
153  mpz_clear(key->n);
154  mpz_clear(key->e);
155 }
156 
157 static int
158 rsa_public_key_from_der_iterator(struct rsa_public_key *key, unsigned key_bits, struct asn1_der_iterator *der)
159 {
160  enum asn1_iterator_result ret;
161 
162  ret = asn1_der_iterator_next(der);
163  if (ret != ASN1_ITERATOR_PRIMITIVE || der->type != ASN1_TAG_INTEGER)
164  return 0;
165  gcry_mpi_scan(&key->n->num, GCRYMPI_FMT_USG, der->data, der->length, NULL);
166  key->size = (gcry_mpi_get_nbits(key->n->num)+7)/8;
167  der->data += der->length;
168 
169  ret = asn1_der_iterator_next(der);
170  if (ret != ASN1_ITERATOR_PRIMITIVE || der->type != ASN1_TAG_INTEGER)
171  return 0;
172  gcry_mpi_scan(&key->e->num, GCRYMPI_FMT_USG, der->data, der->length, NULL);
173 
174  return 1;
175 }
176 
177 static void
178 sha1(uint8_t *hash, const void *data, size_t len)
179 {
180  gcry_md_hash_buffer(GCRY_MD_SHA1, hash, data, len);
181 }
182 #else
183 static void
184 sha1(uint8_t *hash, const void *data, size_t len)
185 {
186  struct sha1_ctx ctx;
187  sha1_init(&ctx);
188  sha1_update(&ctx, len, (const uint8_t *) data);
189  sha1_digest(&ctx, 20, hash);
190 }
191 #endif
192 
193 
194 static void
195 rnd_func(void *ctx, size_t len, uint8_t * out)
196 {
197  tds_random_buffer(out, len);
198 }
199 
200 #define dumpl(b,l) tdsdump_dump_buf(TDS_DBG_INFO1, #b, b, l)
201 #ifndef dumpl
202 #define dumpl(b,l) do {} while(0)
203 #endif
204 #define dump(b) dumpl(b, sizeof(b))
205 
206 /* OAEP configuration parameters */
207 #define hash_func sha1
208 enum { hash_len = 20 }; /* sha1 length */
209 enum { key_size_max = 1024 }; /* max key in bytes */
210 static const char label[] = "";
211 
212 static void
213 memxor(uint8_t *dest, const uint8_t *src, size_t len)
214 {
215  size_t n;
216  for (n = 0; n < len; ++n)
217  dest[n] = dest[n] ^ src[n];
218 }
219 
220 static void
221 mgf_mask(uint8_t *dest, size_t dest_len, const uint8_t *mask, size_t mask_len)
222 {
223  unsigned n = 0;
224  uint8_t hash[hash_len];
225  uint8_t seed[mask_len + 4];
226 
227  memcpy(seed, mask, mask_len);
228  /* we always have some data and check is done internally */
229  for (;;) {
230  TDS_PUT_UA4BE(seed+mask_len, n);
231 
232  hash_func(hash, seed, sizeof(seed));
233  if (dest_len <= hash_len) {
234  memxor(dest, hash, dest_len);
235  break;
236  }
237 
238  memxor(dest, hash, hash_len);
239  dest += hash_len;
240  dest_len -= hash_len;
241  ++n;
242  }
243 }
244 
245 static int
246 oaep_encrypt(size_t key_size, void *random_ctx, nettle_random_func *random,
247  size_t length, const uint8_t *message, mpz_t m)
248 {
249  /* EM: 0x00 ROS (HASH 0x00.. 0x01 message) */
250  struct {
251  uint8_t all[1]; /* zero but used to access all data */
252  uint8_t ros[hash_len];
253  uint8_t db[key_size_max - hash_len - 1];
254  } em;
255  const unsigned db_len = key_size - hash_len - 1;
256 
257  if (length + hash_len * 2 + 2 > key_size)
258  /* Message too long for this key. */
259  return 0;
260 
261  /* create db */
262  memset(&em, 0, sizeof(em));
263  hash_func(em.db, label, strlen(label));
264  em.all[key_size - length - 1] = 0x1;
265  memcpy(em.all+(key_size - length), message, length);
266  dumpl(em.db, db_len);
267 
268  /* create ros */
269  random(random_ctx, hash_len, em.ros);
270  dump(em.ros);
271 
272  /* mask db */
273  mgf_mask(em.db, db_len, em.ros, hash_len);
274  dumpl(em.db, db_len);
275 
276  /* mask ros */
277  mgf_mask(em.ros, hash_len, em.db, db_len);
278  dump(em.ros);
279 
280  nettle_mpz_set_str_256_u(m, key_size, em.all);
281 
282  return 1;
283 }
284 
285 static int
286 rsa_encrypt_oaep(const struct rsa_public_key *key, void *random_ctx, nettle_random_func *random,
287  size_t length, const uint8_t *message, mpz_t gibberish)
288 {
289  if (!oaep_encrypt(key->size, random_ctx, random, length, message, gibberish))
290  return 0;
291 
292  mpz_powm(gibberish, gibberish, key->e, key->n);
293  return 1;
294 }
295 
296 static void*
297 tds5_rsa_encrypt(const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size)
298 {
299  int ret;
300  mpz_t p;
301  gnutls_datum_t pubkey_datum = { (unsigned char *) key, key_len };
302  struct asn1_der_iterator der;
303  struct rsa_public_key pubkey;
304  uint8_t *message;
305  size_t message_len, pwd_len;
306  uint8_t *em = NULL;
307  unsigned char der_buf[2048];
308  size_t size = sizeof(der_buf);
309 
310  mpz_init(p);
311  rsa_public_key_init(&pubkey);
312 
313  pwd_len = strlen(pwd);
314  message_len = nonce_len + pwd_len;
315  message = tds_new(uint8_t, message_len);
316  if (!message)
317  return NULL;
318  memcpy(message, nonce, nonce_len);
319  memcpy(message + nonce_len, pwd, pwd_len);
320 
321  /* use nettle directly */
322  /* parse PEM, get DER */
323  ret = gnutls_pem_base64_decode("RSA PUBLIC KEY", &pubkey_datum, der_buf, &size);
324  if (ret) {
325  tdsdump_log(TDS_DBG_ERROR, "Error %d decoding public key: %s\n", ret, gnutls_strerror(ret));
326  goto error;
327  }
328 
329  /* get key with nettle using DER */
330  ret = asn1_der_iterator_first(&der, size, der_buf);
331  if (ret != ASN1_ITERATOR_CONSTRUCTED || der.type != ASN1_SEQUENCE) {
332  tdsdump_log(TDS_DBG_ERROR, "Invalid DER content\n");
333  goto error;
334  }
335 
336  ret = rsa_public_key_from_der_iterator(&pubkey, key_size_max * 8, &der);
337  if (!ret) {
338  tdsdump_log(TDS_DBG_ERROR, "Invalid DER content\n");
339  goto error;
340  }
341 
342  /* get password encrypted */
343  ret = rsa_encrypt_oaep(&pubkey, NULL, rnd_func, message_len, message, p);
344  if (!ret) {
345  tdsdump_log(TDS_DBG_ERROR, "Error encrypting message\n");
346  goto error;
347  }
348 
349  em = tds_new(uint8_t, pubkey.size);
350  *em_size = pubkey.size;
351  if (!em)
352  goto error;
353 
354  nettle_mpz_get_str_256(pubkey.size, em, p);
355 
356  tdsdump_dump_buf(TDS_DBG_INFO1, "em", em, pubkey.size);
357 
358 error:
359  free(message);
360  rsa_public_key_clear(&pubkey);
361  mpz_clear(p);
362  return em;
363 }
364 
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.
Definition: log.c:256
-
Definition: sec_negotiate_gnutls.h:89
-
Definition: sec_negotiate_gnutls.h:59
-
Definition: sec_negotiate_gnutls.h:137
-
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00293_source.html freetds-1.2.3/doc/reference/a00293_source.html --- freetds-1.1.6/doc/reference/a00293_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00293_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/sec_negotiate_openssl.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
sec_negotiate_openssl.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 #include <openssl/rand.h>
21 #include <openssl/bio.h>
22 #include <openssl/pem.h>
23 #include <openssl/err.h>
24 
36 #ifndef HAVE_OPENSSL
37 #error HAVE_OPENSSL not defines, this file should not be included
38 #endif
39 
40 static inline const BIGNUM*
41 rsa_get_n(const RSA *rsa)
42 {
43 #if HAVE_RSA_GET0_KEY
44  const BIGNUM *n, *e, *d;
45  RSA_get0_key(rsa, &n, &e, &d);
46  return n;
47 #else
48  return rsa->n;
49 #endif
50 }
51 
52 static void*
53 tds5_rsa_encrypt(const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size)
54 {
55  RSA *rsa = NULL;
56  BIO *keybio;
57 
58  uint8_t *message = NULL;
59  size_t message_len, pwd_len;
60  uint8_t *em = NULL;
61 
62  int result;
63 
64  keybio = BIO_new_mem_buf((void*) key, key_len);
65  if (keybio == NULL)
66  goto error;
67 
68  rsa = PEM_read_bio_RSAPublicKey(keybio, &rsa, NULL, NULL);
69  if (!rsa)
70  goto error;
71 
72  pwd_len = strlen(pwd);
73  message_len = nonce_len + pwd_len;
74  message = tds_new(uint8_t, message_len);
75  if (!message)
76  goto error;
77  memcpy(message, nonce, nonce_len);
78  memcpy(message + nonce_len, pwd, pwd_len);
79 
80  em = tds_new(uint8_t, BN_num_bytes(rsa_get_n(rsa)));
81  if (!em)
82  goto error;
83 
84  result = RSA_public_encrypt(message_len, message, em, rsa, RSA_PKCS1_OAEP_PADDING);
85  if (result < 0)
86  goto error;
87 
88  free(message);
89  RSA_free(rsa);
90  BIO_free(keybio);
91 
92  *em_size = result;
93  return em;
94 
95 error:
96  free(message);
97  free(em);
98  RSA_free(rsa);
99  BIO_free(keybio);
100  return NULL;
101 }
102 
- - - - diff -Nru freetds-1.1.6/doc/reference/a00296_source.html freetds-1.2.3/doc/reference/a00296_source.html --- freetds-1.1.6/doc/reference/a00296_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00296_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,1097 @@ + + + + + + + +FreeTDS API: src/tds/tds_types.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
tds_types.h
+
+
+
1 /*
+
2  * This file produced from ./types.pl
+
3  */
+
4 
+
8 int
+
9 tds_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:
+
17  case SYBSINT1:
+
18  case SYBUINT1:
+
19  return 1;
+
20  case SYBINT2:
+
21  case SYBUINT2:
+
22  return 2;
+
23  case SYBMSDATE:
+
24  return 3;
+
25  case SYBDATE:
+
26  case SYBDATEN:
+
27  case SYBDATETIME4:
+
28  case SYBINT4:
+
29  case SYBMONEY4:
+
30  case SYBREAL:
+
31  case SYBTIME:
+
32  case SYBTIMEN:
+
33  case SYBUINT4:
+
34  return 4;
+
35  case SYB5BIGDATETIME:
+
36  case SYB5BIGTIME:
+
37  case SYB5INT8:
+
38  case SYBDATETIME:
+
39  case SYBFLT8:
+
40  case SYBINT8:
+
41  case SYBINTERVAL:
+
42  case SYBMONEY:
+
43  case SYBUINT8:
+
44  return 8;
+
45  case SYBUNIQUE:
+
46  return 16;
+
47  default:
+
48  return 0;
+
49  }
+
50 }
+
51 
+
56 int
+
57 tds_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:
+
65  case SYBINT2:
+
66  case SYBINT4:
+
67  case SYBMONEY:
+
68  case SYBMONEY4:
+
69  case SYBREAL:
+
70  case SYBVOID:
+
71  return 0;
+
72  case SYBIMAGE:
+
73  case SYBTEXT:
+
74  return 4;
+
75  }
+
76 
+
77  if (IS_TDS7_PLUS(conn)) {
+
78  switch (datatype) {
+
79  case SYBINT8:
+
80  return 0;
+
81  case XSYBBINARY:
+
82  case XSYBCHAR:
+
83  case XSYBNCHAR:
+
84  case XSYBNVARCHAR:
+
85  case XSYBVARBINARY:
+
86  case XSYBVARCHAR:
+
87  return 2;
+
88  case SYBNTEXT:
+
89  case SYBVARIANT:
+
90  return 4;
+
91  case SYBMSUDT:
+
92  case SYBMSXML:
+
93  return 8;
+
94  }
+
95  } else if (IS_TDS50(conn)) {
+
96  switch (datatype) {
+
97  case SYB5INT8:
+
98  case SYBDATE:
+
99  case SYBINTERVAL:
+
100  case SYBSINT1:
+
101  case SYBTIME:
+
102  case SYBUINT1:
+
103  case SYBUINT2:
+
104  case SYBUINT4:
+
105  case SYBUINT8:
+
106  return 0;
+
107  case SYBUNITEXT:
+
108  case SYBXML:
+
109  return 4;
+
110  case SYBLONGBINARY:
+
111  case SYBLONGCHAR:
+
112  return 5;
+
113  }
+
114  }
+
115  return 1;
+
116 }
+
117 
+
124 TDS_SERVER_TYPE
+
125 tds_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:
+
133  switch (colsize) {
+
134  case 8:
+
135  return SYBDATETIME;
+
136  case 4:
+
137  return SYBDATETIME4;
+
138  }
+
139  break;
+
140  case SYBFLTN:
+
141  switch (colsize) {
+
142  case 8:
+
143  return SYBFLT8;
+
144  case 4:
+
145  return SYBREAL;
+
146  }
+
147  break;
+
148  case SYBINTN:
+
149  switch (colsize) {
+
150  case 8:
+
151  return SYBINT8;
+
152  case 4:
+
153  return SYBINT4;
+
154  case 2:
+
155  return SYBINT2;
+
156  case 1:
+
157  return SYBINT1;
+
158  }
+
159  break;
+
160  case SYBMONEYN:
+
161  switch (colsize) {
+
162  case 8:
+
163  return SYBMONEY;
+
164  case 4:
+
165  return SYBMONEY4;
+
166  }
+
167  break;
+
168  case SYBTIMEN:
+
169  return SYBTIME;
+
170  case SYBUINTN:
+
171  switch (colsize) {
+
172  case 8:
+
173  return SYBUINT8;
+
174  case 4:
+
175  return SYBUINT4;
+
176  case 2:
+
177  return SYBUINT2;
+
178  case 1:
+
179  return SYBUINT1;
+
180  }
+
181  break;
+
182  case SYB5INT8:
+
183  return SYBINT8;
+
184  default:
+
185  break;
+
186  }
+
187  return srctype;
+
188 }
+
189 
+
190 const uint16_t tds_type_flags_ms[256] = {
+
191  /* 0 empty */ TDS_TYPEFLAG_INVALID,
+
192  /* 1 empty */ TDS_TYPEFLAG_INVALID,
+
193  /* 2 empty */ TDS_TYPEFLAG_INVALID,
+
194  /* 3 empty */ TDS_TYPEFLAG_INVALID,
+
195  /* 4 empty */ TDS_TYPEFLAG_INVALID,
+
196  /* 5 empty */ TDS_TYPEFLAG_INVALID,
+
197  /* 6 empty */ TDS_TYPEFLAG_INVALID,
+
198  /* 7 empty */ TDS_TYPEFLAG_INVALID,
+
199  /* 8 empty */ TDS_TYPEFLAG_INVALID,
+
200  /* 9 empty */ TDS_TYPEFLAG_INVALID,
+
201  /* 10 empty */ TDS_TYPEFLAG_INVALID,
+
202  /* 11 empty */ TDS_TYPEFLAG_INVALID,
+
203  /* 12 empty */ TDS_TYPEFLAG_INVALID,
+
204  /* 13 empty */ TDS_TYPEFLAG_INVALID,
+
205  /* 14 empty */ TDS_TYPEFLAG_INVALID,
+
206  /* 15 empty */ TDS_TYPEFLAG_INVALID,
+
207  /* 16 empty */ TDS_TYPEFLAG_INVALID,
+
208  /* 17 empty */ TDS_TYPEFLAG_INVALID,
+
209  /* 18 empty */ TDS_TYPEFLAG_INVALID,
+
210  /* 19 empty */ TDS_TYPEFLAG_INVALID,
+
211  /* 20 empty */ TDS_TYPEFLAG_INVALID,
+
212  /* 21 empty */ TDS_TYPEFLAG_INVALID,
+
213  /* 22 empty */ TDS_TYPEFLAG_INVALID,
+
214  /* 23 empty */ TDS_TYPEFLAG_INVALID,
+
215  /* 24 empty */ TDS_TYPEFLAG_INVALID,
+
216  /* 25 empty */ TDS_TYPEFLAG_INVALID,
+
217  /* 26 empty */ TDS_TYPEFLAG_INVALID,
+
218  /* 27 empty */ TDS_TYPEFLAG_INVALID,
+
219  /* 28 empty */ TDS_TYPEFLAG_INVALID,
+
220  /* 29 empty */ TDS_TYPEFLAG_INVALID,
+
221  /* 30 empty */ TDS_TYPEFLAG_INVALID,
+
222  /* 31 SYBVOID */ TDS_TYPEFLAG_FIXED,
+
223  /* 32 empty */ TDS_TYPEFLAG_INVALID,
+
224  /* 33 empty */ TDS_TYPEFLAG_INVALID,
+
225  /* 34 SYBIMAGE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
+
226  /* 35 SYBTEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII,
+
227  /* 36 SYBUNIQUE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
228  /* 37 SYBVARBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY|TDS_TYPEFLAG_VARIANT,
+
229  /* 38 SYBINTN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
230  /* 39 SYBVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_VARIANT,
+
231  /* 40 SYBMSDATE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
232  /* 41 SYBMSTIME */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
233  /* 42 SYBMSDATETIME2 */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
234  /* 43 SYBMSDATETIMEOFFSET */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
235  /* 44 empty */ TDS_TYPEFLAG_INVALID,
+
236  /* 45 SYBBINARY */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY|TDS_TYPEFLAG_VARIANT,
+
237  /* 46 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
238  /* 47 SYBCHAR */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_VARIANT,
+
239  /* 48 SYBINT1 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
240  /* 49 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
+
241  /* 50 SYBBIT */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
242  /* 51 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
+
243  /* 52 SYBINT2 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
244  /* 53 empty */ TDS_TYPEFLAG_INVALID,
+
245  /* 54 empty */ TDS_TYPEFLAG_INVALID,
+
246  /* 55 empty */ TDS_TYPEFLAG_INVALID,
+
247  /* 56 SYBINT4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
248  /* 57 empty */ TDS_TYPEFLAG_INVALID,
+
249  /* 58 SYBDATETIME4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
250  /* 59 SYBREAL */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
251  /* 60 SYBMONEY */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
252  /* 61 SYBDATETIME */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
253  /* 62 SYBFLT8 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
254  /* 63 empty */ TDS_TYPEFLAG_INVALID,
+
255  /* 64 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
256  /* 65 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
257  /* 66 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
258  /* 67 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
259  /* 68 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE,
+
260  /* 69 empty */ TDS_TYPEFLAG_INVALID,
+
261  /* 70 empty */ TDS_TYPEFLAG_INVALID,
+
262  /* 71 empty */ TDS_TYPEFLAG_INVALID,
+
263  /* 72 empty */ TDS_TYPEFLAG_INVALID,
+
264  /* 73 empty */ TDS_TYPEFLAG_INVALID,
+
265  /* 74 empty */ TDS_TYPEFLAG_INVALID,
+
266  /* 75 empty */ TDS_TYPEFLAG_INVALID,
+
267  /* 76 empty */ TDS_TYPEFLAG_INVALID,
+
268  /* 77 empty */ TDS_TYPEFLAG_INVALID,
+
269  /* 78 empty */ TDS_TYPEFLAG_INVALID,
+
270  /* 79 empty */ TDS_TYPEFLAG_INVALID,
+
271  /* 80 empty */ TDS_TYPEFLAG_INVALID,
+
272  /* 81 empty */ TDS_TYPEFLAG_INVALID,
+
273  /* 82 empty */ TDS_TYPEFLAG_INVALID,
+
274  /* 83 empty */ TDS_TYPEFLAG_INVALID,
+
275  /* 84 empty */ TDS_TYPEFLAG_INVALID,
+
276  /* 85 empty */ TDS_TYPEFLAG_INVALID,
+
277  /* 86 empty */ TDS_TYPEFLAG_INVALID,
+
278  /* 87 empty */ TDS_TYPEFLAG_INVALID,
+
279  /* 88 empty */ TDS_TYPEFLAG_INVALID,
+
280  /* 89 empty */ TDS_TYPEFLAG_INVALID,
+
281  /* 90 empty */ TDS_TYPEFLAG_INVALID,
+
282  /* 91 empty */ TDS_TYPEFLAG_INVALID,
+
283  /* 92 empty */ TDS_TYPEFLAG_INVALID,
+
284  /* 93 empty */ TDS_TYPEFLAG_INVALID,
+
285  /* 94 empty */ TDS_TYPEFLAG_INVALID,
+
286  /* 95 empty */ TDS_TYPEFLAG_INVALID,
+
287  /* 96 empty */ TDS_TYPEFLAG_INVALID,
+
288  /* 97 empty */ TDS_TYPEFLAG_INVALID,
+
289  /* 98 SYBVARIANT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
290  /* 99 SYBNTEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_UNICODE,
+
291  /* 100 empty */ TDS_TYPEFLAG_INVALID,
+
292  /* 101 empty */ TDS_TYPEFLAG_INVALID,
+
293  /* 102 empty */ TDS_TYPEFLAG_INVALID,
+
294  /* 103 SYBNVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE|TDS_TYPEFLAG_VARIANT,
+
295  /* 104 SYBBITN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
296  /* 105 empty */ TDS_TYPEFLAG_INVALID,
+
297  /* 106 SYBDECIMAL */ TDS_TYPEFLAG_NUMERIC|TDS_TYPEFLAG_VARIANT,
+
298  /* 107 empty */ TDS_TYPEFLAG_INVALID,
+
299  /* 108 SYBNUMERIC */ TDS_TYPEFLAG_NUMERIC|TDS_TYPEFLAG_VARIANT,
+
300  /* 109 SYBFLTN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
301  /* 110 SYBMONEYN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
302  /* 111 SYBDATETIMN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
303  /* 112 empty */ TDS_TYPEFLAG_INVALID,
+
304  /* 113 empty */ TDS_TYPEFLAG_INVALID,
+
305  /* 114 empty */ TDS_TYPEFLAG_INVALID,
+
306  /* 115 empty */ TDS_TYPEFLAG_INVALID,
+
307  /* 116 empty */ TDS_TYPEFLAG_INVALID,
+
308  /* 117 empty */ TDS_TYPEFLAG_INVALID,
+
309  /* 118 empty */ TDS_TYPEFLAG_INVALID,
+
310  /* 119 empty */ TDS_TYPEFLAG_INVALID,
+
311  /* 120 empty */ TDS_TYPEFLAG_INVALID,
+
312  /* 121 empty */ TDS_TYPEFLAG_INVALID,
+
313  /* 122 SYBMONEY4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
314  /* 123 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
315  /* 124 empty */ TDS_TYPEFLAG_INVALID,
+
316  /* 125 empty */ TDS_TYPEFLAG_INVALID,
+
317  /* 126 empty */ TDS_TYPEFLAG_INVALID,
+
318  /* 127 SYBINT8 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
319  /* 128 empty */ TDS_TYPEFLAG_INVALID,
+
320  /* 129 empty */ TDS_TYPEFLAG_INVALID,
+
321  /* 130 empty */ TDS_TYPEFLAG_INVALID,
+
322  /* 131 empty */ TDS_TYPEFLAG_INVALID,
+
323  /* 132 empty */ TDS_TYPEFLAG_INVALID,
+
324  /* 133 empty */ TDS_TYPEFLAG_INVALID,
+
325  /* 134 empty */ TDS_TYPEFLAG_INVALID,
+
326  /* 135 empty */ TDS_TYPEFLAG_INVALID,
+
327  /* 136 empty */ TDS_TYPEFLAG_INVALID,
+
328  /* 137 empty */ TDS_TYPEFLAG_INVALID,
+
329  /* 138 empty */ TDS_TYPEFLAG_INVALID,
+
330  /* 139 empty */ TDS_TYPEFLAG_INVALID,
+
331  /* 140 empty */ TDS_TYPEFLAG_INVALID,
+
332  /* 141 empty */ TDS_TYPEFLAG_INVALID,
+
333  /* 142 empty */ TDS_TYPEFLAG_INVALID,
+
334  /* 143 empty */ TDS_TYPEFLAG_INVALID,
+
335  /* 144 empty */ TDS_TYPEFLAG_INVALID,
+
336  /* 145 empty */ TDS_TYPEFLAG_INVALID,
+
337  /* 146 empty */ TDS_TYPEFLAG_INVALID,
+
338  /* 147 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
339  /* 148 empty */ TDS_TYPEFLAG_INVALID,
+
340  /* 149 empty */ TDS_TYPEFLAG_INVALID,
+
341  /* 150 empty */ TDS_TYPEFLAG_INVALID,
+
342  /* 151 empty */ TDS_TYPEFLAG_INVALID,
+
343  /* 152 empty */ TDS_TYPEFLAG_INVALID,
+
344  /* 153 empty */ TDS_TYPEFLAG_INVALID,
+
345  /* 154 empty */ TDS_TYPEFLAG_INVALID,
+
346  /* 155 empty */ TDS_TYPEFLAG_INVALID,
+
347  /* 156 empty */ TDS_TYPEFLAG_INVALID,
+
348  /* 157 empty */ TDS_TYPEFLAG_INVALID,
+
349  /* 158 empty */ TDS_TYPEFLAG_INVALID,
+
350  /* 159 empty */ TDS_TYPEFLAG_INVALID,
+
351  /* 160 empty */ TDS_TYPEFLAG_INVALID,
+
352  /* 161 empty */ TDS_TYPEFLAG_INVALID,
+
353  /* 162 empty */ TDS_TYPEFLAG_INVALID,
+
354  /* 163 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
355  /* 164 empty */ TDS_TYPEFLAG_INVALID,
+
356  /* 165 XSYBVARBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY|TDS_TYPEFLAG_VARIANT,
+
357  /* 166 empty */ TDS_TYPEFLAG_INVALID,
+
358  /* 167 XSYBVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_VARIANT,
+
359  /* 168 empty */ TDS_TYPEFLAG_INVALID,
+
360  /* 169 empty */ TDS_TYPEFLAG_INVALID,
+
361  /* 170 empty */ TDS_TYPEFLAG_INVALID,
+
362  /* 171 empty */ TDS_TYPEFLAG_INVALID,
+
363  /* 172 empty */ TDS_TYPEFLAG_INVALID,
+
364  /* 173 XSYBBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY|TDS_TYPEFLAG_VARIANT,
+
365  /* 174 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
366  /* 175 XSYBCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_VARIANT,
+
367  /* 176 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
368  /* 177 empty */ TDS_TYPEFLAG_INVALID,
+
369  /* 178 empty */ TDS_TYPEFLAG_INVALID,
+
370  /* 179 empty */ TDS_TYPEFLAG_INVALID,
+
371  /* 180 empty */ TDS_TYPEFLAG_INVALID,
+
372  /* 181 empty */ TDS_TYPEFLAG_INVALID,
+
373  /* 182 empty */ TDS_TYPEFLAG_INVALID,
+
374  /* 183 empty */ TDS_TYPEFLAG_INVALID,
+
375  /* 184 empty */ TDS_TYPEFLAG_INVALID,
+
376  /* 185 empty */ TDS_TYPEFLAG_INVALID,
+
377  /* 186 empty */ TDS_TYPEFLAG_INVALID,
+
378  /* 187 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
379  /* 188 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
380  /* 189 empty */ TDS_TYPEFLAG_INVALID,
+
381  /* 190 empty */ TDS_TYPEFLAG_INVALID,
+
382  /* 191 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
383  /* 192 empty */ TDS_TYPEFLAG_INVALID,
+
384  /* 193 empty */ TDS_TYPEFLAG_INVALID,
+
385  /* 194 empty */ TDS_TYPEFLAG_INVALID,
+
386  /* 195 empty */ TDS_TYPEFLAG_INVALID,
+
387  /* 196 empty */ TDS_TYPEFLAG_INVALID,
+
388  /* 197 empty */ TDS_TYPEFLAG_INVALID,
+
389  /* 198 empty */ TDS_TYPEFLAG_INVALID,
+
390  /* 199 empty */ TDS_TYPEFLAG_INVALID,
+
391  /* 200 empty */ TDS_TYPEFLAG_INVALID,
+
392  /* 201 empty */ TDS_TYPEFLAG_INVALID,
+
393  /* 202 empty */ TDS_TYPEFLAG_INVALID,
+
394  /* 203 empty */ TDS_TYPEFLAG_INVALID,
+
395  /* 204 empty */ TDS_TYPEFLAG_INVALID,
+
396  /* 205 empty */ TDS_TYPEFLAG_INVALID,
+
397  /* 206 empty */ TDS_TYPEFLAG_INVALID,
+
398  /* 207 empty */ TDS_TYPEFLAG_INVALID,
+
399  /* 208 empty */ TDS_TYPEFLAG_INVALID,
+
400  /* 209 empty */ TDS_TYPEFLAG_INVALID,
+
401  /* 210 empty */ TDS_TYPEFLAG_INVALID,
+
402  /* 211 empty */ TDS_TYPEFLAG_INVALID,
+
403  /* 212 empty */ TDS_TYPEFLAG_INVALID,
+
404  /* 213 empty */ TDS_TYPEFLAG_INVALID,
+
405  /* 214 empty */ TDS_TYPEFLAG_INVALID,
+
406  /* 215 empty */ TDS_TYPEFLAG_INVALID,
+
407  /* 216 empty */ TDS_TYPEFLAG_INVALID,
+
408  /* 217 empty */ TDS_TYPEFLAG_INVALID,
+
409  /* 218 empty */ TDS_TYPEFLAG_INVALID,
+
410  /* 219 empty */ TDS_TYPEFLAG_INVALID,
+
411  /* 220 empty */ TDS_TYPEFLAG_INVALID,
+
412  /* 221 empty */ TDS_TYPEFLAG_INVALID,
+
413  /* 222 empty */ TDS_TYPEFLAG_INVALID,
+
414  /* 223 empty */ TDS_TYPEFLAG_INVALID,
+
415  /* 224 empty */ TDS_TYPEFLAG_INVALID,
+
416  /* 225 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
+
417  /* 226 empty */ TDS_TYPEFLAG_INVALID,
+
418  /* 227 empty */ TDS_TYPEFLAG_INVALID,
+
419  /* 228 empty */ TDS_TYPEFLAG_INVALID,
+
420  /* 229 empty */ TDS_TYPEFLAG_INVALID,
+
421  /* 230 empty */ TDS_TYPEFLAG_INVALID,
+
422  /* 231 XSYBNVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_UNICODE|TDS_TYPEFLAG_VARIANT,
+
423  /* 232 empty */ TDS_TYPEFLAG_INVALID,
+
424  /* 233 empty */ TDS_TYPEFLAG_INVALID,
+
425  /* 234 empty */ TDS_TYPEFLAG_INVALID,
+
426  /* 235 empty */ TDS_TYPEFLAG_INVALID,
+
427  /* 236 empty */ TDS_TYPEFLAG_INVALID,
+
428  /* 237 empty */ TDS_TYPEFLAG_INVALID,
+
429  /* 238 empty */ TDS_TYPEFLAG_INVALID,
+
430  /* 239 XSYBNCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_UNICODE|TDS_TYPEFLAG_VARIANT,
+
431  /* 240 SYBMSUDT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
432  /* 241 SYBMSXML */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
433  /* 242 empty */ TDS_TYPEFLAG_INVALID,
+
434  /* 243 empty */ TDS_TYPEFLAG_INVALID,
+
435  /* 244 empty */ TDS_TYPEFLAG_INVALID,
+
436  /* 245 empty */ TDS_TYPEFLAG_INVALID,
+
437  /* 246 empty */ TDS_TYPEFLAG_INVALID,
+
438  /* 247 empty */ TDS_TYPEFLAG_INVALID,
+
439  /* 248 empty */ TDS_TYPEFLAG_INVALID,
+
440  /* 249 empty */ TDS_TYPEFLAG_INVALID,
+
441  /* 250 empty */ TDS_TYPEFLAG_INVALID,
+
442  /* 251 empty */ TDS_TYPEFLAG_INVALID,
+
443  /* 252 empty */ TDS_TYPEFLAG_INVALID,
+
444  /* 253 empty */ TDS_TYPEFLAG_INVALID,
+
445  /* 254 empty */ TDS_TYPEFLAG_INVALID,
+
446  /* 255 empty */ TDS_TYPEFLAG_INVALID,
+
447 };
+
448 
+
449 #if 0
+
450 const uint16_t tds_type_flags_syb[256] = {
+
451  /* 0 empty */ TDS_TYPEFLAG_INVALID,
+
452  /* 1 empty */ TDS_TYPEFLAG_INVALID,
+
453  /* 2 empty */ TDS_TYPEFLAG_INVALID,
+
454  /* 3 empty */ TDS_TYPEFLAG_INVALID,
+
455  /* 4 empty */ TDS_TYPEFLAG_INVALID,
+
456  /* 5 empty */ TDS_TYPEFLAG_INVALID,
+
457  /* 6 empty */ TDS_TYPEFLAG_INVALID,
+
458  /* 7 empty */ TDS_TYPEFLAG_INVALID,
+
459  /* 8 empty */ TDS_TYPEFLAG_INVALID,
+
460  /* 9 empty */ TDS_TYPEFLAG_INVALID,
+
461  /* 10 empty */ TDS_TYPEFLAG_INVALID,
+
462  /* 11 empty */ TDS_TYPEFLAG_INVALID,
+
463  /* 12 empty */ TDS_TYPEFLAG_INVALID,
+
464  /* 13 empty */ TDS_TYPEFLAG_INVALID,
+
465  /* 14 empty */ TDS_TYPEFLAG_INVALID,
+
466  /* 15 empty */ TDS_TYPEFLAG_INVALID,
+
467  /* 16 empty */ TDS_TYPEFLAG_INVALID,
+
468  /* 17 empty */ TDS_TYPEFLAG_INVALID,
+
469  /* 18 empty */ TDS_TYPEFLAG_INVALID,
+
470  /* 19 empty */ TDS_TYPEFLAG_INVALID,
+
471  /* 20 empty */ TDS_TYPEFLAG_INVALID,
+
472  /* 21 empty */ TDS_TYPEFLAG_INVALID,
+
473  /* 22 empty */ TDS_TYPEFLAG_INVALID,
+
474  /* 23 empty */ TDS_TYPEFLAG_INVALID,
+
475  /* 24 empty */ TDS_TYPEFLAG_INVALID,
+
476  /* 25 empty */ TDS_TYPEFLAG_INVALID,
+
477  /* 26 empty */ TDS_TYPEFLAG_INVALID,
+
478  /* 27 empty */ TDS_TYPEFLAG_INVALID,
+
479  /* 28 empty */ TDS_TYPEFLAG_INVALID,
+
480  /* 29 empty */ TDS_TYPEFLAG_INVALID,
+
481  /* 30 empty */ TDS_TYPEFLAG_INVALID,
+
482  /* 31 SYBVOID */ TDS_TYPEFLAG_FIXED,
+
483  /* 32 empty */ TDS_TYPEFLAG_INVALID,
+
484  /* 33 empty */ TDS_TYPEFLAG_INVALID,
+
485  /* 34 SYBIMAGE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
+
486  /* 35 SYBTEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII,
+
487  /* 36 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_NULLABLE,
+
488  /* 37 SYBVARBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY|TDS_TYPEFLAG_VARIANT,
+
489  /* 38 SYBINTN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
490  /* 39 SYBVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_VARIANT,
+
491  /* 40 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
492  /* 41 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
493  /* 42 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
494  /* 43 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
495  /* 44 empty */ TDS_TYPEFLAG_INVALID,
+
496  /* 45 SYBBINARY */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY|TDS_TYPEFLAG_VARIANT,
+
497  /* 46 SYBINTERVAL */ TDS_TYPEFLAG_FIXED,
+
498  /* 47 SYBCHAR */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_VARIANT,
+
499  /* 48 SYBINT1 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
500  /* 49 SYBDATE */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
+
501  /* 50 SYBBIT */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
502  /* 51 SYBTIME */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
+
503  /* 52 SYBINT2 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
504  /* 53 empty */ TDS_TYPEFLAG_INVALID,
+
505  /* 54 empty */ TDS_TYPEFLAG_INVALID,
+
506  /* 55 empty */ TDS_TYPEFLAG_INVALID,
+
507  /* 56 SYBINT4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
508  /* 57 empty */ TDS_TYPEFLAG_INVALID,
+
509  /* 58 SYBDATETIME4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
510  /* 59 SYBREAL */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
511  /* 60 SYBMONEY */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
512  /* 61 SYBDATETIME */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
513  /* 62 SYBFLT8 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
514  /* 63 empty */ TDS_TYPEFLAG_INVALID,
+
515  /* 64 SYBUINT1 */ TDS_TYPEFLAG_FIXED,
+
516  /* 65 SYBUINT2 */ TDS_TYPEFLAG_FIXED,
+
517  /* 66 SYBUINT4 */ TDS_TYPEFLAG_FIXED,
+
518  /* 67 SYBUINT8 */ TDS_TYPEFLAG_FIXED,
+
519  /* 68 SYBUINTN */ TDS_TYPEFLAG_NULLABLE,
+
520  /* 69 empty */ TDS_TYPEFLAG_INVALID,
+
521  /* 70 empty */ TDS_TYPEFLAG_INVALID,
+
522  /* 71 empty */ TDS_TYPEFLAG_INVALID,
+
523  /* 72 empty */ TDS_TYPEFLAG_INVALID,
+
524  /* 73 empty */ TDS_TYPEFLAG_INVALID,
+
525  /* 74 empty */ TDS_TYPEFLAG_INVALID,
+
526  /* 75 empty */ TDS_TYPEFLAG_INVALID,
+
527  /* 76 empty */ TDS_TYPEFLAG_INVALID,
+
528  /* 77 empty */ TDS_TYPEFLAG_INVALID,
+
529  /* 78 empty */ TDS_TYPEFLAG_INVALID,
+
530  /* 79 empty */ TDS_TYPEFLAG_INVALID,
+
531  /* 80 empty */ TDS_TYPEFLAG_INVALID,
+
532  /* 81 empty */ TDS_TYPEFLAG_INVALID,
+
533  /* 82 empty */ TDS_TYPEFLAG_INVALID,
+
534  /* 83 empty */ TDS_TYPEFLAG_INVALID,
+
535  /* 84 empty */ TDS_TYPEFLAG_INVALID,
+
536  /* 85 empty */ TDS_TYPEFLAG_INVALID,
+
537  /* 86 empty */ TDS_TYPEFLAG_INVALID,
+
538  /* 87 empty */ TDS_TYPEFLAG_INVALID,
+
539  /* 88 empty */ TDS_TYPEFLAG_INVALID,
+
540  /* 89 empty */ TDS_TYPEFLAG_INVALID,
+
541  /* 90 empty */ TDS_TYPEFLAG_INVALID,
+
542  /* 91 empty */ TDS_TYPEFLAG_INVALID,
+
543  /* 92 empty */ TDS_TYPEFLAG_INVALID,
+
544  /* 93 empty */ TDS_TYPEFLAG_INVALID,
+
545  /* 94 empty */ TDS_TYPEFLAG_INVALID,
+
546  /* 95 empty */ TDS_TYPEFLAG_INVALID,
+
547  /* 96 empty */ TDS_TYPEFLAG_INVALID,
+
548  /* 97 empty */ TDS_TYPEFLAG_INVALID,
+
549  /* 98 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
550  /* 99 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
551  /* 100 empty */ TDS_TYPEFLAG_INVALID,
+
552  /* 101 empty */ TDS_TYPEFLAG_INVALID,
+
553  /* 102 empty */ TDS_TYPEFLAG_INVALID,
+
554  /* 103 SYBSENSITIVITY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
+
555  /* 104 SYBBOUNDARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
+
556  /* 105 empty */ TDS_TYPEFLAG_INVALID,
+
557  /* 106 SYBDECIMAL */ TDS_TYPEFLAG_NUMERIC|TDS_TYPEFLAG_VARIANT,
+
558  /* 107 empty */ TDS_TYPEFLAG_INVALID,
+
559  /* 108 SYBNUMERIC */ TDS_TYPEFLAG_NUMERIC|TDS_TYPEFLAG_VARIANT,
+
560  /* 109 SYBFLTN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
561  /* 110 SYBMONEYN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIANT,
+
562  /* 111 SYBDATETIMN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME|TDS_TYPEFLAG_VARIANT,
+
563  /* 112 empty */ TDS_TYPEFLAG_INVALID,
+
564  /* 113 empty */ TDS_TYPEFLAG_INVALID,
+
565  /* 114 empty */ TDS_TYPEFLAG_INVALID,
+
566  /* 115 empty */ TDS_TYPEFLAG_INVALID,
+
567  /* 116 empty */ TDS_TYPEFLAG_INVALID,
+
568  /* 117 empty */ TDS_TYPEFLAG_INVALID,
+
569  /* 118 empty */ TDS_TYPEFLAG_INVALID,
+
570  /* 119 empty */ TDS_TYPEFLAG_INVALID,
+
571  /* 120 empty */ TDS_TYPEFLAG_INVALID,
+
572  /* 121 empty */ TDS_TYPEFLAG_INVALID,
+
573  /* 122 SYBMONEY4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_VARIANT,
+
574  /* 123 SYBDATEN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
575  /* 124 empty */ TDS_TYPEFLAG_INVALID,
+
576  /* 125 empty */ TDS_TYPEFLAG_INVALID,
+
577  /* 126 empty */ TDS_TYPEFLAG_INVALID,
+
578  /* 127 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
+
579  /* 128 empty */ TDS_TYPEFLAG_INVALID,
+
580  /* 129 empty */ TDS_TYPEFLAG_INVALID,
+
581  /* 130 empty */ TDS_TYPEFLAG_INVALID,
+
582  /* 131 empty */ TDS_TYPEFLAG_INVALID,
+
583  /* 132 empty */ TDS_TYPEFLAG_INVALID,
+
584  /* 133 empty */ TDS_TYPEFLAG_INVALID,
+
585  /* 134 empty */ TDS_TYPEFLAG_INVALID,
+
586  /* 135 empty */ TDS_TYPEFLAG_INVALID,
+
587  /* 136 empty */ TDS_TYPEFLAG_INVALID,
+
588  /* 137 empty */ TDS_TYPEFLAG_INVALID,
+
589  /* 138 empty */ TDS_TYPEFLAG_INVALID,
+
590  /* 139 empty */ TDS_TYPEFLAG_INVALID,
+
591  /* 140 empty */ TDS_TYPEFLAG_INVALID,
+
592  /* 141 empty */ TDS_TYPEFLAG_INVALID,
+
593  /* 142 empty */ TDS_TYPEFLAG_INVALID,
+
594  /* 143 empty */ TDS_TYPEFLAG_INVALID,
+
595  /* 144 empty */ TDS_TYPEFLAG_INVALID,
+
596  /* 145 empty */ TDS_TYPEFLAG_INVALID,
+
597  /* 146 empty */ TDS_TYPEFLAG_INVALID,
+
598  /* 147 SYBTIMEN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
599  /* 148 empty */ TDS_TYPEFLAG_INVALID,
+
600  /* 149 empty */ TDS_TYPEFLAG_INVALID,
+
601  /* 150 empty */ TDS_TYPEFLAG_INVALID,
+
602  /* 151 empty */ TDS_TYPEFLAG_INVALID,
+
603  /* 152 empty */ TDS_TYPEFLAG_INVALID,
+
604  /* 153 empty */ TDS_TYPEFLAG_INVALID,
+
605  /* 154 empty */ TDS_TYPEFLAG_INVALID,
+
606  /* 155 empty */ TDS_TYPEFLAG_INVALID,
+
607  /* 156 empty */ TDS_TYPEFLAG_INVALID,
+
608  /* 157 empty */ TDS_TYPEFLAG_INVALID,
+
609  /* 158 empty */ TDS_TYPEFLAG_INVALID,
+
610  /* 159 empty */ TDS_TYPEFLAG_INVALID,
+
611  /* 160 empty */ TDS_TYPEFLAG_INVALID,
+
612  /* 161 empty */ TDS_TYPEFLAG_INVALID,
+
613  /* 162 empty */ TDS_TYPEFLAG_INVALID,
+
614  /* 163 SYBXML */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
615  /* 164 empty */ TDS_TYPEFLAG_INVALID,
+
616  /* 165 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
+
617  /* 166 empty */ TDS_TYPEFLAG_INVALID,
+
618  /* 167 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
619  /* 168 empty */ TDS_TYPEFLAG_INVALID,
+
620  /* 169 empty */ TDS_TYPEFLAG_INVALID,
+
621  /* 170 empty */ TDS_TYPEFLAG_INVALID,
+
622  /* 171 empty */ TDS_TYPEFLAG_INVALID,
+
623  /* 172 empty */ TDS_TYPEFLAG_INVALID,
+
624  /* 173 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
+
625  /* 174 SYBUNITEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
626  /* 175 SYBLONGCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
+
627  /* 176 SYBSINT1 */ TDS_TYPEFLAG_FIXED,
+
628  /* 177 empty */ TDS_TYPEFLAG_INVALID,
+
629  /* 178 empty */ TDS_TYPEFLAG_INVALID,
+
630  /* 179 empty */ TDS_TYPEFLAG_INVALID,
+
631  /* 180 empty */ TDS_TYPEFLAG_INVALID,
+
632  /* 181 empty */ TDS_TYPEFLAG_INVALID,
+
633  /* 182 empty */ TDS_TYPEFLAG_INVALID,
+
634  /* 183 empty */ TDS_TYPEFLAG_INVALID,
+
635  /* 184 empty */ TDS_TYPEFLAG_INVALID,
+
636  /* 185 empty */ TDS_TYPEFLAG_INVALID,
+
637  /* 186 empty */ TDS_TYPEFLAG_INVALID,
+
638  /* 187 SYB5BIGDATETIME */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
639  /* 188 SYB5BIGTIME */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
+
640  /* 189 empty */ TDS_TYPEFLAG_INVALID,
+
641  /* 190 empty */ TDS_TYPEFLAG_INVALID,
+
642  /* 191 SYB5INT8 */ TDS_TYPEFLAG_FIXED,
+
643  /* 192 empty */ TDS_TYPEFLAG_INVALID,
+
644  /* 193 empty */ TDS_TYPEFLAG_INVALID,
+
645  /* 194 empty */ TDS_TYPEFLAG_INVALID,
+
646  /* 195 empty */ TDS_TYPEFLAG_INVALID,
+
647  /* 196 empty */ TDS_TYPEFLAG_INVALID,
+
648  /* 197 empty */ TDS_TYPEFLAG_INVALID,
+
649  /* 198 empty */ TDS_TYPEFLAG_INVALID,
+
650  /* 199 empty */ TDS_TYPEFLAG_INVALID,
+
651  /* 200 empty */ TDS_TYPEFLAG_INVALID,
+
652  /* 201 empty */ TDS_TYPEFLAG_INVALID,
+
653  /* 202 empty */ TDS_TYPEFLAG_INVALID,
+
654  /* 203 empty */ TDS_TYPEFLAG_INVALID,
+
655  /* 204 empty */ TDS_TYPEFLAG_INVALID,
+
656  /* 205 empty */ TDS_TYPEFLAG_INVALID,
+
657  /* 206 empty */ TDS_TYPEFLAG_INVALID,
+
658  /* 207 empty */ TDS_TYPEFLAG_INVALID,
+
659  /* 208 empty */ TDS_TYPEFLAG_INVALID,
+
660  /* 209 empty */ TDS_TYPEFLAG_INVALID,
+
661  /* 210 empty */ TDS_TYPEFLAG_INVALID,
+
662  /* 211 empty */ TDS_TYPEFLAG_INVALID,
+
663  /* 212 empty */ TDS_TYPEFLAG_INVALID,
+
664  /* 213 empty */ TDS_TYPEFLAG_INVALID,
+
665  /* 214 empty */ TDS_TYPEFLAG_INVALID,
+
666  /* 215 empty */ TDS_TYPEFLAG_INVALID,
+
667  /* 216 empty */ TDS_TYPEFLAG_INVALID,
+
668  /* 217 empty */ TDS_TYPEFLAG_INVALID,
+
669  /* 218 empty */ TDS_TYPEFLAG_INVALID,
+
670  /* 219 empty */ TDS_TYPEFLAG_INVALID,
+
671  /* 220 empty */ TDS_TYPEFLAG_INVALID,
+
672  /* 221 empty */ TDS_TYPEFLAG_INVALID,
+
673  /* 222 empty */ TDS_TYPEFLAG_INVALID,
+
674  /* 223 empty */ TDS_TYPEFLAG_INVALID,
+
675  /* 224 empty */ TDS_TYPEFLAG_INVALID,
+
676  /* 225 SYBLONGBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
+
677  /* 226 empty */ TDS_TYPEFLAG_INVALID,
+
678  /* 227 empty */ TDS_TYPEFLAG_INVALID,
+
679  /* 228 empty */ TDS_TYPEFLAG_INVALID,
+
680  /* 229 empty */ TDS_TYPEFLAG_INVALID,
+
681  /* 230 empty */ TDS_TYPEFLAG_INVALID,
+
682  /* 231 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
683  /* 232 empty */ TDS_TYPEFLAG_INVALID,
+
684  /* 233 empty */ TDS_TYPEFLAG_INVALID,
+
685  /* 234 empty */ TDS_TYPEFLAG_INVALID,
+
686  /* 235 empty */ TDS_TYPEFLAG_INVALID,
+
687  /* 236 empty */ TDS_TYPEFLAG_INVALID,
+
688  /* 237 empty */ TDS_TYPEFLAG_INVALID,
+
689  /* 238 empty */ TDS_TYPEFLAG_INVALID,
+
690  /* 239 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
691  /* 240 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
+
692  /* 241 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
+
693  /* 242 empty */ TDS_TYPEFLAG_INVALID,
+
694  /* 243 empty */ TDS_TYPEFLAG_INVALID,
+
695  /* 244 empty */ TDS_TYPEFLAG_INVALID,
+
696  /* 245 empty */ TDS_TYPEFLAG_INVALID,
+
697  /* 246 empty */ TDS_TYPEFLAG_INVALID,
+
698  /* 247 empty */ TDS_TYPEFLAG_INVALID,
+
699  /* 248 empty */ TDS_TYPEFLAG_INVALID,
+
700  /* 249 empty */ TDS_TYPEFLAG_INVALID,
+
701  /* 250 empty */ TDS_TYPEFLAG_INVALID,
+
702  /* 251 empty */ TDS_TYPEFLAG_INVALID,
+
703  /* 252 empty */ TDS_TYPEFLAG_INVALID,
+
704  /* 253 empty */ TDS_TYPEFLAG_INVALID,
+
705  /* 254 empty */ TDS_TYPEFLAG_INVALID,
+
706  /* 255 empty */ TDS_TYPEFLAG_INVALID,
+
707 };
+
708 
+
709 const char *const tds_type_names[256] = {
+
710  /* 0 */ "",
+
711  /* 1 */ "",
+
712  /* 2 */ "",
+
713  /* 3 */ "",
+
714  /* 4 */ "",
+
715  /* 5 */ "",
+
716  /* 6 */ "",
+
717  /* 7 */ "",
+
718  /* 8 */ "",
+
719  /* 9 */ "",
+
720  /* 10 */ "",
+
721  /* 11 */ "",
+
722  /* 12 */ "",
+
723  /* 13 */ "",
+
724  /* 14 */ "",
+
725  /* 15 */ "",
+
726  /* 16 */ "",
+
727  /* 17 */ "",
+
728  /* 18 */ "",
+
729  /* 19 */ "",
+
730  /* 20 */ "",
+
731  /* 21 */ "",
+
732  /* 22 */ "",
+
733  /* 23 */ "",
+
734  /* 24 */ "",
+
735  /* 25 */ "",
+
736  /* 26 */ "",
+
737  /* 27 */ "",
+
738  /* 28 */ "",
+
739  /* 29 */ "",
+
740  /* 30 */ "",
+
741  /* 31 */ "SYBVOID",
+
742  /* 32 */ "",
+
743  /* 33 */ "",
+
744  /* 34 */ "SYBIMAGE",
+
745  /* 35 */ "SYBTEXT",
+
746  /* 36 */ "SYBUNIQUE",
+
747  /* 37 */ "SYBVARBINARY",
+
748  /* 38 */ "SYBINTN",
+
749  /* 39 */ "SYBVARCHAR",
+
750  /* 40 */ "SYBMSDATE",
+
751  /* 41 */ "SYBMSTIME",
+
752  /* 42 */ "SYBMSDATETIME2",
+
753  /* 43 */ "SYBMSDATETIMEOFFSET",
+
754  /* 44 */ "",
+
755  /* 45 */ "SYBBINARY",
+
756  /* 46 */ "SYBINTERVAL",
+
757  /* 47 */ "SYBCHAR",
+
758  /* 48 */ "SYBINT1",
+
759  /* 49 */ "SYBDATE",
+
760  /* 50 */ "SYBBIT",
+
761  /* 51 */ "SYBTIME",
+
762  /* 52 */ "SYBINT2",
+
763  /* 53 */ "",
+
764  /* 54 */ "",
+
765  /* 55 */ "",
+
766  /* 56 */ "SYBINT4",
+
767  /* 57 */ "",
+
768  /* 58 */ "SYBDATETIME4",
+
769  /* 59 */ "SYBREAL",
+
770  /* 60 */ "SYBMONEY",
+
771  /* 61 */ "SYBDATETIME",
+
772  /* 62 */ "SYBFLT8",
+
773  /* 63 */ "",
+
774  /* 64 */ "SYBUINT1",
+
775  /* 65 */ "SYBUINT2",
+
776  /* 66 */ "SYBUINT4",
+
777  /* 67 */ "SYBUINT8",
+
778  /* 68 */ "SYBUINTN",
+
779  /* 69 */ "",
+
780  /* 70 */ "",
+
781  /* 71 */ "",
+
782  /* 72 */ "",
+
783  /* 73 */ "",
+
784  /* 74 */ "",
+
785  /* 75 */ "",
+
786  /* 76 */ "",
+
787  /* 77 */ "",
+
788  /* 78 */ "",
+
789  /* 79 */ "",
+
790  /* 80 */ "",
+
791  /* 81 */ "",
+
792  /* 82 */ "",
+
793  /* 83 */ "",
+
794  /* 84 */ "",
+
795  /* 85 */ "",
+
796  /* 86 */ "",
+
797  /* 87 */ "",
+
798  /* 88 */ "",
+
799  /* 89 */ "",
+
800  /* 90 */ "",
+
801  /* 91 */ "",
+
802  /* 92 */ "",
+
803  /* 93 */ "",
+
804  /* 94 */ "",
+
805  /* 95 */ "",
+
806  /* 96 */ "",
+
807  /* 97 */ "",
+
808  /* 98 */ "SYBVARIANT",
+
809  /* 99 */ "SYBNTEXT",
+
810  /* 100 */ "",
+
811  /* 101 */ "",
+
812  /* 102 */ "",
+
813  /* 103 */ "SYBNVARCHAR or SYBSENSITIVITY",
+
814  /* 104 */ "SYBBITN or SYBBOUNDARY",
+
815  /* 105 */ "",
+
816  /* 106 */ "SYBDECIMAL",
+
817  /* 107 */ "",
+
818  /* 108 */ "SYBNUMERIC",
+
819  /* 109 */ "SYBFLTN",
+
820  /* 110 */ "SYBMONEYN",
+
821  /* 111 */ "SYBDATETIMN",
+
822  /* 112 */ "",
+
823  /* 113 */ "",
+
824  /* 114 */ "",
+
825  /* 115 */ "",
+
826  /* 116 */ "",
+
827  /* 117 */ "",
+
828  /* 118 */ "",
+
829  /* 119 */ "",
+
830  /* 120 */ "",
+
831  /* 121 */ "",
+
832  /* 122 */ "SYBMONEY4",
+
833  /* 123 */ "SYBDATEN",
+
834  /* 124 */ "",
+
835  /* 125 */ "",
+
836  /* 126 */ "",
+
837  /* 127 */ "SYBINT8",
+
838  /* 128 */ "",
+
839  /* 129 */ "",
+
840  /* 130 */ "",
+
841  /* 131 */ "",
+
842  /* 132 */ "",
+
843  /* 133 */ "",
+
844  /* 134 */ "",
+
845  /* 135 */ "",
+
846  /* 136 */ "",
+
847  /* 137 */ "",
+
848  /* 138 */ "",
+
849  /* 139 */ "",
+
850  /* 140 */ "",
+
851  /* 141 */ "",
+
852  /* 142 */ "",
+
853  /* 143 */ "",
+
854  /* 144 */ "",
+
855  /* 145 */ "",
+
856  /* 146 */ "",
+
857  /* 147 */ "SYBTIMEN",
+
858  /* 148 */ "",
+
859  /* 149 */ "",
+
860  /* 150 */ "",
+
861  /* 151 */ "",
+
862  /* 152 */ "",
+
863  /* 153 */ "",
+
864  /* 154 */ "",
+
865  /* 155 */ "",
+
866  /* 156 */ "",
+
867  /* 157 */ "",
+
868  /* 158 */ "",
+
869  /* 159 */ "",
+
870  /* 160 */ "",
+
871  /* 161 */ "",
+
872  /* 162 */ "",
+
873  /* 163 */ "SYBXML",
+
874  /* 164 */ "",
+
875  /* 165 */ "XSYBVARBINARY",
+
876  /* 166 */ "",
+
877  /* 167 */ "XSYBVARCHAR",
+
878  /* 168 */ "",
+
879  /* 169 */ "",
+
880  /* 170 */ "",
+
881  /* 171 */ "",
+
882  /* 172 */ "",
+
883  /* 173 */ "XSYBBINARY",
+
884  /* 174 */ "SYBUNITEXT",
+
885  /* 175 */ "XSYBCHAR or SYBLONGCHAR",
+
886  /* 176 */ "SYBSINT1",
+
887  /* 177 */ "",
+
888  /* 178 */ "",
+
889  /* 179 */ "",
+
890  /* 180 */ "",
+
891  /* 181 */ "",
+
892  /* 182 */ "",
+
893  /* 183 */ "",
+
894  /* 184 */ "",
+
895  /* 185 */ "",
+
896  /* 186 */ "",
+
897  /* 187 */ "SYB5BIGDATETIME",
+
898  /* 188 */ "SYB5BIGTIME",
+
899  /* 189 */ "",
+
900  /* 190 */ "",
+
901  /* 191 */ "SYB5INT8",
+
902  /* 192 */ "",
+
903  /* 193 */ "",
+
904  /* 194 */ "",
+
905  /* 195 */ "",
+
906  /* 196 */ "",
+
907  /* 197 */ "",
+
908  /* 198 */ "",
+
909  /* 199 */ "",
+
910  /* 200 */ "",
+
911  /* 201 */ "",
+
912  /* 202 */ "",
+
913  /* 203 */ "",
+
914  /* 204 */ "",
+
915  /* 205 */ "",
+
916  /* 206 */ "",
+
917  /* 207 */ "",
+
918  /* 208 */ "",
+
919  /* 209 */ "",
+
920  /* 210 */ "",
+
921  /* 211 */ "",
+
922  /* 212 */ "",
+
923  /* 213 */ "",
+
924  /* 214 */ "",
+
925  /* 215 */ "",
+
926  /* 216 */ "",
+
927  /* 217 */ "",
+
928  /* 218 */ "",
+
929  /* 219 */ "",
+
930  /* 220 */ "",
+
931  /* 221 */ "",
+
932  /* 222 */ "",
+
933  /* 223 */ "",
+
934  /* 224 */ "",
+
935  /* 225 */ "SYBLONGBINARY",
+
936  /* 226 */ "",
+
937  /* 227 */ "",
+
938  /* 228 */ "",
+
939  /* 229 */ "",
+
940  /* 230 */ "",
+
941  /* 231 */ "XSYBNVARCHAR",
+
942  /* 232 */ "",
+
943  /* 233 */ "",
+
944  /* 234 */ "",
+
945  /* 235 */ "",
+
946  /* 236 */ "",
+
947  /* 237 */ "",
+
948  /* 238 */ "",
+
949  /* 239 */ "XSYBNCHAR",
+
950  /* 240 */ "SYBMSUDT",
+
951  /* 241 */ "SYBMSXML",
+
952  /* 242 */ "",
+
953  /* 243 */ "",
+
954  /* 244 */ "",
+
955  /* 245 */ "",
+
956  /* 246 */ "",
+
957  /* 247 */ "",
+
958  /* 248 */ "",
+
959  /* 249 */ "",
+
960  /* 250 */ "",
+
961  /* 251 */ "",
+
962  /* 252 */ "",
+
963  /* 253 */ "",
+
964  /* 254 */ "",
+
965  /* 255 */ "",
+
966 };
+
967 #endif
+
+
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server
Definition: tds.h:1108
+
unsigned pkt_pos
position in pkt
Definition: tds.h:1572
+
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition: tds.h:994
+
unsigned size_len
length size (0, 1, 2 or 4)
Definition: tds.h:1574
+
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition: tds.h:1204
+
@ TDS_IDLE
no data expected
Definition: tds.h:791
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
Current environment as reported by the server.
Definition: tds.h:964
+
Definition: tds.h:1566
+ +
TDSPACKET * send_packet
packet we are preparing to send
Definition: tds.h:1232
+
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1259
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
TDS 7.2 SMP packet header.
Definition: proto.h:361
+
Hold information for any results.
Definition: tds.h:770
+
unsigned char * out_buf
Output buffer.
Definition: tds.h:1186
+
@ TDS_SENDING
client would send data
Definition: tds.h:793
+
Definition: tds.h:1048
+
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
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
@ TDS_WRITING
client is writing data
Definition: tds.h:792
+
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server
Definition: tds.h:1113
+
char * query
saved query, we need to know original query if prepare is impossible
Definition: tds.h:1010
+
Definition: tds.h:1030
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:940
+
int port
port of database service
Definition: tds.h:520
+
TDSPACKET * pkt
first packet frozen
Definition: tds.h:1570
+
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
+
struct tds_cursor * next
next in linked list, keep first
Definition: tds.h:939
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
TDSPARAMINFO * params
query parameters.
Definition: tds.h:1008
+
unsigned data_len
data length, this does not account SMP header, only TDS part
Definition: tds.h:1072
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
Holds informations about a cursor.
Definition: tds.h:938
+
Definition: tds.h:518
+
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
+
unsigned out_pos
current position in out_buf
Definition: tds.h:1194
+
TDSPARAMINFO * res_info
query results
Definition: tds.h:1000
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
Definition: tds.h:1058
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:980
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
TDSSOCKET * tds
which socket we refer to
Definition: tds.h:1568
+
struct tds_dynamic * next
next in linked list, keep first
Definition: tds.h:979
+
DSTR password
password of account login
Definition: tds.h:536
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1192
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
Definition: tds.h:1092
+
DSTR user_name
account for login
Definition: tds.h:535
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
@ TDS_READING
client is reading data
Definition: tds.h:795
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00299_source.html freetds-1.2.3/doc/reference/a00299_source.html --- freetds-1.1.6/doc/reference/a00299_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00299_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,355 @@ + + + + + + + +FreeTDS API: src/tds/tds_willconvert.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
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 
+
7 static 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 
+
266 static 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 };
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00302_source.html freetds-1.2.3/doc/reference/a00302_source.html --- freetds-1.1.6/doc/reference/a00302_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00302_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/tds_types.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tds_types.h
-
-
-
1 /*
2  * This file produced from ./types.pl
3  */
4 
8 int
9 tds_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:
17  case SYBSINT1:
18  case SYBUINT1:
19  return 1;
20  case SYBINT2:
21  case SYBUINT2:
22  return 2;
23  case SYBMSDATE:
24  return 3;
25  case SYBDATE:
26  case SYBDATEN:
27  case SYBDATETIME4:
28  case SYBINT4:
29  case SYBMONEY4:
30  case SYBREAL:
31  case SYBTIME:
32  case SYBTIMEN:
33  case SYBUINT4:
34  return 4;
35  case SYB5BIGDATETIME:
36  case SYB5BIGTIME:
37  case SYB5INT8:
38  case SYBDATETIME:
39  case SYBFLT8:
40  case SYBINT8:
41  case SYBINTERVAL:
42  case SYBMONEY:
43  case SYBUINT8:
44  return 8;
45  case SYBUNIQUE:
46  return 16;
47  default:
48  return 0;
49  }
50 }
51 
56 int
57 tds_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:
65  case SYBINT2:
66  case SYBINT4:
67  case SYBMONEY:
68  case SYBMONEY4:
69  case SYBREAL:
70  case SYBVOID:
71  return 0;
72  case SYBIMAGE:
73  case SYBTEXT:
74  return 4;
75  }
76 
77  if (IS_TDS7_PLUS(conn)) {
78  switch (datatype) {
79  case SYBINT8:
80  return 0;
81  case XSYBBINARY:
82  case XSYBCHAR:
83  case XSYBNCHAR:
84  case XSYBNVARCHAR:
85  case XSYBVARBINARY:
86  case XSYBVARCHAR:
87  return 2;
88  case SYBNTEXT:
89  case SYBVARIANT:
90  return 4;
91  case SYBMSUDT:
92  case SYBMSXML:
93  return 8;
94  }
95  } else if (IS_TDS50(conn)) {
96  switch (datatype) {
97  case SYB5INT8:
98  case SYBDATE:
99  case SYBINTERVAL:
100  case SYBSINT1:
101  case SYBTIME:
102  case SYBUINT1:
103  case SYBUINT2:
104  case SYBUINT4:
105  case SYBUINT8:
106  return 0;
107  case SYBUNITEXT:
108  case SYBXML:
109  return 4;
110  case SYBLONGBINARY:
111  case SYBLONGCHAR:
112  return 5;
113  }
114  }
115  return 1;
116 }
117 
124 TDS_SERVER_TYPE
125 tds_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:
133  switch (colsize) {
134  case 8:
135  return SYBDATETIME;
136  case 4:
137  return SYBDATETIME4;
138  }
139  break;
140  case SYBFLTN:
141  switch (colsize) {
142  case 8:
143  return SYBFLT8;
144  case 4:
145  return SYBREAL;
146  }
147  break;
148  case SYBINTN:
149  switch (colsize) {
150  case 8:
151  return SYBINT8;
152  case 4:
153  return SYBINT4;
154  case 2:
155  return SYBINT2;
156  case 1:
157  return SYBINT1;
158  }
159  break;
160  case SYBMONEYN:
161  switch (colsize) {
162  case 8:
163  return SYBMONEY;
164  case 4:
165  return SYBMONEY4;
166  }
167  break;
168  case SYBTIMEN:
169  return SYBTIME;
170  case SYBUINTN:
171  switch (colsize) {
172  case 8:
173  return SYBUINT8;
174  case 4:
175  return SYBUINT4;
176  case 2:
177  return SYBUINT2;
178  case 1:
179  return SYBUINT1;
180  }
181  break;
182  case SYB5INT8:
183  return SYBINT8;
184  default:
185  break;
186  }
187  return srctype;
188 }
189 
190 const uint16_t tds_type_flags_ms[256] = {
191  /* 0 empty */ TDS_TYPEFLAG_INVALID,
192  /* 1 empty */ TDS_TYPEFLAG_INVALID,
193  /* 2 empty */ TDS_TYPEFLAG_INVALID,
194  /* 3 empty */ TDS_TYPEFLAG_INVALID,
195  /* 4 empty */ TDS_TYPEFLAG_INVALID,
196  /* 5 empty */ TDS_TYPEFLAG_INVALID,
197  /* 6 empty */ TDS_TYPEFLAG_INVALID,
198  /* 7 empty */ TDS_TYPEFLAG_INVALID,
199  /* 8 empty */ TDS_TYPEFLAG_INVALID,
200  /* 9 empty */ TDS_TYPEFLAG_INVALID,
201  /* 10 empty */ TDS_TYPEFLAG_INVALID,
202  /* 11 empty */ TDS_TYPEFLAG_INVALID,
203  /* 12 empty */ TDS_TYPEFLAG_INVALID,
204  /* 13 empty */ TDS_TYPEFLAG_INVALID,
205  /* 14 empty */ TDS_TYPEFLAG_INVALID,
206  /* 15 empty */ TDS_TYPEFLAG_INVALID,
207  /* 16 empty */ TDS_TYPEFLAG_INVALID,
208  /* 17 empty */ TDS_TYPEFLAG_INVALID,
209  /* 18 empty */ TDS_TYPEFLAG_INVALID,
210  /* 19 empty */ TDS_TYPEFLAG_INVALID,
211  /* 20 empty */ TDS_TYPEFLAG_INVALID,
212  /* 21 empty */ TDS_TYPEFLAG_INVALID,
213  /* 22 empty */ TDS_TYPEFLAG_INVALID,
214  /* 23 empty */ TDS_TYPEFLAG_INVALID,
215  /* 24 empty */ TDS_TYPEFLAG_INVALID,
216  /* 25 empty */ TDS_TYPEFLAG_INVALID,
217  /* 26 empty */ TDS_TYPEFLAG_INVALID,
218  /* 27 empty */ TDS_TYPEFLAG_INVALID,
219  /* 28 empty */ TDS_TYPEFLAG_INVALID,
220  /* 29 empty */ TDS_TYPEFLAG_INVALID,
221  /* 30 empty */ TDS_TYPEFLAG_INVALID,
222  /* 31 SYBVOID */ TDS_TYPEFLAG_FIXED,
223  /* 32 empty */ TDS_TYPEFLAG_INVALID,
224  /* 33 empty */ TDS_TYPEFLAG_INVALID,
225  /* 34 SYBIMAGE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
226  /* 35 SYBTEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII,
227  /* 36 SYBUNIQUE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_FIXED,
228  /* 37 SYBVARBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
229  /* 38 SYBINTN */ TDS_TYPEFLAG_NULLABLE,
230  /* 39 SYBVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
231  /* 40 SYBMSDATE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
232  /* 41 SYBMSTIME */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
233  /* 42 SYBMSDATETIME2 */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
234  /* 43 SYBMSDATETIMEOFFSET */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
235  /* 44 empty */ TDS_TYPEFLAG_INVALID,
236  /* 45 SYBBINARY */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
237  /* 46 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
238  /* 47 SYBCHAR */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
239  /* 48 SYBINT1 */ TDS_TYPEFLAG_FIXED,
240  /* 49 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
241  /* 50 SYBBIT */ TDS_TYPEFLAG_FIXED,
242  /* 51 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
243  /* 52 SYBINT2 */ TDS_TYPEFLAG_FIXED,
244  /* 53 empty */ TDS_TYPEFLAG_INVALID,
245  /* 54 empty */ TDS_TYPEFLAG_INVALID,
246  /* 55 empty */ TDS_TYPEFLAG_INVALID,
247  /* 56 SYBINT4 */ TDS_TYPEFLAG_FIXED,
248  /* 57 empty */ TDS_TYPEFLAG_INVALID,
249  /* 58 SYBDATETIME4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
250  /* 59 SYBREAL */ TDS_TYPEFLAG_FIXED,
251  /* 60 SYBMONEY */ TDS_TYPEFLAG_FIXED,
252  /* 61 SYBDATETIME */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
253  /* 62 SYBFLT8 */ TDS_TYPEFLAG_FIXED,
254  /* 63 empty */ TDS_TYPEFLAG_INVALID,
255  /* 64 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
256  /* 65 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
257  /* 66 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
258  /* 67 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
259  /* 68 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE,
260  /* 69 empty */ TDS_TYPEFLAG_INVALID,
261  /* 70 empty */ TDS_TYPEFLAG_INVALID,
262  /* 71 empty */ TDS_TYPEFLAG_INVALID,
263  /* 72 empty */ TDS_TYPEFLAG_INVALID,
264  /* 73 empty */ TDS_TYPEFLAG_INVALID,
265  /* 74 empty */ TDS_TYPEFLAG_INVALID,
266  /* 75 empty */ TDS_TYPEFLAG_INVALID,
267  /* 76 empty */ TDS_TYPEFLAG_INVALID,
268  /* 77 empty */ TDS_TYPEFLAG_INVALID,
269  /* 78 empty */ TDS_TYPEFLAG_INVALID,
270  /* 79 empty */ TDS_TYPEFLAG_INVALID,
271  /* 80 empty */ TDS_TYPEFLAG_INVALID,
272  /* 81 empty */ TDS_TYPEFLAG_INVALID,
273  /* 82 empty */ TDS_TYPEFLAG_INVALID,
274  /* 83 empty */ TDS_TYPEFLAG_INVALID,
275  /* 84 empty */ TDS_TYPEFLAG_INVALID,
276  /* 85 empty */ TDS_TYPEFLAG_INVALID,
277  /* 86 empty */ TDS_TYPEFLAG_INVALID,
278  /* 87 empty */ TDS_TYPEFLAG_INVALID,
279  /* 88 empty */ TDS_TYPEFLAG_INVALID,
280  /* 89 empty */ TDS_TYPEFLAG_INVALID,
281  /* 90 empty */ TDS_TYPEFLAG_INVALID,
282  /* 91 empty */ TDS_TYPEFLAG_INVALID,
283  /* 92 empty */ TDS_TYPEFLAG_INVALID,
284  /* 93 empty */ TDS_TYPEFLAG_INVALID,
285  /* 94 empty */ TDS_TYPEFLAG_INVALID,
286  /* 95 empty */ TDS_TYPEFLAG_INVALID,
287  /* 96 empty */ TDS_TYPEFLAG_INVALID,
288  /* 97 empty */ TDS_TYPEFLAG_INVALID,
289  /* 98 SYBVARIANT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
290  /* 99 SYBNTEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_UNICODE,
291  /* 100 empty */ TDS_TYPEFLAG_INVALID,
292  /* 101 empty */ TDS_TYPEFLAG_INVALID,
293  /* 102 empty */ TDS_TYPEFLAG_INVALID,
294  /* 103 SYBNVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
295  /* 104 SYBBITN */ TDS_TYPEFLAG_NULLABLE,
296  /* 105 empty */ TDS_TYPEFLAG_INVALID,
297  /* 106 SYBDECIMAL */ TDS_TYPEFLAG_NUMERIC,
298  /* 107 empty */ TDS_TYPEFLAG_INVALID,
299  /* 108 SYBNUMERIC */ TDS_TYPEFLAG_NUMERIC,
300  /* 109 SYBFLTN */ TDS_TYPEFLAG_NULLABLE,
301  /* 110 SYBMONEYN */ TDS_TYPEFLAG_NULLABLE,
302  /* 111 SYBDATETIMN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
303  /* 112 empty */ TDS_TYPEFLAG_INVALID,
304  /* 113 empty */ TDS_TYPEFLAG_INVALID,
305  /* 114 empty */ TDS_TYPEFLAG_INVALID,
306  /* 115 empty */ TDS_TYPEFLAG_INVALID,
307  /* 116 empty */ TDS_TYPEFLAG_INVALID,
308  /* 117 empty */ TDS_TYPEFLAG_INVALID,
309  /* 118 empty */ TDS_TYPEFLAG_INVALID,
310  /* 119 empty */ TDS_TYPEFLAG_INVALID,
311  /* 120 empty */ TDS_TYPEFLAG_INVALID,
312  /* 121 empty */ TDS_TYPEFLAG_INVALID,
313  /* 122 SYBMONEY4 */ TDS_TYPEFLAG_FIXED,
314  /* 123 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
315  /* 124 empty */ TDS_TYPEFLAG_INVALID,
316  /* 125 empty */ TDS_TYPEFLAG_INVALID,
317  /* 126 empty */ TDS_TYPEFLAG_INVALID,
318  /* 127 SYBINT8 */ TDS_TYPEFLAG_FIXED,
319  /* 128 empty */ TDS_TYPEFLAG_INVALID,
320  /* 129 empty */ TDS_TYPEFLAG_INVALID,
321  /* 130 empty */ TDS_TYPEFLAG_INVALID,
322  /* 131 empty */ TDS_TYPEFLAG_INVALID,
323  /* 132 empty */ TDS_TYPEFLAG_INVALID,
324  /* 133 empty */ TDS_TYPEFLAG_INVALID,
325  /* 134 empty */ TDS_TYPEFLAG_INVALID,
326  /* 135 empty */ TDS_TYPEFLAG_INVALID,
327  /* 136 empty */ TDS_TYPEFLAG_INVALID,
328  /* 137 empty */ TDS_TYPEFLAG_INVALID,
329  /* 138 empty */ TDS_TYPEFLAG_INVALID,
330  /* 139 empty */ TDS_TYPEFLAG_INVALID,
331  /* 140 empty */ TDS_TYPEFLAG_INVALID,
332  /* 141 empty */ TDS_TYPEFLAG_INVALID,
333  /* 142 empty */ TDS_TYPEFLAG_INVALID,
334  /* 143 empty */ TDS_TYPEFLAG_INVALID,
335  /* 144 empty */ TDS_TYPEFLAG_INVALID,
336  /* 145 empty */ TDS_TYPEFLAG_INVALID,
337  /* 146 empty */ TDS_TYPEFLAG_INVALID,
338  /* 147 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
339  /* 148 empty */ TDS_TYPEFLAG_INVALID,
340  /* 149 empty */ TDS_TYPEFLAG_INVALID,
341  /* 150 empty */ TDS_TYPEFLAG_INVALID,
342  /* 151 empty */ TDS_TYPEFLAG_INVALID,
343  /* 152 empty */ TDS_TYPEFLAG_INVALID,
344  /* 153 empty */ TDS_TYPEFLAG_INVALID,
345  /* 154 empty */ TDS_TYPEFLAG_INVALID,
346  /* 155 empty */ TDS_TYPEFLAG_INVALID,
347  /* 156 empty */ TDS_TYPEFLAG_INVALID,
348  /* 157 empty */ TDS_TYPEFLAG_INVALID,
349  /* 158 empty */ TDS_TYPEFLAG_INVALID,
350  /* 159 empty */ TDS_TYPEFLAG_INVALID,
351  /* 160 empty */ TDS_TYPEFLAG_INVALID,
352  /* 161 empty */ TDS_TYPEFLAG_INVALID,
353  /* 162 empty */ TDS_TYPEFLAG_INVALID,
354  /* 163 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
355  /* 164 empty */ TDS_TYPEFLAG_INVALID,
356  /* 165 XSYBVARBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
357  /* 166 empty */ TDS_TYPEFLAG_INVALID,
358  /* 167 XSYBVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII,
359  /* 168 empty */ TDS_TYPEFLAG_INVALID,
360  /* 169 empty */ TDS_TYPEFLAG_INVALID,
361  /* 170 empty */ TDS_TYPEFLAG_INVALID,
362  /* 171 empty */ TDS_TYPEFLAG_INVALID,
363  /* 172 empty */ TDS_TYPEFLAG_INVALID,
364  /* 173 XSYBBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
365  /* 174 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
366  /* 175 XSYBCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII,
367  /* 176 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
368  /* 177 empty */ TDS_TYPEFLAG_INVALID,
369  /* 178 empty */ TDS_TYPEFLAG_INVALID,
370  /* 179 empty */ TDS_TYPEFLAG_INVALID,
371  /* 180 empty */ TDS_TYPEFLAG_INVALID,
372  /* 181 empty */ TDS_TYPEFLAG_INVALID,
373  /* 182 empty */ TDS_TYPEFLAG_INVALID,
374  /* 183 empty */ TDS_TYPEFLAG_INVALID,
375  /* 184 empty */ TDS_TYPEFLAG_INVALID,
376  /* 185 empty */ TDS_TYPEFLAG_INVALID,
377  /* 186 empty */ TDS_TYPEFLAG_INVALID,
378  /* 187 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
379  /* 188 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
380  /* 189 empty */ TDS_TYPEFLAG_INVALID,
381  /* 190 empty */ TDS_TYPEFLAG_INVALID,
382  /* 191 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
383  /* 192 empty */ TDS_TYPEFLAG_INVALID,
384  /* 193 empty */ TDS_TYPEFLAG_INVALID,
385  /* 194 empty */ TDS_TYPEFLAG_INVALID,
386  /* 195 empty */ TDS_TYPEFLAG_INVALID,
387  /* 196 empty */ TDS_TYPEFLAG_INVALID,
388  /* 197 empty */ TDS_TYPEFLAG_INVALID,
389  /* 198 empty */ TDS_TYPEFLAG_INVALID,
390  /* 199 empty */ TDS_TYPEFLAG_INVALID,
391  /* 200 empty */ TDS_TYPEFLAG_INVALID,
392  /* 201 empty */ TDS_TYPEFLAG_INVALID,
393  /* 202 empty */ TDS_TYPEFLAG_INVALID,
394  /* 203 empty */ TDS_TYPEFLAG_INVALID,
395  /* 204 empty */ TDS_TYPEFLAG_INVALID,
396  /* 205 empty */ TDS_TYPEFLAG_INVALID,
397  /* 206 empty */ TDS_TYPEFLAG_INVALID,
398  /* 207 empty */ TDS_TYPEFLAG_INVALID,
399  /* 208 empty */ TDS_TYPEFLAG_INVALID,
400  /* 209 empty */ TDS_TYPEFLAG_INVALID,
401  /* 210 empty */ TDS_TYPEFLAG_INVALID,
402  /* 211 empty */ TDS_TYPEFLAG_INVALID,
403  /* 212 empty */ TDS_TYPEFLAG_INVALID,
404  /* 213 empty */ TDS_TYPEFLAG_INVALID,
405  /* 214 empty */ TDS_TYPEFLAG_INVALID,
406  /* 215 empty */ TDS_TYPEFLAG_INVALID,
407  /* 216 empty */ TDS_TYPEFLAG_INVALID,
408  /* 217 empty */ TDS_TYPEFLAG_INVALID,
409  /* 218 empty */ TDS_TYPEFLAG_INVALID,
410  /* 219 empty */ TDS_TYPEFLAG_INVALID,
411  /* 220 empty */ TDS_TYPEFLAG_INVALID,
412  /* 221 empty */ TDS_TYPEFLAG_INVALID,
413  /* 222 empty */ TDS_TYPEFLAG_INVALID,
414  /* 223 empty */ TDS_TYPEFLAG_INVALID,
415  /* 224 empty */ TDS_TYPEFLAG_INVALID,
416  /* 225 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
417  /* 226 empty */ TDS_TYPEFLAG_INVALID,
418  /* 227 empty */ TDS_TYPEFLAG_INVALID,
419  /* 228 empty */ TDS_TYPEFLAG_INVALID,
420  /* 229 empty */ TDS_TYPEFLAG_INVALID,
421  /* 230 empty */ TDS_TYPEFLAG_INVALID,
422  /* 231 XSYBNVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_UNICODE,
423  /* 232 empty */ TDS_TYPEFLAG_INVALID,
424  /* 233 empty */ TDS_TYPEFLAG_INVALID,
425  /* 234 empty */ TDS_TYPEFLAG_INVALID,
426  /* 235 empty */ TDS_TYPEFLAG_INVALID,
427  /* 236 empty */ TDS_TYPEFLAG_INVALID,
428  /* 237 empty */ TDS_TYPEFLAG_INVALID,
429  /* 238 empty */ TDS_TYPEFLAG_INVALID,
430  /* 239 XSYBNCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_UNICODE,
431  /* 240 SYBMSUDT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
432  /* 241 SYBMSXML */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
433  /* 242 empty */ TDS_TYPEFLAG_INVALID,
434  /* 243 empty */ TDS_TYPEFLAG_INVALID,
435  /* 244 empty */ TDS_TYPEFLAG_INVALID,
436  /* 245 empty */ TDS_TYPEFLAG_INVALID,
437  /* 246 empty */ TDS_TYPEFLAG_INVALID,
438  /* 247 empty */ TDS_TYPEFLAG_INVALID,
439  /* 248 empty */ TDS_TYPEFLAG_INVALID,
440  /* 249 empty */ TDS_TYPEFLAG_INVALID,
441  /* 250 empty */ TDS_TYPEFLAG_INVALID,
442  /* 251 empty */ TDS_TYPEFLAG_INVALID,
443  /* 252 empty */ TDS_TYPEFLAG_INVALID,
444  /* 253 empty */ TDS_TYPEFLAG_INVALID,
445  /* 254 empty */ TDS_TYPEFLAG_INVALID,
446  /* 255 empty */ TDS_TYPEFLAG_INVALID,
447 };
448 
449 #if 0
450 const uint16_t tds_type_flags_syb[256] = {
451  /* 0 empty */ TDS_TYPEFLAG_INVALID,
452  /* 1 empty */ TDS_TYPEFLAG_INVALID,
453  /* 2 empty */ TDS_TYPEFLAG_INVALID,
454  /* 3 empty */ TDS_TYPEFLAG_INVALID,
455  /* 4 empty */ TDS_TYPEFLAG_INVALID,
456  /* 5 empty */ TDS_TYPEFLAG_INVALID,
457  /* 6 empty */ TDS_TYPEFLAG_INVALID,
458  /* 7 empty */ TDS_TYPEFLAG_INVALID,
459  /* 8 empty */ TDS_TYPEFLAG_INVALID,
460  /* 9 empty */ TDS_TYPEFLAG_INVALID,
461  /* 10 empty */ TDS_TYPEFLAG_INVALID,
462  /* 11 empty */ TDS_TYPEFLAG_INVALID,
463  /* 12 empty */ TDS_TYPEFLAG_INVALID,
464  /* 13 empty */ TDS_TYPEFLAG_INVALID,
465  /* 14 empty */ TDS_TYPEFLAG_INVALID,
466  /* 15 empty */ TDS_TYPEFLAG_INVALID,
467  /* 16 empty */ TDS_TYPEFLAG_INVALID,
468  /* 17 empty */ TDS_TYPEFLAG_INVALID,
469  /* 18 empty */ TDS_TYPEFLAG_INVALID,
470  /* 19 empty */ TDS_TYPEFLAG_INVALID,
471  /* 20 empty */ TDS_TYPEFLAG_INVALID,
472  /* 21 empty */ TDS_TYPEFLAG_INVALID,
473  /* 22 empty */ TDS_TYPEFLAG_INVALID,
474  /* 23 empty */ TDS_TYPEFLAG_INVALID,
475  /* 24 empty */ TDS_TYPEFLAG_INVALID,
476  /* 25 empty */ TDS_TYPEFLAG_INVALID,
477  /* 26 empty */ TDS_TYPEFLAG_INVALID,
478  /* 27 empty */ TDS_TYPEFLAG_INVALID,
479  /* 28 empty */ TDS_TYPEFLAG_INVALID,
480  /* 29 empty */ TDS_TYPEFLAG_INVALID,
481  /* 30 empty */ TDS_TYPEFLAG_INVALID,
482  /* 31 SYBVOID */ TDS_TYPEFLAG_FIXED,
483  /* 32 empty */ TDS_TYPEFLAG_INVALID,
484  /* 33 empty */ TDS_TYPEFLAG_INVALID,
485  /* 34 SYBIMAGE */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
486  /* 35 SYBTEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_COLLATE|TDS_TYPEFLAG_ASCII,
487  /* 36 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_NULLABLE,
488  /* 37 SYBVARBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
489  /* 38 SYBINTN */ TDS_TYPEFLAG_NULLABLE,
490  /* 39 SYBVARCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
491  /* 40 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
492  /* 41 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
493  /* 42 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
494  /* 43 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
495  /* 44 empty */ TDS_TYPEFLAG_INVALID,
496  /* 45 SYBBINARY */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
497  /* 46 SYBINTERVAL */ TDS_TYPEFLAG_FIXED,
498  /* 47 SYBCHAR */ TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
499  /* 48 SYBINT1 */ TDS_TYPEFLAG_FIXED,
500  /* 49 SYBDATE */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
501  /* 50 SYBBIT */ TDS_TYPEFLAG_FIXED,
502  /* 51 SYBTIME */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
503  /* 52 SYBINT2 */ TDS_TYPEFLAG_FIXED,
504  /* 53 empty */ TDS_TYPEFLAG_INVALID,
505  /* 54 empty */ TDS_TYPEFLAG_INVALID,
506  /* 55 empty */ TDS_TYPEFLAG_INVALID,
507  /* 56 SYBINT4 */ TDS_TYPEFLAG_FIXED,
508  /* 57 empty */ TDS_TYPEFLAG_INVALID,
509  /* 58 SYBDATETIME4 */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
510  /* 59 SYBREAL */ TDS_TYPEFLAG_FIXED,
511  /* 60 SYBMONEY */ TDS_TYPEFLAG_FIXED,
512  /* 61 SYBDATETIME */ TDS_TYPEFLAG_FIXED|TDS_TYPEFLAG_DATETIME,
513  /* 62 SYBFLT8 */ TDS_TYPEFLAG_FIXED,
514  /* 63 empty */ TDS_TYPEFLAG_INVALID,
515  /* 64 SYBUINT1 */ TDS_TYPEFLAG_FIXED,
516  /* 65 SYBUINT2 */ TDS_TYPEFLAG_FIXED,
517  /* 66 SYBUINT4 */ TDS_TYPEFLAG_FIXED,
518  /* 67 SYBUINT8 */ TDS_TYPEFLAG_FIXED,
519  /* 68 SYBUINTN */ TDS_TYPEFLAG_NULLABLE,
520  /* 69 empty */ TDS_TYPEFLAG_INVALID,
521  /* 70 empty */ TDS_TYPEFLAG_INVALID,
522  /* 71 empty */ TDS_TYPEFLAG_INVALID,
523  /* 72 empty */ TDS_TYPEFLAG_INVALID,
524  /* 73 empty */ TDS_TYPEFLAG_INVALID,
525  /* 74 empty */ TDS_TYPEFLAG_INVALID,
526  /* 75 empty */ TDS_TYPEFLAG_INVALID,
527  /* 76 empty */ TDS_TYPEFLAG_INVALID,
528  /* 77 empty */ TDS_TYPEFLAG_INVALID,
529  /* 78 empty */ TDS_TYPEFLAG_INVALID,
530  /* 79 empty */ TDS_TYPEFLAG_INVALID,
531  /* 80 empty */ TDS_TYPEFLAG_INVALID,
532  /* 81 empty */ TDS_TYPEFLAG_INVALID,
533  /* 82 empty */ TDS_TYPEFLAG_INVALID,
534  /* 83 empty */ TDS_TYPEFLAG_INVALID,
535  /* 84 empty */ TDS_TYPEFLAG_INVALID,
536  /* 85 empty */ TDS_TYPEFLAG_INVALID,
537  /* 86 empty */ TDS_TYPEFLAG_INVALID,
538  /* 87 empty */ TDS_TYPEFLAG_INVALID,
539  /* 88 empty */ TDS_TYPEFLAG_INVALID,
540  /* 89 empty */ TDS_TYPEFLAG_INVALID,
541  /* 90 empty */ TDS_TYPEFLAG_INVALID,
542  /* 91 empty */ TDS_TYPEFLAG_INVALID,
543  /* 92 empty */ TDS_TYPEFLAG_INVALID,
544  /* 93 empty */ TDS_TYPEFLAG_INVALID,
545  /* 94 empty */ TDS_TYPEFLAG_INVALID,
546  /* 95 empty */ TDS_TYPEFLAG_INVALID,
547  /* 96 empty */ TDS_TYPEFLAG_INVALID,
548  /* 97 empty */ TDS_TYPEFLAG_INVALID,
549  /* 98 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
550  /* 99 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
551  /* 100 empty */ TDS_TYPEFLAG_INVALID,
552  /* 101 empty */ TDS_TYPEFLAG_INVALID,
553  /* 102 empty */ TDS_TYPEFLAG_INVALID,
554  /* 103 SYBSENSITIVITY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
555  /* 104 SYBBOUNDARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
556  /* 105 empty */ TDS_TYPEFLAG_INVALID,
557  /* 106 SYBDECIMAL */ TDS_TYPEFLAG_NUMERIC,
558  /* 107 empty */ TDS_TYPEFLAG_INVALID,
559  /* 108 SYBNUMERIC */ TDS_TYPEFLAG_NUMERIC,
560  /* 109 SYBFLTN */ TDS_TYPEFLAG_NULLABLE,
561  /* 110 SYBMONEYN */ TDS_TYPEFLAG_NULLABLE,
562  /* 111 SYBDATETIMN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
563  /* 112 empty */ TDS_TYPEFLAG_INVALID,
564  /* 113 empty */ TDS_TYPEFLAG_INVALID,
565  /* 114 empty */ TDS_TYPEFLAG_INVALID,
566  /* 115 empty */ TDS_TYPEFLAG_INVALID,
567  /* 116 empty */ TDS_TYPEFLAG_INVALID,
568  /* 117 empty */ TDS_TYPEFLAG_INVALID,
569  /* 118 empty */ TDS_TYPEFLAG_INVALID,
570  /* 119 empty */ TDS_TYPEFLAG_INVALID,
571  /* 120 empty */ TDS_TYPEFLAG_INVALID,
572  /* 121 empty */ TDS_TYPEFLAG_INVALID,
573  /* 122 SYBMONEY4 */ TDS_TYPEFLAG_FIXED,
574  /* 123 SYBDATEN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
575  /* 124 empty */ TDS_TYPEFLAG_INVALID,
576  /* 125 empty */ TDS_TYPEFLAG_INVALID,
577  /* 126 empty */ TDS_TYPEFLAG_INVALID,
578  /* 127 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_FIXED,
579  /* 128 empty */ TDS_TYPEFLAG_INVALID,
580  /* 129 empty */ TDS_TYPEFLAG_INVALID,
581  /* 130 empty */ TDS_TYPEFLAG_INVALID,
582  /* 131 empty */ TDS_TYPEFLAG_INVALID,
583  /* 132 empty */ TDS_TYPEFLAG_INVALID,
584  /* 133 empty */ TDS_TYPEFLAG_INVALID,
585  /* 134 empty */ TDS_TYPEFLAG_INVALID,
586  /* 135 empty */ TDS_TYPEFLAG_INVALID,
587  /* 136 empty */ TDS_TYPEFLAG_INVALID,
588  /* 137 empty */ TDS_TYPEFLAG_INVALID,
589  /* 138 empty */ TDS_TYPEFLAG_INVALID,
590  /* 139 empty */ TDS_TYPEFLAG_INVALID,
591  /* 140 empty */ TDS_TYPEFLAG_INVALID,
592  /* 141 empty */ TDS_TYPEFLAG_INVALID,
593  /* 142 empty */ TDS_TYPEFLAG_INVALID,
594  /* 143 empty */ TDS_TYPEFLAG_INVALID,
595  /* 144 empty */ TDS_TYPEFLAG_INVALID,
596  /* 145 empty */ TDS_TYPEFLAG_INVALID,
597  /* 146 empty */ TDS_TYPEFLAG_INVALID,
598  /* 147 SYBTIMEN */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
599  /* 148 empty */ TDS_TYPEFLAG_INVALID,
600  /* 149 empty */ TDS_TYPEFLAG_INVALID,
601  /* 150 empty */ TDS_TYPEFLAG_INVALID,
602  /* 151 empty */ TDS_TYPEFLAG_INVALID,
603  /* 152 empty */ TDS_TYPEFLAG_INVALID,
604  /* 153 empty */ TDS_TYPEFLAG_INVALID,
605  /* 154 empty */ TDS_TYPEFLAG_INVALID,
606  /* 155 empty */ TDS_TYPEFLAG_INVALID,
607  /* 156 empty */ TDS_TYPEFLAG_INVALID,
608  /* 157 empty */ TDS_TYPEFLAG_INVALID,
609  /* 158 empty */ TDS_TYPEFLAG_INVALID,
610  /* 159 empty */ TDS_TYPEFLAG_INVALID,
611  /* 160 empty */ TDS_TYPEFLAG_INVALID,
612  /* 161 empty */ TDS_TYPEFLAG_INVALID,
613  /* 162 empty */ TDS_TYPEFLAG_INVALID,
614  /* 163 SYBXML */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
615  /* 164 empty */ TDS_TYPEFLAG_INVALID,
616  /* 165 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
617  /* 166 empty */ TDS_TYPEFLAG_INVALID,
618  /* 167 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
619  /* 168 empty */ TDS_TYPEFLAG_INVALID,
620  /* 169 empty */ TDS_TYPEFLAG_INVALID,
621  /* 170 empty */ TDS_TYPEFLAG_INVALID,
622  /* 171 empty */ TDS_TYPEFLAG_INVALID,
623  /* 172 empty */ TDS_TYPEFLAG_INVALID,
624  /* 173 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
625  /* 174 SYBUNITEXT */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
626  /* 175 SYBLONGCHAR */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_ASCII,
627  /* 176 SYBSINT1 */ TDS_TYPEFLAG_FIXED,
628  /* 177 empty */ TDS_TYPEFLAG_INVALID,
629  /* 178 empty */ TDS_TYPEFLAG_INVALID,
630  /* 179 empty */ TDS_TYPEFLAG_INVALID,
631  /* 180 empty */ TDS_TYPEFLAG_INVALID,
632  /* 181 empty */ TDS_TYPEFLAG_INVALID,
633  /* 182 empty */ TDS_TYPEFLAG_INVALID,
634  /* 183 empty */ TDS_TYPEFLAG_INVALID,
635  /* 184 empty */ TDS_TYPEFLAG_INVALID,
636  /* 185 empty */ TDS_TYPEFLAG_INVALID,
637  /* 186 empty */ TDS_TYPEFLAG_INVALID,
638  /* 187 SYB5BIGDATETIME */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
639  /* 188 SYB5BIGTIME */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_DATETIME,
640  /* 189 empty */ TDS_TYPEFLAG_INVALID,
641  /* 190 empty */ TDS_TYPEFLAG_INVALID,
642  /* 191 SYB5INT8 */ TDS_TYPEFLAG_FIXED,
643  /* 192 empty */ TDS_TYPEFLAG_INVALID,
644  /* 193 empty */ TDS_TYPEFLAG_INVALID,
645  /* 194 empty */ TDS_TYPEFLAG_INVALID,
646  /* 195 empty */ TDS_TYPEFLAG_INVALID,
647  /* 196 empty */ TDS_TYPEFLAG_INVALID,
648  /* 197 empty */ TDS_TYPEFLAG_INVALID,
649  /* 198 empty */ TDS_TYPEFLAG_INVALID,
650  /* 199 empty */ TDS_TYPEFLAG_INVALID,
651  /* 200 empty */ TDS_TYPEFLAG_INVALID,
652  /* 201 empty */ TDS_TYPEFLAG_INVALID,
653  /* 202 empty */ TDS_TYPEFLAG_INVALID,
654  /* 203 empty */ TDS_TYPEFLAG_INVALID,
655  /* 204 empty */ TDS_TYPEFLAG_INVALID,
656  /* 205 empty */ TDS_TYPEFLAG_INVALID,
657  /* 206 empty */ TDS_TYPEFLAG_INVALID,
658  /* 207 empty */ TDS_TYPEFLAG_INVALID,
659  /* 208 empty */ TDS_TYPEFLAG_INVALID,
660  /* 209 empty */ TDS_TYPEFLAG_INVALID,
661  /* 210 empty */ TDS_TYPEFLAG_INVALID,
662  /* 211 empty */ TDS_TYPEFLAG_INVALID,
663  /* 212 empty */ TDS_TYPEFLAG_INVALID,
664  /* 213 empty */ TDS_TYPEFLAG_INVALID,
665  /* 214 empty */ TDS_TYPEFLAG_INVALID,
666  /* 215 empty */ TDS_TYPEFLAG_INVALID,
667  /* 216 empty */ TDS_TYPEFLAG_INVALID,
668  /* 217 empty */ TDS_TYPEFLAG_INVALID,
669  /* 218 empty */ TDS_TYPEFLAG_INVALID,
670  /* 219 empty */ TDS_TYPEFLAG_INVALID,
671  /* 220 empty */ TDS_TYPEFLAG_INVALID,
672  /* 221 empty */ TDS_TYPEFLAG_INVALID,
673  /* 222 empty */ TDS_TYPEFLAG_INVALID,
674  /* 223 empty */ TDS_TYPEFLAG_INVALID,
675  /* 224 empty */ TDS_TYPEFLAG_INVALID,
676  /* 225 SYBLONGBINARY */ TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_BINARY,
677  /* 226 empty */ TDS_TYPEFLAG_INVALID,
678  /* 227 empty */ TDS_TYPEFLAG_INVALID,
679  /* 228 empty */ TDS_TYPEFLAG_INVALID,
680  /* 229 empty */ TDS_TYPEFLAG_INVALID,
681  /* 230 empty */ TDS_TYPEFLAG_INVALID,
682  /* 231 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
683  /* 232 empty */ TDS_TYPEFLAG_INVALID,
684  /* 233 empty */ TDS_TYPEFLAG_INVALID,
685  /* 234 empty */ TDS_TYPEFLAG_INVALID,
686  /* 235 empty */ TDS_TYPEFLAG_INVALID,
687  /* 236 empty */ TDS_TYPEFLAG_INVALID,
688  /* 237 empty */ TDS_TYPEFLAG_INVALID,
689  /* 238 empty */ TDS_TYPEFLAG_INVALID,
690  /* 239 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
691  /* 240 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE,
692  /* 241 empty */ TDS_TYPEFLAG_INVALID|TDS_TYPEFLAG_NULLABLE|TDS_TYPEFLAG_VARIABLE|TDS_TYPEFLAG_UNICODE,
693  /* 242 empty */ TDS_TYPEFLAG_INVALID,
694  /* 243 empty */ TDS_TYPEFLAG_INVALID,
695  /* 244 empty */ TDS_TYPEFLAG_INVALID,
696  /* 245 empty */ TDS_TYPEFLAG_INVALID,
697  /* 246 empty */ TDS_TYPEFLAG_INVALID,
698  /* 247 empty */ TDS_TYPEFLAG_INVALID,
699  /* 248 empty */ TDS_TYPEFLAG_INVALID,
700  /* 249 empty */ TDS_TYPEFLAG_INVALID,
701  /* 250 empty */ TDS_TYPEFLAG_INVALID,
702  /* 251 empty */ TDS_TYPEFLAG_INVALID,
703  /* 252 empty */ TDS_TYPEFLAG_INVALID,
704  /* 253 empty */ TDS_TYPEFLAG_INVALID,
705  /* 254 empty */ TDS_TYPEFLAG_INVALID,
706  /* 255 empty */ TDS_TYPEFLAG_INVALID,
707 };
708 
709 const char *const tds_type_names[256] = {
710  /* 0 */ "",
711  /* 1 */ "",
712  /* 2 */ "",
713  /* 3 */ "",
714  /* 4 */ "",
715  /* 5 */ "",
716  /* 6 */ "",
717  /* 7 */ "",
718  /* 8 */ "",
719  /* 9 */ "",
720  /* 10 */ "",
721  /* 11 */ "",
722  /* 12 */ "",
723  /* 13 */ "",
724  /* 14 */ "",
725  /* 15 */ "",
726  /* 16 */ "",
727  /* 17 */ "",
728  /* 18 */ "",
729  /* 19 */ "",
730  /* 20 */ "",
731  /* 21 */ "",
732  /* 22 */ "",
733  /* 23 */ "",
734  /* 24 */ "",
735  /* 25 */ "",
736  /* 26 */ "",
737  /* 27 */ "",
738  /* 28 */ "",
739  /* 29 */ "",
740  /* 30 */ "",
741  /* 31 */ "SYBVOID",
742  /* 32 */ "",
743  /* 33 */ "",
744  /* 34 */ "SYBIMAGE",
745  /* 35 */ "SYBTEXT",
746  /* 36 */ "SYBUNIQUE",
747  /* 37 */ "SYBVARBINARY",
748  /* 38 */ "SYBINTN",
749  /* 39 */ "SYBVARCHAR",
750  /* 40 */ "SYBMSDATE",
751  /* 41 */ "SYBMSTIME",
752  /* 42 */ "SYBMSDATETIME2",
753  /* 43 */ "SYBMSDATETIMEOFFSET",
754  /* 44 */ "",
755  /* 45 */ "SYBBINARY",
756  /* 46 */ "SYBINTERVAL",
757  /* 47 */ "SYBCHAR",
758  /* 48 */ "SYBINT1",
759  /* 49 */ "SYBDATE",
760  /* 50 */ "SYBBIT",
761  /* 51 */ "SYBTIME",
762  /* 52 */ "SYBINT2",
763  /* 53 */ "",
764  /* 54 */ "",
765  /* 55 */ "",
766  /* 56 */ "SYBINT4",
767  /* 57 */ "",
768  /* 58 */ "SYBDATETIME4",
769  /* 59 */ "SYBREAL",
770  /* 60 */ "SYBMONEY",
771  /* 61 */ "SYBDATETIME",
772  /* 62 */ "SYBFLT8",
773  /* 63 */ "",
774  /* 64 */ "SYBUINT1",
775  /* 65 */ "SYBUINT2",
776  /* 66 */ "SYBUINT4",
777  /* 67 */ "SYBUINT8",
778  /* 68 */ "SYBUINTN",
779  /* 69 */ "",
780  /* 70 */ "",
781  /* 71 */ "",
782  /* 72 */ "",
783  /* 73 */ "",
784  /* 74 */ "",
785  /* 75 */ "",
786  /* 76 */ "",
787  /* 77 */ "",
788  /* 78 */ "",
789  /* 79 */ "",
790  /* 80 */ "",
791  /* 81 */ "",
792  /* 82 */ "",
793  /* 83 */ "",
794  /* 84 */ "",
795  /* 85 */ "",
796  /* 86 */ "",
797  /* 87 */ "",
798  /* 88 */ "",
799  /* 89 */ "",
800  /* 90 */ "",
801  /* 91 */ "",
802  /* 92 */ "",
803  /* 93 */ "",
804  /* 94 */ "",
805  /* 95 */ "",
806  /* 96 */ "",
807  /* 97 */ "",
808  /* 98 */ "SYBVARIANT",
809  /* 99 */ "SYBNTEXT",
810  /* 100 */ "",
811  /* 101 */ "",
812  /* 102 */ "",
813  /* 103 */ "SYBNVARCHAR or SYBSENSITIVITY",
814  /* 104 */ "SYBBITN or SYBBOUNDARY",
815  /* 105 */ "",
816  /* 106 */ "SYBDECIMAL",
817  /* 107 */ "",
818  /* 108 */ "SYBNUMERIC",
819  /* 109 */ "SYBFLTN",
820  /* 110 */ "SYBMONEYN",
821  /* 111 */ "SYBDATETIMN",
822  /* 112 */ "",
823  /* 113 */ "",
824  /* 114 */ "",
825  /* 115 */ "",
826  /* 116 */ "",
827  /* 117 */ "",
828  /* 118 */ "",
829  /* 119 */ "",
830  /* 120 */ "",
831  /* 121 */ "",
832  /* 122 */ "SYBMONEY4",
833  /* 123 */ "SYBDATEN",
834  /* 124 */ "",
835  /* 125 */ "",
836  /* 126 */ "",
837  /* 127 */ "SYBINT8",
838  /* 128 */ "",
839  /* 129 */ "",
840  /* 130 */ "",
841  /* 131 */ "",
842  /* 132 */ "",
843  /* 133 */ "",
844  /* 134 */ "",
845  /* 135 */ "",
846  /* 136 */ "",
847  /* 137 */ "",
848  /* 138 */ "",
849  /* 139 */ "",
850  /* 140 */ "",
851  /* 141 */ "",
852  /* 142 */ "",
853  /* 143 */ "",
854  /* 144 */ "",
855  /* 145 */ "",
856  /* 146 */ "",
857  /* 147 */ "SYBTIMEN",
858  /* 148 */ "",
859  /* 149 */ "",
860  /* 150 */ "",
861  /* 151 */ "",
862  /* 152 */ "",
863  /* 153 */ "",
864  /* 154 */ "",
865  /* 155 */ "",
866  /* 156 */ "",
867  /* 157 */ "",
868  /* 158 */ "",
869  /* 159 */ "",
870  /* 160 */ "",
871  /* 161 */ "",
872  /* 162 */ "",
873  /* 163 */ "SYBXML",
874  /* 164 */ "",
875  /* 165 */ "XSYBVARBINARY",
876  /* 166 */ "",
877  /* 167 */ "XSYBVARCHAR",
878  /* 168 */ "",
879  /* 169 */ "",
880  /* 170 */ "",
881  /* 171 */ "",
882  /* 172 */ "",
883  /* 173 */ "XSYBBINARY",
884  /* 174 */ "SYBUNITEXT",
885  /* 175 */ "XSYBCHAR or SYBLONGCHAR",
886  /* 176 */ "SYBSINT1",
887  /* 177 */ "",
888  /* 178 */ "",
889  /* 179 */ "",
890  /* 180 */ "",
891  /* 181 */ "",
892  /* 182 */ "",
893  /* 183 */ "",
894  /* 184 */ "",
895  /* 185 */ "",
896  /* 186 */ "",
897  /* 187 */ "SYB5BIGDATETIME",
898  /* 188 */ "SYB5BIGTIME",
899  /* 189 */ "",
900  /* 190 */ "",
901  /* 191 */ "SYB5INT8",
902  /* 192 */ "",
903  /* 193 */ "",
904  /* 194 */ "",
905  /* 195 */ "",
906  /* 196 */ "",
907  /* 197 */ "",
908  /* 198 */ "",
909  /* 199 */ "",
910  /* 200 */ "",
911  /* 201 */ "",
912  /* 202 */ "",
913  /* 203 */ "",
914  /* 204 */ "",
915  /* 205 */ "",
916  /* 206 */ "",
917  /* 207 */ "",
918  /* 208 */ "",
919  /* 209 */ "",
920  /* 210 */ "",
921  /* 211 */ "",
922  /* 212 */ "",
923  /* 213 */ "",
924  /* 214 */ "",
925  /* 215 */ "",
926  /* 216 */ "",
927  /* 217 */ "",
928  /* 218 */ "",
929  /* 219 */ "",
930  /* 220 */ "",
931  /* 221 */ "",
932  /* 222 */ "",
933  /* 223 */ "",
934  /* 224 */ "",
935  /* 225 */ "SYBLONGBINARY",
936  /* 226 */ "",
937  /* 227 */ "",
938  /* 228 */ "",
939  /* 229 */ "",
940  /* 230 */ "",
941  /* 231 */ "XSYBNVARCHAR",
942  /* 232 */ "",
943  /* 233 */ "",
944  /* 234 */ "",
945  /* 235 */ "",
946  /* 236 */ "",
947  /* 237 */ "",
948  /* 238 */ "",
949  /* 239 */ "XSYBNCHAR",
950  /* 240 */ "SYBMSUDT",
951  /* 241 */ "SYBMSXML",
952  /* 242 */ "",
953  /* 243 */ "",
954  /* 244 */ "",
955  /* 245 */ "",
956  /* 246 */ "",
957  /* 247 */ "",
958  /* 248 */ "",
959  /* 249 */ "",
960  /* 250 */ "",
961  /* 251 */ "",
962  /* 252 */ "",
963  /* 253 */ "",
964  /* 254 */ "",
965  /* 255 */ "",
966 };
967 #endif
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
-
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
-
Definition: tds.h:1069
-
int tds_get_varint_size(TDSCONNECTION *conn, int datatype)
tds_get_varint_size() returns the size of a variable length integer returned in a TDS 7...
Definition: tds_types.h:57
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00305.html freetds-1.2.3/doc/reference/a00305.html --- freetds-1.1.6/doc/reference/a00305.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00305.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,297 @@ + + + + + + + +FreeTDS API: src/tds/token.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
token.c File Reference
+
+
+ +

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

+
#include <config.h>
+#include <assert.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>
+#include "replacements.h"
+
+Include dependency graph for token.c:
+
+
+
+
+
+ + + + +

+Classes

struct  namelist
 Holds list of names. More...
 
+ + + +

+Macros

#define GET_STRING(dest, len_type)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

static void adjust_character_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Adjust column size according to client's encoding. More...
 
int determine_adjusted_size (const TDSICONV *char_conv, int size)
 Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
 
static TDSRET tds5_process_dyn_result2 (TDSSOCKET *tds)
 Process new TDS 5.0 token for describing output parameters. More...
 
static TDSRET tds5_process_optioncmd (TDSSOCKET *tds)
 Process option cmd results. More...
 
static TDSRET tds5_process_result (TDSSOCKET *tds)
 tds5_process_result() is the TDS 5.0 result set processing routine. More...
 
static TDSRET tds5_process_result2 (TDSSOCKET *tds)
 tds5_process_result2() is the new TDS 5.0 result set processing routine. More...
 
static int tds71_read_table_names (TDSSOCKET *tds, int remainder, struct namelist **p_head)
 Reads table names for TDS 7.1+. More...
 
static TDSRET tds7_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Reads data information from wire. More...
 
static TDSRET tds7_process_compute_result (TDSSOCKET *tds)
 tds7_process_compute_result() processes compute result sets for TDS 7/8. More...
 
static TDSRET tds7_process_result (TDSSOCKET *tds)
 tds7_process_result() is the TDS 7.0 result set processing routine. More...
 
static int tds_alloc_get_string (TDSSOCKET *tds, char **string, size_t len)
 Reads a string from wire in a new allocated buffer. More...
 
static void tds_free_namelist (struct namelist *head)
 Frees list of names. More...
 
static TDSRET tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
 Reads data metadata from wire. More...
 
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 More...
 
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
 Finds a dynamic given string id. More...
 
static const char * tds_pr_op (int op)
 Returns string representation for a given operation. More...
 
static TDSRET tds_process_auth (TDSSOCKET *tds)
 Process authentication token. More...
 
TDSRET tds_process_cancel (TDSSOCKET *tds)
 
static TDSRET tds_process_col_fmt (TDSSOCKET *tds)
 tds_process_col_fmt() is the other half of result set processing under TDS 4.2. More...
 
static TDSRET tds_process_col_name (TDSSOCKET *tds)
 tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function More...
 
static TDSRET tds_process_colinfo (TDSSOCKET *tds, char **names, int num_names)
 Reads column information. More...
 
static TDSRET tds_process_compute (TDSSOCKET *tds)
 tds_process_compute() processes compute rows and places them in the row buffer. More...
 
static TDSRET tds_process_compute_names (TDSSOCKET *tds)
 tds_process_compute_names() processes compute result sets. More...
 
static TDSRET tds_process_compute_result (TDSSOCKET *tds)
 tds_process_compute_result() processes compute result sets. More...
 
static TDSRET tds_process_cursor_tokens (TDSSOCKET *tds)
 Reads cursor command results. More...
 
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 More...
 
static TDSRET tds_process_dyn_result (TDSSOCKET *tds)
 Process results from dynamic. More...
 
static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
 tds_process_dynamic() finds the element of the dyns array for the id More...
 
static TDSRET tds_process_end (TDSSOCKET *tds, int marker, int *flags_parm)
 tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens. More...
 
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. More...
 
+static TDSRET tds_process_env_routing (TDSSOCKET *tds)
 
+static TDSRET tds_process_featureextack (TDSSOCKET *tds)
 
static TDSRET tds_process_info (TDSSOCKET *tds, int marker)
 tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine More...
 
TDSRET tds_process_login_tokens (TDSSOCKET *tds)
 tds_process_login_tokens() is called after sending the login packet to the server. More...
 
+static TDSRET tds_process_loginack (TDSSOCKET *tds, TDSRET *login_succeeded)
 
+static TDSRET tds_process_nbcrow (TDSSOCKET *tds)
 tds_process_nbcrow() processes rows and places them in the row buffer.
 
static TDSRET tds_process_param_result (TDSSOCKET *tds, TDSPARAMINFO **pinfo)
 process output parameters of a stored procedure. More...
 
static TDSRET tds_process_param_result_tokens (TDSSOCKET *tds)
 Process parameters from networks. More...
 
static TDSRET tds_process_params_result_token (TDSSOCKET *tds)
 tds_process_params_result_token() processes params on TDS5. More...
 
static void tds_process_pending_closes (TDSSOCKET *tds)
 Attempt to close all deferred closes (dynamics and cursors). More...
 
static TDSRET tds_process_row (TDSSOCKET *tds)
 tds_process_row() processes rows and places them in the row buffer. More...
 
TDSRET tds_process_simple_query (TDSSOCKET *tds)
 Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. More...
 
static TDSRET tds_process_tabname (TDSSOCKET *tds)
 Process list of table from network. More...
 
TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
 process all streams. More...
 
const char * tds_prtype (int type)
 Returns string representation of the given type. More...
 
static int tds_read_namelist (TDSSOCKET *tds, int remainder, struct namelist **p_head, int large)
 Reads list of names (usually table names) More...
 
static const char * tds_token_name (unsigned char marker)
 Returns string representation for a given token type. More...
 
+

Detailed Description

+

Contains all routines to get replies from server.

+

Macro Definition Documentation

+ +

◆ GET_STRING

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define GET_STRING( dest,
 len_type 
)
+
+Value:
do { \
+
unsigned int to_read_size = tds_get_ ## len_type(tds); \
+
char_len += to_read_size; \
+
rc += tds_alloc_get_string(tds, dest, to_read_size); \
+
} while(0)
+
+
+
+
+
static int tds_alloc_get_string(TDSSOCKET *tds, char **string, size_t len)
Reads a string from wire in a new allocated buffer.
Definition: token.c:2523
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00305_source.html freetds-1.2.3/doc/reference/a00305_source.html --- freetds-1.1.6/doc/reference/a00305_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00305_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/tds_willconvert.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
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 
7 static 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 
266 static 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 };
- - - - diff -Nru freetds-1.1.6/doc/reference/a00306.map freetds-1.2.3/doc/reference/a00306.map --- freetds-1.1.6/doc/reference/a00306.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00306.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00306.md5 freetds-1.2.3/doc/reference/a00306.md5 --- freetds-1.1.6/doc/reference/a00306.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00306.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +711968a672d4fb2778da98f717ac3d7d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00306.svg freetds-1.2.3/doc/reference/a00306.svg --- freetds-1.1.6/doc/reference/a00306.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00306.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,550 @@ + + + + + + +src/tds/token.c + + + +Node1 + + +src/tds/token.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +assert.h + + + + + +Node1->Node3 + + + + + +Node4 + + +freetds/tds.h + + + + + +Node1->Node4 + + + + + +Node15 + + +freetds/utils/string.h + + + + + +Node1->Node15 + + + + + +Node18 + + +replacements.h + + + + + +Node1->Node18 + + + + + +Node22 + + +freetds/convert.h + + + + + +Node1->Node22 + + + + + +Node23 + + +freetds/iconv.h + + + + + +Node1->Node23 + + + + + +Node24 + + +freetds/checks.h + + + + + +Node1->Node24 + + + + + +Node25 + + +freetds/bytes.h + + + + + +Node1->Node25 + + + + + +Node26 + + +freetds/alloca.h + + + + + +Node1->Node26 + + + + + +Node27 + + +freetds/encodings.h + + + + + +Node1->Node27 + + + + + +Node5 + + +stdarg.h + + + + + +Node4->Node5 + + + + + +Node6 + + +stdio.h + + + + + +Node4->Node6 + + + + + +Node7 + + +time.h + + + + + +Node4->Node7 + + + + + +Node8 + + +freetds/version.h + + + + + +Node4->Node8 + + + + + +Node9 + + +tds_sysdep_public.h + + + + + +Node4->Node9 + + + + + +Node11 + + +freetds/sysdep_private.h + + + + + +Node4->Node11 + + + + + +Node12 + + +freetds/thread.h + + + + + +Node4->Node12 + + + + + +Node13 + + +freetds/bool.h + + + + + +Node4->Node13 + + + + + +Node14 + + +freetds/macros.h + + + + + +Node4->Node14 + + + + + +Node4->Node15 + + + + + +Node16 + + +freetds/pushvis.h + + + + + +Node4->Node16 + + + + + +Node17 + + +freetds/popvis.h + + + + + +Node4->Node17 + + + + + +Node4->Node18 + + + + + +Node21 + + +freetds/proto.h + + + + + +Node4->Node21 + + + + + +Node7->Node7 + + + + + +Node10 + + +float.h + + + + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node5 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + + + + +Node19 + + +replacements/readpassphrase.h + + + + + +Node18->Node19 + + + + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + + + + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + + + + +Node23->Node16 + + + + + +Node23->Node17 + + + + + +Node24->Node16 + + + + + +Node24->Node17 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00311.html freetds-1.2.3/doc/reference/a00311.html --- freetds-1.1.6/doc/reference/a00311.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00311.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,288 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/token.c File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
token.c File Reference
-
-
- -

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

-
#include <config.h>
-#include <assert.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 "replacements.h"
-
-Include dependency graph for token.c:
-
-
-
-
-
- - - - -

-Classes

struct  namelist
 Holds list of names. More...
 
- - - -

-Macros

#define GET_STRING(dest, len_type)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

static void adjust_character_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Adjust column size according to client's encoding. More...
 
int determine_adjusted_size (const TDSICONV *char_conv, int size)
 Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
 
static TDSRET tds5_process_dyn_result2 (TDSSOCKET *tds)
 Process new TDS 5.0 token for describing output parameters. More...
 
static TDSRET tds5_process_optioncmd (TDSSOCKET *tds)
 Process option cmd results. More...
 
static TDSRET tds5_process_result (TDSSOCKET *tds)
 tds5_process_result() is the TDS 5.0 result set processing routine. More...
 
static TDSRET tds5_process_result2 (TDSSOCKET *tds)
 tds5_process_result2() is the new TDS 5.0 result set processing routine. More...
 
static int tds71_read_table_names (TDSSOCKET *tds, int remainder, struct namelist **p_head)
 Reads table names for TDS 7.1+. More...
 
static TDSRET tds7_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Reads data information from wire. More...
 
static TDSRET tds7_process_compute_result (TDSSOCKET *tds)
 tds7_process_compute_result() processes compute result sets for TDS 7/8. More...
 
static TDSRET tds7_process_result (TDSSOCKET *tds)
 tds7_process_result() is the TDS 7.0 result set processing routine. More...
 
static int tds_alloc_get_string (TDSSOCKET *tds, char **string, size_t len)
 Reads a string from wire in a new allocated buffer. More...
 
static void tds_free_namelist (struct namelist *head)
 Frees list of names. More...
 
static TDSRET tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
 Reads data metadata from wire. More...
 
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 More...
 
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
 Finds a dynamic given string id. More...
 
static const char * tds_pr_op (int op)
 Returns string representation for a given operation. More...
 
static TDSRET tds_process_auth (TDSSOCKET *tds)
 Process authentication token. More...
 
TDSRET tds_process_cancel (TDSSOCKET *tds)
 
static TDSRET tds_process_col_fmt (TDSSOCKET *tds)
 tds_process_col_fmt() is the other half of result set processing under TDS 4.2. More...
 
static TDSRET tds_process_col_name (TDSSOCKET *tds)
 tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function More...
 
static TDSRET tds_process_colinfo (TDSSOCKET *tds, char **names, int num_names)
 Reads column information. More...
 
static TDSRET tds_process_compute (TDSSOCKET *tds)
 tds_process_compute() processes compute rows and places them in the row buffer. More...
 
static TDSRET tds_process_compute_names (TDSSOCKET *tds)
 tds_process_compute_names() processes compute result sets. More...
 
static TDSRET tds_process_compute_result (TDSSOCKET *tds)
 tds_process_compute_result() processes compute result sets. More...
 
static TDSRET tds_process_cursor_tokens (TDSSOCKET *tds)
 Reads cursor command results. More...
 
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 More...
 
static TDSRET tds_process_dyn_result (TDSSOCKET *tds)
 Process results from dynamic. More...
 
static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
 tds_process_dynamic() finds the element of the dyns array for the id More...
 
static TDSRET tds_process_end (TDSSOCKET *tds, int marker, int *flags_parm)
 tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens. More...
 
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. More...
 
-static TDSRET tds_process_env_routing (TDSSOCKET *tds)
 
-static TDSRET tds_process_featureextack (TDSSOCKET *tds)
 
static TDSRET tds_process_info (TDSSOCKET *tds, int marker)
 tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine More...
 
TDSRET tds_process_login_tokens (TDSSOCKET *tds)
 tds_process_login_tokens() is called after sending the login packet to the server. More...
 
-static TDSRET tds_process_loginack (TDSSOCKET *tds, TDSRET *login_succeeded)
 
-static TDSRET tds_process_nbcrow (TDSSOCKET *tds)
 tds_process_nbcrow() processes rows and places them in the row buffer.
 
static TDSRET tds_process_param_result (TDSSOCKET *tds, TDSPARAMINFO **pinfo)
 process output parameters of a stored procedure. More...
 
static TDSRET tds_process_param_result_tokens (TDSSOCKET *tds)
 Process parameters from networks. More...
 
static TDSRET tds_process_params_result_token (TDSSOCKET *tds)
 tds_process_params_result_token() processes params on TDS5. More...
 
static void tds_process_pending_closes (TDSSOCKET *tds)
 Attempt to close all deferred closes (dynamics and cursors). More...
 
static TDSRET tds_process_row (TDSSOCKET *tds)
 tds_process_row() processes rows and places them in the row buffer. More...
 
TDSRET tds_process_simple_query (TDSSOCKET *tds)
 Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. More...
 
static TDSRET tds_process_tabname (TDSSOCKET *tds)
 Process list of table from network. More...
 
TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
 process all streams. More...
 
const char * tds_prtype (int type)
 Returns string representation of the given type. More...
 
static int tds_read_namelist (TDSSOCKET *tds, int remainder, struct namelist **p_head, int large)
 Reads list of names (usually table names) More...
 
static const char * tds_token_name (unsigned char marker)
 Returns string representation for a given token type. More...
 
-

Detailed Description

-

Contains all routines to get replies from server.

-

Macro Definition Documentation

- -

§ GET_STRING

- -
-
- - - - - - - - - - - - - - - - - - -
#define GET_STRING( dest,
 len_type 
)
-
-Value:
do { \
unsigned int to_read_size = tds_get_ ## len_type(tds); \
char_len += to_read_size; \
rc += tds_alloc_get_string(tds, dest, to_read_size); \
} while(0)
static int tds_alloc_get_string(TDSSOCKET *tds, char **string, size_t len)
Reads a string from wire in a new allocated buffer.
Definition: token.c:2523
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00312.map freetds-1.2.3/doc/reference/a00312.map --- freetds-1.1.6/doc/reference/a00312.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00312.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00312.md5 freetds-1.2.3/doc/reference/a00312.md5 --- freetds-1.1.6/doc/reference/a00312.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00312.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -7f82a3eb3408380ac6666a76ced483ed \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00312.svg freetds-1.2.3/doc/reference/a00312.svg --- freetds-1.1.6/doc/reference/a00312.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00312.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,446 +0,0 @@ - - - - - - -src/tds/token.c - - -Node0 - -src/tds/token.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -assert.h - - -Node0->Node2 - - - - -Node3 - - -freetds/tds.h - - - - -Node0->Node3 - - - - -Node14 - - -freetds/utils/string.h - - - - -Node0->Node14 - - - - -Node17 - - -replacements.h - - - - -Node0->Node17 - - - - -Node21 - - -freetds/convert.h - - - - -Node0->Node21 - - - - -Node22 - - -freetds/iconv.h - - - - -Node0->Node22 - - - - -Node23 - - -freetds/checks.h - - - - -Node0->Node23 - - - - -Node24 - - -freetds/bytes.h - - - - -Node0->Node24 - - - - -Node25 - - -freetds/alloca.h - - - - -Node0->Node25 - - - - -Node4 - -stdarg.h - - -Node3->Node4 - - - - -Node5 - -stdio.h - - -Node3->Node5 - - - - -Node6 - - -time.h - - - - -Node3->Node6 - - - - -Node7 - - -freetds/version.h - - - - -Node3->Node7 - - - - -Node8 - - -tds_sysdep_public.h - - - - -Node3->Node8 - - - - -Node10 - - -freetds/sysdep_private.h - - - - -Node3->Node10 - - - - -Node11 - - -freetds/thread.h - - - - -Node3->Node11 - - - - -Node12 - - -freetds/bool.h - - - - -Node3->Node12 - - - - -Node13 - - -freetds/macros.h - - - - -Node3->Node13 - - - - -Node3->Node14 - - - - -Node15 - - -freetds/pushvis.h - - - - -Node3->Node15 - - - - -Node16 - - -freetds/popvis.h - - - - -Node3->Node16 - - - - -Node3->Node17 - - - - -Node20 - - -freetds/proto.h - - - - -Node3->Node20 - - - - -Node6->Node6 - - - - -Node9 - -float.h - - -Node8->Node9 - - - - -Node11->Node8 - - - - -Node14->Node13 - - - - -Node14->Node15 - - - - -Node14->Node16 - - - - -Node17->Node4 - - - - -Node17->Node8 - - - - -Node17->Node10 - - - - -Node17->Node15 - - - - -Node17->Node16 - - - - -Node18 - - -replacements/readpassphrase.h - - - - -Node17->Node18 - - - - -Node19 - - -replacements/poll.h - - - - -Node17->Node19 - - - - -Node18->Node15 - - - - -Node18->Node16 - - - - -Node19->Node1 - - - - -Node19->Node15 - - - - -Node19->Node16 - - - - -Node21->Node15 - - - - -Node21->Node16 - - - - -Node22->Node15 - - - - -Node22->Node16 - - - - -Node23->Node15 - - - - -Node23->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00353_source.html freetds-1.2.3/doc/reference/a00353_source.html --- freetds-1.1.6/doc/reference/a00353_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00353_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -0,0 +1,152 @@ + + + + + + + +FreeTDS API: include/bkpublic.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bkpublic.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 _bkpublic_h_
+
21 #define _bkpublic_h_
+
22 
+
23 static const char rcsid_bkpublic_h[] = "$Id: bkpublic.h,v 1.5 2004-10-28 12:42:11 freddy77 Exp $";
+
24 static 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
+
30 extern "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 
+
40 CS_RETCODE blk_alloc(CS_CONNECTION * connection, CS_INT version, CS_BLKDESC ** blk_pointer);
+
41 CS_RETCODE blk_bind(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * datalen,
+
42  CS_SMALLINT * indicator);
+
43 CS_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);
+
45 CS_RETCODE blk_default(CS_BLKDESC * blkdesc, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
46 CS_RETCODE blk_describe(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt);
+
47 CS_RETCODE blk_done(CS_BLKDESC * blkdesc, CS_INT type, CS_INT * outrow);
+
48 CS_RETCODE blk_drop(CS_BLKDESC * blkdesc);
+
49 CS_RETCODE blk_getrow(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp);
+
50 CS_RETCODE blk_gettext(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp, CS_INT bufsize, CS_INT * outlenp);
+
51 CS_RETCODE blk_init(CS_BLKDESC * blkdesc, CS_INT direction, CS_CHAR * tablename, CS_INT tnamelen);
+
52 CS_RETCODE blk_props(CS_BLKDESC * blkdesc, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
53 CS_RETCODE blk_rowalloc(SRV_PROC * srvproc, CS_BLK_ROW ** row);
+
54 CS_RETCODE blk_rowdrop(SRV_PROC * srvproc, CS_BLK_ROW * row);
+
55 CS_RETCODE blk_rowxfer(CS_BLKDESC * blkdesc);
+
56 CS_RETCODE blk_rowxfer_mult(CS_BLKDESC * blkdesc, CS_INT * row_count);
+
57 CS_RETCODE blk_sendrow(CS_BLKDESC * blkdesc, CS_BLK_ROW * row);
+
58 CS_RETCODE blk_sendtext(CS_BLKDESC * blkdesc, CS_BLK_ROW * row, CS_BYTE * buffer, CS_INT buflen);
+
59 CS_RETCODE blk_srvinit(SRV_PROC * srvproc, CS_BLKDESC * blkdescp);
+
60 CS_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
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00356_source.html freetds-1.2.3/doc/reference/a00356_source.html --- freetds-1.1.6/doc/reference/a00356_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00356_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -0,0 +1,824 @@ + + + + + + + +FreeTDS API: include/config.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
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 one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+
13  systems. This function is required for `alloca.c' support on those systems.
+
14  */
+
15 /* #undef CRAY_STACKSEG_END */
+
16 
+
17 /* Define to 1 if using `alloca.c'. */
+
18 /* #undef C_ALLOCA */
+
19 
+
20 /* Define to enable work in progress code */
+
21 /* #undef ENABLE_DEVELOPING */
+
22 
+
23 /* Define to enable extra checks on code */
+
24 /* #undef ENABLE_EXTRA_CHECKS */
+
25 
+
26 /* Defined if --enable-krb5 used and library detected */
+
27 /* #undef ENABLE_KRB5 */
+
28 
+
29 /* Define to enable MARS support */
+
30 #define ENABLE_ODBC_MARS 1
+
31 
+
32 /* Define to enable ODBC wide string support */
+
33 #define ENABLE_ODBC_WIDE 1
+
34 
+
35 /* Define to 1 if GNU tls use nettle as backend. */
+
36 /* #undef GNUTLS_USE_NETTLE */
+
37 
+
38 /* Define to 1 if you have the `alarm' function. */
+
39 #define HAVE_ALARM 1
+
40 
+
41 /* Define to 1 if you have `alloca', as a function or macro. */
+
42 #define HAVE_ALLOCA 1
+
43 
+
44 /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+
45  */
+
46 /* #undef HAVE_ALLOCA_H */
+
47 
+
48 /* Define to 1 if you have the <arpa/inet.h> header file. */
+
49 #define HAVE_ARPA_INET_H 1
+
50 
+
51 /* Define to 1 if you have the `ASN1_STRING_get0_data' function. */
+
52 #define HAVE_ASN1_STRING_GET0_DATA 1
+
53 
+
54 /* Define to 1 if you have the `asprintf' function. */
+
55 #define HAVE_ASPRINTF 1
+
56 
+
57 /* Define to 1 if you have the `basename' function. */
+
58 #define HAVE_BASENAME 1
+
59 
+
60 /* Define to 1 if you have the `BIO_get_data' function. */
+
61 #define HAVE_BIO_GET_DATA 1
+
62 
+
63 /* Define if you have the clock_gettime function. */
+
64 #define HAVE_CLOCK_GETTIME 1
+
65 
+
66 /* Define to 1 if you have the <com_err.h> header file. */
+
67 /* #undef HAVE_COM_ERR_H */
+
68 
+
69 /* Define to 1 if you have the `daemon' function. */
+
70 #define HAVE_DAEMON 1
+
71 
+
72 /* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
+
73  you don't. */
+
74 /* #undef HAVE_DECL_CYGWIN_CONV_PATH */
+
75 
+
76 /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
+
77  */
+
78 /* #undef HAVE_DECL_TZNAME */
+
79 
+
80 /* Define to 1 if you have the <dirent.h> header file. */
+
81 #define HAVE_DIRENT_H 1
+
82 
+
83 /* Define if you have the GNU dld library. */
+
84 /* #undef HAVE_DLD */
+
85 
+
86 /* Define to 1 if you have the `dlerror' function. */
+
87 #define HAVE_DLERROR 1
+
88 
+
89 /* Define to 1 if you have the <dlfcn.h> header file. */
+
90 #define HAVE_DLFCN_H 1
+
91 
+
92 /* Define if you have the _dyld_func_lookup function. */
+
93 /* #undef HAVE_DYLD */
+
94 
+
95 /* Define to 1 if you have the <errno.h> header file. */
+
96 #define HAVE_ERRNO_H 1
+
97 
+
98 /* Define to 1 if you have the `error_message' function. */
+
99 /* #undef HAVE_ERROR_MESSAGE */
+
100 
+
101 /* Define to 1 if you have the `eventfd' function. */
+
102 /* #undef HAVE_EVENTFD */
+
103 
+
104 /* Define to 1 if you have the <fcntl.h> header file. */
+
105 #define HAVE_FCNTL_H 1
+
106 
+
107 /* Define to 1 if you have the `fork' function. */
+
108 #define HAVE_FORK 1
+
109 
+
110 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+
111 #define HAVE_FSEEKO 1
+
112 
+
113 /* Define to 1 if you have the `fstat' function. */
+
114 #define HAVE_FSTAT 1
+
115 
+
116 /* Define to 1 if your system provides the 5-parameter version of
+
117  gethostbyaddr_r(). */
+
118 /* #undef HAVE_FUNC_GETHOSTBYADDR_R_5 */
+
119 
+
120 /* Define to 1 if your system provides the 7-parameter version of
+
121  gethostbyaddr_r(). */
+
122 #define HAVE_FUNC_GETHOSTBYADDR_R_7 1
+
123 
+
124 /* Define to 1 if your system provides the 8-parameter version of
+
125  gethostbyaddr_r(). */
+
126 /* #undef HAVE_FUNC_GETHOSTBYADDR_R_8 */
+
127 
+
128 /* Define to 1 if your system provides the 3-parameter version of
+
129  gethostbyname_r(). */
+
130 /* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */
+
131 
+
132 /* Define to 1 if your system provides the 5-parameter version of
+
133  gethostbyname_r(). */
+
134 /* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */
+
135 
+
136 /* Define to 1 if your system provides the 6-parameter version of
+
137  gethostbyname_r(). */
+
138 #define HAVE_FUNC_GETHOSTBYNAME_R_6 1
+
139 
+
140 /* Define to 1 if your system provides the 4-parameter version of
+
141  getpwuid_r(). */
+
142 /* #undef HAVE_FUNC_GETPWUID_R_4 */
+
143 
+
144 /* Define to 1 if your system getpwuid_r() have 4 parameters and return struct
+
145  passwd*. */
+
146 /* #undef HAVE_FUNC_GETPWUID_R_4_PW */
+
147 
+
148 /* Define to 1 if your system provides the 5-parameter version of
+
149  getpwuid_r(). */
+
150 #define HAVE_FUNC_GETPWUID_R_5 1
+
151 
+
152 /* Define to 1 if your system provides the 4-parameter version of
+
153  getservbyname_r(). */
+
154 /* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */
+
155 
+
156 /* Define to 1 if your system provides the 5-parameter version of
+
157  getservbyname_r(). */
+
158 /* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */
+
159 
+
160 /* Define to 1 if your system provides the 6-parameter version of
+
161  getservbyname_r(). */
+
162 #define HAVE_FUNC_GETSERVBYNAME_R_6 1
+
163 
+
164 /* Define to 1 if your localtime_r return a int. */
+
165 /* #undef HAVE_FUNC_LOCALTIME_R_INT */
+
166 
+
167 /* Define to 1 if your localtime_r return a struct tm*. */
+
168 #define HAVE_FUNC_LOCALTIME_R_TM 1
+
169 
+
170 /* Define if you have getaddrinfo function */
+
171 #define HAVE_GETADDRINFO 1
+
172 
+
173 /* Define to 1 if you have the `gethostname' function. */
+
174 #define HAVE_GETHOSTNAME 1
+
175 
+
176 /* Define to 1 if you have the `gethrtime' function. */
+
177 /* #undef HAVE_GETHRTIME */
+
178 
+
179 /* Define to 1 if you have the `getipnodebyaddr' function. */
+
180 /* #undef HAVE_GETIPNODEBYADDR */
+
181 
+
182 /* Define to 1 if you have the `getipnodebyname' function. */
+
183 /* #undef HAVE_GETIPNODEBYNAME */
+
184 
+
185 /* Define to 1 if you have the `getopt' function. */
+
186 #define HAVE_GETOPT 1
+
187 
+
188 /* Define to 1 if you have the <getopt.h> header file. */
+
189 #define HAVE_GETOPT_H 1
+
190 
+
191 /* Define if your getopt(3) defines and uses optreset */
+
192 #define HAVE_GETOPT_OPTRESET 1
+
193 
+
194 /* Define to 1 if you have the `getpwuid' function. */
+
195 #define HAVE_GETPWUID 1
+
196 
+
197 /* Define to 1 if you have the `getpwuid_r' function. */
+
198 #define HAVE_GETPWUID_R 1
+
199 
+
200 /* Define to 1 if you have the `gettimeofday' function. */
+
201 #define HAVE_GETTIMEOFDAY 1
+
202 
+
203 /* Define to 1 if you have the `getuid' function. */
+
204 #define HAVE_GETUID 1
+
205 
+
206 /* Define if you have GMP library */
+
207 /* #undef HAVE_GMP */
+
208 
+
209 /* Define to 1 if you have GnuTLS. */
+
210 /* #undef HAVE_GNUTLS */
+
211 
+
212 /* Define to 1 if you have the <gnutls/abstract.h> header file. */
+
213 /* #undef HAVE_GNUTLS_ABSTRACT_H */
+
214 
+
215 /* Define to 1 if you have the `gnutls_certificate_set_verify_function'
+
216  function. */
+
217 /* #undef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION */
+
218 
+
219 /* Define to 1 if you have the `gnutls_record_disable_padding' function. */
+
220 /* #undef HAVE_GNUTLS_RECORD_DISABLE_PADDING */
+
221 
+
222 /* Define to 1 if you have the `gnutls_rnd' function. */
+
223 /* #undef HAVE_GNUTLS_RND */
+
224 
+
225 /* Define if you have the iconv() function and it works. */
+
226 #define HAVE_ICONV 1
+
227 
+
228 /* Define to 1 if you have the `inet_ntoa_r' function. */
+
229 /* #undef HAVE_INET_NTOA_R */
+
230 
+
231 /* Define to 1 if you have the `inet_ntop' function. */
+
232 #define HAVE_INET_NTOP 1
+
233 
+
234 /* Define to 1 if you have the <inttypes.h> header file. */
+
235 #define HAVE_INTTYPES_H 1
+
236 
+
237 /* Define to 1 if you have the <iodbcinst.h> header file. */
+
238 /* #undef HAVE_IODBCINST_H */
+
239 
+
240 /* Define to 1 if you have the <langinfo.h> header file. */
+
241 #define HAVE_LANGINFO_H 1
+
242 
+
243 /* Define if you have the libdl library or equivalent. */
+
244 #define HAVE_LIBDL 1
+
245 
+
246 /* Define if libdlloader will be built on this platform */
+
247 #define HAVE_LIBDLLOADER 1
+
248 
+
249 /* Define to 1 if you have the <libgen.h> header file. */
+
250 #define HAVE_LIBGEN_H 1
+
251 
+
252 /* Define to 1 if you have the <limits.h> header file. */
+
253 #define HAVE_LIMITS_H 1
+
254 
+
255 /* Define to 1 if you have the <localcharset.h> header file. */
+
256 /* #undef HAVE_LOCALCHARSET_H */
+
257 
+
258 /* Define to 1 if you have the `locale_charset' function. */
+
259 /* #undef HAVE_LOCALE_CHARSET */
+
260 
+
261 /* Define to 1 if you have the <locale.h> header file. */
+
262 #define HAVE_LOCALE_H 1
+
263 
+
264 /* Define to 1 if you have the `localtime_r' function. */
+
265 #define HAVE_LOCALTIME_R 1
+
266 
+
267 /* Define to 1 if you have the <malloc.h> header file. */
+
268 #define HAVE_MALLOC_H 1
+
269 
+
270 /* Define to 1 if your system provides the malloc_options variable. */
+
271 /* #undef HAVE_MALLOC_OPTIONS */
+
272 
+
273 /* Define to 1 if you have the <memory.h> header file. */
+
274 #define HAVE_MEMORY_H 1
+
275 
+
276 /* Define to 1 if you have the `nanosleep' function. */
+
277 #define HAVE_NANOSLEEP 1
+
278 
+
279 /* Define to 1 if you have the <netdb.h> header file. */
+
280 #define HAVE_NETDB_H 1
+
281 
+
282 /* Define to 1 if you have the <netinet/in.h> header file. */
+
283 #define HAVE_NETINET_IN_H 1
+
284 
+
285 /* Define to 1 if you have the <netinet/tcp.h> header file. */
+
286 #define HAVE_NETINET_TCP_H 1
+
287 
+
288 /* Define to 1 if nettle is present. */
+
289 /* #undef HAVE_NETTLE */
+
290 
+
291 /* Define to 1 if you have the `nl_langinfo' function. */
+
292 #define HAVE_NL_LANGINFO 1
+
293 
+
294 /* Define if you have the OpenSSL. */
+
295 #define HAVE_OPENSSL 1
+
296 
+
297 /* Define to 1 if you have the <paths.h> header file. */
+
298 #define HAVE_PATHS_H 1
+
299 
+
300 /* Define to 1 if you have the `poll' function. */
+
301 #define HAVE_POLL 1
+
302 
+
303 /* Define to 1 if you have the <poll.h> header file. */
+
304 #define HAVE_POLL_H 1
+
305 
+
306 /* Define if you have POSIX threads libraries and header files. */
+
307 #define HAVE_PTHREAD 1
+
308 
+
309 /* Define to 1 if you have the `pthread_condattr_setclock' function. */
+
310 #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
+
311 
+
312 /* Define to 1 if you have the `pthread_cond_timedwait' function. */
+
313 #define HAVE_PTHREAD_COND_TIMEDWAIT 1
+
314 
+
315 /* Define to 1 if you have the `pthread_cond_timedwait_relative_np' function.
+
316  */
+
317 /* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */
+
318 
+
319 /* Define to 1 if you have the `putenv' function. */
+
320 #define HAVE_PUTENV 1
+
321 
+
322 /* Define to 1 if you have the `readdir_r' function. */
+
323 #define HAVE_READDIR_R 1
+
324 
+
325 /* Define to 1 if you have the GNU Readline library. */
+
326 /* #undef HAVE_READLINE */
+
327 
+
328 /* Define to 1 if you have the `readpassphrase' function. */
+
329 /* #undef HAVE_READPASSPHRASE */
+
330 
+
331 /* Define to 1 if you have rl_inhibit_completion. */
+
332 /* #undef HAVE_RL_INHIBIT_COMPLETION */
+
333 
+
334 /* Define to 1 if you have the `rl_on_new_line' function. */
+
335 /* #undef HAVE_RL_ON_NEW_LINE */
+
336 
+
337 /* Define to 1 if you have the `rl_reset_line_state' function. */
+
338 /* #undef HAVE_RL_RESET_LINE_STATE */
+
339 
+
340 /* Define to 1 if you have the <roken.h> header file. */
+
341 /* #undef HAVE_ROKEN_H */
+
342 
+
343 /* Define to 1 if you have the `RSA_get0_key' function. */
+
344 #define HAVE_RSA_GET0_KEY 1
+
345 
+
346 /* Define to 1 if you have the `setenv' function. */
+
347 #define HAVE_SETENV 1
+
348 
+
349 /* Define to 1 if you have the `setitimer' function. */
+
350 #define HAVE_SETITIMER 1
+
351 
+
352 /* Define to 1 if you have the `setrlimit' function. */
+
353 #define HAVE_SETRLIMIT 1
+
354 
+
355 /* Define if you have the shl_load function. */
+
356 /* #undef HAVE_SHL_LOAD */
+
357 
+
358 /* Define to 1 if you have the <signal.h> header file. */
+
359 #define HAVE_SIGNAL_H 1
+
360 
+
361 /* Define to 1 if you have the `socketpair' function. */
+
362 #define HAVE_SOCKETPAIR 1
+
363 
+
364 /* Define to 1 if you have the SQLGetPrivateProfileString function. */
+
365 /* #undef HAVE_SQLGETPRIVATEPROFILESTRING */
+
366 
+
367 /* Define if sqltypes.h define SQLLEN */
+
368 /* #undef HAVE_SQLLEN */
+
369 
+
370 /* Define to 1 if the system has the type `SQLROWOFFSET'. */
+
371 /* #undef HAVE_SQLROWOFFSET */
+
372 
+
373 /* Define to 1 if the system has the type `SQLROWSETSIZE'. */
+
374 /* #undef HAVE_SQLROWSETSIZE */
+
375 
+
376 /* Define to 1 if the system has the type `SQLSETPOSIROW'. */
+
377 /* #undef HAVE_SQLSETPOSIROW */
+
378 
+
379 /* Define to 1 if you have the <sql.h> header file. */
+
380 /* #undef HAVE_SQL_H */
+
381 
+
382 /* Defined if not --disable-sspi and SSPI detected */
+
383 /* #undef HAVE_SSPI */
+
384 
+
385 /* Define to 1 if you have the <stdbool.h> header file. */
+
386 #define HAVE_STDBOOL_H 1
+
387 
+
388 /* Define to 1 if you have the <stddef.h> header file. */
+
389 #define HAVE_STDDEF_H 1
+
390 
+
391 /* Define to 1 if you have the <stdint.h> header file. */
+
392 #define HAVE_STDINT_H 1
+
393 
+
394 /* Define to 1 if you have the <stdlib.h> header file. */
+
395 #define HAVE_STDLIB_H 1
+
396 
+
397 /* Define to 1 if you have the <strings.h> header file. */
+
398 #define HAVE_STRINGS_H 1
+
399 
+
400 /* Define to 1 if you have the <string.h> header file. */
+
401 #define HAVE_STRING_H 1
+
402 
+
403 /* Define to 1 if you have the `strlcat' function. */
+
404 #define HAVE_STRLCAT 1
+
405 
+
406 /* Define to 1 if you have the `strlcpy' function. */
+
407 #define HAVE_STRLCPY 1
+
408 
+
409 /* Define to 1 if you have the `strsep' function. */
+
410 #define HAVE_STRSEP 1
+
411 
+
412 /* Define to 1 if you have the `strtok_r' function. */
+
413 #define HAVE_STRTOK_R 1
+
414 
+
415 /* Define to 1 if you have the `strtok_s' function. */
+
416 /* #undef HAVE_STRTOK_S */
+
417 
+
418 /* Define to 1 if `tm_zone' is a member of `struct tm'. */
+
419 #define HAVE_STRUCT_TM_TM_ZONE 1
+
420 
+
421 /* Define to 1 if `__tm_zone' is a member of `struct tm'. */
+
422 /* #undef HAVE_STRUCT_TM___TM_ZONE */
+
423 
+
424 /* Define to 1 if you have the <sys/eventfd.h> header file. */
+
425 /* #undef HAVE_SYS_EVENTFD_H */
+
426 
+
427 /* Define to 1 if you have the <sys/ioctl.h> header file. */
+
428 #define HAVE_SYS_IOCTL_H 1
+
429 
+
430 /* Define to 1 if you have the <sys/param.h> header file. */
+
431 #define HAVE_SYS_PARAM_H 1
+
432 
+
433 /* Define to 1 if you have the <sys/resource.h> header file. */
+
434 #define HAVE_SYS_RESOURCE_H 1
+
435 
+
436 /* Define to 1 if you have the <sys/select.h> header file. */
+
437 #define HAVE_SYS_SELECT_H 1
+
438 
+
439 /* Define to 1 if you have the <sys/socket.h> header file. */
+
440 #define HAVE_SYS_SOCKET_H 1
+
441 
+
442 /* Define to 1 if you have the <sys/stat.h> header file. */
+
443 #define HAVE_SYS_STAT_H 1
+
444 
+
445 /* Define to 1 if you have the <sys/time.h> header file. */
+
446 #define HAVE_SYS_TIME_H 1
+
447 
+
448 /* Define to 1 if you have the <sys/types.h> header file. */
+
449 #define HAVE_SYS_TYPES_H 1
+
450 
+
451 /* Define to 1 if you have the <sys/wait.h> header file. */
+
452 #define HAVE_SYS_WAIT_H 1
+
453 
+
454 /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
+
455  `HAVE_STRUCT_TM_TM_ZONE' instead. */
+
456 #define HAVE_TM_ZONE 1
+
457 
+
458 /* Define to 1 if you don't have `tm_zone' but do have the external array
+
459  `tzname'. */
+
460 /* #undef HAVE_TZNAME */
+
461 
+
462 /* Define to 1 if you have the <unistd.h> header file. */
+
463 #define HAVE_UNISTD_H 1
+
464 
+
465 /* Define to 1 if you have the `usleep' function. */
+
466 #define HAVE_USLEEP 1
+
467 
+
468 /* Define to 1 if you have the <valgrind/memcheck.h> header file. */
+
469 /* #undef HAVE_VALGRIND_MEMCHECK_H */
+
470 
+
471 /* Define to 1 if you have the `vasprintf' function. */
+
472 #define HAVE_VASPRINTF 1
+
473 
+
474 /* Define to 1 if you have the `vsnprintf' function. */
+
475 #define HAVE_VSNPRINTF 1
+
476 
+
477 /* Define to 1 if you have the <wchar.h> header file. */
+
478 #define HAVE_WCHAR_H 1
+
479 
+
480 /* Define to 1 if you have the <windows.h> header file. */
+
481 /* #undef HAVE_WINDOWS_H */
+
482 
+
483 /* Define to 1 if you have the <winsock2.h> header file. */
+
484 /* #undef HAVE_WINSOCK2_H */
+
485 
+
486 /* Define to 1 if you have the `_fseeki64' function. */
+
487 /* #undef HAVE__FSEEKI64 */
+
488 
+
489 /* Define to 1 if you have the `_ftelli64' function. */
+
490 /* #undef HAVE__FTELLI64 */
+
491 
+
492 /* Define to 1 if you have the `_lock_file' function. */
+
493 /* #undef HAVE__LOCK_FILE */
+
494 
+
495 /* Define to 1 if you have the `_unlock_file' function. */
+
496 /* #undef HAVE__UNLOCK_FILE */
+
497 
+
498 /* Define to 1 if you have the `_vscprintf' function. */
+
499 /* #undef HAVE__VSCPRINTF */
+
500 
+
501 /* Define to 1 if you have the `_vsnprintf' function. */
+
502 #define HAVE__VSNPRINTF 1
+
503 
+
504 /* Define to 1 if you have the `_xpg_accept' function. */
+
505 /* #undef HAVE__XPG_ACCEPT */
+
506 
+
507 /* Define to 1 if you have the `_xpg_getpeername' function. */
+
508 /* #undef HAVE__XPG_GETPEERNAME */
+
509 
+
510 /* Define to 1 if you have the `_xpg_getsockname' function. */
+
511 /* #undef HAVE__XPG_GETSOCKNAME */
+
512 
+
513 /* Define to 1 if you have the `_xpg_getsockopt' function. */
+
514 /* #undef HAVE__XPG_GETSOCKOPT */
+
515 
+
516 /* Define to 1 if you have the `_xpg_recvfrom' function. */
+
517 /* #undef HAVE__XPG_RECVFROM */
+
518 
+
519 /* Define to 1 if you have the `__accept' function. */
+
520 /* #undef HAVE___ACCEPT */
+
521 
+
522 /* Define to 1 if you have the `__getpeername' function. */
+
523 /* #undef HAVE___GETPEERNAME */
+
524 
+
525 /* Define to 1 if you have the `__getsockname' function. */
+
526 /* #undef HAVE___GETSOCKNAME */
+
527 
+
528 /* Define to 1 if you have the `__getsockopt' function. */
+
529 /* #undef HAVE___GETSOCKOPT */
+
530 
+
531 /* Define to 1 if you have the `__recvfrom' function. */
+
532 /* #undef HAVE___RECVFROM */
+
533 
+
534 /* Define as const if the declaration of iconv() needs const. */
+
535 #define ICONV_CONST
+
536 
+
537 /* Define to value of INADDR_NONE if not provided by your system header files.
+
538  */
+
539 /* #undef INADDR_NONE */
+
540 
+
541 /* Define to the sub-directory where libtool stores uninstalled libraries. */
+
542 #define LT_OBJDIR ".libs/"
+
543 
+
544 /* Define to 1 if the BSD-style netdb interface is reentrant. */
+
545 /* #undef NETDB_REENTRANT */
+
546 
+
547 /* Define to 1 if memset(0) sets pointers to NULL. */
+
548 #define NULL_REP_IS_ZERO_BYTES 1
+
549 
+
550 /* Name of package */
+
551 #define PACKAGE "freetds"
+
552 
+
553 /* Define to the address where bug reports for this package should be sent. */
+
554 #define PACKAGE_BUGREPORT ""
+
555 
+
556 /* Define to the full name of this package. */
+
557 #define PACKAGE_NAME "FreeTDS"
+
558 
+
559 /* Define to the full name and version of this package. */
+
560 #define PACKAGE_STRING "FreeTDS 1.2.3"
+
561 
+
562 /* Define to the one symbol short name of this package. */
+
563 #define PACKAGE_TARNAME "freetds"
+
564 
+
565 /* Define to the home page for this package. */
+
566 #define PACKAGE_URL ""
+
567 
+
568 /* Define to the version of this package. */
+
569 #define PACKAGE_VERSION "1.2.3"
+
570 
+
571 /* Define to necessary symbol if this constant uses a non-standard name on
+
572  your system. */
+
573 /* #undef PTHREAD_CREATE_JOINABLE */
+
574 
+
575 /* The size of `char', as computed by sizeof. */
+
576 #define SIZEOF_CHAR 1
+
577 
+
578 /* The size of `double', as computed by sizeof. */
+
579 #define SIZEOF_DOUBLE 8
+
580 
+
581 /* The size of `float', as computed by sizeof. */
+
582 #define SIZEOF_FLOAT 4
+
583 
+
584 /* The size of `int', as computed by sizeof. */
+
585 #define SIZEOF_INT 4
+
586 
+
587 /* The size of `long', as computed by sizeof. */
+
588 #define SIZEOF_LONG 8
+
589 
+
590 /* The size of `long double', as computed by sizeof. */
+
591 #define SIZEOF_LONG_DOUBLE 16
+
592 
+
593 /* The size of `long long', as computed by sizeof. */
+
594 #define SIZEOF_LONG_LONG 8
+
595 
+
596 /* The size of `short', as computed by sizeof. */
+
597 #define SIZEOF_SHORT 2
+
598 
+
599 /* The size of `SQLWCHAR', as computed by sizeof. */
+
600 #define SIZEOF_SQLWCHAR 0
+
601 
+
602 /* The size of `void *', as computed by sizeof. */
+
603 #define SIZEOF_VOID_P 8
+
604 
+
605 /* The size of `wchar_t', as computed by sizeof. */
+
606 #define SIZEOF_WCHAR_T 4
+
607 
+
608 /* The size of `__int64', as computed by sizeof. */
+
609 #define SIZEOF___INT64 0
+
610 
+
611 /* If using the C implementation of alloca, define if you know the
+
612  direction of stack growth for your system; otherwise it will be
+
613  automatically deduced at runtime.
+
614  STACK_DIRECTION > 0 => grows toward higher addresses
+
615  STACK_DIRECTION < 0 => grows toward lower addresses
+
616  STACK_DIRECTION = 0 => direction of growth unknown */
+
617 /* #undef STACK_DIRECTION */
+
618 
+
619 /* Define to 1 if you have the ANSI C header files. */
+
620 #define STDC_HEADERS 1
+
621 
+
622 /* Define to use TDS 5.0 by default */
+
623 /* #undef TDS50 */
+
624 
+
625 /* Define to use TDS 7.1 by default */
+
626 /* #undef TDS71 */
+
627 
+
628 /* Define to use TDS 7.2 by default */
+
629 /* #undef TDS72 */
+
630 
+
631 /* Define to use TDS 7.3 by default */
+
632 /* #undef TDS73 */
+
633 
+
634 /* Define to use TDS 7.4 by default */
+
635 /* #undef TDS74 */
+
636 
+
637 /* Define to 1 if your compiler supports __attribute__((destructor)). */
+
638 #define TDS_ATTRIBUTE_DESTRUCTOR 1
+
639 
+
640 /* define to constant to use for clock_gettime */
+
641 #define TDS_GETTIMEMILLI_CONST CLOCK_MONOTONIC
+
642 
+
643 /* Define if you have pthread with mutex support */
+
644 #define TDS_HAVE_PTHREAD_MUTEX 1
+
645 
+
646 /* Define if stdio support locking */
+
647 #define TDS_HAVE_STDIO_LOCKED 1
+
648 
+
649 /* define to prefix format string used for 64bit integers */
+
650 #define TDS_I64_PREFIX "l"
+
651 
+
652 /* Define if you don't care about thread safety */
+
653 /* #undef TDS_NO_THREADSAFE */
+
654 
+
655 /* Define to 1 if last argument of SQLColAttribute it's SQLLEN * */
+
656 /* #undef TDS_SQLCOLATTRIBUTE_SQLLEN */
+
657 
+
658 /* Define to 1 if SQLParamOptions accept SQLULEN as arguments */
+
659 /* #undef TDS_SQLPARAMOPTIONS_SQLLEN */
+
660 
+
661 /* Defined if --enable-sybase-compat used */
+
662 /* #undef TDS_SYBASE_COMPAT */
+
663 
+
664 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+
665 #define TIME_WITH_SYS_TIME 1
+
666 
+
667 /* Define to 1 if your <sys/time.h> declares `struct tm'. */
+
668 /* #undef TM_IN_SYS_TIME */
+
669 
+
670 /* Enable extensions on AIX 3, Interix. */
+
671 #ifndef _ALL_SOURCE
+
672 # define _ALL_SOURCE 1
+
673 #endif
+
674 /* Enable GNU extensions on systems that have them. */
+
675 #ifndef _GNU_SOURCE
+
676 # define _GNU_SOURCE 1
+
677 #endif
+
678 /* Enable threading extensions on Solaris. */
+
679 #ifndef _POSIX_PTHREAD_SEMANTICS
+
680 # define _POSIX_PTHREAD_SEMANTICS 1
+
681 #endif
+
682 /* Enable extensions on HP NonStop. */
+
683 #ifndef _TANDEM_SOURCE
+
684 # define _TANDEM_SOURCE 1
+
685 #endif
+
686 /* Enable general extensions on Solaris. */
+
687 #ifndef __EXTENSIONS__
+
688 # define __EXTENSIONS__ 1
+
689 #endif
+
690 
+
691 
+
692 /* Version number of package */
+
693 #define VERSION "1.2.3"
+
694 
+
695 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+
696  significant byte first (like Motorola and SPARC, unlike Intel). */
+
697 #if defined AC_APPLE_UNIVERSAL_BUILD
+
698 # if defined __BIG_ENDIAN__
+
699 # define WORDS_BIGENDIAN 1
+
700 # endif
+
701 #else
+
702 # ifndef WORDS_BIGENDIAN
+
703 /* # undef WORDS_BIGENDIAN */
+
704 # endif
+
705 #endif
+
706 
+
707 /* Enable large inode numbers on Mac OS X 10.5. */
+
708 #ifndef _DARWIN_USE_64_BIT_INODE
+
709 # define _DARWIN_USE_64_BIT_INODE 1
+
710 #endif
+
711 
+
712 /* Number of bits in a file offset, on hosts where this is settable. */
+
713 /* #undef _FILE_OFFSET_BITS */
+
714 
+
715 /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+
716 /* #undef _LARGEFILE_SOURCE */
+
717 
+
718 /* Define for large files, on AIX-style hosts. */
+
719 /* #undef _LARGE_FILES */
+
720 
+
721 /* Define to 1 if on MINIX. */
+
722 /* #undef _MINIX */
+
723 
+
724 /* Define to 2 if the system does not provide POSIX.1 features except with
+
725  this defined. */
+
726 /* #undef _POSIX_1_SOURCE */
+
727 
+
728 /* Define to 1 if you need to in order for `stat' and other things to work. */
+
729 /* #undef _POSIX_SOURCE */
+
730 
+
731 /* Define to empty if `const' does not conform to ANSI C. */
+
732 /* #undef const */
+
733 
+
734 /* Define to `__inline__' or `__inline' if that's what the C compiler
+
735  calls it, or to nothing if 'inline' is not supported under any name. */
+
736 #ifndef __cplusplus
+
737 /* #undef inline */
+
738 #endif
+
739 
+
740 /* Define to `unsigned int' if <sys/types.h> does not define. */
+
741 /* #undef size_t */
+
742 
+
743 /* type to use in place of socklen_t if not defined */
+
744 /* #undef socklen_t */
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00359_source.html freetds-1.2.3/doc/reference/a00359_source.html --- freetds-1.1.6/doc/reference/a00359_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00359_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/bkpublic.h Source File +FreeTDS API: include/cspublic.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
bkpublic.h
+
cspublic.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 _bkpublic_h_
21 #define _bkpublic_h_
22 
23 static const char rcsid_bkpublic_h[] = "$Id: bkpublic.h,v 1.5 2004-10-28 12:42:11 freddy77 Exp $";
24 static 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
30 extern "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 
40 CS_RETCODE blk_alloc(CS_CONNECTION * connection, CS_INT version, CS_BLKDESC ** blk_pointer);
41 CS_RETCODE blk_bind(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * datalen,
42  CS_SMALLINT * indicator);
43 CS_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);
45 CS_RETCODE blk_default(CS_BLKDESC * blkdesc, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
46 CS_RETCODE blk_describe(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt);
47 CS_RETCODE blk_done(CS_BLKDESC * blkdesc, CS_INT type, CS_INT * outrow);
48 CS_RETCODE blk_drop(CS_BLKDESC * blkdesc);
49 CS_RETCODE blk_getrow(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp);
50 CS_RETCODE blk_gettext(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp, CS_INT bufsize, CS_INT * outlenp);
51 CS_RETCODE blk_init(CS_BLKDESC * blkdesc, CS_INT direction, CS_CHAR * tablename, CS_INT tnamelen);
52 CS_RETCODE blk_props(CS_BLKDESC * blkdesc, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
53 CS_RETCODE blk_rowalloc(SRV_PROC * srvproc, CS_BLK_ROW ** row);
54 CS_RETCODE blk_rowdrop(SRV_PROC * srvproc, CS_BLK_ROW * row);
55 CS_RETCODE blk_rowxfer(CS_BLKDESC * blkdesc);
56 CS_RETCODE blk_rowxfer_mult(CS_BLKDESC * blkdesc, CS_INT * row_count);
57 CS_RETCODE blk_sendrow(CS_BLKDESC * blkdesc, CS_BLK_ROW * row);
58 CS_RETCODE blk_sendtext(CS_BLKDESC * blkdesc, CS_BLK_ROW * row, CS_BYTE * buffer, CS_INT buflen);
59 CS_RETCODE blk_srvinit(SRV_PROC * srvproc, CS_BLKDESC * blkdescp);
60 CS_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:113
-
Definition: ctlib.h:116
-
Definition: ctlib.h:237
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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 _cspublic_h_
+
21 #define _cspublic_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)
+
28 extern "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 */
+
69 typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (CS_CONTEXT *, CS_CLIENTMSG *);
+
70 typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_CLIENTMSG *);
+
71 typedef 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 
+
82 typedef 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 */
+
177 enum
+
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 */
+
270 enum
+
271 {
+
272  CS_ADD = 1,
+
273  CS_SUB,
+
274  CS_MULT,
+
275  CS_DIV
+
276 };
+
277 
+
278 enum
+
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() */
+
392 enum 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  */
+
409 enum
+
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 */
+
608 enum
+
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 */
+
625 enum
+
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 
+
681 typedef 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 
+
684 typedef 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 
+
698 typedef 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 */
+
708 enum
+
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 };
+
718 enum
+
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 };
+
727 enum
+
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 
+
745 CS_RETCODE cs_convert(CS_CONTEXT * ctx, CS_DATAFMT * srcfmt, CS_VOID * srcdata, CS_DATAFMT * destfmt, CS_VOID * destdata,
+
746  CS_INT * resultlen);
+
747 CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT ** ctx);
+
748 CS_RETCODE cs_ctx_global(CS_INT version, CS_CONTEXT ** ctx);
+
749 CS_RETCODE cs_ctx_drop(CS_CONTEXT * ctx);
+
750 CS_RETCODE cs_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
751 CS_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
+
754 CS_RETCODE cs_dt_crack(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
+
755 CS_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
+
757 CS_RETCODE cs_loc_alloc(CS_CONTEXT * ctx, CS_LOCALE ** locptr);
+
758 CS_RETCODE cs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale);
+
759 CS_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);
+
761 CS_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 
+
764 CS_RETCODE cs_calc(CS_CONTEXT * ctx, CS_INT op, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_VOID * dest);
+
765 CS_RETCODE cs_cmp(CS_CONTEXT * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_INT * result);
+
766 CS_RETCODE cs_conv_mult(CS_CONTEXT * ctx, CS_LOCALE * srcloc, CS_LOCALE * destloc, CS_INT * conv_multiplier);
+
767 CS_RETCODE cs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
+
768 CS_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);
+
770 CS_RETCODE cs_objects(CS_CONTEXT * ctx, CS_INT action, CS_OBJNAME * objname, CS_OBJDATA * objdata);
+
771 CS_RETCODE cs_set_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_INT desttype, CS_CONV_FUNC * func);
+
772 CS_RETCODE cs_setnull(CS_CONTEXT * ctx, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT buflen);
+
773 CS_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);
+
775 CS_RETCODE cs_time(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen, CS_DATEREC * daterec);
+
776 CS_RETCODE cs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result);
+
777 
+
778 const char * cs_prretcode(int retcode);
+
779 
+
780 #ifdef __cplusplus
+
781 #if 0
+
782 {
+
783 #endif
+
784 }
+
785 #endif
+
786 
+
787 #endif
+
Definition: cstypes.h:159
+
Definition: ctlib.h:75
+
Definition: cstypes.h:114
+
Definition: cstypes.h:191
+
Definition: ctlib.h:117
+
Definition: cspublic.h:699
+
Definition: ctlib.h:248
+
Definition: ctlib.h:212
+
Definition: cspublic.h:685
+
Definition: ctlib.h:239
+
Definition: cstypes.h:177
diff -Nru freetds-1.1.6/doc/reference/a00362_source.html freetds-1.2.3/doc/reference/a00362_source.html --- freetds-1.1.6/doc/reference/a00362_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00362_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/config.h Source File +FreeTDS API: include/cstypes.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
config.h
+
cstypes.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 one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
13  systems. This function is required for `alloca.c' support on those systems.
14  */
15 /* #undef CRAY_STACKSEG_END */
16 
17 /* Define to 1 if using `alloca.c'. */
18 /* #undef C_ALLOCA */
19 
20 /* Define to enable work in progress code */
21 /* #undef ENABLE_DEVELOPING */
22 
23 /* Define to enable extra checks on code */
24 /* #undef ENABLE_EXTRA_CHECKS */
25 
26 /* Defined if --enable-krb5 used and library detected */
27 /* #undef ENABLE_KRB5 */
28 
29 /* Define to enable MARS support */
30 #define ENABLE_ODBC_MARS 1
31 
32 /* Define to enable ODBC wide string support */
33 #define ENABLE_ODBC_WIDE 1
34 
35 /* Define to 1 if GNU tls use nettle as backend. */
36 /* #undef GNUTLS_USE_NETTLE */
37 
38 /* Define to 1 if you have the `alarm' function. */
39 #define HAVE_ALARM 1
40 
41 /* Define to 1 if you have `alloca', as a function or macro. */
42 #define HAVE_ALLOCA 1
43 
44 /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
45  */
46 /* #undef HAVE_ALLOCA_H */
47 
48 /* Define to 1 if you have the <arpa/inet.h> header file. */
49 #define HAVE_ARPA_INET_H 1
50 
51 /* Define to 1 if you have the `ASN1_STRING_get0_data' function. */
52 /* #undef HAVE_ASN1_STRING_GET0_DATA */
53 
54 /* Define to 1 if you have the `asprintf' function. */
55 #define HAVE_ASPRINTF 1
56 
57 /* Define to 1 if you have the `basename' function. */
58 #define HAVE_BASENAME 1
59 
60 /* Define to 1 if you have the `BIO_get_data' function. */
61 /* #undef HAVE_BIO_GET_DATA */
62 
63 /* Define if you have the clock_gettime function. */
64 #define HAVE_CLOCK_GETTIME 1
65 
66 /* Define to 1 if you have the <com_err.h> header file. */
67 /* #undef HAVE_COM_ERR_H */
68 
69 /* Define to 1 if you have the `daemon' function. */
70 #define HAVE_DAEMON 1
71 
72 /* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if
73  you don't. */
74 /* #undef HAVE_DECL_CYGWIN_CONV_PATH */
75 
76 /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
77  */
78 /* #undef HAVE_DECL_TZNAME */
79 
80 /* Define to 1 if you have the <dirent.h> header file. */
81 #define HAVE_DIRENT_H 1
82 
83 /* Define if you have the GNU dld library. */
84 /* #undef HAVE_DLD */
85 
86 /* Define to 1 if you have the `dlerror' function. */
87 #define HAVE_DLERROR 1
88 
89 /* Define to 1 if you have the <dlfcn.h> header file. */
90 #define HAVE_DLFCN_H 1
91 
92 /* Define if you have the _dyld_func_lookup function. */
93 /* #undef HAVE_DYLD */
94 
95 /* Define to 1 if you have the <errno.h> header file. */
96 #define HAVE_ERRNO_H 1
97 
98 /* Define to 1 if you have the `error_message' function. */
99 /* #undef HAVE_ERROR_MESSAGE */
100 
101 /* Define to 1 if you have the `eventfd' function. */
102 /* #undef HAVE_EVENTFD */
103 
104 /* Define to 1 if you have the <fcntl.h> header file. */
105 #define HAVE_FCNTL_H 1
106 
107 /* Define to 1 if you have the `fork' function. */
108 #define HAVE_FORK 1
109 
110 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
111 #define HAVE_FSEEKO 1
112 
113 /* Define to 1 if you have the `fstat' function. */
114 #define HAVE_FSTAT 1
115 
116 /* Define to 1 if your system provides the 5-parameter version of
117  gethostbyaddr_r(). */
118 /* #undef HAVE_FUNC_GETHOSTBYADDR_R_5 */
119 
120 /* Define to 1 if your system provides the 7-parameter version of
121  gethostbyaddr_r(). */
122 #define HAVE_FUNC_GETHOSTBYADDR_R_7 1
123 
124 /* Define to 1 if your system provides the 8-parameter version of
125  gethostbyaddr_r(). */
126 /* #undef HAVE_FUNC_GETHOSTBYADDR_R_8 */
127 
128 /* Define to 1 if your system provides the 3-parameter version of
129  gethostbyname_r(). */
130 /* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */
131 
132 /* Define to 1 if your system provides the 5-parameter version of
133  gethostbyname_r(). */
134 /* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */
135 
136 /* Define to 1 if your system provides the 6-parameter version of
137  gethostbyname_r(). */
138 #define HAVE_FUNC_GETHOSTBYNAME_R_6 1
139 
140 /* Define to 1 if your system provides the 4-parameter version of
141  getpwuid_r(). */
142 /* #undef HAVE_FUNC_GETPWUID_R_4 */
143 
144 /* Define to 1 if your system getpwuid_r() have 4 parameters and return struct
145  passwd*. */
146 /* #undef HAVE_FUNC_GETPWUID_R_4_PW */
147 
148 /* Define to 1 if your system provides the 5-parameter version of
149  getpwuid_r(). */
150 #define HAVE_FUNC_GETPWUID_R_5 1
151 
152 /* Define to 1 if your system provides the 4-parameter version of
153  getservbyname_r(). */
154 /* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */
155 
156 /* Define to 1 if your system provides the 5-parameter version of
157  getservbyname_r(). */
158 /* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */
159 
160 /* Define to 1 if your system provides the 6-parameter version of
161  getservbyname_r(). */
162 #define HAVE_FUNC_GETSERVBYNAME_R_6 1
163 
164 /* Define to 1 if your localtime_r return a int. */
165 /* #undef HAVE_FUNC_LOCALTIME_R_INT */
166 
167 /* Define to 1 if your localtime_r return a struct tm*. */
168 #define HAVE_FUNC_LOCALTIME_R_TM 1
169 
170 /* Define if you have getaddrinfo function */
171 #define HAVE_GETADDRINFO 1
172 
173 /* Define to 1 if you have the `gethostname' function. */
174 #define HAVE_GETHOSTNAME 1
175 
176 /* Define to 1 if you have the `gethrtime' function. */
177 /* #undef HAVE_GETHRTIME */
178 
179 /* Define to 1 if you have the `getipnodebyaddr' function. */
180 /* #undef HAVE_GETIPNODEBYADDR */
181 
182 /* Define to 1 if you have the `getipnodebyname' function. */
183 /* #undef HAVE_GETIPNODEBYNAME */
184 
185 /* Define to 1 if you have the `getopt' function. */
186 #define HAVE_GETOPT 1
187 
188 /* Define to 1 if you have the <getopt.h> header file. */
189 #define HAVE_GETOPT_H 1
190 
191 /* Define if your getopt(3) defines and uses optreset */
192 #define HAVE_GETOPT_OPTRESET 1
193 
194 /* Define to 1 if you have the `getpwuid' function. */
195 #define HAVE_GETPWUID 1
196 
197 /* Define to 1 if you have the `getpwuid_r' function. */
198 #define HAVE_GETPWUID_R 1
199 
200 /* Define to 1 if you have the `gettimeofday' function. */
201 #define HAVE_GETTIMEOFDAY 1
202 
203 /* Define to 1 if you have the `getuid' function. */
204 #define HAVE_GETUID 1
205 
206 /* Define if you have GMP library */
207 /* #undef HAVE_GMP */
208 
209 /* Define to 1 if you have GnuTLS. */
210 /* #undef HAVE_GNUTLS */
211 
212 /* Define to 1 if you have the <gnutls/abstract.h> header file. */
213 /* #undef HAVE_GNUTLS_ABSTRACT_H */
214 
215 /* Define to 1 if you have the `gnutls_certificate_set_verify_function'
216  function. */
217 /* #undef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION */
218 
219 /* Define to 1 if you have the `gnutls_record_disable_padding' function. */
220 /* #undef HAVE_GNUTLS_RECORD_DISABLE_PADDING */
221 
222 /* Define to 1 if you have the `gnutls_rnd' function. */
223 /* #undef HAVE_GNUTLS_RND */
224 
225 /* Define if you have the iconv() function and it works. */
226 #define HAVE_ICONV 1
227 
228 /* Define to 1 if you have the `inet_ntoa_r' function. */
229 /* #undef HAVE_INET_NTOA_R */
230 
231 /* Define to 1 if you have the `inet_ntop' function. */
232 #define HAVE_INET_NTOP 1
233 
234 /* Define to 1 if you have the <inttypes.h> header file. */
235 #define HAVE_INTTYPES_H 1
236 
237 /* Define to 1 if you have the <iodbcinst.h> header file. */
238 /* #undef HAVE_IODBCINST_H */
239 
240 /* Define to 1 if you have the <langinfo.h> header file. */
241 #define HAVE_LANGINFO_H 1
242 
243 /* Define if you have the libdl library or equivalent. */
244 #define HAVE_LIBDL 1
245 
246 /* Define if libdlloader will be built on this platform */
247 #define HAVE_LIBDLLOADER 1
248 
249 /* Define to 1 if you have the <libgen.h> header file. */
250 #define HAVE_LIBGEN_H 1
251 
252 /* Define to 1 if you have the <limits.h> header file. */
253 #define HAVE_LIMITS_H 1
254 
255 /* Define to 1 if you have the <localcharset.h> header file. */
256 /* #undef HAVE_LOCALCHARSET_H */
257 
258 /* Define to 1 if you have the `locale_charset' function. */
259 /* #undef HAVE_LOCALE_CHARSET */
260 
261 /* Define to 1 if you have the <locale.h> header file. */
262 #define HAVE_LOCALE_H 1
263 
264 /* Define to 1 if you have the `localtime_r' function. */
265 #define HAVE_LOCALTIME_R 1
266 
267 /* Define to 1 if you have the <malloc.h> header file. */
268 #define HAVE_MALLOC_H 1
269 
270 /* Define to 1 if your system provides the malloc_options variable. */
271 /* #undef HAVE_MALLOC_OPTIONS */
272 
273 /* Define to 1 if you have the <memory.h> header file. */
274 #define HAVE_MEMORY_H 1
275 
276 /* Define to 1 if you have the `nanosleep' function. */
277 #define HAVE_NANOSLEEP 1
278 
279 /* Define to 1 if you have the <netdb.h> header file. */
280 #define HAVE_NETDB_H 1
281 
282 /* Define to 1 if you have the <netinet/in.h> header file. */
283 #define HAVE_NETINET_IN_H 1
284 
285 /* Define to 1 if you have the <netinet/tcp.h> header file. */
286 #define HAVE_NETINET_TCP_H 1
287 
288 /* Define to 1 if nettle is present. */
289 /* #undef HAVE_NETTLE */
290 
291 /* Define to 1 if you have the `nl_langinfo' function. */
292 #define HAVE_NL_LANGINFO 1
293 
294 /* Define if you have the OpenSSL. */
295 #define HAVE_OPENSSL 1
296 
297 /* Define to 1 if you have the <paths.h> header file. */
298 #define HAVE_PATHS_H 1
299 
300 /* Define to 1 if you have the `poll' function. */
301 #define HAVE_POLL 1
302 
303 /* Define to 1 if you have the <poll.h> header file. */
304 #define HAVE_POLL_H 1
305 
306 /* Define if you have POSIX threads libraries and header files. */
307 #define HAVE_PTHREAD 1
308 
309 /* Define to 1 if you have the `pthread_condattr_setclock' function. */
310 #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
311 
312 /* Define to 1 if you have the `pthread_cond_timedwait' function. */
313 #define HAVE_PTHREAD_COND_TIMEDWAIT 1
314 
315 /* Define to 1 if you have the `pthread_cond_timedwait_relative_np' function.
316  */
317 /* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */
318 
319 /* Define to 1 if you have the `putenv' function. */
320 #define HAVE_PUTENV 1
321 
322 /* Define to 1 if you have the `readdir_r' function. */
323 #define HAVE_READDIR_R 1
324 
325 /* Define to 1 if you have the GNU Readline library. */
326 /* #undef HAVE_READLINE */
327 
328 /* Define to 1 if you have the `readpassphrase' function. */
329 /* #undef HAVE_READPASSPHRASE */
330 
331 /* Define to 1 if you have rl_inhibit_completion. */
332 /* #undef HAVE_RL_INHIBIT_COMPLETION */
333 
334 /* Define to 1 if you have the `rl_on_new_line' function. */
335 /* #undef HAVE_RL_ON_NEW_LINE */
336 
337 /* Define to 1 if you have the `rl_reset_line_state' function. */
338 /* #undef HAVE_RL_RESET_LINE_STATE */
339 
340 /* Define to 1 if you have the <roken.h> header file. */
341 /* #undef HAVE_ROKEN_H */
342 
343 /* Define to 1 if you have the `RSA_get0_key' function. */
344 /* #undef HAVE_RSA_GET0_KEY */
345 
346 /* Define to 1 if you have the `setenv' function. */
347 #define HAVE_SETENV 1
348 
349 /* Define to 1 if you have the `setitimer' function. */
350 #define HAVE_SETITIMER 1
351 
352 /* Define to 1 if you have the `setrlimit' function. */
353 #define HAVE_SETRLIMIT 1
354 
355 /* Define if you have the shl_load function. */
356 /* #undef HAVE_SHL_LOAD */
357 
358 /* Define to 1 if you have the <signal.h> header file. */
359 #define HAVE_SIGNAL_H 1
360 
361 /* Define to 1 if you have the `socketpair' function. */
362 #define HAVE_SOCKETPAIR 1
363 
364 /* Define to 1 if you have the SQLGetPrivateProfileString function. */
365 /* #undef HAVE_SQLGETPRIVATEPROFILESTRING */
366 
367 /* Define if sqltypes.h define SQLLEN */
368 /* #undef HAVE_SQLLEN */
369 
370 /* Define to 1 if the system has the type `SQLROWOFFSET'. */
371 /* #undef HAVE_SQLROWOFFSET */
372 
373 /* Define to 1 if the system has the type `SQLROWSETSIZE'. */
374 /* #undef HAVE_SQLROWSETSIZE */
375 
376 /* Define to 1 if the system has the type `SQLSETPOSIROW'. */
377 /* #undef HAVE_SQLSETPOSIROW */
378 
379 /* Define to 1 if you have the <sql.h> header file. */
380 /* #undef HAVE_SQL_H */
381 
382 /* Defined if not --disable-sspi and SSPI detected */
383 /* #undef HAVE_SSPI */
384 
385 /* Define to 1 if you have the <stdbool.h> header file. */
386 #define HAVE_STDBOOL_H 1
387 
388 /* Define to 1 if you have the <stddef.h> header file. */
389 #define HAVE_STDDEF_H 1
390 
391 /* Define to 1 if you have the <stdint.h> header file. */
392 #define HAVE_STDINT_H 1
393 
394 /* Define to 1 if you have the <stdlib.h> header file. */
395 #define HAVE_STDLIB_H 1
396 
397 /* Define to 1 if you have the <strings.h> header file. */
398 #define HAVE_STRINGS_H 1
399 
400 /* Define to 1 if you have the <string.h> header file. */
401 #define HAVE_STRING_H 1
402 
403 /* Define to 1 if you have the `strlcat' function. */
404 #define HAVE_STRLCAT 1
405 
406 /* Define to 1 if you have the `strlcpy' function. */
407 #define HAVE_STRLCPY 1
408 
409 /* Define to 1 if you have the `strsep' function. */
410 #define HAVE_STRSEP 1
411 
412 /* Define to 1 if you have the `strtok_r' function. */
413 #define HAVE_STRTOK_R 1
414 
415 /* Define to 1 if you have the `strtok_s' function. */
416 /* #undef HAVE_STRTOK_S */
417 
418 /* Define to 1 if `tm_zone' is a member of `struct tm'. */
419 #define HAVE_STRUCT_TM_TM_ZONE 1
420 
421 /* Define to 1 if `__tm_zone' is a member of `struct tm'. */
422 /* #undef HAVE_STRUCT_TM___TM_ZONE */
423 
424 /* Define to 1 if you have the <sys/eventfd.h> header file. */
425 /* #undef HAVE_SYS_EVENTFD_H */
426 
427 /* Define to 1 if you have the <sys/ioctl.h> header file. */
428 #define HAVE_SYS_IOCTL_H 1
429 
430 /* Define to 1 if you have the <sys/param.h> header file. */
431 #define HAVE_SYS_PARAM_H 1
432 
433 /* Define to 1 if you have the <sys/resource.h> header file. */
434 #define HAVE_SYS_RESOURCE_H 1
435 
436 /* Define to 1 if you have the <sys/select.h> header file. */
437 #define HAVE_SYS_SELECT_H 1
438 
439 /* Define to 1 if you have the <sys/socket.h> header file. */
440 #define HAVE_SYS_SOCKET_H 1
441 
442 /* Define to 1 if you have the <sys/stat.h> header file. */
443 #define HAVE_SYS_STAT_H 1
444 
445 /* Define to 1 if you have the <sys/time.h> header file. */
446 #define HAVE_SYS_TIME_H 1
447 
448 /* Define to 1 if you have the <sys/types.h> header file. */
449 #define HAVE_SYS_TYPES_H 1
450 
451 /* Define to 1 if you have the <sys/wait.h> header file. */
452 #define HAVE_SYS_WAIT_H 1
453 
454 /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
455  `HAVE_STRUCT_TM_TM_ZONE' instead. */
456 #define HAVE_TM_ZONE 1
457 
458 /* Define to 1 if you don't have `tm_zone' but do have the external array
459  `tzname'. */
460 /* #undef HAVE_TZNAME */
461 
462 /* Define to 1 if you have the <unistd.h> header file. */
463 #define HAVE_UNISTD_H 1
464 
465 /* Define to 1 if you have the `usleep' function. */
466 #define HAVE_USLEEP 1
467 
468 /* Define to 1 if you have the <valgrind/memcheck.h> header file. */
469 /* #undef HAVE_VALGRIND_MEMCHECK_H */
470 
471 /* Define to 1 if you have the `vasprintf' function. */
472 #define HAVE_VASPRINTF 1
473 
474 /* Define to 1 if you have the `vsnprintf' function. */
475 #define HAVE_VSNPRINTF 1
476 
477 /* Define to 1 if you have the <wchar.h> header file. */
478 #define HAVE_WCHAR_H 1
479 
480 /* Define to 1 if you have the <windows.h> header file. */
481 /* #undef HAVE_WINDOWS_H */
482 
483 /* Define to 1 if you have the <winsock2.h> header file. */
484 /* #undef HAVE_WINSOCK2_H */
485 
486 /* Define to 1 if you have the `_fseeki64' function. */
487 /* #undef HAVE__FSEEKI64 */
488 
489 /* Define to 1 if you have the `_ftelli64' function. */
490 /* #undef HAVE__FTELLI64 */
491 
492 /* Define to 1 if you have the `_lock_file' function. */
493 /* #undef HAVE__LOCK_FILE */
494 
495 /* Define to 1 if you have the `_unlock_file' function. */
496 /* #undef HAVE__UNLOCK_FILE */
497 
498 /* Define to 1 if you have the `_vscprintf' function. */
499 /* #undef HAVE__VSCPRINTF */
500 
501 /* Define to 1 if you have the `_vsnprintf' function. */
502 #define HAVE__VSNPRINTF 1
503 
504 /* Define to 1 if you have the `_xpg_accept' function. */
505 /* #undef HAVE__XPG_ACCEPT */
506 
507 /* Define to 1 if you have the `_xpg_getpeername' function. */
508 /* #undef HAVE__XPG_GETPEERNAME */
509 
510 /* Define to 1 if you have the `_xpg_getsockname' function. */
511 /* #undef HAVE__XPG_GETSOCKNAME */
512 
513 /* Define to 1 if you have the `_xpg_getsockopt' function. */
514 /* #undef HAVE__XPG_GETSOCKOPT */
515 
516 /* Define to 1 if you have the `_xpg_recvfrom' function. */
517 /* #undef HAVE__XPG_RECVFROM */
518 
519 /* Define to 1 if you have the `__accept' function. */
520 /* #undef HAVE___ACCEPT */
521 
522 /* Define to 1 if you have the `__getpeername' function. */
523 /* #undef HAVE___GETPEERNAME */
524 
525 /* Define to 1 if you have the `__getsockname' function. */
526 /* #undef HAVE___GETSOCKNAME */
527 
528 /* Define to 1 if you have the `__getsockopt' function. */
529 /* #undef HAVE___GETSOCKOPT */
530 
531 /* Define to 1 if you have the `__recvfrom' function. */
532 /* #undef HAVE___RECVFROM */
533 
534 /* Define as const if the declaration of iconv() needs const. */
535 #define ICONV_CONST const
536 
537 /* Define to value of INADDR_NONE if not provided by your system header files.
538  */
539 /* #undef INADDR_NONE */
540 
541 /* Define to the sub-directory where libtool stores uninstalled libraries. */
542 #define LT_OBJDIR ".libs/"
543 
544 /* Define to 1 if the BSD-style netdb interface is reentrant. */
545 /* #undef NETDB_REENTRANT */
546 
547 /* Define to 1 if memset(0) sets pointers to NULL. */
548 #define NULL_REP_IS_ZERO_BYTES 1
549 
550 /* Name of package */
551 #define PACKAGE "freetds"
552 
553 /* Define to the address where bug reports for this package should be sent. */
554 #define PACKAGE_BUGREPORT ""
555 
556 /* Define to the full name of this package. */
557 #define PACKAGE_NAME "FreeTDS"
558 
559 /* Define to the full name and version of this package. */
560 #define PACKAGE_STRING "FreeTDS 1.1.6"
561 
562 /* Define to the one symbol short name of this package. */
563 #define PACKAGE_TARNAME "freetds"
564 
565 /* Define to the home page for this package. */
566 #define PACKAGE_URL ""
567 
568 /* Define to the version of this package. */
569 #define PACKAGE_VERSION "1.1.6"
570 
571 /* Define to necessary symbol if this constant uses a non-standard name on
572  your system. */
573 /* #undef PTHREAD_CREATE_JOINABLE */
574 
575 /* The size of `char', as computed by sizeof. */
576 #define SIZEOF_CHAR 1
577 
578 /* The size of `double', as computed by sizeof. */
579 #define SIZEOF_DOUBLE 8
580 
581 /* The size of `float', as computed by sizeof. */
582 #define SIZEOF_FLOAT 4
583 
584 /* The size of `int', as computed by sizeof. */
585 #define SIZEOF_INT 4
586 
587 /* The size of `long', as computed by sizeof. */
588 #define SIZEOF_LONG 8
589 
590 /* The size of `long double', as computed by sizeof. */
591 #define SIZEOF_LONG_DOUBLE 16
592 
593 /* The size of `long long', as computed by sizeof. */
594 #define SIZEOF_LONG_LONG 8
595 
596 /* The size of `short', as computed by sizeof. */
597 #define SIZEOF_SHORT 2
598 
599 /* The size of `SQLWCHAR', as computed by sizeof. */
600 #define SIZEOF_SQLWCHAR 0
601 
602 /* The size of `void *', as computed by sizeof. */
603 #define SIZEOF_VOID_P 8
604 
605 /* The size of `wchar_t', as computed by sizeof. */
606 #define SIZEOF_WCHAR_T 4
607 
608 /* The size of `__int64', as computed by sizeof. */
609 #define SIZEOF___INT64 0
610 
611 /* If using the C implementation of alloca, define if you know the
612  direction of stack growth for your system; otherwise it will be
613  automatically deduced at runtime.
614  STACK_DIRECTION > 0 => grows toward higher addresses
615  STACK_DIRECTION < 0 => grows toward lower addresses
616  STACK_DIRECTION = 0 => direction of growth unknown */
617 /* #undef STACK_DIRECTION */
618 
619 /* Define to 1 if you have the ANSI C header files. */
620 #define STDC_HEADERS 1
621 
622 /* Define to use TDS 5.0 by default */
623 /* #undef TDS50 */
624 
625 /* Define to use TDS 7.1 by default */
626 /* #undef TDS71 */
627 
628 /* Define to use TDS 7.2 by default */
629 /* #undef TDS72 */
630 
631 /* Define to use TDS 7.3 by default */
632 /* #undef TDS73 */
633 
634 /* Define to use TDS 7.4 by default */
635 /* #undef TDS74 */
636 
637 /* Define to 1 if your compiler supports __attribute__((destructor)). */
638 #define TDS_ATTRIBUTE_DESTRUCTOR 1
639 
640 /* define to constant to use for clock_gettime */
641 #define TDS_GETTIMEMILLI_CONST CLOCK_MONOTONIC
642 
643 /* Define if you have pthread with mutex support */
644 #define TDS_HAVE_PTHREAD_MUTEX 1
645 
646 /* Define if stdio support locking */
647 #define TDS_HAVE_STDIO_LOCKED 1
648 
649 /* define to prefix format string used for 64bit integers */
650 #define TDS_I64_PREFIX "l"
651 
652 /* Define if you don't care about thread safety */
653 /* #undef TDS_NO_THREADSAFE */
654 
655 /* Define to 1 if last argument of SQLColAttribute it's SQLLEN * */
656 /* #undef TDS_SQLCOLATTRIBUTE_SQLLEN */
657 
658 /* Define to 1 if SQLParamOptions accept SQLULEN as arguments */
659 /* #undef TDS_SQLPARAMOPTIONS_SQLLEN */
660 
661 /* Defined if --enable-sybase-compat used */
662 /* #undef TDS_SYBASE_COMPAT */
663 
664 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
665 #define TIME_WITH_SYS_TIME 1
666 
667 /* Define to 1 if your <sys/time.h> declares `struct tm'. */
668 /* #undef TM_IN_SYS_TIME */
669 
670 /* Enable extensions on AIX 3, Interix. */
671 #ifndef _ALL_SOURCE
672 # define _ALL_SOURCE 1
673 #endif
674 /* Enable GNU extensions on systems that have them. */
675 #ifndef _GNU_SOURCE
676 # define _GNU_SOURCE 1
677 #endif
678 /* Enable threading extensions on Solaris. */
679 #ifndef _POSIX_PTHREAD_SEMANTICS
680 # define _POSIX_PTHREAD_SEMANTICS 1
681 #endif
682 /* Enable extensions on HP NonStop. */
683 #ifndef _TANDEM_SOURCE
684 # define _TANDEM_SOURCE 1
685 #endif
686 /* Enable general extensions on Solaris. */
687 #ifndef __EXTENSIONS__
688 # define __EXTENSIONS__ 1
689 #endif
690 
691 
692 /* Version number of package */
693 #define VERSION "1.1.6"
694 
695 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
696  significant byte first (like Motorola and SPARC, unlike Intel). */
697 #if defined AC_APPLE_UNIVERSAL_BUILD
698 # if defined __BIG_ENDIAN__
699 # define WORDS_BIGENDIAN 1
700 # endif
701 #else
702 # ifndef WORDS_BIGENDIAN
703 /* # undef WORDS_BIGENDIAN */
704 # endif
705 #endif
706 
707 /* Enable large inode numbers on Mac OS X 10.5. */
708 #ifndef _DARWIN_USE_64_BIT_INODE
709 # define _DARWIN_USE_64_BIT_INODE 1
710 #endif
711 
712 /* Number of bits in a file offset, on hosts where this is settable. */
713 /* #undef _FILE_OFFSET_BITS */
714 
715 /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
716 /* #undef _LARGEFILE_SOURCE */
717 
718 /* Define for large files, on AIX-style hosts. */
719 /* #undef _LARGE_FILES */
720 
721 /* Define to 1 if on MINIX. */
722 /* #undef _MINIX */
723 
724 /* Define to 2 if the system does not provide POSIX.1 features except with
725  this defined. */
726 /* #undef _POSIX_1_SOURCE */
727 
728 /* Define to 1 if you need to in order for `stat' and other things to work. */
729 /* #undef _POSIX_SOURCE */
730 
731 /* Define to empty if `const' does not conform to ANSI C. */
732 /* #undef const */
733 
734 /* Define to `__inline__' or `__inline' if that's what the C compiler
735  calls it, or to nothing if 'inline' is not supported under any name. */
736 #ifndef __cplusplus
737 /* #undef inline */
738 #endif
739 
740 /* Define to `unsigned int' if <sys/types.h> does not define. */
741 /* #undef size_t */
742 
743 /* type to use in place of socklen_t if not defined */
744 /* #undef socklen_t */
+
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 _cstypes_h_
+
21 #define _cstypes_h_
+
22 
+
23 #include "tds_sysdep_public.h"
+
24 
+
25 #ifdef __cplusplus
+
26 extern "C"
+
27 {
+
28 #if 0
+
29 }
+
30 #endif
+
31 #endif
+
32 
+
33 typedef int32_t CS_INT;
+
34 typedef uint32_t CS_UINT;
+
35 typedef int64_t CS_BIGINT;
+
36 typedef uint64_t CS_UBIGINT;
+
37 typedef int16_t CS_SMALLINT;
+
38 typedef uint16_t CS_USMALLINT;
+
39 typedef unsigned char CS_TINYINT;
+
40 typedef char CS_CHAR;
+
41 typedef unsigned char CS_BYTE;
+
42 typedef tds_sysdep_real32_type CS_REAL;
+
43 typedef tds_sysdep_real64_type CS_FLOAT;
+
44 typedef int32_t CS_BOOL;
+
45 typedef void CS_VOID;
+
46 typedef unsigned char CS_IMAGE;
+
47 typedef unsigned char CS_TEXT;
+
48 typedef unsigned char CS_LONGBINARY;
+
49 typedef unsigned char CS_LONGCHAR;
+
50 typedef long CS_LONG;
+
51 typedef unsigned char CS_BINARY;
+
52 typedef uint16_t CS_USHORT;
+
53 typedef unsigned char CS_BIT;
+
54 
+
55 typedef 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 
+
68 typedef struct _cs_numeric
+
69 {
+
70  unsigned char precision;
+
71  unsigned char scale;
+
72  unsigned char array[CS_MAX_NUMLEN];
+
73 } CS_NUMERIC;
+
74 
+
75 typedef CS_NUMERIC CS_DECIMAL;
+
76 
+
77 typedef struct _cs_varbinary
+
78 {
+
79  CS_SMALLINT len;
+
80  CS_CHAR array[256];
+
81 } CS_VARBINARY;
+
82 
+
83 typedef struct _cs_varchar
+
84 {
+
85  CS_SMALLINT len; /* length of the string */
+
86  CS_CHAR str[256]; /* string, no NULL terminator */
+
87 } CS_VARCHAR;
+
88 
+
89 typedef struct _cs_config CS_CONFIG;
+
90 typedef struct _cs_context CS_CONTEXT;
+
91 typedef struct _cs_connection CS_CONNECTION;
+
92 typedef struct _cs_locale CS_LOCALE;
+
93 typedef struct _cs_command CS_COMMAND;
+
94 typedef struct _cs_blk_row CS_BLK_ROW;
+
95 
+
96 typedef 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 
+
113 typedef 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 
+
128 typedef struct _cs_money
+
129 {
+
130  CS_INT mnyhigh;
+
131  CS_UINT mnylow;
+
132 } CS_MONEY;
+
133 
+
134 typedef struct _cs_money4
+
135 {
+
136  CS_INT mny4;
+
137 } CS_MONEY4;
+
138 
+
139 typedef CS_INT CS_DATE;
+
140 
+
141 typedef CS_INT CS_TIME;
+
142 
+
143 typedef CS_UBIGINT CS_BIGDATETIME;
+
144 typedef CS_UBIGINT CS_BIGTIME;
+
145 
+
146 typedef struct _cs_datetime
+
147 {
+
148  CS_INT dtdays;
+
149  CS_INT dttime;
+
150 } CS_DATETIME;
+
151 
+
152 typedef struct _cs_datetime4
+
153 {
+
154  CS_USHORT days;
+
155  CS_USHORT minutes;
+
156 } CS_DATETIME4;
+
157 
+
158 typedef 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 
+
174 typedef CS_INT CS_MSGNUM;
+
175 
+
176 typedef 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;
+
188 } CS_CLIENTMSG;
+
189 
+
190 typedef 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;
+
205 } CS_SERVERMSG;
+
206 
+
207 #ifdef __cplusplus
+
208 #if 0
+
209 {
+
210 #endif
+
211 }
+
212 #endif
+
213 
+
214 #endif
+
+
Definition: cstypes.h:129
+
Definition: cstypes.h:84
+
Definition: cstypes.h:159
+
Definition: ctlib.h:75
+
Definition: cstypes.h:69
+
Definition: cstypes.h:114
+
Definition: cstypes.h:191
+
Definition: ctlib.h:117
+
Definition: ctlib.h:248
+
Definition: ctlib.h:212
+
Definition: cstypes.h:135
+
Definition: ctlib.h:45
+
Definition: cstypes.h:78
+
Definition: cstypes.h:153
+
Definition: cstypes.h:97
+
Definition: cstypes.h:177
+
Definition: cstypes.h:147
diff -Nru freetds-1.1.6/doc/reference/a00365_source.html freetds-1.2.3/doc/reference/a00365_source.html --- freetds-1.1.6/doc/reference/a00365_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00365_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/cspublic.h Source File +FreeTDS API: include/ctlib.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
cspublic.h
+
ctlib.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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 _cspublic_h_
21 #define _cspublic_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)
28 extern "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 */
69 typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (CS_CONTEXT *, CS_CLIENTMSG *);
70 typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_CLIENTMSG *);
71 typedef 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 
82 typedef 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 */
177 enum
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_SERVERADDR = 9206,
252 #define CS_SERVERADDR CS_SERVERADDR
253  CS_PORT = 9300,
254 #define CS_PORT CS_PORT
255  CS_CLIENTCHARSET = 9301
256 #define CS_CLIENTCHARSET CS_CLIENTCHARSET
257 };
258 
259 /* Arbitrary precision math operators */
260 enum
261 {
262  CS_ADD = 1,
263  CS_SUB,
264  CS_MULT,
265  CS_DIV
266 };
267 
268 enum
269 {
270 #define CS_TDS_AUTO CS_TDS_AUTO
271  CS_TDS_AUTO = 0,
272  CS_TDS_40 = 7360,
273  CS_TDS_42,
274  CS_TDS_46,
275  CS_TDS_495,
276  CS_TDS_50,
277  CS_TDS_70,
278  CS_TDS_71,
279 #define CS_TDS_71 CS_TDS_71
280  CS_TDS_72,
281 #define CS_TDS_72 CS_TDS_72
282  CS_TDS_73,
283 #define CS_TDS_73 CS_TDS_73
284  CS_TDS_74,
285 #define CS_TDS_74 CS_TDS_74
286 };
287 
288 /* bit mask values used by CS_DATAFMT.status */
289 #define CS_HIDDEN (1 << 0)
290 #define CS_KEY (1 << 1)
291 #define CS_VERSION_KEY (1 << 2)
292 #define CS_NODATA (1 << 3)
293 #define CS_UPDATABLE (1 << 4)
294 #define CS_CANBENULL (1 << 5)
295 #define CS_DESCIN (1 << 6)
296 #define CS_DESCOUT (1 << 7)
297 #define CS_INPUTVALUE (1 << 8)
298 #define CS_UPDATECOL (1 << 9)
299 #define CS_RETURN (1 << 10)
300 #define CS_TIMESTAMP (1 << 13)
301 #define CS_NODEFAULT (1 << 14)
302 #define CS_IDENTITY (1 << 15)
303 
304 /*
305  * DBD::Sybase compares indicator to CS_NULLDATA so this is -1
306  * (the documentation states -1)
307  */
308 #define CS_GOODDATA 0
309 #define CS_NULLDATA (-1)
310 
311 /* CS_CON_STATUS read-only property bit mask values */
312 #define CS_CONSTAT_CONNECTED 0x01
313 #define CS_CONSTAT_DEAD 0x02
314 
315 /*
316  * Code added for CURSOR support
317  * types accepted by ct_cursor
318  */
319 #define CS_CURSOR_DECLARE 700
320 #define CS_CURSOR_OPEN 701
321 #define CS_CURSOR_ROWS 703
322 #define CS_CURSOR_UPDATE 704
323 #define CS_CURSOR_DELETE 705
324 #define CS_CURSOR_CLOSE 706
325 #define CS_CURSOR_DEALLOC 707
326 #define CS_CURSOR_OPTION 725
327 
328 #define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1)
329 #define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2)
330 #define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8)
331 #define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40)
332 
333 
334 #define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0)
335 #define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1)
336 #define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2)
337 #define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4)
338 #define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8)
339 #define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10)
340 #define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20)
341 #define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40)
342 
343 #define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126)
344 #define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127)
345 #define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128)
346 #define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129)
347 
348 /* options accepted by ct_options() */
349 #define CS_OPT_DATEFIRST 5001
350 #define CS_OPT_TEXTSIZE 5002
351 #define CS_OPT_STATS_TIME 5003
352 #define CS_OPT_STATS_IO 5004
353 #define CS_OPT_ROWCOUNT 5005
354 #define CS_OPT_DATEFORMAT 5007
355 #define CS_OPT_ISOLATION 5008
356 #define CS_OPT_AUTHON 5009
357 #define CS_OPT_SHOWPLAN 5013
358 #define CS_OPT_NOEXEC 5014
359 #define CS_OPT_ARITHIGNORE 5015
360 #define CS_OPT_TRUNCIGNORE 5016
361 #define CS_OPT_ARITHABORT 5017
362 #define CS_OPT_PARSEONLY 5018
363 #define CS_OPT_GETDATA 5020
364 #define CS_OPT_NOCOUNT 5021
365 #define CS_OPT_FORCEPLAN 5023
366 #define CS_OPT_FORMATONLY 5024
367 #define CS_OPT_CHAINXACTS 5025
368 #define CS_OPT_CURCLOSEONXACT 5026
369 #define CS_OPT_FIPSFLAG 5027
370 #define CS_OPT_RESTREES 5028
371 #define CS_OPT_IDENTITYON 5029
372 #define CS_OPT_CURREAD 5030
373 #define CS_OPT_CURWRITE 5031
374 #define CS_OPT_IDENTITYOFF 5032
375 #define CS_OPT_AUTHOFF 5033
376 #define CS_OPT_ANSINULL 5034
377 #define CS_OPT_QUOTED_IDENT 5035
378 #define CS_OPT_ANSIPERM 5036
379 #define CS_OPT_STR_RTRUNC 5037
380 
381 /* options accepted by ct_command() */
382 enum ct_command_options
383 {
384  CS_MORE = 16,
385  CS_END = 32,
386  CS_RECOMPILE = 188,
387  CS_NO_RECOMPILE,
388  CS_BULK_INIT,
389  CS_BULK_CONT,
390  CS_BULK_DATA,
391  CS_COLUMN_DATA
392 };
393 
394 
395 /*
396  * bind formats, should be mapped to TDS types
397  * can be a combination of bit
398  */
399 enum
400 {
401  CS_FMT_UNUSED = 0,
402 #define CS_FMT_UNUSED CS_FMT_UNUSED
403  CS_FMT_NULLTERM = 1,
404 #define CS_FMT_NULLTERM CS_FMT_NULLTERM
405  CS_FMT_PADNULL = 2,
406 #define CS_FMT_PADBLANK CS_FMT_PADBLANK
407  CS_FMT_PADBLANK = 4,
408 #define CS_FMT_PADNULL CS_FMT_PADNULL
409  CS_FMT_JUSTIFY_RT = 8
410 #define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT
411 };
412 
413 /* callbacks */
414 #define CS_COMPLETION_CB 1
415 #define CS_SERVERMSG_CB 2
416 #define CS_CLIENTMSG_CB 3
417 #define CS_NOTIF_CB 4
418 #define CS_ENCRYPT_CB 5
419 #define CS_CHALLENGE_CB 6
420 #define CS_DS_LOOKUP_CB 7
421 #define CS_SECSESSION_CB 8
422 #define CS_SIGNAL_CB 100
423 #define CS_MESSAGE_CB 9119
424 
425 /* string types */
426 #define CS_NULLTERM -9
427 #define CS_WILDCARD -99
428 #define CS_NO_LIMIT -9999
429 #define CS_UNUSED -99999
430 
431 /* other */
432 #define CS_GET 33
433 #define CS_SET 34
434 #define CS_CLEAR 35
435 #define CS_INIT 36
436 #define CS_STATUS 37
437 #define CS_MSGLIMIT 38
438 #define CS_SUPPORTED 40
439 
440 #define CS_CMD_DONE 4046
441 #define CS_CMD_SUCCEED 4047
442 #define CS_CMD_FAIL 4048
443 
444 /* commands */
445 #define CS_LANG_CMD 148
446 #define CS_RPC_CMD 149
447 #define CS_SEND_DATA_CMD 151
448 #define CS_SEND_BULK_CMD 153
449 
450 #define CS_VERSION_100 112
451 #define CS_VERSION_110 1100
452 #define CS_VERSION_120 1100
453 #define CS_VERSION_125 12500
454 #define CS_VERSION_150 15000
455 
456 #define BLK_VERSION_100 CS_VERSION_100
457 #define BLK_VERSION_110 CS_VERSION_110
458 #define BLK_VERSION_120 CS_VERSION_120
459 #define BLK_VERSION_125 CS_VERSION_125
460 #define BLK_VERSION_150 CS_VERSION_150
461 
462 #define CS_FORCE_EXIT 300
463 #define CS_FORCE_CLOSE 301
464 
465 #define CS_SYNC_IO 8111
466 #define CS_ASYNC_IO 8112
467 #define CS_DEFER_IO 8113
468 
469 #define CS_CANCEL_CURRENT 6000
470 #define CS_CANCEL_ALL 6001
471 #define CS_CANCEL_ATTN 6002
472 
473 #define CS_ROW_COUNT 800
474 #define CS_CMD_NUMBER 801
475 #define CS_NUM_COMPUTES 802
476 #define CS_NUMDATA 803
477 #define CS_NUMORDERCOLS 805
478 #define CS_MSGTYPE 806
479 #define CS_BROWSE_INFO 807
480 #define CS_TRANS_STATE 808
481 
482 #define CS_TRAN_UNDEFINED 0
483 #define CS_TRAN_IN_PROGRESS 1
484 #define CS_TRAN_COMPLETED 2
485 #define CS_TRAN_FAIL 3
486 #define CS_TRAN_STMT_FAIL 4
487 
488 #define CS_COMP_OP 5350
489 #define CS_COMP_ID 5351
490 #define CS_COMP_COLID 5352
491 #define CS_COMP_BYLIST 5353
492 #define CS_BYLIST_LEN 5354
493 
494 #define CS_NO_COUNT -1
495 
496 #define CS_OP_SUM 5370
497 #define CS_OP_AVG 5371
498 #define CS_OP_COUNT 5372
499 #define CS_OP_MIN 5373
500 #define CS_OP_MAX 5374
501 
502 #define CS_CAP_REQUEST 1
503 #define CS_CAP_RESPONSE 2
504 
505 #define CS_PREPARE 717
506 #define CS_EXECUTE 718
507 #define CS_DESCRIBE_INPUT 720
508 #define CS_DESCRIBE_OUTPUT 721
509 
510 #define CS_DEALLOC 711
511 
512 #define CS_LC_ALL 7
513 #define CS_SYB_LANG 8
514 #define CS_SYB_CHARSET 9
515 #define CS_SYB_SORTORDER 10
516 #define CS_SYB_COLLATE CS_SYB_SORTORDER
517 #define CS_SYB_LANG_CHARSET 11
518 
519 #define CS_BLK_IN 1
520 #define CS_BLK_OUT 2
521 
522 #define CS_BLK_BATCH 1
523 #define CS_BLK_ALL 2
524 #define CS_BLK_CANCEL 3
525 
526 /* to do support these */
527 
528 #define CS_BLK_ARRAY_MAXLEN 0x1000
529 #define CS_DEF_PREC 18
530 
531 /* Error Severities */
532 #define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0)
533 #define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1)
534 #define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2)
535 #define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3)
536 #define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4)
537 #define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5)
538 #define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6)
539 #define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7)
540 
541 /* result_types */
542 #define CS_COMPUTE_RESULT 4045
543 #define CS_CURSOR_RESULT 4041
544 #define CS_PARAM_RESULT 4042
545 #define CS_ROW_RESULT 4040
546 #define CS_STATUS_RESULT 4043
547 #define CS_COMPUTEFMT_RESULT 4050
548 #define CS_ROWFMT_RESULT 4049
549 #define CS_MSG_RESULT 4044
550 #define CS_DESCRIBE_RESULT 4051
551 
552 /* bind types */
553 #define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1)
554 #define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0)
555 #define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1)
556 #define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2)
557 #define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3)
558 #define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4)
559 #define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5)
560 #define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6)
561 #define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7)
562 #define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8)
563 #define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9)
564 #define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10)
565 #define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11)
566 #define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12)
567 #define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13)
568 #define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14)
569 #define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15)
570 #define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16)
571 #define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17)
572 #define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18)
573 #define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19)
574 #define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20)
575 #define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21)
576 #define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22)
577 #define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23)
578 #define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24)
579 #define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25)
580 #define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26)
581 #define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27)
582 #define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28)
583 #define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29)
584 #define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30)
585 #define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31)
586 #define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32)
587 #define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33)
588 #define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34)
589 #define CS_BIGDATETIME_TYPE TDS_STATIC_CAST(CS_INT, 35)
590 #define CS_BIGTIME_TYPE TDS_STATIC_CAST(CS_INT, 36)
591 #define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40)
592 
593 #define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100)
594 /* cs_dt_info type values */
595 enum
596 {
597  CS_MONTH = 7340,
598 #define CS_MONTH CS_MONTH
599  CS_SHORTMONTH,
600 #define CS_SHORTMONTH CS_SHORTMONTH
601  CS_DAYNAME,
602 #define CS_DAYNAME CS_DAYNAME
603  CS_DATEORDER,
604 #define CS_DATEORDER CS_DATEORDER
605  CS_12HOUR,
606 #define CS_12HOUR CS_12HOUR
607  CS_DT_CONVFMT
608 #define CS_DT_CONVFMT CS_DT_CONVFMT
609 };
610 
611 /* DT_CONVFMT types */
612 enum
613 {
614  CS_DATES_SHORT = 0,
615 #define CS_DATES_SHORT CS_DATES_SHORT
616  CS_DATES_MDY1,
617 #define CS_DATES_MDY1 CS_DATES_MDY1
618  CS_DATES_YMD1,
619 #define CS_DATES_YMD1 CS_DATES_YMD1
620  CS_DATES_DMY1,
621 #define CS_DATES_DMY1 CS_DATES_DMY1
622  CS_DATES_DMY2,
623 #define CS_DATES_DMY2 CS_DATES_DMY2
624  CS_DATES_DMY3,
625 #define CS_DATES_DMY3 CS_DATES_DMY3
626  CS_DATES_DMY4,
627 #define CS_DATES_DMY4 CS_DATES_DMY4
628  CS_DATES_MDY2,
629 #define CS_DATES_MDY2 CS_DATES_MDY2
630  CS_DATES_HMS,
631 #define CS_DATES_HMS CS_DATES_HMS
632  CS_DATES_LONG,
633 #define CS_DATES_LONG CS_DATES_LONG
634  CS_DATES_MDY3,
635 #define CS_DATES_MDY3 CS_DATES_MDY3
636  CS_DATES_YMD2,
637 #define CS_DATES_YMD2 CS_DATES_YMD2
638  CS_DATES_YMD3,
639 #define CS_DATES_YMD3 CS_DATES_YMD3
640  CS_DATES_YDM1,
641 #define CS_DATES_YDM1 CS_DATES_YDM1
642  CS_DATES_MYD1,
643 #define CS_DATES_MYD1 CS_DATES_MYD1
644  CS_DATES_DYM1,
645 #define CS_DATES_DYM1 CS_DATES_DYM1
646  CS_DATES_MDY1_YYYY = 101,
647 #define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY
648  CS_DATES_YMD1_YYYY,
649 #define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY
650  CS_DATES_DMY1_YYYY,
651 #define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY
652  CS_DATES_DMY2_YYYY,
653 #define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY
654  CS_DATES_DMY3_YYYY,
655 #define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY
656  CS_DATES_DMY4_YYYY,
657 #define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY
658  CS_DATES_MDY2_YYYY,
659 #define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY
660  CS_DATES_MDY3_YYYY = 110,
661 #define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY
662  CS_DATES_YMD2_YYYY,
663 #define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY
664  CS_DATES_YMD3_YYYY
665 #define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY
666 };
667 
668 typedef CS_RETCODE(*CS_CONV_FUNC) (CS_CONTEXT * context, CS_DATAFMT * srcfmt, CS_VOID * src, CS_DATAFMT * detsfmt, CS_VOID * dest,
669  CS_INT * destlen);
670 
671 typedef struct _cs_objname
672 {
673  CS_BOOL thinkexists;
674  CS_INT object_type;
675  CS_CHAR last_name[CS_MAX_NAME];
676  CS_INT lnlen;
677  CS_CHAR first_name[CS_MAX_NAME];
678  CS_INT fnlen;
679  CS_VOID *scope;
680  CS_INT scopelen;
681  CS_VOID *thread;
682  CS_INT threadlen;
683 } CS_OBJNAME;
684 
685 typedef struct _cs_objdata
686 {
687  CS_BOOL actuallyexists;
688  CS_CONNECTION *connection;
689  CS_COMMAND *command;
690  CS_VOID *buffer;
691  CS_INT buflen;
692 } CS_OBJDATA;
693 
694 /* Eventually, these should be in terms of TDS values */
695 enum
696 {
697  CS_OPT_MONDAY = 1,
698  CS_OPT_TUESDAY,
699  CS_OPT_WEDNESDAY,
700  CS_OPT_THURSDAY,
701  CS_OPT_FRIDAY,
702  CS_OPT_SATURDAY,
703  CS_OPT_SUNDAY
704 };
705 enum
706 {
707  CS_OPT_FMTMDY = 1,
708  CS_OPT_FMTDMY,
709  CS_OPT_FMTYMD,
710  CS_OPT_FMTYDM,
711  CS_OPT_FMTMYD,
712  CS_OPT_FMTDYM
713 };
714 enum
715 {
716  CS_OPT_LEVEL0 = 0,
717  CS_OPT_LEVEL1,
718  CS_OPT_LEVEL2,
719  CS_OPT_LEVEL3
720 };
721 
722 #define CS_FALSE 0
723 #define CS_TRUE 1
724 
725 #define SRV_PROC CS_VOID
726 
727 /* constants required for ct_diag (not jet implemented) */
728 #define CS_CLIENTMSG_TYPE 4700
729 #define CS_SERVERMSG_TYPE 4701
730 #define CS_ALLMSG_TYPE 4702
731 
732 CS_RETCODE cs_convert(CS_CONTEXT * ctx, CS_DATAFMT * srcfmt, CS_VOID * srcdata, CS_DATAFMT * destfmt, CS_VOID * destdata,
733  CS_INT * resultlen);
734 CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT ** ctx);
735 CS_RETCODE cs_ctx_global(CS_INT version, CS_CONTEXT ** ctx);
736 CS_RETCODE cs_ctx_drop(CS_CONTEXT * ctx);
737 CS_RETCODE cs_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
738 CS_RETCODE cs_strbuild(CS_CONTEXT * ctx, CS_CHAR * buffer, CS_INT buflen, CS_INT * resultlen, CS_CHAR * text, CS_INT textlen,
739  CS_CHAR * formats, CS_INT formatlen, ...);
740 #undef cs_dt_crack
741 CS_RETCODE cs_dt_crack(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
742 CS_RETCODE cs_dt_crack_v2(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
743 #define cs_dt_crack cs_dt_crack_v2
744 CS_RETCODE cs_loc_alloc(CS_CONTEXT * ctx, CS_LOCALE ** locptr);
745 CS_RETCODE cs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale);
746 CS_RETCODE cs_locale(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_VOID * buffer, CS_INT buflen,
747  CS_INT * outlen);
748 CS_RETCODE cs_dt_info(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_INT item, CS_VOID * buffer,
749  CS_INT buflen, CS_INT * outlen);
750 
751 CS_RETCODE cs_calc(CS_CONTEXT * ctx, CS_INT op, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_VOID * dest);
752 CS_RETCODE cs_cmp(CS_CONTEXT * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_INT * result);
753 CS_RETCODE cs_conv_mult(CS_CONTEXT * ctx, CS_LOCALE * srcloc, CS_LOCALE * destloc, CS_INT * conv_multiplier);
754 CS_RETCODE cs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
755 CS_RETCODE cs_manage_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype,
756  CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, CS_CONV_FUNC * func);
757 CS_RETCODE cs_objects(CS_CONTEXT * ctx, CS_INT action, CS_OBJNAME * objname, CS_OBJDATA * objdata);
758 CS_RETCODE cs_set_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_INT desttype, CS_CONV_FUNC * func);
759 CS_RETCODE cs_setnull(CS_CONTEXT * ctx, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT buflen);
760 CS_RETCODE cs_strcmp(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_INT type, CS_CHAR * str1, CS_INT len1, CS_CHAR * str2, CS_INT len2,
761  CS_INT * result);
762 CS_RETCODE cs_time(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen, CS_DATEREC * daterec);
763 CS_RETCODE cs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result);
764 
765 const char * cs_prretcode(int retcode);
766 
767 #ifdef __cplusplus
768 #if 0
769 {
770 #endif
771 }
772 #endif
773 
774 #endif
Definition: cstypes.h:113
-
Definition: cstypes.h:158
-
Definition: ctlib.h:210
-
Definition: cstypes.h:190
-
Definition: ctlib.h:246
-
Definition: cspublic.h:685
-
Definition: ctlib.h:74
-
Definition: cstypes.h:176
-
Definition: ctlib.h:116
-
Definition: ctlib.h:237
-
Definition: cspublic.h:671
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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 _ctlib_h_
+
21 #define _ctlib_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>
+
32 
+
33 #ifdef __cplusplus
+
34 extern "C"
+
35 {
+
36 #if 0
+
37 }
+
38 #endif
+
39 #endif
+
40 
+
41 /*
+
42  * internal types
+
43  */
+
44 struct _cs_config
+
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 */
+
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  */
+
108 typedef struct _ct_colinfo
+
109 {
+
110  TDS_SMALLINT *indicator;
+
111 }
+
112 CT_COLINFO;
+
113 
+
114 typedef 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;
+
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 
+
137 typedef 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 
+
161 typedef struct _csremote_proc
+
162 {
+
163  char *name;
+
164  CS_SMALLINT options;
+
165  CSREMOTE_PROC_PARAM *param_list;
+
166 } CSREMOTE_PROC;
+
167 
+
168 /*
+
169  * Structure CS_COMMAND changed for RPC functionality -SUHA
+
170  * Added CSREMOTE_PROC *rpc to CS_COMMAND structure
+
171  */
+
172 
+
173 typedef CS_PARAM CS_DYNAMIC_PARAM;
+
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 
+ +
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  */
+
264 TDSRET _ct_handle_server_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
+
265 int _ct_handle_client_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
+
266 TDS_SERVER_TYPE _ct_get_server_type(TDSSOCKET *tds, int datatype);
+
267 int _ct_bind_data(CS_CONTEXT *ctx, TDSRESULTINFO * resinfo, TDSRESULTINFO *bindinfo, CS_INT offset);
+
268 int _ct_get_client_type(const TDSCOLUMN *col, bool describe);
+
269 void _ctclient_msg(CS_CONNECTION * con, const char *funcname, int layer, int origin, int severity, int number,
+
270  const char *fmt, ...);
+
271 CS_INT _ct_diag_clearmsg(CS_CONTEXT * context, CS_INT type);
+
272 void _cs_locale_free(CS_LOCALE *locale);
+
273 CS_LOCALE *_cs_locale_copy(CS_LOCALE *orig);
+
274 int _cs_locale_copy_inplace(CS_LOCALE *new_locale, CS_LOCALE *orig);
+
275 
+
276 int _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
+
Definition: ctlib.h:75
+ +
Definition: cstypes.h:191
+
Definition: ctlib.h:117
+
Hold information for any results.
Definition: tds.h:770
+
Definition: ctlib.h:248
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: ctlib.h:55
+
Definition: tds.h:1030
+
Definition: ctlib.h:212
+
Definition: ctlib.h:162
+
Definition: ctlib.h:109
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
Definition: ctlib.h:69
+
Definition: ctlib.h:45
+
Holds informations about a cursor.
Definition: tds.h:938
+
Definition: convert.h:34
+
Definition: ctlib.h:138
+
Definition: tds.h:877
+
Definition: tds.h:1656
+
Definition: tds.h:518
+
int query_timeout
not used unless positive
Definition: ctlib.h:102
+
int login_timeout
not used unless positive
Definition: ctlib.h:101
+
Definition: ctlib.h:61
+
Definition: cstypes.h:97
+
Definition: ctlib.h:239
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: cstypes.h:177
+
Definition: ctlib.h:176
diff -Nru freetds-1.1.6/doc/reference/a00368_source.html freetds-1.2.3/doc/reference/a00368_source.html --- freetds-1.1.6/doc/reference/a00368_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00368_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/cstypes.h Source File +FreeTDS API: include/ctpublic.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
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.
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 _cstypes_h_
21 #define _cstypes_h_
22 
23 #include "tds_sysdep_public.h"
24 
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #if 0
29 }
30 #endif
31 #endif
32 
33 typedef int32_t CS_INT;
34 typedef uint32_t CS_UINT;
35 typedef int64_t CS_BIGINT;
36 typedef uint64_t CS_UBIGINT;
37 typedef int16_t CS_SMALLINT;
38 typedef uint16_t CS_USMALLINT;
39 typedef unsigned char CS_TINYINT;
40 typedef char CS_CHAR;
41 typedef unsigned char CS_BYTE;
42 typedef tds_sysdep_real32_type CS_REAL;
43 typedef tds_sysdep_real64_type CS_FLOAT;
44 typedef int32_t CS_BOOL;
45 typedef void CS_VOID;
46 typedef unsigned char CS_IMAGE;
47 typedef unsigned char CS_TEXT;
48 typedef unsigned char CS_LONGBINARY;
49 typedef unsigned char CS_LONGCHAR;
50 typedef long CS_LONG;
51 typedef unsigned char CS_BINARY;
52 typedef uint16_t CS_USHORT;
53 typedef unsigned char CS_BIT;
54 
55 typedef 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 
68 typedef struct _cs_numeric
69 {
70  unsigned char precision;
71  unsigned char scale;
72  unsigned char array[CS_MAX_NUMLEN];
73 } CS_NUMERIC;
74 
75 typedef CS_NUMERIC CS_DECIMAL;
76 
77 typedef struct _cs_varbinary
78 {
79  CS_SMALLINT len;
80  CS_CHAR array[256];
81 } CS_VARBINARY;
82 
83 typedef struct _cs_varchar
84 {
85  CS_SMALLINT len; /* length of the string */
86  CS_CHAR str[256]; /* string, no NULL terminator */
87 } CS_VARCHAR;
88 
89 typedef struct _cs_config CS_CONFIG;
90 typedef struct _cs_context CS_CONTEXT;
91 typedef struct _cs_connection CS_CONNECTION;
92 typedef struct _cs_locale CS_LOCALE;
93 typedef struct _cs_command CS_COMMAND;
94 typedef struct _cs_blk_row CS_BLK_ROW;
95 
96 typedef 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 
113 typedef 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 
128 typedef struct _cs_money
129 {
130  CS_INT mnyhigh;
131  CS_UINT mnylow;
132 } CS_MONEY;
133 
134 typedef struct _cs_money4
135 {
136  CS_INT mny4;
137 } CS_MONEY4;
138 
139 typedef CS_INT CS_DATE;
140 
141 typedef CS_INT CS_TIME;
142 
143 typedef CS_UBIGINT CS_BIGDATETIME;
144 typedef CS_UBIGINT CS_BIGTIME;
145 
146 typedef struct _cs_datetime
147 {
148  CS_INT dtdays;
149  CS_INT dttime;
150 } CS_DATETIME;
151 
152 typedef struct _cs_datetime4
153 {
154  CS_USHORT days;
155  CS_USHORT minutes;
156 } CS_DATETIME4;
157 
158 typedef 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 
174 typedef CS_INT CS_MSGNUM;
175 
176 typedef 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;
188 } CS_CLIENTMSG;
189 
190 typedef 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;
205 } CS_SERVERMSG;
206 
207 #ifdef __cplusplus
208 #if 0
209 {
210 #endif
211 }
212 #endif
213 
214 #endif
Definition: cstypes.h:146
-
Definition: cstypes.h:113
-
Definition: ctlib.h:44
-
Definition: cstypes.h:158
-
Definition: ctlib.h:210
-
Definition: cstypes.h:134
-
Definition: cstypes.h:96
-
Definition: cstypes.h:190
-
Definition: ctlib.h:246
-
Definition: cstypes.h:152
-
Definition: cstypes.h:128
-
Definition: ctlib.h:74
-
Definition: cstypes.h:176
-
Definition: ctlib.h:116
-
Definition: cstypes.h:77
-
Definition: cstypes.h:68
-
Definition: cstypes.h:83
+
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)
+
28 extern "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 
+
92 static const char rcsid_ctpublic_h[] = "$Id: ctpublic.h,v 1.14 2005-05-28 10:48:26 freddy77 Exp $";
+
93 static const void *const no_unused_ctpublic_h_warn[] = { rcsid_ctpublic_h, no_unused_ctpublic_h_warn };
+
94 
+
95 
+
96 CS_RETCODE ct_init(CS_CONTEXT * ctx, CS_INT version);
+
97 CS_RETCODE ct_con_alloc(CS_CONTEXT * ctx, CS_CONNECTION ** con);
+
98 CS_RETCODE ct_con_props(CS_CONNECTION * con, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
+
99 CS_RETCODE ct_connect(CS_CONNECTION * con, CS_CHAR * servername, CS_INT snamelen);
+
100 CS_RETCODE ct_cmd_alloc(CS_CONNECTION * con, CS_COMMAND ** cmd);
+
101 CS_RETCODE ct_cancel(CS_CONNECTION * conn, CS_COMMAND * cmd, CS_INT type);
+
102 CS_RETCODE ct_cmd_drop(CS_COMMAND * cmd);
+
103 CS_RETCODE ct_close(CS_CONNECTION * con, CS_INT option);
+
104 CS_RETCODE ct_con_drop(CS_CONNECTION * con);
+
105 CS_RETCODE ct_exit(CS_CONTEXT * ctx, CS_INT unused);
+
106 CS_RETCODE ct_command(CS_COMMAND * cmd, CS_INT type, const CS_VOID * buffer, CS_INT buflen, CS_INT option);
+
107 CS_RETCODE ct_send(CS_COMMAND * cmd);
+
108 CS_RETCODE ct_results(CS_COMMAND * cmd, CS_INT * result_type);
+
109 CS_RETCODE ct_bind(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * copied, CS_SMALLINT * indicator);
+
110 CS_RETCODE ct_fetch(CS_COMMAND * cmd, CS_INT type, CS_INT offset, CS_INT option, CS_INT * rows_read);
+
111 CS_RETCODE ct_res_info_dyn(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
+
112 CS_RETCODE ct_res_info(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
+
113 CS_RETCODE ct_describe(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt);
+
114 CS_RETCODE ct_callback(CS_CONTEXT * ctx, CS_CONNECTION * con, CS_INT action, CS_INT type, CS_VOID * func);
+
115 CS_RETCODE ct_send_dyn(CS_COMMAND * cmd);
+
116 CS_RETCODE ct_results_dyn(CS_COMMAND * cmd, CS_INT * result_type);
+
117 CS_RETCODE ct_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
118 CS_RETCODE ct_cmd_props(CS_COMMAND * cmd, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
119 CS_RETCODE ct_compute_info(CS_COMMAND * cmd, CS_INT type, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
120 CS_RETCODE ct_get_data(CS_COMMAND * cmd, CS_INT item, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
+
121 CS_RETCODE ct_send_data(CS_COMMAND * cmd, CS_VOID * buffer, CS_INT buflen);
+
122 CS_RETCODE ct_data_info(CS_COMMAND * cmd, CS_INT action, CS_INT colnum, CS_IODESC * iodesc);
+
123 CS_RETCODE ct_capability(CS_CONNECTION * con, CS_INT action, CS_INT type, CS_INT capability, CS_VOID * value);
+
124 CS_RETCODE ct_dynamic(CS_COMMAND * cmd, CS_INT type, CS_CHAR * id, CS_INT idlen, CS_CHAR * buffer, CS_INT buflen);
+
125 CS_RETCODE ct_param(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT datalen, CS_SMALLINT indicator);
+
126 CS_RETCODE ct_setparam(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT * datalen, CS_SMALLINT * indicator);
+
127 CS_RETCODE ct_options(CS_CONNECTION * con, CS_INT action, CS_INT option, CS_VOID * param, CS_INT paramlen, CS_INT * outlen);
+
128 CS_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);
+
130 CS_RETCODE ct_cursor(CS_COMMAND * cmd, CS_INT type, CS_CHAR * name, CS_INT namelen, CS_CHAR * text, CS_INT tlen, CS_INT option);
+
131 CS_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: ctlib.h:75
+
Definition: cstypes.h:114
+
Definition: ctlib.h:117
+
Definition: ctlib.h:212
+
Definition: cstypes.h:97
diff -Nru freetds-1.1.6/doc/reference/a00371_source.html freetds-1.2.3/doc/reference/a00371_source.html --- freetds-1.1.6/doc/reference/a00371_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00371_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/ctlib.h Source File +FreeTDS API: include/dblib.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
ctlib.h
+
dblib.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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 _ctlib_h_
21 #define _ctlib_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>
32 
33 #ifdef __cplusplus
34 extern "C"
35 {
36 #if 0
37 }
38 #endif
39 #endif
40 
41 /*
42  * internal types
43  */
44 struct _cs_config
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 */
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  */
108 typedef struct _ct_colinfo
109 {
110  TDS_SMALLINT *indicator;
111 }
112 CT_COLINFO;
113 
114 typedef 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;
125  CS_LOCALE *locale;
126  CS_COMMAND *cmds;
127  CS_DYNAMIC *dynlist;
128  char *server_addr;
129 };
130 
131 /*
132  * Formerly CSREMOTE_PROC_PARAM, this structure can be used in other
133  * places, too.
134  */
135 
136 typedef struct _cs_param
137 {
138  struct _cs_param *next;
139  char *name;
140  int status;
141  int datatype;
142  CS_INT maxlen;
143  CS_INT scale;
144  CS_INT precision;
145  CS_INT *datalen;
146  CS_SMALLINT *ind;
147  CS_BYTE *value;
148  int param_by_value;
149  CS_INT datalen_value;
150  CS_SMALLINT indicator_value;
151 } CS_PARAM;
152 
153 /*
154  * Code added for RPC functionality - SUHA
155  * RPC Code changes starts here
156  */
157 
159 
160 typedef struct _csremote_proc
161 {
162  char *name;
163  CS_SMALLINT options;
164  CSREMOTE_PROC_PARAM *param_list;
165 } CSREMOTE_PROC;
166 
167 /*
168  * Structure CS_COMMAND changed for RPC functionality -SUHA
169  * Added CSREMOTE_PROC *rpc to CS_COMMAND structure
170  */
171 
172 typedef CS_PARAM CS_DYNAMIC_PARAM;
173 
175 {
176  struct _cs_dynamic *next;
177  char *id;
178  char *stmt;
179  CS_DYNAMIC_PARAM *param_list;
180  TDSDYNAMIC *tdsdyn;
181 };
182 
183 /* specific FreeTDS commands */
184 #define CS_DYNAMIC_CMD 160
185 #define CS_CUR_CMD 161
186 
187 /* values for cs_command.results_state */
188 
189 #define _CS_RES_NONE -1
190 #define _CS_RES_INIT 0
191 #define _CS_RES_RESULTSET_EMPTY 1
192 #define _CS_RES_RESULTSET_ROWS 2
193 #define _CS_RES_STATUS 3
194 #define _CS_RES_CMD_DONE 4
195 #define _CS_RES_CMD_SUCCEED 5
196 #define _CS_RES_END_RESULTS 6
197 #define _CS_RES_DESCRIBE_RESULT 7
198 
199 /* values for cs_command.command_state */
200 
201 #define _CS_COMMAND_IDLE 0
202 #define _CS_COMMAND_BUILDING 1
203 #define _CS_COMMAND_READY 2
204 #define _CS_COMMAND_SENT 3
205 
206 /* values for cs_command.cancel_state */
207 #define _CS_CANCEL_NOCANCEL 0
208 #define _CS_CANCEL_PENDING 1
209 
211 {
212  struct _cs_command *next;
213  CS_INT command_state;
214  CS_INT results_state;
215  CS_INT cancel_state;
216  CS_INT cursor_state;
217  CS_CONNECTION *con;
218  CS_INT command_type;
219  CS_CHAR *query;
220  short dynamic_cmd;
221  CS_DYNAMIC *dyn;
222  int row_prefetched;
223  int curr_result_type;
224  int bind_count;
225  int get_data_item;
226  int get_data_bytes_returned;
227  CS_IODESC *iodesc;
228  CS_INT send_data_started;
229  CSREMOTE_PROC *rpc;
230  CS_PARAM *input_params;
231  CS_INT client_cursor_id;
232  TDSCURSOR *cursor;
233  void *userdata;
234  int userdata_len;
235 };
236 
238 {
239  TDSBCPINFO bcpinfo;
240 };
241 
242 
243 #define _CS_ERRHAND_INLINE 1
244 #define _CS_ERRHAND_CB 2
245 
247 {
248  char *language;
249  char *charset;
250  char *time;
251  char *collate;
252 };
253 
254 /* internal defines for cursor processing */
255 
256 #define _CS_CURS_TYPE_UNACTIONED 0
257 #define _CS_CURS_TYPE_REQUESTED 1
258 #define _CS_CURS_TYPE_SENT 2
259 
260 /*
261  * internal prototypes
262  */
263 TDSRET _ct_handle_server_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
264 int _ct_handle_client_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
265 TDS_SERVER_TYPE _ct_get_server_type(TDSSOCKET *tds, int datatype);
266 int _ct_bind_data(CS_CONTEXT *ctx, TDSRESULTINFO * resinfo, TDSRESULTINFO *bindinfo, CS_INT offset);
267 int _ct_get_client_type(TDSCOLUMN *col);
268 void _ctclient_msg(CS_CONNECTION * con, const char *funcname, int layer, int origin, int severity, int number,
269  const char *fmt, ...);
270 CS_INT _ct_diag_clearmsg(CS_CONTEXT * context, CS_INT type);
271 void _cs_locale_free(CS_LOCALE *locale);
272 CS_LOCALE *_cs_locale_copy(CS_LOCALE *orig);
273 int _cs_locale_copy_inplace(CS_LOCALE *new_locale, CS_LOCALE *orig);
274 
275 int _cs_convert_not_client(CS_CONTEXT *ctx, TDSCOLUMN *curcol, CONV_RESULT *convert_buffer, unsigned char **p_src);
276 
277 #ifdef __cplusplus
278 #if 0
279 {
280 #endif
281 }
282 #endif
283 
284 #include <freetds/popvis.h>
285 
286 #endif
Information for a server connection.
Definition: tds.h:1141
-
Definition: ctlib.h:44
-
Definition: tds.h:511
-
Definition: ctlib.h:108
-
Definition: ctlib.h:60
-
Metadata about columns in regular and compute rows.
Definition: tds.h:690
-
Definition: ctlib.h:210
-
int query_timeout
not used unless positive
Definition: ctlib.h:102
-
Definition: ctlib.h:136
-
Definition: cstypes.h:96
-
Hold information for any results.
Definition: tds.h:769
-
Definition: cstypes.h:190
-
Definition: ctlib.h:246
-
Definition: tds.h:1029
-
Definition: tds.h:1563
-
Definition: ctlib.h:74
-
Definition: ctlib.h:54
-
Definition: cstypes.h:176
-
Definition: convert.h:33
-
int login_timeout
not used unless positive
Definition: ctlib.h:101
-
Definition: ctlib.h:174
-
Definition: ctlib.h:116
-
Definition: ctlib.h:68
-
Definition: ctlib.h:237
-
Definition: ctlib.h:160
-
Holds informations about a cursor.
Definition: tds.h:937
-
Definition: tds.h:876
-
Main include file for libtds.
-
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:977
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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 _dblib_h_
+
21 #define _dblib_h_
+
22 
+
23 #include <freetds/pushvis.h>
+
24 
+
25 #ifdef __cplusplus
+
26 extern "C"
+
27 {
+
28 #if 0
+
29 }
+
30 #endif
+
31 #endif
+
32 
+
33 typedef 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 
+
49 struct dblib_buffer_row;
+
50 
+
51 typedef 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 
+
61 typedef 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 
+
73 typedef 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 
+
88 typedef 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 
+
100 typedef struct DBREMOTE_PROC
+
101 {
+
102  struct DBREMOTE_PROC *next;
+
103 
+
104  char *name;
+
105  DBSMALLINT options;
+
106  DBREMOTE_PROC_PARAM *param_list;
+
107 } DBREMOTE_PROC;
+
108 
+
109 typedef struct dboption
+
110 {
+
111  const char *text;
+
112  DBSTRING *param;
+
113  DBBOOL factive;
+
114 } DBOPTION;
+
115 
+
116 typedef 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 
+
154  int msdblib;
+
155 
+
156  int ntimeouts;
+
157 
+
159  NULLREP nullreps[MAXBINDTYPES];
+
160 };
+
161 
+
162 enum {
+
163 #if MSDBLIB
+
164  dblib_msdblib = 1
+
165 #else
+
166  dblib_msdblib = 0
+
167 #endif
+
168 };
+
169 
+
170 /*
+
171  * internal prototypes
+
172  */
+
173 RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE* varaddr);
+
174 void 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 
+
178 int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum, ...);
+
179 int _dblib_handle_info_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
+
180 int _dblib_handle_err_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
+
181 int _dblib_check_and_handle_interrupt(void * vdbproc);
+
182 
+
183 void _dblib_setTDS_version(TDSLOGIN * tds_login, DBINT version);
+
184 void _dblib_convert_err(DBPROCESS * dbproc, TDS_INT len);
+
185 
+
186 DBINT _convert_char(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
+
187 DBINT _convert_intn(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
+
188 
+
189 RETCODE _bcp_clear_storage(DBPROCESS * dbproc);
+
190 RETCODE _bcp_get_prog_data(DBPROCESS * dbproc);
+
191 
+
192 extern MHANDLEFUNC _dblib_msg_handler;
+
193 extern 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
+
Definition: dblib.h:101
+
Definition: dblib.h:62
+
Definition: buffering.h:1
+
Definition: dblib.h:44
+
Definition: dblib.h:89
+
Definition: sybdb.h:342
+
Information for a server connection.
Definition: tds.h:1164
+
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition: dblib.c:8131
+
int _dblib_check_and_handle_interrupt(void *vdbproc)
check interrupts for libtds.
Definition: dbutil.c:192
+
Definition: tds.h:1030
+
NULLREP nullreps[MAXBINDTYPES]
default null values
Definition: dblib.h:159
+
int msdblib
boolean use ms behaviour
Definition: dblib.h:154
+
Definition: dblib.h:110
+
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition: dblib.c:534
+
Definition: dblib.h:52
+
Definition: tds.h:877
+
Definition: tds.h:1656
+
Definition: tds.h:518
+
Definition: dblib.h:123
+
Definition: dblib.h:74
+
Definition: sybdb.h:336
+
Definition: dblib.h:117
diff -Nru freetds-1.1.6/doc/reference/a00374_source.html freetds-1.2.3/doc/reference/a00374_source.html --- freetds-1.1.6/doc/reference/a00374_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00374_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/ctpublic.h Source File +FreeTDS API: include/freetds/alloca.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
ctpublic.h
+
alloca.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)
28 extern "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 
92 static const char rcsid_ctpublic_h[] = "$Id: ctpublic.h,v 1.14 2005-05-28 10:48:26 freddy77 Exp $";
93 static const void *const no_unused_ctpublic_h_warn[] = { rcsid_ctpublic_h, no_unused_ctpublic_h_warn };
94 
95 
96 CS_RETCODE ct_init(CS_CONTEXT * ctx, CS_INT version);
97 CS_RETCODE ct_con_alloc(CS_CONTEXT * ctx, CS_CONNECTION ** con);
98 CS_RETCODE ct_con_props(CS_CONNECTION * con, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
99 CS_RETCODE ct_connect(CS_CONNECTION * con, CS_CHAR * servername, CS_INT snamelen);
100 CS_RETCODE ct_cmd_alloc(CS_CONNECTION * con, CS_COMMAND ** cmd);
101 CS_RETCODE ct_cancel(CS_CONNECTION * conn, CS_COMMAND * cmd, CS_INT type);
102 CS_RETCODE ct_cmd_drop(CS_COMMAND * cmd);
103 CS_RETCODE ct_close(CS_CONNECTION * con, CS_INT option);
104 CS_RETCODE ct_con_drop(CS_CONNECTION * con);
105 CS_RETCODE ct_exit(CS_CONTEXT * ctx, CS_INT unused);
106 CS_RETCODE ct_command(CS_COMMAND * cmd, CS_INT type, const CS_VOID * buffer, CS_INT buflen, CS_INT option);
107 CS_RETCODE ct_send(CS_COMMAND * cmd);
108 CS_RETCODE ct_results(CS_COMMAND * cmd, CS_INT * result_type);
109 CS_RETCODE ct_bind(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * copied, CS_SMALLINT * indicator);
110 CS_RETCODE ct_fetch(CS_COMMAND * cmd, CS_INT type, CS_INT offset, CS_INT option, CS_INT * rows_read);
111 CS_RETCODE ct_res_info_dyn(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
112 CS_RETCODE ct_res_info(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
113 CS_RETCODE ct_describe(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt);
114 CS_RETCODE ct_callback(CS_CONTEXT * ctx, CS_CONNECTION * con, CS_INT action, CS_INT type, CS_VOID * func);
115 CS_RETCODE ct_send_dyn(CS_COMMAND * cmd);
116 CS_RETCODE ct_results_dyn(CS_COMMAND * cmd, CS_INT * result_type);
117 CS_RETCODE ct_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
118 CS_RETCODE ct_cmd_props(CS_COMMAND * cmd, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
119 CS_RETCODE ct_compute_info(CS_COMMAND * cmd, CS_INT type, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
120 CS_RETCODE ct_get_data(CS_COMMAND * cmd, CS_INT item, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
121 CS_RETCODE ct_send_data(CS_COMMAND * cmd, CS_VOID * buffer, CS_INT buflen);
122 CS_RETCODE ct_data_info(CS_COMMAND * cmd, CS_INT action, CS_INT colnum, CS_IODESC * iodesc);
123 CS_RETCODE ct_capability(CS_CONNECTION * con, CS_INT action, CS_INT type, CS_INT capability, CS_VOID * value);
124 CS_RETCODE ct_dynamic(CS_COMMAND * cmd, CS_INT type, CS_CHAR * id, CS_INT idlen, CS_CHAR * buffer, CS_INT buflen);
125 CS_RETCODE ct_param(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT datalen, CS_SMALLINT indicator);
126 CS_RETCODE ct_setparam(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT * datalen, CS_SMALLINT * indicator);
127 CS_RETCODE ct_options(CS_CONNECTION * con, CS_INT action, CS_INT option, CS_VOID * param, CS_INT paramlen, CS_INT * outlen);
128 CS_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);
130 CS_RETCODE ct_cursor(CS_COMMAND * cmd, CS_INT type, CS_CHAR * name, CS_INT namelen, CS_CHAR * text, CS_INT tlen, CS_INT option);
131 CS_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:113
-
Definition: ctlib.h:210
-
Definition: cstypes.h:96
-
Definition: ctlib.h:74
-
Definition: ctlib.h:116
+
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
+
22 extern "C"
+
23 # endif
+
24 void *alloca (size_t);
+
25 # endif
+
26 #endif
diff -Nru freetds-1.1.6/doc/reference/a00377_source.html freetds-1.2.3/doc/reference/a00377_source.html --- freetds-1.1.6/doc/reference/a00377_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00377_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/dblib.h Source File +FreeTDS API: include/freetds/alternative_character_sets.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
dblib.h
+
alternative_character_sets.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  *
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 _dblib_h_
21 #define _dblib_h_
22 
23 #include <freetds/pushvis.h>
24 
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #if 0
29 }
30 #endif
31 #endif
32 
33 typedef enum tag_DB_RESULT_STATE {
34  _DB_RES_INIT
35  , _DB_RES_RESULTSET_EMPTY
36  , _DB_RES_RESULTSET_ROWS
37  , _DB_RES_NEXT_RESULT
38  , _DB_RES_NO_MORE_RESULTS
39  , _DB_RES_SUCCEED
40 } DB_RESULT_STATE;
41 
43 {
45 };
46 
47 struct dblib_buffer_row;
48 
49 typedef struct tag_DBPROC_ROWBUF
50 {
51  int received; /* how many rows have been received for this result set */
52  int head; /* queue insertion point */
53  int tail; /* oldest item in queue */
54  int current; /* dbnextrow() reads this row */
55  int capacity; /* how many elements the queue can hold */
56  struct dblib_buffer_row *rows; /* pointer to the row storage */
58 
59 typedef struct
60 {
61  int host_column;
62  TDS_SERVER_TYPE datatype;
63  int prefix_len;
64  DBINT column_len;
65  BYTE *terminator;
66  int term_len;
67  int tab_colnum;
68  int column_error;
70 
71 typedef struct
72 {
73  TDS_CHAR *hostfile;
74  TDS_CHAR *errorfile;
75  FILE *bcp_errfileptr;
76  TDS_INT host_colcount;
77  BCP_HOSTCOLINFO **host_columns;
78  TDS_INT firstrow;
79  TDS_INT lastrow;
80  TDS_INT maxerrs;
81  TDS_INT batch;
83 
84 /* linked list of rpc parameters */
85 
86 typedef struct _DBREMOTE_PROC_PARAM
87 {
88  struct _DBREMOTE_PROC_PARAM *next;
89 
90  char *name;
91  BYTE status;
92  TDS_SERVER_TYPE type;
93  DBINT maxlen;
94  DBINT datalen;
95  BYTE *value;
97 
98 typedef struct _DBREMOTE_PROC
99 {
100  struct _DBREMOTE_PROC *next;
101 
102  char *name;
103  DBSMALLINT options;
104  DBREMOTE_PROC_PARAM *param_list;
105 } DBREMOTE_PROC;
106 
107 typedef struct dboption
108 {
109  const char *text;
110  DBSTRING *param;
111  DBBOOL factive;
112 } DBOPTION;
113 
114 typedef struct _null_representation
115 {
116  const BYTE *bindval;
117  size_t len;
118 } NULLREP;
119 
121 {
123 
124  STATUS row_type;
125  DBPROC_ROWBUF row_buf;
126 
127  int noautofree;
128  int more_results; /* boolean. Are we expecting results? */
129  DB_RESULT_STATE dbresults_state;
130  int dbresults_retcode;
131  BYTE *user_data; /* see dbsetuserdata() and dbgetuserdata() */
132  unsigned char *dbbuf; /* is dynamic! */
133  int dbbufsz;
134  int command_state;
135  TDS_INT text_size;
136  TDS_INT text_sent;
137  DBTYPEINFO typeinfo;
138  unsigned char avail_flag;
139  DBOPTION *dbopts;
140  DBSTRING *dboptcmd;
141  BCP_HOSTFILEINFO *hostfileinfo;
142  TDSBCPINFO *bcpinfo;
143  DBREMOTE_PROC *rpc;
144  DBUSMALLINT envchange_rcv;
145  char dbcurdb[DBMAXNAME + 1];
146  char servcharset[DBMAXNAME + 1];
147  FILE *ftos;
148  DB_DBCHKINTR_FUNC chkintr;
149  DB_DBHNDLINTR_FUNC hndlintr;
150 
152  int msdblib;
153 
154  int ntimeouts;
155 
157  NULLREP nullreps[MAXBINDTYPES];
158 };
159 
160 enum {
161 #if MSDBLIB
162  dblib_msdblib = 1
163 #else
164  dblib_msdblib = 0
165 #endif
166 };
167 
168 /*
169  * internal prototypes
170  */
171 RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE* varaddr);
172 void copy_data_to_host_var(DBPROCESS * dbproc, TDS_SERVER_TYPE srctype, const BYTE * src, DBINT srclen,
173  BYTE * dest, DBINT destlen,
174  int bindtype, DBINT *indicator);
175 
176 int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum, ...);
177 int _dblib_handle_info_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
178 int _dblib_handle_err_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
179 int _dblib_check_and_handle_interrupt(void * vdbproc);
180 
181 void _dblib_setTDS_version(TDSLOGIN * tds_login, DBINT version);
182 void _dblib_convert_err(DBPROCESS * dbproc, TDS_INT len);
183 
184 DBINT _convert_char(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
185 DBINT _convert_intn(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
186 
187 RETCODE _bcp_clear_storage(DBPROCESS * dbproc);
188 RETCODE _bcp_get_prog_data(DBPROCESS * dbproc);
189 
190 extern MHANDLEFUNC _dblib_msg_handler;
191 extern EHANDLEFUNC _dblib_err_handler;
192 
193 #define CHECK_PARAMETER(x, msg, ret) if (!(x)) { dbperror(dbproc, (msg), 0); return ret; }
194 #define CHECK_NULP(x, func, param_num, ret) if (!(x)) { dbperror(dbproc, SYBENULP, 0, func, (int) param_num); return ret; }
195 #define CHECK_PARAMETER_NOPROC(x, msg) if (!(x)) { dbperror(NULL, (msg), 0); return FAIL; }
196 #define DBPERROR_RETURN(x, msg) if (x) { dbperror(dbproc, (msg), 0); return FAIL; }
197 #define DBPERROR_RETURN3(x, msg, a, b, c) if (x) { dbperror(dbproc, (msg), 0, a, b, c); return FAIL; }
198 #define CHECK_CONN(ret) do { CHECK_PARAMETER(dbproc, SYBENULL, (ret)); \
199  if (IS_TDSDEAD(dbproc->tds_socket)) { dbperror(dbproc, SYBEDDNE, 0); return (ret); } } while(0)
200 
201 
202 #ifdef __cplusplus
203 #if 0
204 {
205 #endif
206 }
207 #endif
208 
209 #include <freetds/popvis.h>
210 
211 #endif
Definition: dblib.h:114
-
Information for a server connection.
Definition: tds.h:1141
-
Definition: dblib.h:86
-
int msdblib
boolean use ms behaviour
Definition: dblib.h:152
-
Definition: tds.h:511
-
Definition: dblib.h:107
-
Definition: dblib.h:71
-
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition: dblib.c:533
-
Definition: tds.h:1029
-
Definition: dblib.h:120
-
Definition: tds.h:1563
-
Definition: dblib.h:98
-
Definition: dblib.h:49
-
Definition: tds.h:876
-
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition: dblib.c:8093
-
Definition: sybdb.h:341
-
Definition: dblib.h:42
-
int _dblib_check_and_handle_interrupt(void *vdbproc)
check interrupts for libtds.
Definition: dbutil.c:192
-
Definition: buffering.h:1
-
Definition: dblib.h:59
-
Definition: sybdb.h:335
+
1 /*
+
2  * Copyright 2003 James K. Lowden <jklowden@schemamania.org>
+
3  * Redistribution and use in source and binary forms, with or without
+
4  * modification, are permitted, provided that redistributions of source
+
5  * code retain the above copyright notice.
+
6  */
+
7 
+
8  /*
+
9  * The purpose of this file is to help look up character set names.
+
10  *
+
11  * Any given encoding may be known by several (usually similar) aliases.
+
12  * For example, a system using ASCII encoding may report the character set as
+
13  * "ASCII", "US-ASCII", or "ISO646-US", among others. For details on what your system
+
14  * uses, you may wish to consult the nl_langinfo(3) manual page.
+
15  *
+
16  * GNU iconv converts a byte sequence from one encoding to another, but before it can do
+
17  * so, it must be told which is which. In the list below, the preferred GNU iconv(3) name
+
18  * is on the left and an alias is on the right. It is a simple exercise, left to the reader,
+
19  * to write a function that uses these data to look up the canonical name when provided
+
20  * an alias.
+
21  */
+
22 
+
23 #ifndef _ALTERNATIVE_CHARACTER_SETS_H_
+
24 #define _ALTERNATIVE_CHARACTER_SETS_H_
+
25 
+
26 /*
+
27  * $Id: alternative_character_sets.h,v 1.10 2005-02-26 13:08:32 freddy77 Exp $
+
28  */
+
29 
+
30 /*
+
31  * This list is sorted alphabetically, except that the most
+
32  * commonly used character sets are first.
+
33  */
+
34  /* ASCII */
+
35  { "US-ASCII", "US-ASCII" }
+
36  , { "US-ASCII", "ANSI_X3.4-1968" }
+
37  , { "US-ASCII", "ANSI_X3.4-1986" }
+
38  , { "US-ASCII", "ASCII" }
+
39  , { "US-ASCII", "CP367" }
+
40  , { "US-ASCII", "CSASCII" }
+
41  , { "US-ASCII", "IBM367" }
+
42  , { "US-ASCII", "ISO-IR-6" }
+
43  , { "US-ASCII", "ISO646-US" }
+
44  , { "US-ASCII", "ISO_646.IRV:1991" }
+
45  , { "US-ASCII", "US" }
+
46  , { "US-ASCII", "646" } /* NetBSD default */
+
47  /* ISO_8859-1 */
+
48  , { "ISO-8859-1", "ISO-8859-1" }
+
49  , { "ISO-8859-1", "CP819" }
+
50  , { "ISO-8859-1", "CSISOLATIN1" }
+
51  , { "ISO-8859-1", "IBM819" }
+
52  , { "ISO-8859-1", "ISO-IR-100" }
+
53  , { "ISO-8859-1", "ISO8859-1" }
+
54  , { "ISO-8859-1", "ISO_8859-1" }
+
55  , { "ISO-8859-1", "ISO_8859-1:1987" }
+
56  , { "ISO-8859-1", "L1" }
+
57  , { "ISO-8859-1", "LATIN1" }
+
58  , { "ISO-8859-1", "iso81" }
+
59  , { "ISO-8859-1", "iso88591" }
+
60  /* UCS-2 */
+
61  , { "UCS-2", "UCS-2" }
+
62  , { "UCS-2", "CSUNICODE" }
+
63  , { "UCS-2", "ISO-10646-UCS-2" }
+
64  , { "UCS-2", "UCS2" }
+
65  , { "UCS-2", "ucs2" }
+
66  , { "UCS-2-INTERNAL", "UCS-2-INTERNAL" }
+
67  , { "UCS-2-SWAPPED", "UCS-2-SWAPPED" }
+
68  , { "UCS-2BE", "UCS-2BE" }
+
69  , { "UCS-2BE", "CSUNICODE11" }
+
70  , { "UCS-2BE", "UNICODE-1-1" }
+
71  , { "UCS-2BE", "UNICODEBIG" }
+
72  , { "UCS-2LE", "UCS-2LE" }
+
73  , { "UCS-2LE", "UNICODELITTLE" }
+
74  /* UTF-8 */
+
75  , { "UTF-8", "UTF-8" }
+
76  , { "UTF-8", "UTF8" }
+
77  , { "UTF-8", "utf8" }
+
78 
+
79  /* Basically alphabetical from here */
+
80  , { "ARMSCII-8", "ARMSCII-8" }
+
81  , { "BIG-5", "BIG-5" }
+
82  , { "BIG-5", "BIG-FIVE" }
+
83  , { "BIG-5", "BIG5" }
+
84  , { "BIG-5", "BIGFIVE" }
+
85  , { "BIG-5", "CN-BIG5" }
+
86  , { "BIG-5", "CSBIG5" }
+
87  , { "BIG-5", "big5" }
+
88  , { "BIG5-HKSCS", "BIG5-HKSCS" }
+
89  , { "BIG5-HKSCS", "BIG5HKSCS" }
+
90  , { "C99", "C99" }
+
91  , { "CHINESE", "CHINESE" }
+
92  , { "CHINESE", "CSISO58GB231280" }
+
93  , { "CHINESE", "GB_2312-80" }
+
94  , { "CHINESE", "ISO-IR-58" }
+
95  , { "CHINESE", "hp15CN" }
+
96  , { "CN", "CN" }
+
97  , { "CN", "CSISO57GB1988" }
+
98  , { "CN", "GB_1988-80" }
+
99  , { "CN", "ISO-IR-57" }
+
100  , { "CN", "ISO646-CN" }
+
101  , { "CN-GB", "CN-GB" }
+
102  , { "CN-GB", "CSGB2312" }
+
103  , { "CN-GB", "EUC-CN" }
+
104  , { "CN-GB", "EUCCN" }
+
105  , { "CN-GB", "GB2312" }
+
106  , { "CN-GB-ISOIR165", "CN-GB-ISOIR165" }
+
107  , { "CN-GB-ISOIR165", "ISO-IR-165" }
+
108  , { "CP1133", "CP1133" }
+
109  , { "CP1133", "IBM-CP1133" }
+
110  , { "CP1250", "CP1250" }
+
111  , { "CP1250", "MS-EE" }
+
112  , { "CP1250", "WINDOWS-1250" }
+
113  , { "CP1250", "cp1250" }
+
114  , { "CP1251", "CP1251" }
+
115  , { "CP1251", "MS-CYRL" }
+
116  , { "CP1251", "WINDOWS-1251" }
+
117  , { "CP1251", "cp1251" }
+
118  , { "CP1252", "CP1252" }
+
119  , { "CP1252", "MS-ANSI" }
+
120  , { "CP1252", "WINDOWS-1252" }
+
121  , { "CP1252", "cp1252" }
+
122  , { "CP1253", "CP1253" }
+
123  , { "CP1253", "MS-GREEK" }
+
124  , { "CP1253", "WINDOWS-1253" }
+
125  , { "CP1253", "cp1253" }
+
126  , { "CP1254", "CP1254" }
+
127  , { "CP1254", "MS-TURK" }
+
128  , { "CP1254", "WINDOWS-1254" }
+
129  , { "CP1254", "cp1254" }
+
130  , { "CP1255", "CP1255" }
+
131  , { "CP1255", "MS-HEBR" }
+
132  , { "CP1255", "WINDOWS-1255" }
+
133  , { "CP1255", "cp1255" }
+
134  , { "CP1256", "CP1256" }
+
135  , { "CP1256", "MS-ARAB" }
+
136  , { "CP1256", "WINDOWS-1256" }
+
137  , { "CP1256", "cp1256" }
+
138  , { "CP1257", "CP1257" }
+
139  , { "CP1257", "WINBALTRIM" }
+
140  , { "CP1257", "WINDOWS-1257" }
+
141  , { "CP1257", "cp1257" }
+
142  , { "CP1258", "CP1258" }
+
143  , { "CP1258", "WINDOWS-1258" }
+
144  , { "CP1258", "cp1258" }
+
145  , { "CP1361", "CP1361" }
+
146  , { "CP1361", "JOHAB" }
+
147  , { "CP850", "CP850" }
+
148  , { "CP850", "850" }
+
149  , { "CP850", "CSPC850MULTILINGUAL" }
+
150  , { "CP850", "IBM850" }
+
151  , { "CP850", "cp850" }
+
152  , { "CP862", "CP862" }
+
153  , { "CP862", "862" }
+
154  , { "CP862", "CSPC862LATINHEBREW" }
+
155  , { "CP862", "IBM862" }
+
156  , { "CP862", "cp862" }
+
157  , { "CP866", "CP866" }
+
158  , { "CP866", "866" }
+
159  , { "CP866", "CSIBM866" }
+
160  , { "CP866", "IBM866" }
+
161  , { "CP866", "cp866" }
+
162  , { "CP874", "CP874" }
+
163  , { "CP874", "WINDOWS-874" }
+
164  , { "CP874", "cp874" }
+
165  , { "CP932", "CP932" }
+
166  , { "CP936", "CP936" }
+
167  , { "CP936", "GBK" }
+
168  , { "CP949", "CP949" }
+
169  , { "CP949", "UHC" }
+
170  , { "CP950", "CP950" }
+
171  , { "CP437", "CP437" }
+
172  , { "CP437", "cp437" }
+
173  , { "CP437", "IBM437" }
+
174  , { "EUC-JP", "EUC-JP" }
+
175  , { "EUC-JP", "CSEUCPKDFMTJAPANESE" }
+
176  , { "EUC-JP", "EUCJP" }
+
177  , { "EUC-JP", "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE"}
+
178  , { "EUC-JP", "eucJP" }
+
179  , { "EUC-KR", "EUC-KR" }
+
180  , { "EUC-KR", "CSEUCKR" }
+
181  , { "EUC-KR", "EUCKR" }
+
182  , { "EUC-KR", "eucKR" }
+
183  , { "EUC-TW", "CSEUCTW" }
+
184  , { "EUC-TW", "EUC-TW" }
+
185  , { "EUC-TW", "EUCTW" }
+
186  , { "EUC-TW", "eucTW" }
+
187  , { "GB18030", "GB18030" }
+
188  , { "GEORGIAN-ACADEMY", "GEORGIAN-ACADEMY" }
+
189  , { "GEORGIAN-PS", "GEORGIAN-PS" }
+
190  , { "HZ", "HZ" }
+
191  , { "HZ", "HZ-GB-2312" }
+
192  , { "ISO-2022-CN", "ISO-2022-CN" }
+
193  , { "ISO-2022-CN", "CSISO2022CN" }
+
194  , { "ISO-2022-CN-EXT", "ISO-2022-CN-EXT" }
+
195  , { "ISO-2022-JP", "ISO-2022-JP" }
+
196  , { "ISO-2022-JP", "CSISO2022JP" }
+
197  , { "ISO-2022-JP-1", "ISO-2022-JP-1" }
+
198  , { "ISO-2022-JP-2", "ISO-2022-JP-2" }
+
199  , { "ISO-2022-JP-2", "CSISO2022JP2" }
+
200  , { "ISO-2022-KR", "ISO-2022-KR" }
+
201  , { "ISO-2022-KR", "CSISO2022KR" }
+
202  , { "ISO-8859-10", "ISO-8859-10" }
+
203  , { "ISO-8859-10", "CSISOLATIN6" }
+
204  , { "ISO-8859-10", "ISO-IR-157" }
+
205  , { "ISO-8859-10", "ISO8859-10" }
+
206  , { "ISO-8859-10", "ISO_8859-10" }
+
207  , { "ISO-8859-10", "ISO_8859-10:1992" }
+
208  , { "ISO-8859-10", "L6" }
+
209  , { "ISO-8859-10", "LATIN6" }
+
210  , { "ISO-8859-13", "ISO-8859-13" }
+
211  , { "ISO-8859-13", "ISO-IR-179" }
+
212  , { "ISO-8859-13", "ISO_8859-13" }
+
213  , { "ISO-8859-13", "L7" }
+
214  , { "ISO-8859-13", "LATIN7" }
+
215  , { "ISO-8859-14", "ISO-8859-14" }
+
216  , { "ISO-8859-14", "ISO-CELTIC" }
+
217  , { "ISO-8859-14", "ISO-IR-199" }
+
218  , { "ISO-8859-14", "ISO_8859-14" }
+
219  , { "ISO-8859-14", "ISO_8859-14:1998" }
+
220  , { "ISO-8859-14", "L8" }
+
221  , { "ISO-8859-14", "LATIN8" }
+
222  , { "ISO-8859-15", "ISO8859-15" }
+
223  , { "ISO-8859-15", "ISO-8859-15" }
+
224  , { "ISO-8859-15", "ISO-IR-203" }
+
225  , { "ISO-8859-15", "ISO_8859-15" }
+
226  , { "ISO-8859-15", "ISO_8859-15:1998" }
+
227  , { "ISO-8859-15", "iso815" }
+
228  , { "ISO-8859-15", "iso885915" }
+
229  , { "ISO-8859-16", "ISO-8859-16" }
+
230  , { "ISO-8859-16", "ISO-IR-226" }
+
231  , { "ISO-8859-16", "ISO_8859-16" }
+
232  , { "ISO-8859-16", "ISO_8859-16:2000" }
+
233  , { "ISO-8859-2", "ISO-8859-2" }
+
234  , { "ISO-8859-2", "CSISOLATIN2" }
+
235  , { "ISO-8859-2", "ISO8859-2" }
+
236  , { "ISO-8859-2", "ISO-IR-101" }
+
237  , { "ISO-8859-2", "ISO_8859-2" }
+
238  , { "ISO-8859-2", "ISO_8859-2:1987" }
+
239  , { "ISO-8859-2", "L2" }
+
240  , { "ISO-8859-2", "LATIN2" }
+
241  , { "ISO-8859-2", "iso82" }
+
242  , { "ISO-8859-2", "iso88592" }
+
243  , { "ISO-8859-3", "ISO-8859-3" }
+
244  , { "ISO-8859-3", "CSISOLATIN3" }
+
245  , { "ISO-8859-3", "ISO-IR-109" }
+
246  , { "ISO-8859-3", "ISO_8859-3" }
+
247  , { "ISO-8859-3", "ISO_8859-3:1988" }
+
248  , { "ISO-8859-3", "L3" }
+
249  , { "ISO-8859-3", "LATIN3" }
+
250  , { "ISO-8859-3", "iso83" }
+
251  , { "ISO-8859-3", "iso88593" }
+
252  , { "ISO-8859-4", "ISO8859-4" }
+
253  , { "ISO-8859-4", "CSISOLATIN4" }
+
254  , { "ISO-8859-4", "ISO-8859-4" }
+
255  , { "ISO-8859-4", "ISO-IR-110" }
+
256  , { "ISO-8859-4", "ISO_8859-4" }
+
257  , { "ISO-8859-4", "ISO_8859-4:1988" }
+
258  , { "ISO-8859-4", "L4" }
+
259  , { "ISO-8859-4", "LATIN4" }
+
260  , { "ISO-8859-4", "iso84" }
+
261  , { "ISO-8859-4", "iso88594" }
+
262  , { "ISO-8859-5", "ISO-8859-5" }
+
263  , { "ISO-8859-5", "CSISOLATINCYRILLIC" }
+
264  , { "ISO-8859-5", "CYRILLIC" }
+
265  , { "ISO-8859-5", "ISO8859-5" }
+
266  , { "ISO-8859-5", "ISO-IR-144" }
+
267  , { "ISO-8859-5", "ISO8859-5" }
+
268  , { "ISO-8859-5", "ISO_8859-5" }
+
269  , { "ISO-8859-5", "ISO_8859-5:1988" }
+
270  , { "ISO-8859-5", "iso85" }
+
271  , { "ISO-8859-5", "iso88595" }
+
272  , { "ISO-8859-6", "ISO-8859-6" }
+
273  , { "ISO-8859-6", "ARABIC" }
+
274  , { "ISO-8859-6", "ASMO-708" }
+
275  , { "ISO-8859-6", "CSISOLATINARABIC" }
+
276  , { "ISO-8859-6", "ECMA-114" }
+
277  , { "ISO-8859-6", "ISO-IR-127" }
+
278  , { "ISO-8859-6", "ISO8859-6" }
+
279  , { "ISO-8859-6", "ISO_8859-6" }
+
280  , { "ISO-8859-6", "ISO_8859-6:1987" }
+
281  , { "ISO-8859-6", "iso86" }
+
282  , { "ISO-8859-6", "iso88596" }
+
283  , { "ISO-8859-7", "ISO-8859-7" }
+
284  , { "ISO-8859-7", "CSISOLATINGREEK" }
+
285  , { "ISO-8859-7", "ECMA-118" }
+
286  , { "ISO-8859-7", "ELOT_928" }
+
287  , { "ISO-8859-7", "GREEK" }
+
288  , { "ISO-8859-7", "GREEK8" }
+
289  , { "ISO-8859-7", "ISO-IR-126" }
+
290  , { "ISO-8859-7", "ISO8859-7" }
+
291  , { "ISO-8859-7", "ISO_8859-7" }
+
292  , { "ISO-8859-7", "ISO_8859-7:1987" }
+
293  , { "ISO-8859-7", "iso87" }
+
294  , { "ISO-8859-7", "iso88597" }
+
295  , { "ISO-8859-8", "ISO-8859-8" }
+
296  , { "ISO-8859-8", "CSISOLATINHEBREW" }
+
297  , { "ISO-8859-8", "HEBREW" }
+
298  , { "ISO-8859-8", "ISO8859-8" }
+
299  , { "ISO-8859-8", "ISO-IR-138" }
+
300  , { "ISO-8859-8", "ISO_8859-8" }
+
301  , { "ISO-8859-8", "ISO_8859-8:1988" }
+
302  , { "ISO-8859-8", "iso88" }
+
303  , { "ISO-8859-8", "iso88598" }
+
304  , { "ISO-8859-9", "ISO-8859-9" }
+
305  , { "ISO-8859-9", "CSISOLATIN5" }
+
306  , { "ISO-8859-9", "ISO-IR-148" }
+
307  , { "ISO-8859-9", "ISO8859-9" }
+
308  , { "ISO-8859-9", "ISO_8859-9" }
+
309  , { "ISO-8859-9", "ISO_8859-9:1989" }
+
310  , { "ISO-8859-9", "L5" }
+
311  , { "ISO-8859-9", "LATIN5" }
+
312  , { "ISO-8859-9", "iso88599" }
+
313  , { "ISO-8859-9", "iso89" }
+
314  , { "ISO-IR-14", "ISO-IR-14" }
+
315  , { "ISO-IR-14", "CSISO14JISC6220RO" }
+
316  , { "ISO-IR-14", "ISO646-JP" }
+
317  , { "ISO-IR-14", "JIS_C6220-1969-RO" }
+
318  , { "ISO-IR-14", "JP" }
+
319  , { "ISO-IR-149", "ISO-IR-149" }
+
320  , { "ISO-IR-149", "CSKSC56011987" }
+
321  , { "ISO-IR-149", "KOREAN" }
+
322  , { "ISO-IR-149", "KSC_5601" }
+
323  , { "ISO-IR-149", "KS_C_5601-1987" }
+
324  , { "ISO-IR-149", "KS_C_5601-1989" }
+
325  , { "ISO-IR-159", "ISO-IR-159" }
+
326  , { "ISO-IR-159", "CSISO159JISX02121990" }
+
327  , { "ISO-IR-159", "JIS_X0212" }
+
328  , { "ISO-IR-159", "JIS_X0212-1990" }
+
329  , { "ISO-IR-159", "JIS_X0212.1990-0" }
+
330  , { "ISO-IR-159", "X0212" }
+
331  , { "ISO-IR-166", "ISO-IR-166" }
+
332  , { "ISO-IR-166", "TIS-620" }
+
333  , { "ISO-IR-166", "TIS620" }
+
334  , { "ISO-IR-166", "TIS620-0" }
+
335  , { "ISO-IR-166", "TIS620.2529-1" }
+
336  , { "ISO-IR-166", "TIS620.2533-0" }
+
337  , { "ISO-IR-166", "TIS620.2533-1" }
+
338  , { "ISO-IR-166", "thai8" }
+
339  , { "ISO-IR-166", "tis620" }
+
340  , { "ISO-IR-87", "ISO-IR-87" }
+
341  , { "ISO-IR-87", "CSISO87JISX0208" }
+
342  , { "ISO-IR-87", "JIS0208" }
+
343  , { "ISO-IR-87", "JIS_C6226-1983" }
+
344  , { "ISO-IR-87", "JIS_X0208" }
+
345  , { "ISO-IR-87", "JIS_X0208-1983" }
+
346  , { "ISO-IR-87", "JIS_X0208-1990" }
+
347  , { "ISO-IR-87", "X0208" }
+
348  , { "JAVA", "JAVA" }
+
349  , { "JISX0201-1976", "JISX0201-1976" }
+
350  , { "JISX0201-1976", "CSHALFWIDTHKATAKANA" }
+
351  , { "JISX0201-1976", "JIS_X0201" }
+
352  , { "JISX0201-1976", "X0201" }
+
353  , { "KOI8-R", "KOI8-R" }
+
354  , { "KOI8-R", "CSKOI8R" }
+
355  , { "KOI8-RU", "KOI8-RU" }
+
356  , { "KOI8-T", "KOI8-T" }
+
357  , { "KOI8-U", "KOI8-U" }
+
358  , { "MAC", "MAC" }
+
359  , { "MAC", "CSMACINTOSH" }
+
360  , { "MAC", "MACINTOSH" }
+
361  , { "MAC", "MACROMAN" }
+
362  , { "MACARABIC", "MACARABIC" }
+
363  , { "MACCENTRALEUROPE", "MACCENTRALEUROPE" }
+
364  , { "MACCROATIAN", "MACCROATIAN" }
+
365  , { "MACCYRILLIC", "MACCYRILLIC" }
+
366  , { "MACGREEK", "MACGREEK" }
+
367  , { "MACHEBREW", "MACHEBREW" }
+
368  , { "MACICELAND", "MACICELAND" }
+
369  , { "MACROMANIA", "MACROMANIA" }
+
370  , { "MACTHAI", "MACTHAI" }
+
371  , { "MACTURKISH", "MACTURKISH" }
+
372  , { "MACUKRAINE", "MACUKRAINE" }
+
373  , { "MULELAO-1", "MULELAO-1" }
+
374  , { "NEXTSTEP", "NEXTSTEP" }
+
375  , { "ROMAN8", "ROMAN8" }
+
376  , { "ROMAN8", "CSHPROMAN8" }
+
377  , { "ROMAN8", "HP-ROMAN8" }
+
378  , { "ROMAN8", "R8" }
+
379  , { "ROMAN8", "roma8" }
+
380  , { "ROMAN8", "roman8" }
+
381  , { "SJIS", "SJIS" }
+
382  , { "SJIS", "CSSHIFTJIS" }
+
383  , { "SJIS", "MS_KANJI" }
+
384  , { "SJIS", "SHIFT-JIS" }
+
385  , { "SJIS", "SHIFT_JIS" }
+
386  , { "SJIS", "sjis" }
+
387  , { "TCVN", "TCVN" }
+
388  , { "TCVN", "TCVN-5712" }
+
389  , { "TCVN", "TCVN5712-1" }
+
390  , { "TCVN", "TCVN5712-1:1993" }
+
391  , { "UCS-4", "UCS-4" }
+
392  , { "UCS-4", "CSUCS4" }
+
393  , { "UCS-4", "ISO-10646-UCS-4" }
+
394  , { "UCS-4", "UCS4" }
+
395  , { "UCS-4", "ucs4" }
+
396  , { "UCS-4-INTERNAL", "UCS-4-INTERNAL" }
+
397  , { "UCS-4-SWAPPED", "UCS-4-SWAPPED" }
+
398  , { "UCS-4BE", "UCS-4BE" }
+
399  , { "UCS-4LE", "UCS-4LE" }
+
400  , { "UTF-16", "UTF-16" }
+
401  , { "UTF-16", "UTF16" }
+
402  , { "UTF-16BE", "UTF-16BE" }
+
403  , { "UTF-16LE", "UTF-16LE" }
+
404  , { "UTF-32", "UTF-32" }
+
405  , { "UTF-32BE", "UTF-32BE" }
+
406  , { "UTF-32LE", "UTF-32LE" }
+
407  , { "UTF-7", "UTF-7" }
+
408  , { "UTF-7", "CSUNICODE11UTF7" }
+
409  , { "UTF-7", "UNICODE-1-1-UTF-7" }
+
410  , { "UTF-7", "UTF7" }
+
411  , { "VISCII", "VISCII" }
+
412  , { "VISCII", "CSVISCII" }
+
413  , { "VISCII", "VISCII1.1-1" }
+
414 
+
415  /*
+
416  * The following are noted in Tru64 manuals, but
+
417  * have no canonical names in FreeTDS
+
418  *
+
419  * TACTIS TACTIS codeset
+
420  * dechanyu DEC Hanyu codeset
+
421  * dechanzi DEC Hanzi codeset
+
422  * deckanji DEC Kanji codeset
+
423  * deckorean DEC Korean codeset
+
424  * sdeckanji Super DEC Kanji codeset
+
425  */
+
426 
+
427  /* no stopper row; add your own */
+
428 #endif
diff -Nru freetds-1.1.6/doc/reference/a00380_source.html freetds-1.2.3/doc/reference/a00380_source.html --- freetds-1.1.6/doc/reference/a00380_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00380_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/alloca.h Source File +FreeTDS API: include/freetds/bool.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
alloca.h
+
bool.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
22 extern "C"
23 # endif
24 void *alloca (size_t);
25 # endif
26 #endif
+
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
+
34 typedef 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_ */
+
diff -Nru freetds-1.1.6/doc/reference/a00383_source.html freetds-1.2.3/doc/reference/a00383_source.html --- freetds-1.1.6/doc/reference/a00383_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00383_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/bool.h Source File +FreeTDS API: include/freetds/bytes.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
bool.h
+
bytes.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 <stdbool.h>
28 
29 #else
30 
31 #undef true
32 #undef false
33 #undef bool
34 typedef 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_ */
+
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_
+
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)
+
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 
+
87 typedef union {
+
88  uint16_t usi;
+
89  uint8_t uc[2];
+
90 } TDS_MAY_ALIAS TDS_BYTE_CONVERT2;
+
91 
+
92 typedef 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 #if defined (__GNUC__) && (__GNUC__ >= 4) && defined (__OPTIMIZE__)
+
188 # define TDS_BSWAP16(val) __builtin_bswap16(val)
+
189 # define TDS_BSWAP32(val) __builtin_bswap32(val)
+
190 #elif defined(_MSC_VER)
+
191 # define TDS_BSWAP16(val) _byteswap_ushort(val)
+
192 # define TDS_BSWAP32(val) _byteswap_ulong(val)
+
193 #endif
+
194 
+
195 #if defined(TDS_BSWAP16) && !defined(WORDS_BIGENDIAN)
+
196 # undef TDS_GET_UA2BE
+
197 # undef TDS_GET_UA4BE
+
198 # define TDS_GET_UA2BE(ptr) TDS_BSWAP16(TDS_GET_UA2LE(ptr))
+
199 # define TDS_GET_UA4BE(ptr) TDS_BSWAP32(TDS_GET_UA4LE(ptr))
+
200 
+
201 # undef TDS_PUT_UA2BE
+
202 # undef TDS_PUT_UA4BE
+
203 # define TDS_PUT_UA2BE(ptr,val) do {\
+
204  uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0)
+
205 # define TDS_PUT_UA4BE(ptr,val) do {\
+
206  uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0)
+
207 #elif defined(TDS_BSWAP16) && defined(WORDS_BIGENDIAN)
+
208 # undef TDS_GET_UA2LE
+
209 # undef TDS_GET_UA4LE
+
210 # define TDS_GET_UA2LE(ptr) TDS_BSWAP16(TDS_GET_UA2BE(ptr))
+
211 # define TDS_GET_UA4LE(ptr) TDS_BSWAP32(TDS_GET_UA4BE(ptr))
+
212 
+
213 # undef TDS_PUT_UA2LE
+
214 # undef TDS_PUT_UA4LE
+
215 # define TDS_PUT_UA2LE(ptr,val) do {\
+
216  uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2BE(ptr,_tds_si); } while(0)
+
217 # define TDS_PUT_UA4LE(ptr,val) do {\
+
218  uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4BE(ptr,_tds_i); } while(0)
+
219 #endif
+
220 
+
221 #if defined(__GNUC__) && defined(__powerpc__) && defined(WORDS_BIGENDIAN)
+
222 # undef TDS_GET_UA2LE
+
223 # undef TDS_GET_UA4LE
+
224 static inline uint16_t
+
225 TDS_GET_UA2LE(void *ptr)
+
226 {
+
227  unsigned long res;
+
228  __asm__ ("lhbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint16_t *)ptr));
+
229  return (uint16_t) res;
+
230 }
+
231 static inline uint32_t
+
232 TDS_GET_UA4LE(void *ptr)
+
233 {
+
234  unsigned long res;
+
235  __asm__ ("lwbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint32_t *)ptr));
+
236  return (uint32_t) res;
+
237 }
+
238 
+
239 # undef TDS_PUT_UA2LE
+
240 # undef TDS_PUT_UA4LE
+
241 static inline void
+
242 TDS_PUT_UA2LE(void *ptr, unsigned data)
+
243 {
+
244  __asm__ ("sthbrx %1,0,%2\n" : "=m" (*(uint16_t *)ptr) : "r" (data), "r" (ptr));
+
245 }
+
246 static inline void
+
247 TDS_PUT_UA4LE(void *ptr, unsigned data)
+
248 {
+
249  __asm__ ("stwbrx %1,0,%2\n" : "=m" (*(uint32_t *)ptr) : "r" (data), "r" (ptr));
+
250 }
+
251 #endif
+
252 
+
253 #endif
+
+
Definition: bytes.h:87
diff -Nru freetds-1.1.6/doc/reference/a00386_source.html freetds-1.2.3/doc/reference/a00386_source.html --- freetds-1.1.6/doc/reference/a00386_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00386_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/bytes.h Source File +FreeTDS API: include/freetds/character_sets.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
bytes.h
+
character_sets.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_
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 /* TODO optimize (use swap, unaligned platforms) */
39 
40 /* one byte, easy... */
41 #define TDS_GET_A1LE(ptr) (((uint8_t *)(ptr))[0])
42 #define TDS_GET_A1BE(ptr) TDS_GET_A1LE(ptr)
43 #define TDS_GET_UA1LE(ptr) TDS_GET_A1LE(ptr)
44 #define TDS_GET_UA1BE(ptr) TDS_GET_A1LE(ptr)
45 
46 #define TDS_PUT_A1LE(ptr,val) do { ((uint8_t *)(ptr))[0] = (val); } while(0)
47 #define TDS_PUT_A1BE(ptr,val) TDS_PUT_A1LE(ptr,val)
48 #define TDS_PUT_UA1LE(ptr,val) TDS_PUT_A1LE(ptr,val)
49 #define TDS_PUT_UA1BE(ptr,val) TDS_PUT_A1LE(ptr,val)
50 
51 /* two bytes */
52 #define TDS_GET_UA2LE(ptr) (((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0])
53 #define TDS_GET_UA2BE(ptr) (((uint8_t *)(ptr))[0] * 0x100u + ((uint8_t *)(ptr))[1])
54 #define TDS_GET_A2LE(ptr) TDS_GET_UA2LE(ptr)
55 #define TDS_GET_A2BE(ptr) TDS_GET_UA2BE(ptr)
56 
57 #define TDS_PUT_UA2LE(ptr,val) do {\
58  ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = (uint8_t)(val); } while(0)
59 #define TDS_PUT_UA2BE(ptr,val) do {\
60  ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[1] = (uint8_t)(val); } while(0)
61 #define TDS_PUT_A2LE(ptr,val) TDS_PUT_UA2LE(ptr,val)
62 #define TDS_PUT_A2BE(ptr,val) TDS_PUT_UA2BE(ptr,val)
63 
64 /* four bytes */
65 #define TDS_GET_UA4LE(ptr) \
66  (((uint8_t *)(ptr))[3] * 0x1000000u + ((uint8_t *)(ptr))[2] * 0x10000u +\
67  ((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0])
68 #define TDS_GET_UA4BE(ptr) \
69  (((uint8_t *)(ptr))[0] * 0x1000000u + ((uint8_t *)(ptr))[1] * 0x10000u +\
70  ((uint8_t *)(ptr))[2] * 0x100u + ((uint8_t *)(ptr))[3])
71 #define TDS_GET_A4LE(ptr) TDS_GET_UA4LE(ptr)
72 #define TDS_GET_A4BE(ptr) TDS_GET_UA4BE(ptr)
73 
74 #define TDS_PUT_UA4LE(ptr,val) do {\
75  ((uint8_t *)(ptr))[3] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>16);\
76  ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = (uint8_t)(val); } while(0)
77 #define TDS_PUT_UA4BE(ptr,val) do {\
78  ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>16);\
79  ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[3] = (uint8_t)(val); } while(0)
80 #define TDS_PUT_A4LE(ptr,val) TDS_PUT_UA4LE(ptr,val)
81 #define TDS_PUT_A4BE(ptr,val) TDS_PUT_UA4BE(ptr,val)
82 
83 #if defined(__GNUC__)
84 # define TDS_MAY_ALIAS __attribute__((__may_alias__))
85 #else
86 # define TDS_MAY_ALIAS
87 #endif
88 
89 typedef union {
90  uint16_t usi;
91  uint8_t uc[2];
92 } TDS_MAY_ALIAS TDS_BYTE_CONVERT2;
93 
94 typedef union {
95  uint32_t ui;
96  uint8_t uc[4];
97 } TDS_MAY_ALIAS TDS_BYTE_CONVERT4;
98 
99 /* architecture dependent */
100 /* map to generic macros or redefine for aligned and same endianess */
101 #ifdef WORDS_BIGENDIAN
102 # define TDS_GET_A1(ptr) TDS_GET_A1BE(ptr)
103 # define TDS_GET_UA1(ptr) TDS_GET_UA1BE(ptr)
104 # define TDS_GET_A2(ptr) TDS_GET_A2BE(ptr)
105 # define TDS_GET_UA2(ptr) TDS_GET_UA2BE(ptr)
106 # define TDS_GET_A4(ptr) TDS_GET_A4BE(ptr)
107 # define TDS_GET_UA4(ptr) TDS_GET_UA4BE(ptr)
108 # undef TDS_GET_A2BE
109 # undef TDS_GET_A4BE
110 # define TDS_GET_A2BE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi)
111 # define TDS_GET_A4BE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui)
112 
113 # define TDS_PUT_A1(ptr,val) TDS_PUT_A1BE(ptr,val)
114 # define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1BE(ptr,val)
115 # define TDS_PUT_A2(ptr,val) TDS_PUT_A2BE(ptr,val)
116 # define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2BE(ptr,val)
117 # define TDS_PUT_A4(ptr,val) TDS_PUT_A4BE(ptr,val)
118 # define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4BE(ptr,val)
119 # undef TDS_PUT_A2BE
120 # undef TDS_PUT_A4BE
121 # define TDS_PUT_A2BE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val))
122 # define TDS_PUT_A4BE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val))
123 # define TDS_HOST2LE(val) TDS_BYTE_SWAP16(val)
124 # define TDS_HOST4LE(val) TDS_BYTE_SWAP32(val)
125 # define TDS_HOST2BE(val) (val)
126 # define TDS_HOST4BE(val) (val)
127 #else
128 # define TDS_GET_A1(ptr) TDS_GET_A1LE(ptr)
129 # define TDS_GET_UA1(ptr) TDS_GET_UA1LE(ptr)
130 # define TDS_GET_A2(ptr) TDS_GET_A2LE(ptr)
131 # define TDS_GET_UA2(ptr) TDS_GET_UA2LE(ptr)
132 # define TDS_GET_A4(ptr) TDS_GET_A4LE(ptr)
133 # define TDS_GET_UA4(ptr) TDS_GET_UA4LE(ptr)
134 # undef TDS_GET_A2LE
135 # undef TDS_GET_A4LE
136 # define TDS_GET_A2LE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi)
137 # define TDS_GET_A4LE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui)
138 
139 # define TDS_PUT_A1(ptr,val) TDS_PUT_A1LE(ptr,val)
140 # define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1LE(ptr,val)
141 # define TDS_PUT_A2(ptr,val) TDS_PUT_A2LE(ptr,val)
142 # define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2LE(ptr,val)
143 # define TDS_PUT_A4(ptr,val) TDS_PUT_A4LE(ptr,val)
144 # define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4LE(ptr,val)
145 # undef TDS_PUT_A2LE
146 # undef TDS_PUT_A4LE
147 # define TDS_PUT_A2LE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val))
148 # define TDS_PUT_A4LE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val))
149 # define TDS_HOST2LE(val) (val)
150 # define TDS_HOST4LE(val) (val)
151 # define TDS_HOST2BE(val) TDS_BYTE_SWAP16(val)
152 # define TDS_HOST4BE(val) TDS_BYTE_SWAP32(val)
153 #endif
154 
155 /* these platform support unaligned fetch/store */
156 /* map unaligned macro to aligned ones */
157 #if defined(__i386__) || defined(__amd64__) || defined(__CRIS__) ||\
158  defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__) ||\
159  defined(__s390__) || defined(__s390x__) || defined(__m68k__) ||\
160  (defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_IX86) || defined(_M_X64))) ||\
161  defined(__ARM_FEATURE_UNALIGNED) ||\
162  defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) ||\
163  (defined(_M_ARM) && (_M_ARM >= 7))
164 # ifdef WORDS_BIGENDIAN
165 # undef TDS_GET_UA2BE
166 # undef TDS_GET_UA4BE
167 # define TDS_GET_UA2BE(ptr) TDS_GET_A2BE(ptr)
168 # define TDS_GET_UA4BE(ptr) TDS_GET_A4BE(ptr)
169 
170 # undef TDS_PUT_UA2BE
171 # undef TDS_PUT_UA4BE
172 # define TDS_PUT_UA2BE(ptr,val) TDS_PUT_A2BE(ptr,val)
173 # define TDS_PUT_UA4BE(ptr,val) TDS_PUT_A4BE(ptr,val)
174 # else
175 # undef TDS_GET_UA2LE
176 # undef TDS_GET_UA4LE
177 # define TDS_GET_UA2LE(ptr) TDS_GET_A2LE(ptr)
178 # define TDS_GET_UA4LE(ptr) TDS_GET_A4LE(ptr)
179 
180 # undef TDS_PUT_UA2LE
181 # undef TDS_PUT_UA4LE
182 # define TDS_PUT_UA2LE(ptr,val) TDS_PUT_A2LE(ptr,val)
183 # define TDS_PUT_UA4LE(ptr,val) TDS_PUT_A4LE(ptr,val)
184 # endif
185 #endif
186 
187 #if defined(__linux__) && defined(__GNUC__) && (defined(__i386__) || defined(__amd64__))
188 # include <byteswap.h>
189 # undef TDS_GET_UA2BE
190 # undef TDS_GET_UA4BE
191 # define TDS_GET_UA2BE(ptr) ({ uint16_t _tds_si = TDS_GET_UA2LE(ptr); bswap_16(_tds_si); })
192 # define TDS_GET_UA4BE(ptr) ({ uint32_t _tds_i = TDS_GET_UA4LE(ptr); bswap_32(_tds_i); })
193 
194 # undef TDS_PUT_UA2BE
195 # undef TDS_PUT_UA4BE
196 # define TDS_PUT_UA2BE(ptr,val) do {\
197  uint16_t _tds_si = bswap_16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0)
198 # define TDS_PUT_UA4BE(ptr,val) do {\
199  uint32_t _tds_i = bswap_32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0)
200 #endif
201 
202 #if defined(__GNUC__) && defined(__powerpc__) && defined(WORDS_BIGENDIAN)
203 # undef TDS_GET_UA2LE
204 # undef TDS_GET_UA4LE
205 static inline uint16_t
206 TDS_GET_UA2LE(void *ptr)
207 {
208  unsigned long res;
209  __asm__ ("lhbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint16_t *)ptr));
210  return (uint16_t) res;
211 }
212 static inline uint32_t
213 TDS_GET_UA4LE(void *ptr)
214 {
215  unsigned long res;
216  __asm__ ("lwbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint32_t *)ptr));
217  return (uint32_t) res;
218 }
219 
220 # undef TDS_PUT_UA2LE
221 # undef TDS_PUT_UA4LE
222 static inline void
223 TDS_PUT_UA2LE(void *ptr, unsigned data)
224 {
225  __asm__ ("sthbrx %1,0,%2\n" : "=m" (*(uint16_t *)ptr) : "r" (data), "r" (ptr));
226 }
227 static inline void
228 TDS_PUT_UA4LE(void *ptr, unsigned data)
229 {
230  __asm__ ("stwbrx %1,0,%2\n" : "=m" (*(uint32_t *)ptr) : "r" (data), "r" (ptr));
231 }
232 #endif
233 
234 #endif
Definition: bytes.h:89
+
1 /*
+
2  * These are the canonical names for character sets accepted by GNU iconv.
+
3  * See its documentation for the standard it follows.
+
4  *
+
5  * GNU iconv accepts other character set names, too, and your favorite operating system
+
6  * very likely uses still other names to represent the _same_ character set.
+
7  *
+
8  * Alternative character set names are mapped to these canonical ones in
+
9  * alternative_character_sets.h and are accessed with canonical_charset();
+
10  */
+
11  {"ISO-8859-1", 1, 1}
+
12  , {"UTF-8", 1, 4}
+
13  , {"UCS-2LE", 2, 2}
+
14  , {"UCS-2BE", 2, 2}
+
15  , {"UCS-2", 2, 2}
+
16  , {"US-ASCII", 1, 1}
+
17  , {"UCS-4", 4, 4}
+
18  , {"UCS-4BE", 4, 4}
+
19  , {"UCS-4LE", 4, 4}
+
20  , {"UTF-16", 2, 4}
+
21  , {"UTF-16BE", 2, 4}
+
22  , {"UTF-16LE", 2, 4}
+
23  , {"UTF-32", 4, 4}
+
24  , {"UTF-32BE", 4, 4}
+
25  , {"UTF-32LE", 4, 4}
+
26  , {"UTF-7", 1, 4}
+
27  , {"UCS-2-INTERNAL", 2, 2}
+
28  , {"UCS-2-SWAPPED", 2, 2}
+
29  , {"UCS-4-INTERNAL", 4, 4}
+
30  , {"UCS-4-SWAPPED", 4, 4}
+
31  , {"C99", 1, 1}
+
32  , {"JAVA", 1, 1}
+
33  , {"ISO-8859-2", 1, 1}
+
34  , {"ISO-8859-3", 1, 1}
+
35  , {"ISO-8859-4", 1, 1}
+
36  , {"ISO-8859-5", 1, 1}
+
37  , {"ISO-8859-6", 1, 1}
+
38  , {"ISO-8859-7", 1, 1}
+
39  , {"ISO-8859-8", 1, 1}
+
40  , {"ISO-8859-9", 1, 1}
+
41  , {"ISO-8859-10", 1, 1}
+
42  , {"ISO-8859-13", 1, 1}
+
43  , {"ISO-8859-14", 1, 1}
+
44  , {"ISO-8859-15", 1, 1}
+
45  , {"ISO-8859-16", 1, 1}
+
46  , {"KOI8-R", 1, 1}
+
47  , {"KOI8-U", 1, 1}
+
48  , {"KOI8-RU", 1, 1}
+
49  , {"CP1250", 1, 1}
+
50  , {"CP1251", 1, 1}
+
51  , {"CP1252", 1, 1}
+
52  , {"CP1253", 1, 1}
+
53  , {"CP1254", 1, 1}
+
54  , {"CP1255", 1, 1}
+
55  , {"CP1256", 1, 1}
+
56  , {"CP1257", 1, 1}
+
57  , {"CP1258", 1, 1}
+
58  , {"CP850", 1, 1}
+
59  , {"CP862", 1, 1}
+
60  , {"CP866", 1, 1}
+
61  , {"CP437", 1, 1}
+
62  , {"MAC", 1, 1}
+
63  , {"MACCENTRALEUROPE", 1, 1}
+
64  , {"MACICELAND", 1, 1}
+
65  , {"MACCROATIAN", 1, 1}
+
66  , {"MACROMANIA", 1, 1}
+
67  , {"MACCYRILLIC", 1, 1}
+
68  , {"MACUKRAINE", 1, 1}
+
69  , {"MACGREEK", 1, 1}
+
70  , {"MACTURKISH", 1, 1}
+
71  , {"MACHEBREW", 1, 1}
+
72  , {"MACARABIC", 1, 1}
+
73  , {"MACTHAI", 1, 1}
+
74  , {"ROMAN8", 1, 1}
+
75  , {"NEXTSTEP", 1, 1}
+
76  , {"ARMSCII-8", 1, 1}
+
77  , {"GEORGIAN-ACADEMY", 1, 1}
+
78  , {"GEORGIAN-PS", 1, 1}
+
79  , {"KOI8-T", 1, 1}
+
80  , {"MULELAO-1", 1, 1}
+
81  , {"CP1133", 1, 1}
+
82  , {"ISO-IR-166", 1, 1}
+
83  , {"CP874", 1, 1}
+
84  , {"CP936", 1, 2}
+
85  , {"CN", 1, 1}
+
86  , {"CP932", 1, 2}
+
87  , {"CN-GB", 1, 2}
+
88  , {"CP950", 1, 2}
+
89  , {"CP949", 1, 2}
+
90  , {"CP1361", 1, 2}
+
91  , {"BIG-5", 1, 2}
+
92  , {"BIG5-HKSCS", 1, 2}
+
93  , {"SJIS", 1, 2}
+
94  , {"EUC-KR", 1, 2}
+
95  , {"VISCII", 1, 1}
+
96  , {"ISO-IR-14", 1, 1}
+
97  , {"EUC-JP", 1, 3}
+
98  , {"EUC-TW", 1, 4}
+
99  , {"ISO-2022-JP", 1, 1}
+
100  , {"ISO-2022-KR", 1, 2}
+
101  , {"ISO-2022-CN", 1, 4}
+
102  , {"ISO-2022-CN-EXT", 1, 4}
+
103  , {"ISO-2022-JP-2", 1, 1}
+
104  , {"GB18030", 1, 4}
+
105  /*
+
106  * Beyond this point, I don't know the right answers.
+
107  * If you can provide the correct min/max (byte/char) values, please
+
108  * correct them if necessary and move them above the stopper row.
+
109  * Will the person vetting the last unknown row please turn off the lights?
+
110  * --jkl April 2003
+
111  */
+
112  , {"", 0, 0} /* stopper row */
+
113 
+
114  , {"TCVN", 1, 1}
+
115  , {"JISX0201-1976", 1, 1}
+
116  , {"ISO-IR-87", 1, 1}
+
117  , {"ISO-IR-159", 1, 1}
+
118  , {"CHINESE", 1, 1}
+
119  , {"CN-GB-ISOIR165", 1, 1}
+
120  , {"ISO-IR-149", 1, 1}
+
121  , {"ISO-2022-JP-1", 1, 1}
+
122  , {"HZ", 1, 1}
+
123  /* stopper row */
+
124  , {"", 0, 0}
+
125 
diff -Nru freetds-1.1.6/doc/reference/a00389_source.html freetds-1.2.3/doc/reference/a00389_source.html --- freetds-1.1.6/doc/reference/a00389_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00389_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/checks.h Source File +FreeTDS API: include/freetds/charset_lookup.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
checks.h
+
charset_lookup.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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_CHECKS_H
21 #define TDS_CHECKS_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_CONN_EXTRA(conn)
40 
41 #if ENABLE_EXTRA_CHECKS
42 void tds_check_tds_extra(const TDSSOCKET * tds);
43 void tds_check_context_extra(const TDSCONTEXT * ctx);
44 void tds_check_env_extra(const TDSENV * env);
45 void tds_check_column_extra(const TDSCOLUMN * column);
46 void tds_check_resultinfo_extra(const TDSRESULTINFO * res_info);
47 void tds_check_cursor_extra(const TDSCURSOR * cursor);
48 void tds_check_dynamic_extra(const TDSDYNAMIC * dynamic);
49 #endif
50 
51 #if defined(HAVE_VALGRIND_MEMCHECK_H) && ENABLE_EXTRA_CHECKS
52 # include <valgrind/memcheck.h>
53 # define TDS_MARK_UNDEFINED(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len)
54 #else
55 # define TDS_MARK_UNDEFINED(ptr, len) do {} while(0)
56 #endif
57 
58 #include <freetds/popvis.h>
59 
60 #endif /* TDS_CHECKS_H */
Information for a server connection.
Definition: tds.h:1141
-
Metadata about columns in regular and compute rows.
Definition: tds.h:690
-
Hold information for any results.
Definition: tds.h:769
-
Definition: tds.h:1029
-
Current environment as reported by the server.
Definition: tds.h:963
-
Holds informations about a cursor.
Definition: tds.h:937
-
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:977
+
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 
+
34 static const struct charset_alias *charset_lookup(register const char *str, register size_t len);
+
35 #line 2 "charset_lookup.gperf"
+
36 struct 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
+
49 inline
+
50 #endif
+
51 #endif
+
52 static unsigned int
+
53 hash_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 
+ +
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  };
+
500 static 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)
+
878 const struct charset_alias *
+
879 charset_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 
+
Definition: charset_lookup.h:124
+
Definition: charset_lookup.h:36
diff -Nru freetds-1.1.6/doc/reference/a00392_source.html freetds-1.2.3/doc/reference/a00392_source.html --- freetds-1.1.6/doc/reference/a00392_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00392_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/configs.h Source File +FreeTDS API: include/freetds/checks.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
configs.h
+
checks.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 <freetds/sysconfdir.h>
24 
25 #ifndef _tds_h_
26 #error freetds/tds.h must be included before freetds/configs.h
27 #endif
28 
29 #ifdef __cplusplus
30 extern "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_ */
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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_CHECKS_H
+
21 #define TDS_CHECKS_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
+
43 void tds_check_tds_extra(const TDSSOCKET * tds);
+
44 void tds_check_context_extra(const TDSCONTEXT * ctx);
+
45 void tds_check_env_extra(const TDSENV * env);
+
46 void tds_check_column_extra(const TDSCOLUMN * column);
+
47 void tds_check_resultinfo_extra(const TDSRESULTINFO * res_info);
+
48 void tds_check_cursor_extra(const TDSCURSOR * cursor);
+
49 void tds_check_dynamic_extra(const TDSDYNAMIC * dynamic);
+
50 void 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
+
61 void 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 */
+
+
Current environment as reported by the server.
Definition: tds.h:964
+
Definition: tds.h:1566
+
Hold information for any results.
Definition: tds.h:770
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: tds.h:1030
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
Holds informations about a cursor.
Definition: tds.h:938
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
diff -Nru freetds-1.1.6/doc/reference/a00395_source.html freetds-1.2.3/doc/reference/a00395_source.html --- freetds-1.1.6/doc/reference/a00395_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00395_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/convert.h Source File +FreeTDS API: include/freetds/configs.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
convert.h
+
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 _tdsconvert_h_
21 #define _tdsconvert_h_
22 
23 #include <freetds/pushvis.h>
24 
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #if 0
29 }
30 #endif
31 #endif
32 
33 typedef 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;
49  TDS_DATETIMEALL dta;
50  TDS_TIME time;
51  TDS_DATE date;
52  TDS_BIGTIME bigtime;
53  TDS_BIGDATETIME bigdatetime;
54  TDS_NUMERIC n;
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 
86 unsigned char tds_willconvert(int srctype, int desttype);
87 
88 TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype);
89 TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, TDS_UINT srclen);
90 TDS_INT tds_convert(const TDSCONTEXT * context, int srctype, const TDS_CHAR * src, TDS_UINT srclen, int desttype, CONV_RESULT * cr);
91 
92 size_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_ */
Definition: convert.h:66
-
Definition: proto.h:61
-
Definition: proto.h:44
-
TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition: convert.c:1878
-
Definition: convert.h:62
-
Definition: proto.h:25
-
Definition: tds.h:1029
-
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3058
-
Definition: proto.h:55
-
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2915
-
Used by tds_datecrack.
Definition: tds.h:157
-
Definition: proto.h:38
-
Definition: convert.h:33
-
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:2970
-
Definition: proto.h:49
-
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information...
Definition: tds.h:144
+
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/sysconfdir.h>
+
24 
+
25 #ifndef _tds_h_
+
26 #error freetds/tds.h must be included before freetds/configs.h
+
27 #endif
+
28 
+
29 #ifdef __cplusplus
+
30 extern "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_ */
diff -Nru freetds-1.1.6/doc/reference/a00398_source.html freetds-1.2.3/doc/reference/a00398_source.html --- freetds-1.1.6/doc/reference/a00398_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00398_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/data.h Source File +FreeTDS API: include/freetds/convert.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
data.h
+
convert.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_len, \
35  tds_ ## name ## _put_info, \
36  tds_ ## name ## _put, \
37  TDS_EXTRA_CHECK(tds_ ## name ## _check) \
38 }
39 
40 tds_func_get_info tds_invalid_get_info;
41 tds_func_row_len tds_invalid_row_len;
42 tds_func_get_data tds_invalid_get;
43 tds_func_put_info_len tds_invalid_put_info_len;
44 tds_func_put_info tds_invalid_put_info;
45 tds_func_put_data tds_invalid_put;
46 tds_func_check tds_invalid_check;
47 
48 tds_func_get_info tds_generic_get_info;
49 tds_func_row_len tds_generic_row_len;
50 tds_func_get_data tds_generic_get;
51 tds_func_put_info_len tds_generic_put_info_len;
52 tds_func_put_info tds_generic_put_info;
53 tds_func_put_data tds_generic_put;
54 tds_func_check tds_generic_check;
55 
56 tds_func_get_info tds_numeric_get_info;
57 tds_func_row_len tds_numeric_row_len;
58 tds_func_get_data tds_numeric_get;
59 tds_func_put_info_len tds_numeric_put_info_len;
60 tds_func_put_info tds_numeric_put_info;
61 tds_func_put_data tds_numeric_put;
62 tds_func_check tds_numeric_check;
63 
64 #define tds_variant_get_info tds_generic_get_info
65 #define tds_variant_row_len tds_generic_row_len
66 tds_func_get_data tds_variant_get;
67 #define tds_variant_put_info_len tds_generic_put_info_len
68 tds_func_put_info tds_variant_put_info;
69 tds_func_put_data tds_variant_put;
70 tds_func_check tds_variant_check;
71 
72 tds_func_get_info tds_msdatetime_get_info;
73 tds_func_row_len tds_msdatetime_row_len;
74 tds_func_get_data tds_msdatetime_get;
75 #define tds_msdatetime_put_info_len tds_generic_put_info_len
76 tds_func_put_info tds_msdatetime_put_info;
77 tds_func_put_data tds_msdatetime_put;
78 tds_func_check tds_msdatetime_check;
79 
80 tds_func_get_info tds_clrudt_get_info;
81 tds_func_row_len tds_clrudt_row_len;
82 #define tds_clrudt_get tds_generic_get
83 tds_func_put_info_len tds_clrudt_put_info_len;
84 tds_func_put_info tds_clrudt_put_info;
85 #define tds_clrudt_put tds_generic_put
86 tds_func_check tds_clrudt_check;
87 
88 tds_func_get_info tds_sybbigtime_get_info;
89 tds_func_row_len tds_sybbigtime_row_len;
90 tds_func_get_data tds_sybbigtime_get;
91 tds_func_put_info_len tds_sybbigtime_put_info_len;
92 tds_func_put_info tds_sybbigtime_put_info;
93 tds_func_put_data tds_sybbigtime_put;
94 tds_func_check tds_sybbigtime_check;
95 
100 #ifndef TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
101 # define TDS_DEFINE_DEFAULT_FUNCS(name) \
102  const TDSCOLUMNFUNCS tds_ ## name ## _funcs = TDS_COMMON_FUNCS(name)
103 
104 TDS_DEFINE_DEFAULT_FUNCS(invalid);
105 TDS_DEFINE_DEFAULT_FUNCS(generic);
106 TDS_DEFINE_DEFAULT_FUNCS(numeric);
107 TDS_DEFINE_DEFAULT_FUNCS(variant);
108 TDS_DEFINE_DEFAULT_FUNCS(msdatetime);
109 TDS_DEFINE_DEFAULT_FUNCS(clrudt);
110 TDS_DEFINE_DEFAULT_FUNCS(sybbigtime);
111 #endif
112 
113 #include <freetds/popvis.h>
114 
115 #endif
TDSRET tds_generic_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
Read a data from wire.
Definition: data.c:707
-
TDSRET tds_generic_put(TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
Write data to wire.
Definition: data.c:943
-
TDSRET tds_generic_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
Put data information to wire.
Definition: data.c:871
+
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
+
26 extern "C"
+
27 {
+
28 #if 0
+
29 }
+
30 #endif
+
31 #endif
+
32 
+
33 typedef 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;
+
49  TDS_DATETIMEALL dta;
+
50  TDS_TIME time;
+
51  TDS_DATE date;
+
52  TDS_BIGTIME bigtime;
+
53  TDS_BIGDATETIME bigdatetime;
+
54  TDS_NUMERIC n;
+
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 
+
86 unsigned char tds_willconvert(int srctype, int desttype);
+
87 
+
88 TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype);
+
89 TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, TDS_UINT srclen);
+
90 TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr);
+
91 
+
92 size_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_ */
+
Definition: proto.h:39
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
Definition: proto.h:45
+
Definition: convert.h:62
+
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition: convert.c:3056
+
Definition: tds.h:1030
+
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:2968
+
Definition: proto.h:56
+
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:1878
+
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition: convert.c:2913
+
Definition: convert.h:34
+
Definition: proto.h:50
+
Definition: convert.h:66
+
Used by tds_datecrack.
Definition: tds.h:160
+
Definition: proto.h:26
+
Definition: proto.h:62
diff -Nru freetds-1.1.6/doc/reference/a00401_source.html freetds-1.2.3/doc/reference/a00401_source.html --- freetds-1.1.6/doc/reference/a00401_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00401_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/enum_cap.h Source File +FreeTDS API: include/freetds/data.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
enum_cap.h
+
data.h
-
1 typedef 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 
93 typedef 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 /* 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 
+
39 tds_func_get_info tds_invalid_get_info;
+
40 tds_func_row_len tds_invalid_row_len;
+
41 tds_func_get_data tds_invalid_get;
+
42 tds_func_put_info tds_invalid_put_info;
+
43 tds_func_put_data tds_invalid_put;
+
44 tds_func_check tds_invalid_check;
+
45 
+
46 tds_func_get_info tds_generic_get_info;
+
47 tds_func_row_len tds_generic_row_len;
+
48 tds_func_get_data tds_generic_get;
+
49 tds_func_put_info tds_generic_put_info;
+
50 tds_func_put_data tds_generic_put;
+
51 tds_func_check tds_generic_check;
+
52 
+
53 tds_func_get_info tds_numeric_get_info;
+
54 tds_func_row_len tds_numeric_row_len;
+
55 tds_func_get_data tds_numeric_get;
+
56 tds_func_put_info tds_numeric_put_info;
+
57 tds_func_put_data tds_numeric_put;
+
58 tds_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
+
62 tds_func_get_data tds_variant_get;
+
63 tds_func_put_info tds_variant_put_info;
+
64 tds_func_put_data tds_variant_put;
+
65 tds_func_check tds_variant_check;
+
66 
+
67 tds_func_get_info tds_msdatetime_get_info;
+
68 tds_func_row_len tds_msdatetime_row_len;
+
69 tds_func_get_data tds_msdatetime_get;
+
70 tds_func_put_info tds_msdatetime_put_info;
+
71 tds_func_put_data tds_msdatetime_put;
+
72 tds_func_check tds_msdatetime_check;
+
73 
+
74 tds_func_get_info tds_clrudt_get_info;
+
75 tds_func_row_len tds_clrudt_row_len;
+
76 #define tds_clrudt_get tds_generic_get
+
77 tds_func_put_info tds_clrudt_put_info;
+
78 #define tds_clrudt_put tds_generic_put
+
79 tds_func_check tds_clrudt_check;
+
80 
+
81 tds_func_get_info tds_sybbigtime_get_info;
+
82 tds_func_row_len tds_sybbigtime_row_len;
+
83 tds_func_get_data tds_sybbigtime_get;
+
84 tds_func_put_info tds_sybbigtime_put_info;
+
85 tds_func_put_data tds_sybbigtime_put;
+
86 tds_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 
+
96 TDS_DEFINE_DEFAULT_FUNCS(invalid);
+
97 TDS_DEFINE_DEFAULT_FUNCS(generic);
+
98 TDS_DEFINE_DEFAULT_FUNCS(numeric);
+
99 TDS_DEFINE_DEFAULT_FUNCS(variant);
+
100 TDS_DEFINE_DEFAULT_FUNCS(msdatetime);
+
101 TDS_DEFINE_DEFAULT_FUNCS(clrudt);
+
102 TDS_DEFINE_DEFAULT_FUNCS(sybbigtime);
+
103 #endif
+
104 
+
105 #include <freetds/popvis.h>
+
106 
+
107 #endif
+
+
TDSRET tds_generic_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
Put data information to wire.
Definition: data.c:871
+
TDSRET tds_generic_put(TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
Write data to wire.
Definition: data.c:915
+
TDSRET tds_generic_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
Read a data from wire.
Definition: data.c:709
diff -Nru freetds-1.1.6/doc/reference/a00404_source.html freetds-1.2.3/doc/reference/a00404_source.html --- freetds-1.1.6/doc/reference/a00404_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00404_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/iconv.h Source File +FreeTDS API: include/freetds/encodings.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
iconv.h
+
encodings.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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
28 typedef 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
54 extern "C"
55 {
56 #endif
57 
58 #if ! HAVE_ICONV
59 iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode);
60 size_t tds_sys_iconv(iconv_t cd, const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
61 int 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 typedef enum
70 { to_server, to_client } TDS_ICONV_DIRECTION;
71 
72 typedef struct _character_set_alias
73 {
74  const char *alias;
75  int canonic;
77 
78 typedef struct tds_errno_message_flags {
79  unsigned int e2big:1;
80  unsigned int eilseq:1;
81  unsigned int einval:1;
83 
84 typedef struct tdsiconvdir
85 {
86  TDS_ENCODING charset;
87 
88  iconv_t cd;
89 } TDSICONVDIR;
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  */
106  TDS_ERRNO_MESSAGE_FLAGS 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 
115 size_t tds_iconv(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION io,
116  const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
117 const char *tds_canonical_charset_name(const char *charset_name);
118 TDSICONV *tds_iconv_get(TDSCONNECTION * conn, const char *client_charset, const char *server_charset);
119 
120 #ifdef __cplusplus
121 }
122 #endif
123 
124 #include <freetds/popvis.h>
125 
126 #endif /* _tds_iconv_h_ */
iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode)
Inputs are FreeTDS canonical names, no other.
Definition: iconv.c:344
-
Information for a server connection.
Definition: tds.h:1141
-
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:551
-
Definition: iconv.h:78
-
Information relevant to libiconv.
Definition: tds.h:612
-
Definition: iconv.h:91
-
Definition: iconv.h:72
-
Definition: iconv.h:84
-
Definition: tds.h:1069
-
const char * tds_canonical_charset_name(const char *charset_name)
Determine canonical iconv character set name.
Definition: iconv.c:958
+
1 /*
+
2  * This file produced from ./encodings.pl on Thu Jul 9 09:01:42 2020
+
3  */
+
4 #ifdef TDS_ICONV_ENCODING_TABLES
+
5 
+
6 static 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 
+
104 static 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 
+
466 enum {
+
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 
+
Information relevant to libiconv.
Definition: tds.h:619
+
Definition: iconv.h:73
diff -Nru freetds-1.1.6/doc/reference/a00407_source.html freetds-1.2.3/doc/reference/a00407_source.html --- freetds-1.1.6/doc/reference/a00407_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00407_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/macros.h Source File +FreeTDS API: include/freetds/enum_cap.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
macros.h
+
enum_cap.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 #define TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0)
33 #define TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0]))
34 
35 #ifdef offsetof
36 #define TDS_OFFSET(type, field) offsetof(type, field)
37 #else
38 #define TDS_OFFSET(type, field) (((char*)&((type*)0)->field)-((char*)0))
39 #endif
40 
41 #if ENABLE_EXTRA_CHECKS
42 # if defined(__llvm__) || (defined(__GNUC__) && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
43 # define TDS_COMPILE_CHECK(name,check) \
44  _Static_assert(check,#name)
45 # elif defined(__GNUC__) && __GNUC__ >= 2
46 # define TDS_COMPILE_CHECK(name,check) \
47  extern int name[(check)?1:-1] __attribute__ ((unused))
48 # else
49 # define TDS_COMPILE_CHECK(name,check) \
50  extern int name[(check)?1:-1]
51 # endif
52 # define TDS_EXTRA_CHECK(stmt) stmt
53 #else
54 # define TDS_COMPILE_CHECK(name,check) \
55  extern int disabled_check_##name
56 # define TDS_EXTRA_CHECK(stmt)
57 #endif
58 
59 #if defined(__GNUC__) && __GNUC__ >= 3
60 # define TDS_LIKELY(x) __builtin_expect(!!(x), 1)
61 # define TDS_UNLIKELY(x) __builtin_expect(!!(x), 0)
62 #else
63 # define TDS_LIKELY(x) (x)
64 # define TDS_UNLIKELY(x) (x)
65 #endif
66 
67 #if ENABLE_EXTRA_CHECKS && defined(__GNUC__) && __GNUC__ >= 4
68 #define TDS_WUR __attribute__ ((__warn_unused_result__))
69 #else
70 #define TDS_WUR
71 #endif
72 
73 #endif
+
1 typedef 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 
+
93 typedef 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;
+
diff -Nru freetds-1.1.6/doc/reference/a00410_source.html freetds-1.2.3/doc/reference/a00410_source.html --- freetds-1.1.6/doc/reference/a00410_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00410_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/odbc.h Source File +FreeTDS API: include/freetds/iconv.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
odbc.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) 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>
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
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
69 extern "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 
92 struct _sql_error
93 {
94  const char *msg;
95  char state2[6];
96  char state3[6];
97  TDS_UINT native;
98  char *server;
99  int linenum;
100  int msgstate;
101  int row;
102 };
103 
105 {
106  struct _sql_error *errs;
107  int num_errors;
108  SQLRETURN lastrc;
109  char ranked;
110 };
111 
112 typedef struct _sql_errors TDS_ERRS;
113 
114 #if ENABLE_EXTRA_CHECKS
115 void odbc_check_struct_extra(void *p);
116 #else
117 static inline void odbc_check_struct_extra(void *p) {}
118 #endif
119 
120 #define ODBC_RETURN(handle, rc) \
121  do { odbc_check_struct_extra(handle); \
122  return handle->errs.lastrc = (rc); } while(0)
123 #define ODBC_RETURN_(handle) \
124  do { odbc_check_struct_extra(handle); \
125  return handle->errs.lastrc; } while(0)
126 
127 #define ODBC_EXIT(handle, rc) \
128  do { SQLRETURN _odbc_rc = handle->errs.lastrc = (rc); \
129  odbc_check_struct_extra(handle); \
130  tds_mutex_unlock(&handle->mtx); \
131  return _odbc_rc; } while(0)
132 #define ODBC_EXIT_(handle) \
133  do { SQLRETURN _odbc_rc = handle->errs.lastrc; \
134  odbc_check_struct_extra(handle); \
135  tds_mutex_unlock(&handle->mtx); \
136  return _odbc_rc; } while(0)
137 
138 
140 void odbc_errs_reset(struct _sql_errors *errs);
141 
143 void odbc_errs_add(struct _sql_errors *errs, const char *sqlstate, const char *msg);
144 
146 void odbc_errs_add_rdbms(struct _sql_errors *errs, TDS_UINT native, const char *sqlstate, const char *msg, int linenum,
147  int msgstate, const char *server, int row);
148 
149 struct _dheader
150 {
151  SQLSMALLINT sql_desc_alloc_type;
152  SQLINTEGER sql_desc_bind_type;
153  SQLULEN sql_desc_array_size;
154  /* TODO SQLLEN ?? see http://support.microsoft.com/default.aspx?scid=kb;en-us;298678 */
155  SQLSMALLINT sql_desc_count;
156  SQLUSMALLINT *sql_desc_array_status_ptr;
157  SQLULEN *sql_desc_rows_processed_ptr;
158  SQLLEN *sql_desc_bind_offset_ptr;
159 };
160 
161 struct _drecord
162 {
163  SQLUINTEGER sql_desc_auto_unique_value;
164  DSTR sql_desc_base_column_name;
165  DSTR sql_desc_base_table_name;
166  SQLINTEGER sql_desc_case_sensitive;
167  DSTR sql_desc_catalog_name;
168  SQLSMALLINT sql_desc_concise_type;
169  SQLPOINTER sql_desc_data_ptr;
170  SQLSMALLINT sql_desc_datetime_interval_code;
171  SQLINTEGER sql_desc_datetime_interval_precision;
172  SQLLEN sql_desc_display_size;
173  SQLSMALLINT sql_desc_fixed_prec_scale;
174  SQLLEN *sql_desc_indicator_ptr;
175  DSTR sql_desc_label;
176  SQLULEN sql_desc_length;
177  /* this point to a constant buffer, do not free or modify */
178  const char *sql_desc_literal_prefix;
179  /* this point to a constant buffer, do not free or modify */
180  const char *sql_desc_literal_suffix;
181  DSTR sql_desc_local_type_name;
182  DSTR sql_desc_name;
183  SQLSMALLINT sql_desc_nullable;
184  SQLINTEGER sql_desc_num_prec_radix;
185  SQLLEN sql_desc_octet_length;
186  SQLLEN *sql_desc_octet_length_ptr;
187  SQLSMALLINT sql_desc_parameter_type;
188  SQLSMALLINT sql_desc_precision;
189  SQLSMALLINT sql_desc_rowver;
190  SQLSMALLINT sql_desc_scale;
191  DSTR sql_desc_schema_name;
192  SQLSMALLINT sql_desc_searchable;
193  DSTR sql_desc_table_name;
194  SQLSMALLINT sql_desc_type;
195  /* this point to a constant buffer, do not free or modify */
196  const char *sql_desc_type_name;
197  SQLSMALLINT sql_desc_unnamed;
198  SQLSMALLINT sql_desc_unsigned;
199  SQLSMALLINT sql_desc_updatable;
200 };
201 
202 struct _hdesc
203 {
204  SQLSMALLINT htype; /* do not reorder this field */
205  struct _sql_errors errs; /* do not reorder this field */
206  tds_mutex mtx;
207  int type;
208  SQLHANDLE parent;
209  struct _dheader header;
210  struct _drecord *records;
211 };
212 
213 typedef struct _hdesc TDS_DESC;
214 
215 #define DESC_IRD 1
216 #define DESC_IPD 2
217 #define DESC_ARD 3
218 #define DESC_APD 4
219 
220 struct _heattr
221 {
222  SQLUINTEGER connection_pooling;
223  SQLUINTEGER cp_match;
224  SQLINTEGER odbc_version;
225  SQLINTEGER output_nts;
226 };
227 
228 struct _hchk
229 {
230  SQLSMALLINT htype; /* do not reorder this field */
231  struct _sql_errors errs; /* do not reorder this field */
232  tds_mutex mtx;
233 };
234 
235 struct _henv
236 {
237  SQLSMALLINT htype; /* do not reorder this field */
238  struct _sql_errors errs; /* do not reorder this field */
239  tds_mutex mtx;
240  TDSCONTEXT *tds_ctx;
241  struct _heattr attr;
242 };
243 
244 struct _hcattr
245 {
246  SQLUINTEGER access_mode;
247  SQLUINTEGER async_enable;
248  SQLUINTEGER auto_ipd;
249  SQLUINTEGER autocommit;
250  SQLUINTEGER connection_dead;
251  SQLUINTEGER connection_timeout;
252  DSTR current_catalog;
253  SQLUINTEGER login_timeout;
254  SQLUINTEGER metadata_id;
255  SQLUINTEGER odbc_cursors;
256  SQLUINTEGER packet_size;
257  SQLHWND quite_mode;
258  DSTR translate_lib;
259  SQLUINTEGER translate_option;
260  SQLUINTEGER txn_isolation;
261  SQLUINTEGER mars_enabled;
262  SQLUINTEGER cursor_type;
263  SQLUINTEGER bulk_enabled;
264 #ifdef TDS_NO_DM
265  SQLUINTEGER trace;
266  DSTR tracefile;
267 #endif
268 };
269 
270 #define TDS_MAX_APP_DESC 100
271 
272 struct _hstmt;
273 struct _hdbc
274 {
275  SQLSMALLINT htype; /* do not reorder this field */
276  struct _sql_errors errs; /* do not reorder this field */
277  tds_mutex mtx;
278  struct _henv *env;
280  DSTR dsn;
281  DSTR oldpwd;
282 #ifdef ENABLE_ODBC_WIDE
283  DSTR original_charset;
284  TDSICONV *mb_conv;
285 #endif
286 
294  struct _hstmt *stmt_list;
295  struct _hcattr attr;
297  TDS_DESC *uad[TDS_MAX_APP_DESC];
299  unsigned int cursor_support:1;
300  unsigned int use_oldpwd:1;
301  TDS_INT default_query_timeout;
302 
303  TDSBCPINFO *bcpinfo;
304  char *bcphint;
305 };
306 
307 struct _hsattr
308 {
309  /* TODO remove IRD, ARD, IPD, APD from statement, do not duplicate */
310 /* TDS_DESC *app_row_desc; */
311 /* TDS_DESC *app_param_desc; */
312  SQLUINTEGER async_enable;
313  SQLUINTEGER concurrency;
314  SQLUINTEGER cursor_scrollable;
315  SQLUINTEGER cursor_sensitivity;
316  SQLUINTEGER cursor_type;
317  SQLUINTEGER enable_auto_ipd;
318  SQLPOINTER fetch_bookmark_ptr;
319  SQLULEN keyset_size;
320  SQLULEN max_length;
321  SQLULEN max_rows;
322  SQLUINTEGER metadata_id;
323  SQLUINTEGER noscan;
324  /* apd->sql_desc_bind_offset_ptr */
325  /* SQLUINTEGER *param_bind_offset_ptr; */
326  /* apd->sql_desc_bind_type */
327  /* SQLUINTEGER param_bind_type; */
328  /* apd->sql_desc_array_status_ptr */
329  /* SQLUSMALLINT *param_operation_ptr; */
330  /* ipd->sql_desc_array_status_ptr */
331  /* SQLUSMALLINT *param_status_ptr; */
332  /* ipd->sql_desc_rows_processed_ptr */
333  /* SQLUSMALLINT *params_processed_ptr; */
334  /* apd->sql_desc_array_size */
335  /* SQLUINTEGER paramset_size; */
336  SQLUINTEGER query_timeout;
337  SQLUINTEGER retrieve_data;
338  /* ard->sql_desc_bind_offset_ptr */
339  /* SQLUINTEGER *row_bind_offset_ptr; */
340  /* ard->sql_desc_array_size */
341  /* SQLUINTEGER row_array_size; */
342  /* ard->sql_desc_bind_type */
343  /* SQLUINTEGER row_bind_type; */
344  SQLULEN row_number;
345  /* ard->sql_desc_array_status_ptr */
346  /* SQLUINTEGER *row_operation_ptr; */
347  /* ird->sql_desc_array_status_ptr */
348  /* SQLUINTEGER *row_status_ptr; */
349  /* ird->sql_desc_rows_processed_ptr */
350  /* SQLUINTEGER *rows_fetched_ptr; */
351  SQLUINTEGER simulate_cursor;
352  SQLUINTEGER use_bookmarks;
353  /* SQLGetStmtAttr only */
354 /* TDS_DESC *imp_row_desc; */
355 /* TDS_DESC *imp_param_desc; */
356  DSTR qn_msgtext;
357  DSTR qn_options;
358  SQLUINTEGER qn_timeout;
359 };
360 
361 typedef enum
362 {
363  NOT_IN_ROW,
364  IN_NORMAL_ROW,
365  IN_COMPUTE_ROW,
366  AFTER_COMPUTE_ROW,
367  PRE_NORMAL_ROW
368 } TDS_ODBC_ROW_STATUS;
369 
370 typedef enum
371 {
372  ODBC_SPECIAL_NONE = 0,
373  ODBC_SPECIAL_GETTYPEINFO = 1,
374  ODBC_SPECIAL_COLUMNS = 2,
375  ODBC_SPECIAL_PROCEDURECOLUMNS = 3,
376  ODBC_SPECIAL_SPECIALCOLUMNS = 4
377 } TDS_ODBC_SPECIAL_ROWS;
378 
379 struct _hstmt
380 {
381  SQLSMALLINT htype; /* do not reorder this field */
382  struct _sql_errors errs; /* do not reorder this field */
383  tds_mutex mtx;
384  struct _hdbc *dbc;
389 
391  struct _hstmt *next;
393  struct _hstmt *prev;
394 
395  /* begin prepared query stuff */
396  unsigned is_prepared_query:1;
397  unsigned prepared_query_is_func:1;
398  unsigned prepared_query_is_rpc:1;
403  unsigned need_reprepare:1;
404  unsigned param_data_called:1;
405  /* end prepared query stuff */
406 
413 
414  unsigned int curr_param_row, num_param_rows;
415 
417  unsigned int param_count;
418  int row;
420  TDS_INT8 row_count;
422  TDS_ODBC_ROW_STATUS row_status;
423  /* do NOT free dynamic, free from socket or attach to connection */
424  TDSDYNAMIC *dyn;
425  TDS_DESC *ard, *ird, *apd, *ipd;
426  TDS_DESC *orig_ard, *orig_apd;
427  SQLULEN sql_rowset_size;
428  struct _hsattr attr;
429  DSTR cursor_name; /* auto generated cursor name */
430  TDS_ODBC_SPECIAL_ROWS special_row;
431  /* do NOT free cursor, free from socket or attach to connection */
432  TDSCURSOR *cursor;
433 };
434 
435 typedef struct _henv TDS_ENV;
436 typedef struct _hdbc TDS_DBC;
437 typedef struct _hstmt TDS_STMT;
438 typedef struct _hchk TDS_CHK;
439 
440 typedef struct {
441  /* this must be the first member */
442  TDSCOLUMNFUNCS common;
443  void (*set_type_info)(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver);
444 } TDS_FUNCS;
445 
446 #define IS_HENV(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_ENV)
447 #define IS_HDBC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DBC)
448 #define IS_HSTMT(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_STMT)
449 #define IS_HDESC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DESC)
450 
451 /* fix a bug in MingW headers */
452 #ifdef __MINGW32__
453 #if SQL_INTERVAL_YEAR == (100 + SQL_CODE_SECOND)
454 
455 #undef SQL_INTERVAL_YEAR
456 #undef SQL_INTERVAL_MONTH
457 #undef SQL_INTERVAL_DAY
458 #undef SQL_INTERVAL_HOUR
459 #undef SQL_INTERVAL_MINUTE
460 #undef SQL_INTERVAL_SECOND
461 #undef SQL_INTERVAL_YEAR_TO_MONTH
462 #undef SQL_INTERVAL_DAY_TO_HOUR
463 #undef SQL_INTERVAL_DAY_TO_MINUTE
464 #undef SQL_INTERVAL_DAY_TO_SECOND
465 #undef SQL_INTERVAL_HOUR_TO_MINUTE
466 #undef SQL_INTERVAL_HOUR_TO_SECOND
467 #undef SQL_INTERVAL_MINUTE_TO_SECOND
468 
469 #define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
470 #define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
471 #define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
472 #define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
473 #define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
474 #define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
475 #define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
476 #define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
477 #define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
478 #define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
479 #define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
480 #define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
481 #define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
482 
483 #endif
484 #endif
485 
486 #ifdef _WIN32
487 bool get_login_info(HWND hwndParent, TDSLOGIN * login);
488 #endif
489 
490 #define ODBC_PARAM_LIST \
491  ODBC_PARAM(Servername) \
492  ODBC_PARAM(Server) \
493  ODBC_PARAM(DSN) \
494  ODBC_PARAM(UID) \
495  ODBC_PARAM(PWD) \
496  ODBC_PARAM(Address) \
497  ODBC_PARAM(Port) \
498  ODBC_PARAM(TDS_Version) \
499  ODBC_PARAM(Language) \
500  ODBC_PARAM(Database) \
501  ODBC_PARAM(TextSize) \
502  ODBC_PARAM(PacketSize) \
503  ODBC_PARAM(ClientCharset) \
504  ODBC_PARAM(DumpFile) \
505  ODBC_PARAM(DumpFileAppend) \
506  ODBC_PARAM(DebugFlags) \
507  ODBC_PARAM(Encryption) \
508  ODBC_PARAM(Trusted_Connection) \
509  ODBC_PARAM(APP) \
510  ODBC_PARAM(WSID) \
511  ODBC_PARAM(UseNTLMv2) \
512  ODBC_PARAM(MARS_Connection) \
513  ODBC_PARAM(REALM) \
514  ODBC_PARAM(ServerSPN) \
515  ODBC_PARAM(AttachDbFilename) \
516  ODBC_PARAM(ApplicationIntent)
517 
518 #define ODBC_PARAM(p) ODBC_PARAM_##p,
519 enum {
520  ODBC_PARAM_LIST
521  ODBC_PARAM_SIZE
522 };
523 #undef ODBC_PARAM
524 
525 
526 /*
527  * connectparams.h
528  */
529 
530 typedef struct {
531  const char *p;
532  size_t len;
534 
542 int odbc_parse_connect_string(TDS_ERRS *errs, const char *connect_string, const char *connect_string_end, TDSLOGIN * login, TDS_PARSED_PARAM *parsed_params);
543 int odbc_get_dsn_info(TDS_ERRS *errs, const char *DSN, TDSLOGIN * login);
544 #ifdef _WIN32
545 int odbc_build_connect_string(TDS_ERRS *errs, TDS_PARSED_PARAM *params, char **out);
546 #endif
547 
548 /*
549  * convert_tds2sql.c
550  */
551 SQLLEN odbc_tds2sql_col(TDS_STMT * stmt, TDSCOLUMN *curcol, int desttype, TDS_CHAR * dest, SQLULEN destlen, const struct _drecord *drec_ixd);
552 SQLLEN odbc_tds2sql_int4(TDS_STMT * stmt, TDS_INT *src, int desttype, TDS_CHAR * dest, SQLULEN destlen);
553 
554 
555 
556 /*
557  * descriptor.c
558  */
559 TDS_DESC *desc_alloc(SQLHANDLE parent, int desc_type, int alloc_type);
560 SQLRETURN desc_free(TDS_DESC * desc);
561 SQLRETURN desc_alloc_records(TDS_DESC * desc, unsigned count);
562 SQLRETURN desc_copy(TDS_DESC * dest, TDS_DESC * src);
563 SQLRETURN desc_free_records(TDS_DESC * desc);
564 TDS_DBC *desc_get_dbc(TDS_DESC *desc);
565 
566 /*
567  * odbc.c
568  */
569 SQLRETURN _SQLRowCount(SQLHSTMT hstmt, SQLLEN FAR * pcrow);
570 
571 /*
572  * odbc_checks.h
573  */
574 #if ENABLE_EXTRA_CHECKS
575 /* macro */
576 #define CHECK_ENV_EXTRA(env) odbc_check_env_extra(env)
577 #define CHECK_DBC_EXTRA(dbc) odbc_check_dbc_extra(dbc)
578 #define CHECK_STMT_EXTRA(stmt) odbc_check_stmt_extra(stmt)
579 #define CHECK_DESC_EXTRA(desc) odbc_check_desc_extra(desc)
580 /* declarations*/
581 void odbc_check_env_extra(TDS_ENV * env);
582 void odbc_check_dbc_extra(TDS_DBC * dbc);
583 void odbc_check_stmt_extra(TDS_STMT * stmt);
584 void odbc_check_desc_extra(TDS_DESC * desc);
585 #else
586 /* macro */
587 #define CHECK_ENV_EXTRA(env)
588 #define CHECK_DBC_EXTRA(dbc)
589 #define CHECK_STMT_EXTRA(stmt)
590 #define CHECK_DESC_EXTRA(desc)
591 #endif
592 
593 /*
594  * odbc_util.h
595  */
596 
597 /* helpers for ODBC wide string support */
598 #undef _wide
599 #undef _WIDE
600 #ifdef ENABLE_ODBC_WIDE
601 typedef union {
602  char mb[1];
603  SQLWCHAR wide[1];
604 } ODBC_CHAR;
605 # define _wide ,wide
606 # define _wide0 ,0
607 # define _WIDE ,int wide
608 #else
609 # define _wide
610 # define _wide0
611 # define _WIDE
612 # define ODBC_CHAR SQLCHAR
613 #endif
614 int odbc_set_stmt_query(struct _hstmt *stmt, const ODBC_CHAR *sql, int sql_len _WIDE);
615 void odbc_set_return_status(struct _hstmt *stmt, unsigned int n_row);
616 void odbc_set_return_params(struct _hstmt *stmt, unsigned int n_row);
617 
618 void odbc_set_sql_type_info(TDSCOLUMN * col, struct _drecord *drec, SQLINTEGER odbc_ver);
619 
620 int odbc_sql_to_c_type_default(int sql_type);
621 TDS_SERVER_TYPE odbc_sql_to_server_type(TDSCONNECTION * conn, int sql_type, int sql_unsigned);
622 TDS_SERVER_TYPE odbc_c_to_server_type(int c_type);
623 
624 unsigned int odbc_get_string_size(int size, const ODBC_CHAR * str _WIDE);
625 void odbc_rdbms_version(TDSSOCKET * tds_socket, char *pversion_string);
626 SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct _drecord *drec_ixd, const TDS_DESC* axd, unsigned int n_row);
627 
628 #ifdef ENABLE_ODBC_WIDE
629 DSTR* odbc_dstr_copy_flag(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str, int flag);
630 #define odbc_dstr_copy(dbc, s, len, out) \
631  odbc_dstr_copy_flag(dbc, s, len, sizeof((out)->mb) ? (out) : (out), wide)
632 #define odbc_dstr_copy_oct(dbc, s, len, out) \
633  odbc_dstr_copy_flag(dbc, s, len, out, wide|0x20)
634 #else
635 DSTR* odbc_dstr_copy(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str);
636 #define odbc_dstr_copy_oct odbc_dstr_copy
637 #endif
638 
639 
640 SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR * pcbBuffer, const char *s, int len, int flag);
641 #ifdef ENABLE_ODBC_WIDE
642 #define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
643  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))
644 #define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
645  odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
646 #else
647 #define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
648  odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10))
649 #define odbc_set_string_oct(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)?0x20:0x30))
651 #endif
652 
653 #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))
654 #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))
655 
656 SQLSMALLINT odbc_get_concise_sql_type(SQLSMALLINT type, SQLSMALLINT interval);
657 SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
658 SQLSMALLINT odbc_get_concise_c_type(SQLSMALLINT type, SQLSMALLINT interval);
659 SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
660 
661 SQLLEN odbc_get_octet_len(int c_type, const struct _drecord *drec);
662 void odbc_convert_err_set(struct _sql_errors *errs, TDS_INT err);
663 
664 /*
665  * prepare_query.c
666  */
667 SQLRETURN prepare_call(struct _hstmt *stmt);
668 SQLRETURN native_sql(struct _hdbc *dbc, DSTR *s);
669 int parse_prepared_query(struct _hstmt *stmt, bool compute_row);
670 int start_parse_prepared_query(struct _hstmt *stmt, bool compute_row);
671 int continue_parse_prepared_query(struct _hstmt *stmt, SQLPOINTER DataPtr, SQLLEN StrLen_or_Ind);
672 const char *parse_const_param(const char * s, TDS_SERVER_TYPE *type);
673 const char *odbc_skip_rpc_name(const char *s);
674 
675 /*
676  * sql2tds.c
677  */
678 SQLRETURN 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);
679 TDS_INT convert_datetime2server(int bindtype, const void *src, TDS_DATETIMEALL * dta);
680 
681 /*
682  * bcp.c
683  */
684 void odbc_bcp_free_storage(TDS_DBC *dbc);
685 void odbc_bcp_init(TDS_DBC *dbc, const ODBC_CHAR *tblname, const ODBC_CHAR *hfile, const ODBC_CHAR *errfile, int direction _WIDE);
686 void odbc_bcp_control(TDS_DBC *dbc, int field, void *value);
687 void odbc_bcp_colptr(TDS_DBC *dbc, const void * colptr, int table_column);
688 void odbc_bcp_sendrow(TDS_DBC *dbc);
689 int odbc_bcp_batch(TDS_DBC *dbc);
690 int odbc_bcp_done(TDS_DBC *dbc);
691 void odbc_bcp_bind(TDS_DBC *dbc, const void * varaddr, int prefixlen, int varlen, const void * terminator, int termlen, int vartype, int table_column);
692 
693 /*
694  * sqlwchar.c
695  */
696 #if SIZEOF_SQLWCHAR != SIZEOF_WCHAR_T
697 size_t sqlwcslen(const SQLWCHAR * s);
698 
699 typedef struct sqlwstr_buf {
700  struct sqlwstr_buf *next;
701  wchar_t buf[256];
702 } SQLWSTRBUF;
703 const wchar_t *sqlwstr(const SQLWCHAR * s, SQLWSTRBUF **bufs);
704 void sqlwstr_free(SQLWSTRBUF *bufs);
705 #define SQLWSTR_BUFS(n) SQLWSTRBUF *bufs = NULL
706 #define SQLWSTR(s) sqlwstr(s, &bufs)
707 #define SQLWSTR_FREE() sqlwstr_free(bufs)
708 #else
709 #define sqlwcslen(s) wcslen(s)
710 
711 #define SQLWSTR_BUFS(n) do {} while(0)
712 #define SQLWSTR(s) ((const wchar_t*)(s))
713 #define SQLWSTR_FREE() do {} while(0)
714 #endif
715 
716 #if SIZEOF_SQLWCHAR == 2
717 # if WORDS_BIGENDIAN
718 # define ODBC_WIDE_NAME "UCS-2BE"
719 # define ODBC_WIDE_NAME_UTF "UTF-16BE"
720 # else
721 # define ODBC_WIDE_NAME "UCS-2LE"
722 # define ODBC_WIDE_NAME_UTF "UTF-16LE"
723 # endif
724 const char *odbc_get_wide_name(TDSCONNECTION *conn);
725 #elif SIZEOF_SQLWCHAR == 4
726 # if WORDS_BIGENDIAN
727 # define ODBC_WIDE_NAME "UCS-4BE"
728 # else
729 # define ODBC_WIDE_NAME "UCS-4LE"
730 # endif
731 static inline const char *
732 odbc_get_wide_name(TDSCONNECTION *conn)
733 {
734  return ODBC_WIDE_NAME;
735 }
736 #else
737 #error SIZEOF_SQLWCHAR not supported !!
738 #endif
739 
740 #include <freetds/popvis.h>
741 
742 #ifdef __cplusplus
743 #if 0
744 {
745 #endif
746 }
747 #endif
748 
749 #endif
void odbc_rdbms_version(TDSSOCKET *tds_socket, char *pversion_string)
Returns the version of the RDBMS in the ODBC format.
Definition: odbc_util.c:847
-
Definition: odbc.h:307
-
Information for a server connection.
Definition: tds.h:1141
-
struct _hstmt * current_statement
Statement executing.
Definition: odbc.h:292
-
TDSPARAMINFO * params
parameters saved
Definition: odbc.h:408
-
char * prepared_pos
position in prepared query to check parameters, used only in RPC
Definition: odbc.h:412
-
DSTR query
query to execute
Definition: odbc.h:386
-
Definition: odbc.h:440
-
Definition: tds.h:511
-
Definition: odbc.h:92
-
Structure to hold a string.
Definition: string.h:36
-
Metadata about columns in regular and compute rows.
Definition: tds.h:690
-
struct _hstmt * stmt_list
list of all statements allocated from this connection
Definition: odbc.h:294
-
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:971
-
Definition: odbc.h:220
-
Definition: odbc.h:149
-
Hold information for any results.
Definition: tds.h:769
-
TDSSOCKET * tds
socket (only if active)
Definition: odbc.h:388
-
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:856
-
Definition: tds.h:1029
-
Definition: odbc.h:235
-
unsigned need_reprepare
Prepared statement needs to be prepared again.
Definition: odbc.h:403
-
Definition: odbc.h:379
-
Definition: tds.h:1563
-
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:279
-
Definition: iconv.h:91
-
Definition: tds.h:638
-
Definition: odbc.h:530
-
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:1093
-
TDS_INT8 row_count
row count to return
Definition: odbc.h:420
-
Definition: odbc.h:202
-
struct _hstmt * next
next in list
Definition: odbc.h:391
-
Definition: odbc.h:104
-
unsigned int param_count
number of parameter in current query
Definition: odbc.h:417
-
struct _hstmt * prev
previous in list
Definition: odbc.h:393
-
Definition: odbc.h:273
-
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:596
-
Definition: odbc.h:228
-
Holds informations about a cursor.
Definition: tds.h:937
-
int param_num
last valid parameter in params, it&#39;s a ODBC index (from 1 relative to descriptor) ...
Definition: odbc.h:410
-
Definition: odbc.h:161
-
TDS_ODBC_ROW_STATUS row_status
status of row, it can happen that this flag mark that we are still parsing row, this it&#39;s normal ...
Definition: odbc.h:422
-
Main include file for libtds.
-
Definition: tds.h:1069
-
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information...
Definition: tds.h:144
-
Definition: odbc.h:244
-
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:977
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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
+
28 typedef 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
+
54 extern "C"
+
55 {
+
56 #endif
+
57 
+
58 #if ! HAVE_ICONV
+
59 iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode);
+
60 size_t tds_sys_iconv(iconv_t cd, const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
+
61 int 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 typedef enum
+
70 { to_server, to_client } TDS_ICONV_DIRECTION;
+
71 
+
72 typedef struct _character_set_alias
+
73 {
+
74  const char *alias;
+
75  int canonic;
+ +
77 
+
78 typedef struct tds_errno_message_flags {
+
79  unsigned int e2big:1;
+
80  unsigned int eilseq:1;
+
81  unsigned int einval:1;
+ +
83 
+
84 typedef struct tdsiconvdir
+
85 {
+
86  TDS_ENCODING charset;
+
87 
+
88  iconv_t cd;
+
89 } TDSICONVDIR;
+
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  */
+
106  TDS_ERRNO_MESSAGE_FLAGS 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 
+
115 size_t tds_iconv(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION io,
+
116  const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
+
117 int tds_canonical_charset(const char *charset_name);
+
118 const char *tds_canonical_charset_name(const char *charset_name);
+
119 TDSICONV *tds_iconv_get(TDSCONNECTION * conn, const char *client_charset, const char *server_charset);
+
120 TDSICONV *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_ */
+
int tds_canonical_charset(const char *charset_name)
Determine canonical iconv character set.
Definition: iconv.c:968
+
Definition: iconv.h:78
+
Definition: iconv.h:92
+
Information for a server connection.
Definition: tds.h:1164
+
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:590
+
Information relevant to libiconv.
Definition: tds.h:619
+
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:756
+
Definition: iconv.h:85
+
iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode)
Inputs are FreeTDS canonical names, no other.
Definition: iconv.c:344
+
Definition: iconv.h:73
+
const char * tds_canonical_charset_name(const char *charset_name)
Determine canonical iconv character set name.
Definition: iconv.c:980
+
Definition: tds.h:1092
diff -Nru freetds-1.1.6/doc/reference/a00413_source.html freetds-1.2.3/doc/reference/a00413_source.html --- freetds-1.1.6/doc/reference/a00413_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00413_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/popvis.h Source File +FreeTDS API: include/freetds/macros.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
popvis.h
+
macros.h
-
1 #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
2 #pragma GCC visibility pop
3 #endif
+
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 #define TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0)
+
33 #define TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0]))
+
34 
+
35 #ifdef offsetof
+
36 #define TDS_OFFSET(type, field) offsetof(type, field)
+
37 #else
+
38 #define TDS_OFFSET(type, field) (((char*)&((type*)0)->field)-((char*)0))
+
39 #endif
+
40 
+
41 #if ENABLE_EXTRA_CHECKS
+
42 # if defined(__llvm__) || (defined(__GNUC__) && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
+
43 # define TDS_COMPILE_CHECK(name,check) \
+
44  _Static_assert(check,#name)
+
45 # elif defined(__GNUC__) && __GNUC__ >= 2
+
46 # define TDS_COMPILE_CHECK(name,check) \
+
47  extern int name[(check)?1:-1] __attribute__ ((unused))
+
48 # else
+
49 # define TDS_COMPILE_CHECK(name,check) \
+
50  extern int name[(check)?1:-1]
+
51 # endif
+
52 # define TDS_EXTRA_CHECK(stmt) stmt
+
53 #else
+
54 # define TDS_COMPILE_CHECK(name,check) \
+
55  extern int disabled_check_##name
+
56 # define TDS_EXTRA_CHECK(stmt)
+
57 #endif
+
58 
+
59 #if defined(__GNUC__) && __GNUC__ >= 3
+
60 # define TDS_LIKELY(x) __builtin_expect(!!(x), 1)
+
61 # define TDS_UNLIKELY(x) __builtin_expect(!!(x), 0)
+
62 #else
+
63 # define TDS_LIKELY(x) (x)
+
64 # define TDS_UNLIKELY(x) (x)
+
65 #endif
+
66 
+
67 #if ENABLE_EXTRA_CHECKS && defined(__GNUC__) && __GNUC__ >= 4
+
68 #define TDS_WUR __attribute__ ((__warn_unused_result__))
+
69 #else
+
70 #define TDS_WUR
+
71 #endif
+
72 
+
73 #define TDS_INT2PTR(i) ((void*)(((char*)0)+(i)))
+
74 #define TDS_PTR2INT(p) ((int)(((char*)(p))-((char*)0)))
+
75 
+
76 #endif
+
diff -Nru freetds-1.1.6/doc/reference/a00416_source.html freetds-1.2.3/doc/reference/a00416_source.html --- freetds-1.1.6/doc/reference/a00416_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00416_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/proto.h Source File +FreeTDS API: include/freetds/odbc.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
proto.h
+
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) 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  */
24 
25 typedef struct tdsnumeric
26 {
27  unsigned char precision;
28  unsigned char scale;
29  unsigned char array[33];
30 } TDS_NUMERIC;
31 
32 typedef struct tdsoldmoney
33 {
34  TDS_INT mnyhigh;
35  TDS_UINT mnylow;
37 
38 typedef union tdsmoney
39 {
41  TDS_INT8 mny;
42 } TDS_MONEY;
43 
44 typedef struct tdsmoney4
45 {
46  TDS_INT mny4;
47 } TDS_MONEY4;
48 
49 typedef struct tdsdatetime
50 {
51  TDS_INT dtdays;
52  TDS_INT dttime;
53 } TDS_DATETIME;
54 
55 typedef struct tdsdatetime4
56 {
57  TDS_USMALLINT days;
58  TDS_USMALLINT minutes;
60 
61 typedef struct tdsunique
62 {
63  TDS_UINT Data1;
64  TDS_USMALLINT Data2;
65  TDS_USMALLINT Data3;
66  TDS_UCHAR Data4[8];
67 } TDS_UNIQUE;
68 
69 typedef TDS_INT TDS_DATE;
70 typedef TDS_INT TDS_TIME;
71 
72 typedef TDS_UINT8 TDS_BIGTIME;
73 typedef 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  */
160 typedef 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 
235 typedef 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 
262 typedef 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 typedef 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 
307 enum {
308  TDS_OPT_ARITHOVERFLOW = 0x01,
309  TDS_OPT_NUMERICTRUNC = 0x02
310 };
311 
312 enum 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 
318 enum 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 };
322 enum 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 
331 typedef 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 
350 typedef struct
351 {
352  TDS_USMALLINT locale_id; /* master..syslanguages.lcid */
353  TDS_USMALLINT flags;
354  TDS_UCHAR charset_id; /* or zero */
356 
360 typedef 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 
370 enum {
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 */
389 enum 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 enum 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 
422 enum 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 
431 enum type_flags {
432  TDS_OLEDB_ON = 0x10,
433  TDS_READONLY_INTENT = 0x20,
434 };
435 
436 /* Sybase dynamic types */
437 enum 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 */
450 enum {
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 
460 enum {
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 */
473 enum {
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_NONCE = 128
481 };
482 
483 /* MS encryption byte (pre login) */
484 enum {
485  TDS7_ENCRYPT_OFF,
486  TDS7_ENCRYPT_ON,
487  TDS7_ENCRYPT_NOT_SUP,
488  TDS7_ENCRYPT_REQ,
489 };
Definition: proto.h:32
-
Definition: proto.h:61
-
Definition: proto.h:44
-
TDS 7.2 SMP packet header.
Definition: proto.h:360
-
Definition: proto.h:25
-
Definition: proto.h:55
-
Definition: proto.h:38
-
TDS 7.1 collation informations.
Definition: proto.h:350
-
Definition: proto.h:49
+
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>
+
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
+
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
+
69 extern "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 
+
93 struct _sql_error
+
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 
+
113 typedef struct _sql_errors TDS_ERRS;
+
114 
+
115 #if ENABLE_EXTRA_CHECKS
+
116 void odbc_check_struct_extra(void *p);
+
117 #else
+
118 static 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 
+
141 void odbc_errs_reset(struct _sql_errors *errs);
+
142 
+
144 void odbc_errs_add(struct _sql_errors *errs, const char *sqlstate, const char *msg);
+
145 
+
147 void 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 
+
150 struct _dheader
+
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 
+
162 struct _drecord
+
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 
+
203 struct _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 
+
214 typedef 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 
+
221 struct _heattr
+
222 {
+
223  SQLUINTEGER connection_pooling;
+
224  SQLUINTEGER cp_match;
+
225  SQLINTEGER odbc_version;
+
226  SQLINTEGER output_nts;
+
227 };
+
228 
+
229 struct _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 
+
236 struct _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 
+
245 struct _hcattr
+
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 
+
273 struct _hstmt;
+
274 struct _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 
+ +
295  struct _hstmt *stmt_list;
+
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 
+
308 struct _hsattr
+
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 
+
362 typedef 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 
+
371 typedef 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 
+
380 struct _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 
+ + +
413  size_t prepared_pos;
+
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 
+
436 typedef struct _henv TDS_ENV;
+
437 typedef struct _hdbc TDS_DBC;
+
438 typedef struct _hstmt TDS_STMT;
+
439 typedef struct _hchk TDS_CHK;
+
440 
+
441 typedef 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
+
488 bool 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 
+
519 #define ODBC_PARAM(p) ODBC_PARAM_##p,
+
520 enum {
+
521  ODBC_PARAM_LIST
+
522  ODBC_PARAM_SIZE
+
523 };
+
524 #undef ODBC_PARAM
+
525 
+
526 
+
527 /*
+
528  * connectparams.h
+
529  */
+
530 
+
531 typedef struct {
+
532  const char *p;
+
533  size_t len;
+ +
535 
+
543 int odbc_parse_connect_string(TDS_ERRS *errs, const char *connect_string, const char *connect_string_end, TDSLOGIN * login, TDS_PARSED_PARAM *parsed_params);
+
544 int odbc_get_dsn_info(TDS_ERRS *errs, const char *DSN, TDSLOGIN * login);
+
545 #ifdef _WIN32
+
546 int odbc_build_connect_string(TDS_ERRS *errs, TDS_PARSED_PARAM *params, char **out);
+
547 #endif
+
548 
+
549 /*
+
550  * convert_tds2sql.c
+
551  */
+
552 SQLLEN odbc_tds2sql_col(TDS_STMT * stmt, TDSCOLUMN *curcol, int desttype, TDS_CHAR * dest, SQLULEN destlen, const struct _drecord *drec_ixd);
+
553 SQLLEN odbc_tds2sql_int4(TDS_STMT * stmt, TDS_INT *src, int desttype, TDS_CHAR * dest, SQLULEN destlen);
+
554 
+
555 
+
556 
+
557 /*
+
558  * descriptor.c
+
559  */
+
560 TDS_DESC *desc_alloc(SQLHANDLE parent, int desc_type, int alloc_type);
+
561 SQLRETURN desc_free(TDS_DESC * desc);
+
562 SQLRETURN desc_alloc_records(TDS_DESC * desc, unsigned count);
+
563 SQLRETURN desc_copy(TDS_DESC * dest, TDS_DESC * src);
+
564 SQLRETURN desc_free_records(TDS_DESC * desc);
+
565 TDS_DBC *desc_get_dbc(TDS_DESC *desc);
+
566 
+
567 /*
+
568  * odbc.c
+
569  */
+
570 SQLRETURN _SQLRowCount(SQLHSTMT hstmt, SQLLEN FAR * pcrow);
+
571 
+
572 /*
+
573  * odbc_checks.h
+
574  */
+
575 #if ENABLE_EXTRA_CHECKS
+
576 /* macro */
+
577 #define CHECK_ENV_EXTRA(env) odbc_check_env_extra(env)
+
578 #define CHECK_DBC_EXTRA(dbc) odbc_check_dbc_extra(dbc)
+
579 #define CHECK_STMT_EXTRA(stmt) odbc_check_stmt_extra(stmt)
+
580 #define CHECK_DESC_EXTRA(desc) odbc_check_desc_extra(desc)
+
581 /* declarations*/
+
582 void odbc_check_env_extra(TDS_ENV * env);
+
583 void odbc_check_dbc_extra(TDS_DBC * dbc);
+
584 void odbc_check_stmt_extra(TDS_STMT * stmt);
+
585 void odbc_check_desc_extra(TDS_DESC * desc);
+
586 #else
+
587 /* macro */
+
588 #define CHECK_ENV_EXTRA(env)
+
589 #define CHECK_DBC_EXTRA(dbc)
+
590 #define CHECK_STMT_EXTRA(stmt)
+
591 #define CHECK_DESC_EXTRA(desc)
+
592 #endif
+
593 
+
594 /*
+
595  * odbc_util.h
+
596  */
+
597 
+
598 /* helpers for ODBC wide string support */
+
599 #undef _wide
+
600 #undef _WIDE
+
601 #ifdef ENABLE_ODBC_WIDE
+
602 typedef union {
+
603  char mb[1];
+
604  SQLWCHAR wide[1];
+
605 } ODBC_CHAR;
+
606 # define _wide ,wide
+
607 # define _wide0 ,0
+
608 # define _WIDE ,int wide
+
609 #else
+
610 # define _wide
+
611 # define _wide0
+
612 # define _WIDE
+
613 # define ODBC_CHAR SQLCHAR
+
614 #endif
+
615 int odbc_set_stmt_query(struct _hstmt *stmt, const ODBC_CHAR *sql, int sql_len _WIDE);
+
616 void odbc_set_return_status(struct _hstmt *stmt, unsigned int n_row);
+
617 void odbc_set_return_params(struct _hstmt *stmt, unsigned int n_row);
+
618 
+
619 void odbc_set_sql_type_info(TDSCOLUMN * col, struct _drecord *drec, SQLINTEGER odbc_ver);
+
620 
+
621 int odbc_sql_to_c_type_default(int sql_type);
+
622 TDS_SERVER_TYPE odbc_sql_to_server_type(TDSCONNECTION * conn, int sql_type, int sql_unsigned);
+
623 TDS_SERVER_TYPE odbc_c_to_server_type(int c_type);
+
624 
+
625 unsigned int odbc_get_string_size(int size, const ODBC_CHAR * str _WIDE);
+
626 void odbc_rdbms_version(TDSSOCKET * tds_socket, char *pversion_string);
+
627 SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct _drecord *drec_ixd, const TDS_DESC* axd, unsigned int n_row);
+
628 
+
629 #ifdef ENABLE_ODBC_WIDE
+
630 DSTR* odbc_dstr_copy_flag(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str, int flag);
+
631 #define odbc_dstr_copy(dbc, s, len, out) \
+
632  odbc_dstr_copy_flag(dbc, s, len, sizeof((out)->mb) ? (out) : (out), wide)
+
633 #define odbc_dstr_copy_oct(dbc, s, len, out) \
+
634  odbc_dstr_copy_flag(dbc, s, len, out, wide|0x20)
+
635 #else
+
636 DSTR* odbc_dstr_copy(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str);
+
637 #define odbc_dstr_copy_oct odbc_dstr_copy
+
638 #endif
+
639 
+
640 
+
641 SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR * pcbBuffer, const char *s, int len, int flag);
+
642 #ifdef ENABLE_ODBC_WIDE
+
643 #define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
+
644  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))
+
645 #define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
+
646  odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
+
647 #else
+
648 #define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
+
649  odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10))
+
650 #define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
+
651  odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
+
652 #endif
+
653 
+
654 #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))
+
655 #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))
+
656 
+
657 SQLSMALLINT odbc_get_concise_sql_type(SQLSMALLINT type, SQLSMALLINT interval);
+
658 SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
+
659 SQLSMALLINT odbc_get_concise_c_type(SQLSMALLINT type, SQLSMALLINT interval);
+
660 SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
+
661 
+
662 SQLLEN odbc_get_octet_len(int c_type, const struct _drecord *drec);
+
663 void odbc_convert_err_set(struct _sql_errors *errs, TDS_INT err);
+
664 
+
665 /*
+
666  * prepare_query.c
+
667  */
+
668 SQLRETURN prepare_call(struct _hstmt *stmt);
+
669 SQLRETURN native_sql(struct _hdbc *dbc, DSTR *s);
+
670 int parse_prepared_query(struct _hstmt *stmt, bool compute_row);
+
671 int start_parse_prepared_query(struct _hstmt *stmt, bool compute_row);
+
672 int continue_parse_prepared_query(struct _hstmt *stmt, SQLPOINTER DataPtr, SQLLEN StrLen_or_Ind);
+
673 const char *parse_const_param(const char * s, TDS_SERVER_TYPE *type);
+
674 const char *odbc_skip_rpc_name(const char *s);
+
675 
+
676 /*
+
677  * sql2tds.c
+
678  */
+
679 SQLRETURN 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);
+
680 TDS_INT convert_datetime2server(int bindtype, const void *src, TDS_DATETIMEALL * dta);
+
681 
+
682 /*
+
683  * bcp.c
+
684  */
+
685 void odbc_bcp_free_storage(TDS_DBC *dbc);
+
686 void odbc_bcp_init(TDS_DBC *dbc, const ODBC_CHAR *tblname, const ODBC_CHAR *hfile, const ODBC_CHAR *errfile, int direction _WIDE);
+
687 void odbc_bcp_control(TDS_DBC *dbc, int field, void *value);
+
688 void odbc_bcp_colptr(TDS_DBC *dbc, const void * colptr, int table_column);
+
689 void odbc_bcp_sendrow(TDS_DBC *dbc);
+
690 int odbc_bcp_batch(TDS_DBC *dbc);
+
691 int odbc_bcp_done(TDS_DBC *dbc);
+
692 void odbc_bcp_bind(TDS_DBC *dbc, const void * varaddr, int prefixlen, int varlen, const void * terminator, int termlen, int vartype, int table_column);
+
693 
+
694 /*
+
695  * sqlwchar.c
+
696  */
+
697 #if SIZEOF_SQLWCHAR != SIZEOF_WCHAR_T
+
698 size_t sqlwcslen(const SQLWCHAR * s);
+
699 
+
700 typedef struct sqlwstr_buf {
+
701  struct sqlwstr_buf *next;
+
702  wchar_t buf[256];
+
703 } SQLWSTRBUF;
+
704 const wchar_t *sqlwstr(const SQLWCHAR * s, SQLWSTRBUF **bufs);
+
705 void sqlwstr_free(SQLWSTRBUF *bufs);
+
706 #define SQLWSTR_BUFS(n) SQLWSTRBUF *bufs = NULL
+
707 #define SQLWSTR(s) sqlwstr(s, &bufs)
+
708 #define SQLWSTR_FREE() sqlwstr_free(bufs)
+
709 #else
+
710 #define sqlwcslen(s) wcslen(s)
+
711 
+
712 #define SQLWSTR_BUFS(n) do {} while(0)
+
713 #define SQLWSTR(s) ((const wchar_t*)(s))
+
714 #define SQLWSTR_FREE() do {} while(0)
+
715 #endif
+
716 
+
717 int odbc_get_wide_canonic(TDSCONNECTION *conn);
+
718 
+
719 #include <freetds/popvis.h>
+
720 
+
721 #ifdef __cplusplus
+
722 #if 0
+
723 {
+
724 #endif
+
725 }
+
726 #endif
+
727 
+
728 #endif
+
Definition: odbc.h:151
+
Definition: odbc.h:531
+
Definition: odbc.h:381
+ +
Definition: odbc.h:246
+
DSTR query
query to execute
Definition: odbc.h:387
+
Definition: odbc.h:230
+
struct _hstmt * current_statement
Statement executing.
Definition: odbc.h:293
+
Hold information for any results.
Definition: tds.h:770
+
Definition: iconv.h:92
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
unsigned need_reprepare
Prepared statement needs to be prepared again.
Definition: odbc.h:404
+
Definition: odbc.h:309
+
Information for a server connection.
Definition: tds.h:1164
+
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:890
+
struct _hstmt * stmt_list
list of all statements allocated from this connection
Definition: odbc.h:295
+
TDSPARAMINFO * params
parameters saved
Definition: odbc.h:409
+
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:300
+
TDSSOCKET * tds
socket (only if active)
Definition: odbc.h:389
+
Definition: odbc.h:222
+
Definition: tds.h:1030
+
Definition: odbc.h:163
+
Definition: tds.h:644
+
void odbc_rdbms_version(TDSSOCKET *tds_socket, char *pversion_string)
Returns the version of the RDBMS in the ODBC format.
Definition: odbc_util.c:881
+
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:630
+
Definition: odbc.h:106
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
int param_num
last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
Definition: odbc.h:411
+
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:1127
+
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
+
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:1005
+
Holds informations about a cursor.
Definition: tds.h:938
+
Definition: odbc.h:94
+
Definition: odbc.h:441
+
Definition: tds.h:1656
+
Definition: tds.h:518
+
struct _hstmt * prev
previous in list
Definition: odbc.h:394
+
TDS_INT8 row_count
row count to return
Definition: odbc.h:421
+
Structure to hold a string.
Definition: string.h:36
+
Definition: odbc.h:237
+
unsigned int cursor_support
<>0 if server handle cursors
Definition: odbc.h:300
+
size_t prepared_pos
position in prepared query to check parameters, used only in RPC
Definition: odbc.h:413
+
TDS_DESC * uad[TDS_MAX_APP_DESC]
descriptors associated to connection
Definition: odbc.h:298
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
Definition: odbc.h:275
+
Definition: tds.h:1092
+
struct _hstmt * next
next in list
Definition: odbc.h:392
+
unsigned int param_count
number of parameter in current query
Definition: odbc.h:418
+
Definition: odbc.h:204
diff -Nru freetds-1.1.6/doc/reference/a00419_source.html freetds-1.2.3/doc/reference/a00419_source.html --- freetds-1.1.6/doc/reference/a00419_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00419_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/pushvis.h Source File +FreeTDS API: include/freetds/popvis.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
pushvis.h
+
popvis.h
-
1 #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
2 #pragma GCC visibility push(hidden)
3 #endif
+
1 #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
+
2 #pragma GCC visibility pop
+
3 #endif
+
diff -Nru freetds-1.1.6/doc/reference/a00422_source.html freetds-1.2.3/doc/reference/a00422_source.html --- freetds-1.1.6/doc/reference/a00422_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00422_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/server.h Source File +FreeTDS API: include/freetds/proto.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
server.h
+
proto.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
25 extern "C"
26 {
27 #endif
28 #if 0
29 }
30 #endif
31 
32 /* login.c */
33 unsigned char *tds7_decrypt_pass(const unsigned char *crypt_pass, int len, unsigned char *clear_pass);
34 TDSSOCKET *tds_listen(TDSCONTEXT * ctx, int ip_port);
35 int tds_read_login(TDSSOCKET * tds, TDSLOGIN * login);
36 int tds7_read_login(TDSSOCKET * tds, TDSLOGIN * login);
37 TDSLOGIN *tds_alloc_read_login(TDSSOCKET * tds);
38 
39 /* query.c */
40 char *tds_get_query(TDSSOCKET * tds);
41 char *tds_get_generic_query(TDSSOCKET * tds);
42 
43 /* server.c */
44 void tds_env_change(TDSSOCKET * tds, int type, const char *oldvalue, const char *newvalue);
45 void tds_send_msg(TDSSOCKET * tds, int msgno, int msgstate, int severity, const char *msgtext, const char *srvname,
46  const char *procname, int line);
47 void tds_send_login_ack(TDSSOCKET * tds, const char *progname);
48 void tds_send_eed(TDSSOCKET * tds, int msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, int line);
49 void tds_send_err(TDSSOCKET * tds, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
50 void tds_send_capabilities_token(TDSSOCKET * tds);
51 /* TODO remove, use tds_send_done */
52 void tds_send_done_token(TDSSOCKET * tds, TDS_SMALLINT flags, TDS_INT numrows);
53 void tds_send_done(TDSSOCKET * tds, int token, TDS_SMALLINT flags, TDS_INT numrows);
54 void tds_send_control_token(TDSSOCKET * tds, TDS_SMALLINT numcols);
55 void tds_send_col_name(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
56 void tds_send_col_info(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
57 void tds_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
58 void tds7_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
59 void tds_send_table_header(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
60 void tds_send_row(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
61 void tds71_send_prelogin(TDSSOCKET * tds);
62 
63 #if 0
64 {
65 #endif
66 #ifdef __cplusplus
67 }
68 #endif
Information for a server connection.
Definition: tds.h:1141
-
Definition: tds.h:511
-
Hold information for any results.
Definition: tds.h:769
-
Definition: tds.h:1029
+
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  */
+
24 
+
25 typedef struct tdsnumeric
+
26 {
+
27  unsigned char precision;
+
28  unsigned char scale;
+
29  unsigned char array[33];
+
30 } TDS_NUMERIC;
+
31 
+
32 typedef struct tdsoldmoney
+
33 {
+
34  TDS_INT mnyhigh;
+
35  TDS_UINT mnylow;
+ +
37 
+
38 typedef union tdsmoney
+
39 {
+ +
41  TDS_INT8 mny;
+
42 } TDS_MONEY;
+
43 
+
44 typedef struct tdsmoney4
+
45 {
+
46  TDS_INT mny4;
+
47 } TDS_MONEY4;
+
48 
+
49 typedef struct tdsdatetime
+
50 {
+
51  TDS_INT dtdays;
+
52  TDS_INT dttime;
+
53 } TDS_DATETIME;
+
54 
+
55 typedef struct tdsdatetime4
+
56 {
+
57  TDS_USMALLINT days;
+
58  TDS_USMALLINT minutes;
+ +
60 
+
61 typedef struct tdsunique
+
62 {
+
63  TDS_UINT Data1;
+
64  TDS_USMALLINT Data2;
+
65  TDS_USMALLINT Data3;
+
66  TDS_UCHAR Data4[8];
+
67 } TDS_UNIQUE;
+
68 
+
69 typedef TDS_INT TDS_DATE;
+
70 typedef TDS_INT TDS_TIME;
+
71 
+
72 typedef TDS_UINT8 TDS_BIGTIME;
+
73 typedef 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  */
+
160 typedef 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 
+
235 typedef 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 
+
262 typedef 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 typedef 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 
+
307 enum {
+
308  TDS_OPT_ARITHOVERFLOW = 0x01,
+
309  TDS_OPT_NUMERICTRUNC = 0x02
+
310 };
+
311 
+
312 enum 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 
+
318 enum 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 };
+
322 enum 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 
+
331 typedef 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 
+
350 typedef struct
+
351 {
+
352  TDS_USMALLINT locale_id; /* master..syslanguages.lcid */
+
353  TDS_USMALLINT flags;
+
354  TDS_UCHAR charset_id; /* or zero */
+ +
356 
+
360 typedef 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 
+
370 enum {
+
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 */
+
389 enum 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 enum 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 
+
422 enum 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 
+
431 enum type_flags {
+
432  TDS_OLEDB_ON = 0x10,
+
433  TDS_READONLY_INTENT = 0x20,
+
434 };
+
435 
+
436 /* Sybase dynamic types */
+
437 enum 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 */
+
450 enum {
+
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 
+
460 enum {
+
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 */
+
473 enum {
+
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 
+
484 enum {
+
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 
+
528 enum {
+
529  TDS5_SEC_SECSESS = 1,
+
530  TDS5_SEC_FORWARD = 2,
+
531  TDS5_SEC_SIGN = 3,
+
532  TDS5_SEC_OTHER = 4,
+
533 };
+
534 
+
538 enum {
+
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 
+
550 enum {
+
551  TDS5_SEC_VERSION = 50,
+
552 };
+
553 
+
554 /* MS encryption byte (pre login) */
+
555 enum {
+
556  TDS7_ENCRYPT_OFF,
+
557  TDS7_ENCRYPT_ON,
+
558  TDS7_ENCRYPT_NOT_SUP,
+
559  TDS7_ENCRYPT_REQ,
+
560 };
+
Definition: proto.h:39
+
Definition: proto.h:33
+
TDS 7.2 SMP packet header.
Definition: proto.h:361
+
Definition: proto.h:45
+
Definition: proto.h:56
+
TDS 7.1 collation informations.
Definition: proto.h:351
+
Definition: proto.h:50
+
Definition: proto.h:26
+
Definition: proto.h:62
diff -Nru freetds-1.1.6/doc/reference/a00425_source.html freetds-1.2.3/doc/reference/a00425_source.html --- freetds-1.1.6/doc/reference/a00425_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00425_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/stream.h Source File +FreeTDS API: include/freetds/pushvis.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
stream.h
+
pushvis.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 <freetds/pushvis.h>
28 
30 typedef struct tds_input_stream {
35  int (*read)(struct tds_input_stream *stream, void *ptr, size_t len);
36 } TDSINSTREAM;
37 
39 typedef struct tds_output_stream {
41  int (*write)(struct tds_output_stream *stream, size_t len);
50  char *buffer;
51  size_t buf_len;
52 } TDSOUTSTREAM;
53 
55 TDSRET tds_convert_stream(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION direction,
56  TDSINSTREAM * istream, TDSOUTSTREAM *ostream);
58 TDSRET tds_copy_stream(TDSINSTREAM * istream, TDSOUTSTREAM * ostream);
59 
60 /* Additional streams */
61 
63 typedef struct tds_datain_stream {
64  TDSINSTREAM stream;
65  size_t wire_size;
66  TDSSOCKET *tds;
68 
69 void tds_datain_stream_init(TDSDATAINSTREAM * stream, TDSSOCKET * tds, size_t wire_size);
70 
72 typedef struct tds_dataout_stream {
73  TDSOUTSTREAM stream;
74  TDSSOCKET *tds;
75  size_t written;
77 
79 
81 typedef struct tds_staticin_stream {
82  TDSINSTREAM stream;
83  const char *buffer;
84  size_t buf_left;
86 
87 void tds_staticin_stream_init(TDSSTATICINSTREAM * stream, const void *ptr, size_t len);
88 
92 typedef struct tds_staticout_stream {
93  TDSOUTSTREAM stream;
95 
96 void tds_staticout_stream_init(TDSSTATICOUTSTREAM * stream, void *ptr, size_t len);
97 
99 typedef struct tds_dynamic_stream {
100  TDSOUTSTREAM stream;
102  void **buf;
104  size_t allocated;
106  size_t size;
108 
109 TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM * stream, void **ptr, size_t allocated);
110 
111 #include <freetds/popvis.h>
112 
113 #endif
114 
Information for a server connection.
Definition: tds.h:1141
-
size_t wire_size
bytes still to read
Definition: stream.h:65
-
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition: stream.c:354
-
void ** buf
where is stored the pointer
Definition: stream.h:102
-
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
-
size_t size
size of data inside buffer
Definition: stream.h:106
-
input stream to read data from tds protocol
Definition: stream.h:63
-
size_t allocated
currently allocated buffer
Definition: stream.h:104
-
TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream to another.
Definition: stream.c:163
-
input stream to read data from a static buffer
Definition: stream.h:81
-
Definition: iconv.h:91
-
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
-
define a stream of data used for output
Definition: stream.h:39
-
output stream to write data to a dynamic buffer
Definition: stream.h:99
-
output stream to write data to tds protocol
Definition: stream.h:72
-
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
-
define a stream of data used for input
Definition: stream.h:30
-
void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
Initialize a data output stream.
Definition: stream.c:244
-
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
-
output stream to write data to a static buffer.
Definition: stream.h:92
-
char * buffer
write buffer.
Definition: stream.h:50
-
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
+
1 #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
+
2 #pragma GCC visibility push(hidden)
+
3 #endif
diff -Nru freetds-1.1.6/doc/reference/a00428_source.html freetds-1.2.3/doc/reference/a00428_source.html --- freetds-1.1.6/doc/reference/a00428_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00428_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/sysdep_private.h Source File +FreeTDS API: include/freetds/server.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
sysdep_private.h
+
server.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
33 extern "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
51 typedef 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
65 int tds_socket_init(void);
66 #define INITSOCKET() tds_socket_init()
67 void 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__
81 typedef 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)
197 typedef int TDS_SYS_SOCKET;
198 #define INVALID_SOCKET -1
199 #define TDS_IS_SOCKET_INVALID(s) ((s) < 0)
200 #else
201 typedef 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_ */
+
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
+
25 extern "C"
+
26 {
+
27 #endif
+
28 #if 0
+
29 }
+
30 #endif
+
31 
+
32 /* login.c */
+
33 unsigned char *tds7_decrypt_pass(const unsigned char *crypt_pass, int len, unsigned char *clear_pass);
+
34 TDSSOCKET *tds_listen(TDSCONTEXT * ctx, int ip_port);
+
35 int tds_read_login(TDSSOCKET * tds, TDSLOGIN * login);
+
36 int tds7_read_login(TDSSOCKET * tds, TDSLOGIN * login);
+
37 TDSLOGIN *tds_alloc_read_login(TDSSOCKET * tds);
+
38 
+
39 /* query.c */
+
40 char *tds_get_query(TDSSOCKET * tds);
+
41 char *tds_get_generic_query(TDSSOCKET * tds);
+
42 
+
43 /* server.c */
+
44 void tds_env_change(TDSSOCKET * tds, int type, const char *oldvalue, const char *newvalue);
+
45 void tds_send_msg(TDSSOCKET * tds, int msgno, int msgstate, int severity, const char *msgtext, const char *srvname,
+
46  const char *procname, int line);
+
47 void tds_send_login_ack(TDSSOCKET * tds, const char *progname);
+
48 void tds_send_eed(TDSSOCKET * tds, int msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, int line);
+
49 void tds_send_err(TDSSOCKET * tds, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
+
50 void tds_send_capabilities_token(TDSSOCKET * tds);
+
51 /* TODO remove, use tds_send_done */
+
52 void tds_send_done_token(TDSSOCKET * tds, TDS_SMALLINT flags, TDS_INT numrows);
+
53 void tds_send_done(TDSSOCKET * tds, int token, TDS_SMALLINT flags, TDS_INT numrows);
+
54 void tds_send_control_token(TDSSOCKET * tds, TDS_SMALLINT numcols);
+
55 void tds_send_col_name(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
+
56 void tds_send_col_info(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
+
57 void tds_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
+
58 void tds7_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
+
59 void tds_send_table_header(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
+
60 void tds_send_row(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
+
61 void tds71_send_prelogin(TDSSOCKET * tds);
+
62 
+
63 #if 0
+
64 {
+
65 #endif
+
66 #ifdef __cplusplus
+
67 }
+
68 #endif
+
+
Hold information for any results.
Definition: tds.h:770
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: tds.h:1030
+
Definition: tds.h:518
diff -Nru freetds-1.1.6/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map freetds-1.2.3/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map --- freetds-1.1.6/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 freetds-1.2.3/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fa9f51544c3605f2958db4410a70b6b8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg freetds-1.2.3/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg --- freetds-1.1.6/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_conversion_type - - -Node17 - -tds_get_conversion_type - - -Node18 - - -tdsdump_col - - - - -Node17->Node18 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map --- freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -09df1243bf53e35286d2982774364b39 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_set_state - - -Node32 - -tds_set_state - - -Node33 - - -tdsdump_log - - - - -Node32->Node33 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map --- freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -bb0ee14910134799b12ec0189b33f2fa \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg --- freetds-1.1.6/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - -tds_set_state - - -Node34 - -tds_set_state - - -Node35 - - -tds_query_flush_packet - - - - -Node34->Node35 - - - - -Node37 - - -tds_submit_rpc - - - - -Node34->Node37 - - - - -Node38 - - -tds_writetext_continue - - - - -Node34->Node38 - - - - -Node39 - - -tds_writetext_end - - - - -Node34->Node39 - - - - -Node36 - - -tds_send_emulated_rpc - - - - -Node35->Node36 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.map freetds-1.2.3/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.map --- freetds-1.1.6/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 freetds-1.2.3/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dc4b2ce286ad8bd972ad2ad974d3b9a5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg freetds-1.2.3/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg --- freetds-1.1.6/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tdsdump_open - - -Node253 - -tdsdump_open - - -Node254 - - -tdsdbopen - - - - -Node253->Node254 - - - - -Node255 - - -dbopen - - - - -Node254->Node255 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.map freetds-1.2.3/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.map --- freetds-1.1.6/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 freetds-1.2.3/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9ecf6d8fad590d14166e3b1a1864430c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.svg freetds-1.2.3/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a3ab8874994a0776acdaff797afdb710a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_set_server - - -Node29 - -tds_set_server - - -Node30 - - -tdsdump_log - - - - -Node29->Node30 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.map freetds-1.2.3/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.map --- freetds-1.1.6/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.md5 freetds-1.2.3/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -04955c561aeb005960a78672cf3402db \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.svg freetds-1.2.3/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a5eec23828b0610c58de248c4edb53879_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_bcp_start_copy_in - - -Node13 - -tds_bcp_start_copy_in - - -Node14 - - -tdsdump_log - - - - -Node13->Node14 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.map freetds-1.2.3/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.map --- freetds-1.1.6/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 freetds-1.2.3/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b423dfe54ee82d51ac883beca5aff430 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg freetds-1.2.3/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_writetext_start - - -Node50 - -tds_writetext_start - - -Node51 - - -tds_submit_queryf - - - - -Node50->Node51 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.map freetds-1.2.3/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.map --- freetds-1.1.6/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 freetds-1.2.3/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -384729c44c64e9a7f9b3c4b47d5ae1ac \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg freetds-1.2.3/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_bcp_fread - - -Node3 - -tds_bcp_fread - - -Node4 - - -tds_file_stream_read - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map freetds-1.2.3/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map --- freetds-1.1.6/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 freetds-1.2.3/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9d600f7c61167e6c515fb65bb3df6dc2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg freetds-1.2.3/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_bcp_start - - -Node10 - -tds_bcp_start - - -Node11 - - -tdsdump_log - - - - -Node10->Node11 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.map freetds-1.2.3/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.map --- freetds-1.1.6/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.md5 freetds-1.2.3/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a1f113bb804dfd97042abecf8f96cd81 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.svg freetds-1.2.3/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tdsdump_col - - -Node53 - -tdsdump_col - - -Node54 - - -tds_prtype - - - - -Node53->Node54 - - - - -Node55 - - -tds_get_conversion_type - - - - -Node53->Node55 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.map freetds-1.2.3/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.map --- freetds-1.1.6/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 freetds-1.2.3/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e44ccff2da3bee7053928004502019e5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg freetds-1.2.3/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_writetext_continue - - -Node42 - -tds_writetext_continue - - -Node43 - - -tds_set_state - - - - -Node42->Node43 - - - - -Node44 - - -tdsdump_log - - - - -Node43->Node44 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.map freetds-1.2.3/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.map --- freetds-1.1.6/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.md5 freetds-1.2.3/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ac5469aceb2913b5dc5fe7455de64a7d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.svg freetds-1.2.3/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ac1e460551f1188620ea478238864ac4b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_writetext_end - - -Node46 - -tds_writetext_end - - -Node47 - - -tds_set_state - - - - -Node46->Node47 - - - - -Node48 - - -tdsdump_log - - - - -Node47->Node48 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.map freetds-1.2.3/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.map --- freetds-1.1.6/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.md5 freetds-1.2.3/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.md5 --- freetds-1.1.6/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9f11daae6a266f962e8b10400a541dc5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.svg freetds-1.2.3/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.svg --- freetds-1.1.6/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_ade7df2db455b61edc83819ad60edb339_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_bcp_done - - -Node0 - -tds_bcp_done - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00431.html freetds-1.2.3/doc/reference/a00431.html --- freetds-1.1.6/doc/reference/a00431.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,3096 +0,0 @@ - - - - - - - -FreeTDS API: include/freetds/tds.h File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tds.h File Reference
-
-
- -

Main include file for libtds. -More...

-
#include <stdarg.h>
-#include <stdio.h>
-#include <time.h>
-#include <freetds/version.h>
-#include "tds_sysdep_public.h"
-#include <freetds/sysdep_private.h>
-#include <freetds/thread.h>
-#include <freetds/bool.h>
-#include <freetds/macros.h>
-#include <freetds/utils/string.h>
-#include "replacements.h"
-#include <freetds/pushvis.h>
-#include <freetds/proto.h>
-#include <freetds/popvis.h>
-
-Include dependency graph for tds.h:
-
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
-
-
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

union  tds_align_struct
 
struct  tds_authentication
 
struct  tds_bcpcoldata
 
struct  tds_bcpinfo
 
struct  tds_blob
 Information about blobs (e.g. More...
 
struct  tds_capabilities
 
struct  tds_capability_type
 
struct  tds_column
 Metadata about columns in regular and compute rows. More...
 
struct  tds_column_funcs
 
struct  tds_compiletime_settings
 A structure to hold all the compile-time settings. More...
 
struct  tds_connection
 
struct  tds_context
 
struct  tds_cursor
 Holds informations about a cursor. More...
 
struct  tds_cursor_status
 
struct  TDS_DATETIMEALL
 this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information. More...
 
struct  tds_dynamic
 Holds information for a dynamic (also called prepared) query. More...
 
struct  tds_encoding
 Information relevant to libiconv. More...
 
struct  tds_env
 Current environment as reported by the server. More...
 
struct  tds_headers
 
struct  tds_locale
 
struct  tds_login
 
struct  tds_message
 
struct  tds_multiple
 
union  tds_option_arg
 
struct  tds_packet
 
struct  tds_poll_wakeup
 
struct  tds_result_info
 Hold information for any results. More...
 
struct  tds_socket
 Information for a server connection. More...
 
struct  tds_upd_col
 
struct  tds_variant
 Store variant informations. More...
 
struct  tdsdaterec
 Used by tds_datecrack. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

-#define is_ascii_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
 
-#define is_binary_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != 0)
 
-#define is_blob_col(x)   ((x)->column_varint_size > 2)
 
-#define is_blob_type(x)   ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
 
-#define is_char_type(x)   ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
 
-#define is_collate_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
 
-#define is_datetime_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
 return true if type is a datetime (but not date or time)
 
-#define is_end_token(x)   ((x) >= TDS_DONE_TOKEN && (x) <= TDS_DONEINPROC_TOKEN)
 
-#define is_fixed_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
 
-#define is_nullable_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
 
-#define is_numeric_type(x)   ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
 
-#define is_similar_type(x, y)   (is_char_type(x) && is_char_type(y))
 
-#define IS_TDS42(x)   (x->tds_version==0x402)
 
-#define IS_TDS46(x)   (x->tds_version==0x406)
 
-#define IS_TDS50(x)   (x->tds_version==0x500)
 
-#define IS_TDS50_PLUS(x)   ((x)->tds_version>=0x500)
 
-#define IS_TDS70(x)   (x->tds_version==0x700)
 
-#define IS_TDS71(x)   (x->tds_version==0x701)
 
-#define IS_TDS71_PLUS(x)   ((x)->tds_version>=0x701)
 
-#define IS_TDS72(x)   (x->tds_version==0x702)
 
-#define IS_TDS72_PLUS(x)   ((x)->tds_version>=0x702)
 
-#define IS_TDS73(x)   (x->tds_version==0x703)
 
-#define IS_TDS73_PLUS(x)   ((x)->tds_version>=0x703)
 
-#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)
 
-#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_SWAP32(value)
 
-#define TDS_CANCELLED   ((TDSRET)-2)
 
-#define tds_capability_has_req(conn, cap)   tds_capability_enabled(&conn->capabilities.types[0], cap)
 
-#define TDS_CMD_DONE   4046
 
-#define TDS_CMD_FAIL   4048
 
-#define TDS_CMD_SUCCEED   4047
 
-#define TDS_COMPUTE_RESULT   4045
 
-#define TDS_COMPUTEFMT_RESULT   4050
 
-#define tds_convert_string_free(original, converted)   do { if (original != converted) free((char*) converted); } while(0)
 
-#define TDS_DBG_ERROR   __FILE__, ((__LINE__ << 4) | 2)
 
-#define TDS_DBG_FUNC   __FILE__, ((__LINE__ << 4) | 7)
 
-#define TDS_DBG_HEADER   __FILE__, ((__LINE__ << 4) | 10)
 
-#define TDS_DBG_INFO1   __FILE__, ((__LINE__ << 4) | 5)
 
-#define TDS_DBG_INFO2   __FILE__, ((__LINE__ << 4) | 6)
 
-#define TDS_DBG_LOGIN   __FILE__, ((__LINE__ << 4) | 11)
 
-#define TDS_DBG_NETWORK   __FILE__, ((__LINE__ << 4) | 4)
 
-#define TDS_DBG_SEVERE   __FILE__, ((__LINE__ << 4) | 1)
 
-#define TDS_DBG_WARN   __FILE__, ((__LINE__ << 4) | 3)
 
-#define TDS_DBGFLAG_ALL   0xfff
 
-#define TDS_DBGFLAG_ERROR   0x04
 
-#define TDS_DBGFLAG_FUNC   0x80
 
-#define TDS_DBGFLAG_HEADER   0x0400
 
-#define TDS_DBGFLAG_INFO1   0x20
 
-#define TDS_DBGFLAG_INFO2   0x40
 
-#define TDS_DBGFLAG_LOGIN   0x0800
 
-#define TDS_DBGFLAG_NETWORK   0x10
 
-#define TDS_DBGFLAG_PID   0x1000
 
-#define TDS_DBGFLAG_SEVERE   0x02
 
-#define TDS_DBGFLAG_SOURCE   0x4000
 
-#define TDS_DBGFLAG_THREAD   0x8000
 
-#define TDS_DBGFLAG_TIME   0x2000
 
-#define TDS_DBGFLAG_WARN   0x08
 
-#define TDS_DEF_BLKSZ   512
 
-#define TDS_DEF_CHARSET   "iso_1"
 
-#define TDS_DEF_LANG   "us_english"
 
-#define TDS_DEF_PORT   1433
 
-#define TDS_DEF_SERVER   "SYBASE"
 
-#define TDS_DEFAULT_VERSION   0x000
 
-#define TDS_DESCRIBE_RESULT   4051
 
-#define TDS_DONE_RESULT   4052
 
-#define TDS_DONEINPROC_RESULT   4054
 
-#define TDS_DONEPROC_RESULT   4053
 
-#define TDS_FAIL   ((TDSRET)-1)
 
-#define TDS_FAILED(rc)   ((rc)<0)
 
-#define tds_get_ctx(tds)   ((tds)->conn->tds_ctx)
 
-#define tds_get_int(tds)   ((TDS_INT) tds_get_uint(tds))
 
-#define tds_get_int8(tds)   ((TDS_INT8) tds_get_uint8(tds))
 
-#define tds_get_parent(tds)   ((tds)->parent)
 
-#define tds_get_s(tds)   ((tds)->conn->s)
 
-#define tds_get_smallint(tds)   ((TDS_SMALLINT) tds_get_usmallint(tds))
 
-#define TDS_GSSAPI_DELEGATION   "enable gssapi delegation"
 
-#define TDS_INT_CANCEL   2
 
-#define TDS_INT_CONTINUE   1
 
-#define TDS_INT_TIMEOUT   3
 
-#define TDS_INVALID_TYPE   ((TDS_SERVER_TYPE) 0)
 
#define TDS_IS_MSSQL(x)   (((x)->conn->product_version & 0x80000000u)!=0)
 Check if product is Microsft SQL Server. More...
 
#define TDS_IS_SYBASE(x)   (!((x)->conn->product_version & 0x80000000u))
 Check if product is Sybase (such as Adaptive Server Enterrprice). More...
 
-#define TDS_MAJOR(x)   ((x)->tds_version >> 8)
 
-#define TDS_MAX_CAPABILITY   32
 
-#define TDS_MAX_CONN   4096
 
-#define TDS_MAX_DYNID_LEN   30
 
-#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))
 Calc a version number for mssql. More...
 
-#define TDS_MSG_RESULT   4044
 
-#define tds_new(type, n)   ((type *) malloc(sizeof(type) * (n)))
 
-#define tds_new0(type, n)   ((type *) calloc(n, sizeof(type)))
 
-#define TDS_NO_COUNT   -1
 
-#define TDS_NO_MORE_RESULTS   ((TDSRET)1)
 
-#define TDS_NULLTERM   -9
 
-#define TDS_OTHERS_RESULT   4055
 
-#define TDS_PARAM_RESULT   4042
 
-#define TDS_PROPAGATE(rc)   do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } while(0)
 
-#define TDS_PUT_BYTE(tds, v)   tds_put_byte((tds), ((unsigned char)(v)))
 
-#define TDS_PUT_INT(tds, v)   tds_put_int((tds), ((TDS_INT)(v)))
 
-#define TDS_PUT_SMALLINT(tds, v)   tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
 
-#define tds_put_tinyint(tds, ti)   tds_put_byte(tds,ti)
 Output a tinyint value.
 
-#define TDS_RESIZE(p, n_elem)   tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
 
-#define TDS_ROW_RESULT   4040
 
-#define TDS_ROWFMT_RESULT   4049
 
-#define tds_set_ctx(tds, val)   do { ((tds)->conn->tds_ctx) = (val); } while(0)
 
-#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_STATUS_RESULT   4043
 
-#define TDS_STR_APPENDMODE   "dump file append"
 
-#define TDS_STR_ASA_DATABASE   "asa database"
 
-#define TDS_STR_BLKSZ   "initial block size"
 
-#define TDS_STR_CAFILE   "ca file"
 
-#define TDS_STR_CHARSET   "charset"
 
-#define TDS_STR_CHECKSSLHOSTNAME   "check certificate hostname"
 
-#define TDS_STR_CLCHARSET   "client charset"
 
-#define TDS_STR_CONNTIMEOUT   "connect timeout"
 
-#define TDS_STR_CRLFILE   "crl file"
 
-#define TDS_STR_DATABASE   "database"
 
-#define TDS_STR_DATEFMT   "date format"
 
-#define TDS_STR_DBFILENAME   "database filename"
 
-#define TDS_STR_DEBUGFLAGS   "debug flags"
 
-#define TDS_STR_DEBUGLVL   "debug level"
 
-#define TDS_STR_DUMPFILE   "dump file"
 
-#define TDS_STR_EMUL_LE   "emulate little endian"
 
-#define TDS_STR_ENABLE_TLS_V1   "enable tls v1"
 
-#define TDS_STR_ENCRYPTION   "encryption"
 
-#define TDS_STR_ENCRYPTION_OFF   "off"
 
-#define TDS_STR_ENCRYPTION_REQUEST   "request"
 
-#define TDS_STR_ENCRYPTION_REQUIRE   "require"
 
-#define TDS_STR_HOST   "host"
 
-#define TDS_STR_HOSTNAME   "hostname"
 
-#define TDS_STR_INSTANCE   "instance"
 
-#define TDS_STR_LANGUAGE   "language"
 
-#define TDS_STR_PORT   "port"
 
-#define TDS_STR_QUERY_TIMEOUT   "query timeout"
 
-#define TDS_STR_READONLY_INTENT   "read-only intent"
 
-#define TDS_STR_REALM   "realm"
 
-#define TDS_STR_SPN   "spn"
 
-#define TDS_STR_SWAPDT   "swap broken dates"
 
-#define TDS_STR_TEXTSZ   "text size"
 
-#define TDS_STR_TIMEOUT   "timeout"
 
-#define TDS_STR_USE_UTF_16   "use utf-16"
 
-#define TDS_STR_USELANMAN   "use lanman"
 
-#define TDS_STR_USENTLMV2   "use ntlmv2"
 
-#define TDS_STR_VERSION   "tds version"
 
-#define TDS_SUCCEED(rc)   ((rc)>=0)
 
-#define TDS_SUCCESS   ((TDSRET)0)
 
#define TDS_SYB_VER(maj, min, x)   (((maj)<<24)|((min)<<16)|(x)<<8)
 Calc a version number for Sybase. More...
 
-#define TDS_TOKEN_FLAG(flag)   TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))
 
-#define TDSDUMP_BUF_FAST   if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf
 
-#define tdsdump_dump_buf   TDSDUMP_BUF_FAST
 
-#define tdsdump_log   TDSDUMP_LOG_FAST
 
-#define TDSDUMP_LOG_FAST   if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log
 
-#define TDSSELREAD   POLLIN
 
-#define TDSSELWRITE   POLLOUT
 
-#define TLS_STR_OPENSSL_CIPHERS   "openssl ciphers"
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef struct tds_bcpcoldata BCPCOLDATA
 
-typedef int(* err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
 
-typedef TDSRET(* tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset)
 
-typedef void(* tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset)
 
-typedef struct tds_capabilities TDS_CAPABILITIES
 
-typedef struct tds_capability_type TDS_CAPABILITY_TYPE
 
-typedef char TDS_CHAR
 
typedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
 A structure to hold all the compile-time settings. More...
 
-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
 Information relevant to libiconv. More...
 
-typedef enum tds_encryption_level TDS_ENCRYPTION_LEVEL
 
-typedef tds_sysdep_real64_type TDS_FLOAT
 
-typedef int tds_func_check(const TDSCOLUMN *col)
 
-typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col)
 
-typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
 
-typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
-typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
 
-typedef unsigned tds_func_put_info_len(TDSSOCKET *tds, TDSCOLUMN *col)
 
-typedef TDS_INT tds_func_row_len(TDSCOLUMN *col)
 
-typedef int32_t TDS_INT
 
-typedef int64_t TDS_INT8
 
-typedef intptr_t TDS_INTPTR
 
-typedef enum tds_operations TDS_OPERATION
 
-typedef union tds_option_arg TDS_OPTION_ARG
 
-typedef tds_sysdep_real32_type TDS_REAL
 
-typedef int16_t TDS_SMALLINT
 
-typedef enum tds_states TDS_STATE
 values for tds->state
 
-typedef uint8_t TDS_TINYINT
 
-typedef uint8_t TDS_UCHAR
 
-typedef uint32_t TDS_UINT
 
-typedef uint64_t TDS_UINT8
 
-typedef uintptr_t TDS_UINTPTR
 
-typedef uint16_t TDS_USMALLINT
 
-typedef struct tds_authentication TDSAUTHENTICATION
 
-typedef struct tds_bcpinfo TDSBCPINFO
 
typedef struct tds_blob TDSBLOB
 Information about blobs (e.g. More...
 
-typedef struct tds_column TDSCOLUMN
 
-typedef struct tds_column_funcs TDSCOLUMNFUNCS
 
-typedef struct tds_result_info TDSCOMPUTEINFO
 
-typedef void(* TDSCONFPARSE) (const char *option, const char *value, void *param)
 
-typedef struct tds_connection TDSCONNECTION
 
-typedef struct tds_context TDSCONTEXT
 
-typedef struct tds_cursor TDSCURSOR
 Holds informations about a cursor.
 
-typedef struct tdsdaterec TDSDATEREC
 Used by tds_datecrack.
 
-typedef struct tds_dynamic TDSDYNAMIC
 Holds information for a dynamic (also called prepared) query.
 
-typedef struct tds_env TDSENV
 Current environment as reported by the server.
 
-typedef struct tds_headers TDSHEADERS
 
-typedef struct tdsiconvinfo TDSICONV
 
-typedef struct tds_locale TDSLOCALE
 
-typedef struct tds_login TDSLOGIN
 
-typedef struct tds_message TDSMESSAGE
 
-typedef struct tds_multiple TDSMULTIPLE
 
-typedef struct tds_packet TDSPACKET
 
-typedef TDSRESULTINFO TDSPARAMINFO
 
-typedef struct tds_poll_wakeup TDSPOLLWAKEUP
 
-typedef struct tds_result_info TDSRESULTINFO
 Hold information for any results.
 
-typedef int TDSRET
 
-typedef struct tds_socket TDSSOCKET
 
-typedef struct tds_upd_col TDSUPDCOL
 
-typedef struct tds_variant TDSVARIANT
 Store variant informations.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Enumerations

enum  {
-  TDS_CUR_ISTAT_UNUSED = 0x00, -TDS_CUR_ISTAT_DECLARED = 0x01, -TDS_CUR_ISTAT_OPEN = 0x02, -TDS_CUR_ISTAT_CLOSED = 0x04, -
-  TDS_CUR_ISTAT_RDONLY = 0x08, -TDS_CUR_ISTAT_UPDATABLE = 0x10, -TDS_CUR_ISTAT_ROWCNT = 0x20, -TDS_CUR_ISTAT_DEALLOC = 0x40 -
- }
 
enum  {
-  TDS_TYPEFLAG_INVALID = 0, -TDS_TYPEFLAG_NULLABLE = 1, -TDS_TYPEFLAG_FIXED = 2, -TDS_TYPEFLAG_VARIABLE = 4, -
-  TDS_TYPEFLAG_COLLATE = 8, -TDS_TYPEFLAG_ASCII = 16, -TDS_TYPEFLAG_UNICODE = 32, -TDS_TYPEFLAG_BINARY = 64, -
-  TDS_TYPEFLAG_DATETIME = 128, -TDS_TYPEFLAG_NUMERIC = 256 -
- }
 
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, -TDS_CURSOR_FETCH_PREV, -TDS_CURSOR_FETCH_FIRST, -TDS_CURSOR_FETCH_LAST, -
-  TDS_CURSOR_FETCH_ABSOLUTE, -TDS_CURSOR_FETCH_RELATIVE -
- }
 
enum  tds_cursor_operation { TDS_CURSOR_POSITION = 0, -TDS_CURSOR_UPDATE = 1, -TDS_CURSOR_DELETE = 2, -TDS_CURSOR_INSERT = 4 - }
 
enum  TDS_CURSOR_STATE { TDS_CURSOR_STATE_UNACTIONED = 0, -TDS_CURSOR_STATE_REQUESTED = 1, -TDS_CURSOR_STATE_SENT = 2, -TDS_CURSOR_STATE_ACTIONED = 3 - }
 
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, -TDS_DONE_EVENT = 0x40, -
-  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...
 
enum  TDS_ICONV_ENTRY { client2ucs2, -client2server_chardata, -initial_char_conv_count - }
 
enum  TDS_MULTIPLE_TYPE { TDS_MULTIPLE_QUERY, -TDS_MULTIPLE_EXECUTE, -TDS_MULTIPLE_RPC - }
 
enum  tds_operations {
-  TDS_OP_NONE = 0, -TDS_OP_CURSOR = TDS_SP_CURSOR, -TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN, -TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE, -
-  TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE, -TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC, -TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE, -TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH, -
-  TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION, -TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE, -TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL, -TDS_OP_PREPARE = TDS_SP_PREPARE, -
-  TDS_OP_EXECUTE = TDS_SP_EXECUTE, -TDS_OP_PREPEXEC = TDS_SP_PREPEXEC, -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, -
-  TDS_READING, -TDS_DEAD -
- }
 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), -
-  TDS_TOKEN_FLAG =(OTHERS), -TDS_TOKEN_FLAG =(OTHERS), -TDS_TOKEN_FLAG =(OTHERS), -TDS_TOKEN_FLAG =(OTHERS), -
-  TDS_TOKEN_FLAG =(OTHERS), -TDS_TOKEN_FLAG =(OTHERS), -TDS_TOKEN_FLAG =(OTHERS), -TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC, -
-  TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS -
- }
 
enum  tds_token_results {
-  TDS_TOKEN_RES_OTHERS, -TDS_TOKEN_RES_ROWFMT, -TDS_TOKEN_RES_COMPUTEFMT, -TDS_TOKEN_RES_PARAMFMT, -
-  TDS_TOKEN_RES_DONE, -TDS_TOKEN_RES_ROW, -TDS_TOKEN_RES_COMPUTE, -TDS_TOKEN_RES_PROC, -
-  TDS_TOKEN_RES_MSG, -TDS_TOKEN_RES_ENV -
- }
 
enum  TDSERRNO {
-  TDSEOK = TDS_SUCCESS, -TDSEVERDOWN = 100, -TDSEINPROGRESS, -TDSEICONVIU = 2400, -
-  TDSEICONVAVAIL = 2401, -TDSEICONVO = 2402, -TDSEICONVI = 2403, -TDSEICONV2BIG = 2404, -
-  TDSEPORTINSTANCE = 2500, -TDSESYNC = 20001, -TDSEFCON = 20002, -TDSETIME = 20003, -
-  TDSEREAD = 20004, -TDSEWRIT = 20006, -TDSESOCK = 20008, -TDSECONN = 20009, -
-  TDSEMEM = 20010, -TDSEINTF = 20012, -TDSEUHST = 20013, -TDSEPWD = 20014, -
-  TDSESEOF = 20017, -TDSERPND = 20019, -TDSEBTOK = 20020, -TDSEOOB = 20022, -
-  TDSECLOS = 20056, -TDSEUSCT = 20058, -TDSEUTDS = 20146, -TDSEEUNR = 20185, -
-  TDSECAP = 20203, -TDSENEG = 20210, -TDSEUMSG = 20212, -TDSECAPTYP = 20213, -
-  TDSECONF = 20214, -TDSEBPROBADTYP = 20250, -TDSECLOSEIN = 20292 -
- }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

int determine_adjusted_size (const TDSICONV *char_conv, int size)
 Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
 
-static bool is_tds_type_valid (int type)
 
-TDSAUTHENTICATIONtds5_negotiate_get_auth (TDSSOCKET *tds)
 
-void tds5_negotiate_set_msg_type (TDSSOCKET *tds, TDSAUTHENTICATION *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)
 Creates a temporary stored procedure in the server and execute it. More...
 
int tds7_get_instance_port (struct addrinfo *addr, const char *instance)
 Get port of given instance. More...
 
int tds7_get_instance_ports (FILE *output, struct addrinfo *addr)
 Get port of all instances. More...
 
-void tds7_srv_charset_changed (TDSCONNECTION *conn, int sql_collate, int lcid)
 
-const char * tds_addrinfo2str (struct addrinfo *addr, char *name, int namemax)
 
-TDSSOCKETtds_alloc_additional_socket (TDSCONNECTION *conn)
 
-BCPCOLDATAtds_alloc_bcp_column_data (unsigned int column_size)
 
-TDSBCPINFOtds_alloc_bcpinfo (void)
 
-char * tds_alloc_client_sqlstate (int msgno)
 
-TDSCOMPUTEINFO ** tds_alloc_compute_results (TDSSOCKET *tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
 
-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)
 
TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
 Allocate a dynamic statement. More...
 
-TDSLOCALEtds_alloc_locale (void)
 
-TDSLOGINtds_alloc_login (int use_environment)
 
-char * tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno)
 
-TDSPACKETtds_alloc_packet (void *buf, unsigned len)
 
void * tds_alloc_param_data (TDSCOLUMN *curparam)
 Allocate data for a parameter. More...
 
TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
 Adds a output parameter to TDSPARAMINFO. More...
 
-TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols)
 
-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)
 
TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
 Tell we finished sending BCP data to server. More...
 
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(). More...
 
TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Initialize BCP information. More...
 
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. More...
 
TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start sending BCP data to server. More...
 
TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start bulk copy to server. More...
 
-static bool tds_capability_enabled (const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
 
void tds_close_socket (TDSSOCKET *tds)
 Close current socket. More...
 
-int tds_config_boolean (const char *option, const char *value, TDSLOGIN *login)
 
TDS_USMALLINT * tds_config_verstr (const char *tdsver, TDSLOGIN *login)
 Set TDS version from given string. More...
 
-int tds_connect_and_login (TDSSOCKET *tds, TDSLOGIN *login)
 
-void tds_connection_close (TDSCONNECTION *conn)
 
-int tds_connection_read (TDSSOCKET *tds, unsigned char *buf, int buflen)
 
-int tds_connection_write (TDSSOCKET *tds, const unsigned char *buf, int buflen, int final)
 
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. More...
 
-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. More...
 
-TDSRET tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor)
 
-TDSRET tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor)
 Send a deallocation request to server.
 
-void tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
 
-TDSRET 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)
 
-TDSRET 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)
 
-TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
 
-TDSRET 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)
 
TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr)
 Convert from db date format to a structured date format. More...
 
TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
 Deallocate cursor on idle. More...
 
TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
 Unprepare dynamic on idle. More...
 
-void tds_deinit_bcpinfo (TDSBCPINFO *bcpinfo)
 
-void 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. More...
 
-void 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. More...
 
TDSRET tds_flush_packet (TDSSOCKET *tds)
 Flush packet to server. More...
 
-void tds_free_all_results (TDSSOCKET *tds)
 
-void tds_free_bcp_column_data (BCPCOLDATA *coldata)
 
-void tds_free_bcpinfo (TDSBCPINFO *bcpinfo)
 
-void tds_free_context (TDSCONTEXT *locale)
 
void tds_free_input_params (TDSDYNAMIC *dyn)
 Frees all allocated input parameters of a dynamic statement. More...
 
-void tds_free_locale (TDSLOCALE *locale)
 
-void tds_free_login (TDSLOGIN *login)
 
-void tds_free_msg (TDSMESSAGE *message)
 
-void tds_free_packets (TDSPACKET *packet)
 
-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_row (TDSRESULTINFO *res_info, unsigned char *row)
 
-void tds_free_socket (TDSSOCKET *tds)
 
unsigned char tds_get_byte (TDSSOCKET *tds)
 Return a single byte from the input buffer. More...
 
-TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype)
 
TDSRET tds_get_char_data (TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
 Fetch character data the wire. More...
 
TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
 Return declaration for column (like "varchar(20)"). More...
 
-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)
 Return type suitable for conversions (convert all nullable types to fixed type) More...
 
char * tds_get_home_file (const char *file)
 Return filename from HOME directory. More...
 
TDSLOCALEtds_get_locale (void)
 Get locale information. More...
 
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. More...
 
-int tds_get_size_by_type (TDS_SERVER_TYPE servertype)
 Return the number of bytes needed by specified type.
 
size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
 Fetch a string from the wire. More...
 
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 More...
 
TDS_UINT tds_get_uint (TDSSOCKET *tds)
 Get an int32 from the server. More...
 
TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
 Get an uint64 from the server. More...
 
-TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
 Get an int16 from the server.
 
-int tds_get_varint_size (TDSCONNECTION *conn, int datatype)
 tds_get_varint_size() returns the size of a variable length integer returned in a TDS 7.0 result string
 
-void tds_getmac (TDS_SYS_SOCKET s, unsigned char mac[6])
 
-unsigned int tds_gettime_ms (void)
 
-int tds_goodread (TDSSOCKET *tds, unsigned char *buf, int buflen)
 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)
 Allocate iconv stuff. More...
 
-void tds_iconv_close (TDSCONNECTION *conn)
 
-void tds_iconv_free (TDSCONNECTION *conn)
 
-TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
 Get iconv information from a LCID (to support different column encoding under MSSQL2K)
 
-TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
 
TDSLOGINtds_init_login (TDSLOGIN *login, TDSLOCALE *locale)
 Initialize login structure with locale information and other stuff for connection. More...
 
-int tds_init_write_buf (TDSSOCKET *tds)
 
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
 Finds a dynamic given string id. More...
 
struct addrinfo * tds_lookup_host (const char *servername)
 Get the IP address for a hostname. More...
 
-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)
 
-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)
 Check if dynamic request must be unprepared. More...
 
const char * tds_next_placeholder (const char *start)
 Get position of next placeholder. More...
 
TDSAUTHENTICATIONtds_ntlm_get_auth (TDSSOCKET *tds)
 Build a NTLMSPP packet to send to server. More...
 
-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)
 
-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)
 
-void tds_parse_conf_section (const char *option, const char *value, void *param)
 
unsigned char tds_peek (TDSSOCKET *tds)
 Reads a byte from the TDS stream without removing it. More...
 
TDSRET tds_process_cancel (TDSSOCKET *tds)
 
TDSRET tds_process_login_tokens (TDSSOCKET *tds)
 tds_process_login_tokens() is called after sending the login packet to the server. More...
 
TDSRET tds_process_simple_query (TDSSOCKET *tds)
 Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. More...
 
TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
 process all streams. More...
 
const char * tds_prtype (int token)
 Returns string representation of the given type. More...
 
-char * tds_prwsaerror (int erc)
 
-void tds_prwsaerror_free (char *s)
 
-int tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize)
 
-int tds_put_byte (TDSSOCKET *tds, unsigned char c)
 
-int tds_put_cancel (TDSSOCKET *tds)
 
-int tds_put_int (TDSSOCKET *tds, TDS_INT i)
 
-int tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i)
 
-int tds_put_n (TDSSOCKET *tds, const void *buf, size_t n)
 
-int tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si)
 
int tds_put_string (TDSSOCKET *tds, const char *buf, int len)
 Output a string to wire automatic translate string to unicode if needed. More...
 
size_t tds_quote_id (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
 Quote an id. More...
 
size_t tds_quote_string (TDSSOCKET *tds, char *buffer, const char *str, int len)
 Quote a string. More...
 
-void tds_random_buffer (unsigned char *out, int len)
 
bool tds_read_conf_file (TDSLOGIN *login, const char *server)
 Read configuration info for given server return 0 on error. More...
 
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) More...
 
TDSLOGINtds_read_config_info (TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
 tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values More...
 
int tds_read_packet (TDSSOCKET *tds)
 Read in one 'packet' from the server. More...
 
void * tds_realloc (void **pp, size_t new_size)
 Reallocate a pointer and update it if success. More...
 
-TDSPACKETtds_realloc_packet (TDSPACKET *packet, unsigned len)
 
-TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, size_t bufsize)
 
-static void tds_release_cur_dyn (TDSSOCKET *tds)
 
-void tds_release_cursor (TDSCURSOR **pcursor)
 
void tds_release_dynamic (TDSDYNAMIC **dyn)
 Frees dynamic statement. More...
 
int tds_select (TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
 Select on a socket until it's available or the timeout expires. More...
 
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. More...
 
-bool tds_set_app (TDSLOGIN *tds_login, const char *application) TDS_WUR
 
-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)
 Set type of column initializing all dependency. More...
 
void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Set current dynamic. More...
 
-void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info)
 
-bool tds_set_host (TDSLOGIN *tds_login, const char *hostname) TDS_WUR
 
TDSRET tds_set_interfaces_file_loc (const char *interfloc)
 Set the full name of interface file. More...
 
-bool tds_set_language (TDSLOGIN *tds_login, const char *language) 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)
 Set type of column initializing all dependency. More...
 
-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
 Set the servername in a TDSLOGIN structure. More...
 
TDS_STATE tds_set_state (TDSSOCKET *tds, TDS_STATE state)
 Set state of TDS connection, with logging and checking. More...
 
-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)
 
const char * tds_skip_comment (const char *s)
 Skip a comment in a query. More...
 
const char * tds_skip_quoted (const char *s)
 Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) More...
 
-void tds_socket_flush (TDS_SYS_SOCKET sock)
 
int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
 Set socket to non-blocking. More...
 
-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. More...
 
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 Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated. More...
 
TDSRET tds_submit_begin_tran (TDSSOCKET *tds)
 Send a rollback request. More...
 
TDSRET tds_submit_commit (TDSSOCKET *tds, int cont)
 Send a commit request. More...
 
TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
 Submit a prepared query with parameters. More...
 
TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Sends a previously prepared dynamic statement to the server. More...
 
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. More...
 
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. More...
 
TDSRET tds_submit_query (TDSSOCKET *tds, const char *query)
 Sends a language string to the database server for processing. More...
 
TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
 Sends a language string to the database server for processing. More...
 
TDSRET tds_submit_queryf (TDSSOCKET *tds, const char *queryf,...)
 Format and submit a query. More...
 
TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont)
 Send a rollback request. More...
 
TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
 Calls a RPC from server. More...
 
TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Send a unprepare request for a prepared query. More...
 
-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. More...
 
-TDSRET tds_vstrbuild (char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen, va_list ap)
 
-void tds_wakeup_close (TDSPOLLWAKEUP *wakeup)
 
-static TDS_SYS_SOCKET tds_wakeup_get_fd (const TDSPOLLWAKEUP *wakeup)
 
-int tds_wakeup_init (TDSPOLLWAKEUP *wakeup)
 
-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)
 Send some data in the writetext request started by tds_writetext_start. More...
 
TDSRET tds_writetext_end (TDSSOCKET *tds)
 Finish sending writetext data. More...
 
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. More...
 
-void tdsdump_close (void)
 Close the TDS dump log file.
 
void tdsdump_col (const TDSCOLUMN *col)
 Write a column value to the debug log. More...
 
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. More...
 
-int tdsdump_isopen (void)
 
void tdsdump_log (const char *file, unsigned int level_line, const char *fmt,...)
 Write a message to the debug log. More...
 
-void tdsdump_off (void)
 Temporarily turn off logging.
 
void tdsdump_on (void)
 Turn logging back on. More...
 
int tdsdump_open (const char *filename)
 Create and truncate a human readable dump file for the TDS traffic. More...
 
int tdserror (const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
 Call the client library's error handler (for library-generated errors only) More...
 
- - - - - - - - - - - - - - - - - -

-Variables

-const char STD_DATETIME_FMT []
 
-int tds_debug_flags
 
-int tds_g_append_mode
 
-const char tds_hex_digits []
 
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. More...
 
-const uint16_t tds_type_flags_ms [256]
 
-int tds_write_dump
 Tell if TDS debug logging is turned on or off.
 
-

Detailed Description

-

Main include file for libtds.

-

Macro Definition Documentation

- -

§ TDS_BYTE_SWAP16

- -
-
- - - - - - - - -
#define TDS_BYTE_SWAP16( value)
-
-Value:
(((((uint16_t)value)<<8) & 0xFF00u) | \
((((uint16_t)value)>>8) & 0x00FFu))
-
-
- -

§ TDS_BYTE_SWAP32

- -
-
- - - - - - - - -
#define TDS_BYTE_SWAP32( value)
-
-Value:
(((((uint32_t)value)<<24) & 0xFF000000u)| \
((((uint32_t)value)<< 8) & 0x00FF0000u)| \
((((uint32_t)value)>> 8) & 0x0000FF00u)| \
((((uint32_t)value)>>24) & 0x000000FFu))
-
-
- -

§ TDS_IS_MSSQL

- -
-
- - - - - - - - -
#define TDS_IS_MSSQL( x)   (((x)->conn->product_version & 0x80000000u)!=0)
-
- -

Check if product is Microsft SQL Server.

-

x should be a TDSSOCKET*.

- -
-
- -

§ TDS_IS_SYBASE

- -
-
- - - - - - - - -
#define TDS_IS_SYBASE( x)   (!((x)->conn->product_version & 0x80000000u))
-
- -

Check if product is Sybase (such as Adaptive Server Enterrprice).

-

x should be a TDSSOCKET*.

- -
-
- -

§ TDS_MS_VER

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define TDS_MS_VER( maj,
 min,
 
)   (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))

- -
-
- -

§ TDS_SYB_VER

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
#define TDS_SYB_VER( maj,
 min,
 
)   (((maj)<<24)|((min)<<16)|(x)<<8)
-
- -

Calc a version number for Sybase.

- -
-
-

Typedef Documentation

- -

§ TDS_COMPILETIME_SETTINGS

- -
-
- -

A structure to hold all the compile-time settings.

-

This structure is returned by tds_get_compiletime_settings

- -
-
- -

§ TDS_ENCODING

- -
-
- - - - -
typedef struct tds_encoding TDS_ENCODING
-
- -

Information relevant to libiconv.

-

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

- -
-
- -

§ TDSBLOB

- -
-
- - - - -
typedef struct tds_blob TDSBLOB
-
- -

Information about blobs (e.g.

-

text or image). current_row contains this structure.

- -
-
-

Enumeration Type Documentation

- -

§ tds_end

- -
-
- - - - -
enum tds_end
-
- -

Flags returned in TDS_DONE token.

- - - - - - - - - -
Enumerator
TDS_DONE_FINAL 

final result set, command completed successfully.

-
TDS_DONE_MORE_RESULTS 

more results follow

-
TDS_DONE_ERROR 

error occurred

-
TDS_DONE_INXACT 

transaction in progress

-
TDS_DONE_PROC 

results are from a stored procedure

-
TDS_DONE_COUNT 

count field in packet is valid

-
TDS_DONE_CANCELLED 

acknowledging an attention command (usually a cancel)

-
TDS_DONE_SRVERROR 

SQL server server error.

-
- -
-
- -

§ tds_states

- -
-
- - - - -
enum tds_states
-
- -

values for tds->state

- - - - - - - -
Enumerator
TDS_IDLE 

no data expected

-
TDS_WRITING 

client is writing data

-
TDS_SENDING 

client would send data

-
TDS_PENDING 

cilent is waiting for data

-
TDS_READING 

client is reading data

-
TDS_DEAD 

no connection

-
- -
-
-

Function Documentation

- -

§ tds_bcp_done()

- -
-
- - - - - - - - - - - - - - - - - - -
TDSRET tds_bcp_done (TDSSOCKETtds,
int * rows_copied 
)
-
- -

Tell we finished sending BCP data to server.

-
Parameters
- - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
[out]rows_copiednumber of rows copied to server
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_bcp_fread()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TDSRET tds_bcp_fread (TDSSOCKETtds,
TDSICONVchar_conv,
FILE * stream,
const char * terminator,
size_t term_len,
char ** outbuf,
size_t * outbytes 
)
-
- -

Read a data file, passing the data through iconv().

-
Return values
- - - - -
TDS_SUCCESSsuccess
TDS_FAILerror reading the column
TDS_NO_MORE_RESULTSend of file detected
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_bcp_init()

- -
-
- - - - - - - - - - - - - - - - - - -
TDSRET tds_bcp_init (TDSSOCKETtds,
TDSBCPINFObcpinfo 
)
-
- -

Initialize BCP information.

-

Query structure of the table to server.

Parameters
- - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information to initialize. Structure should be allocate and table name and direction should be already set.
-
-
- -
-
- -

§ tds_bcp_send_record()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TDSRET tds_bcp_send_record (TDSSOCKETtds,
TDSBCPINFObcpinfo,
tds_bcp_get_col_data get_col_data,
tds_bcp_null_error ignored,
int offset 
)
-
- -

Send one row of data to server.

-
Parameters
- - - - - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information
get_col_datafunction to call to retrieve data to be sent
ignoredfunction to call if we try to send NULL if not allowed (not used)
offsetpassed to get_col_data and null_error to specify the row to get
-
-
-
Returns
TDS_SUCCESS or TDS_FAIL.
- -
-
- -

§ tds_bcp_start()

- -
-
- - - - - - - - - - - - - - - - - - -
TDSRET tds_bcp_start (TDSSOCKETtds,
TDSBCPINFObcpinfo 
)
-
- -

Start sending BCP data to server.

-

Initialize stream to accept data.

Parameters
- - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information already prepared
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_bcp_start_copy_in()

- -
-
- - - - - - - - - - - - - - - - - - -
TDSRET tds_bcp_start_copy_in (TDSSOCKETtds,
TDSBCPINFObcpinfo 
)
-
- -

Start bulk copy to server.

-
Parameters
- - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information already prepared
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_get_conversion_type()

- -
-
- - - - - - - - - - - - - - - - - - -
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)

-
Parameters
- - - -
srctypetype to convert
colsizesize of type
-
-
-
Returns
type for conversion
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

§ tds_get_locale()

- -
-
- - - - - - - - -
TDSLOCALE* tds_get_locale (void )
-
- -

Get locale information.

-
Returns
allocated structure with all information or NULL if error
- -
-
- -

§ tds_iconv_alloc()

- -
-
- - - - - - - - -
int tds_iconv_alloc (TDSCONNECTIONconn)
-
- -

Allocate iconv stuff.

-
Returns
0 for success
- -
-
- -

§ tds_numeric_to_string()

- -
-
- - - - - - - - - - - - - - - - - - -
TDS_INT tds_numeric_to_string (const TDS_NUMERICnumeric,
char * s 
)
-
-
Returns
<0 if error
- -
-
- -

§ tds_set_column_type()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void tds_set_column_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
-
- -

Set type of column initializing all dependency.

-

column_usertype should already be set.

Parameters
- - - -
curcolcolumn to set
typetype to set
-
-
- -
-
- -

§ tds_set_param_type()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void tds_set_param_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
-
- -

Set type of column initializing all dependency.

-
Parameters
- - - - -
tdsstate information for the socket and the TDS protocol
curcolcolumn to set
typetype to set
-
-
- -
-
- -

§ tds_set_server()

- -
-
- - - - - - - - - - - - - - - - - - -
bool tds_set_server (TDSLOGINtds_login,
const char * server 
)
-
- -

Set the servername in a TDSLOGIN structure.

-

Normally copies server into tds_login. If server does not point to a plausible name, the environment variables TDSQUERY and DSQUERY are used, in that order. If they don't exist, the "default default" servername is "SYBASE" (although the utility of that choice is a bit murky).

-
Parameters
- - - -
tds_loginpoints to a TDSLOGIN structure
serverthe servername, or NULL, or a zero-length string
-
-
-
Todo:
open the log file earlier, so these messages can be seen.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_set_state()

- -
-
- - - - - - - - - - - - - - - - - - -
TDS_STATE tds_set_state (TDSSOCKETtds,
TDS_STATE state 
)
-
- -

Set state of TDS connection, with logging and checking.

-
Parameters
- - - -
tdsstate information for the socket and the TDS protocol
statethe new state of the connection, cf. TDS_STATE.
-
-
-
Returns
the new state, which might not be state.
-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

§ tds_strndup()

- -
-
- - - - - - - - - - - - - - - - - - -
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 Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated.

-
Parameters
- - - -
sstring to copy from
lenlength to copy
-
-
-
Returns
string copied or NULL if errors
- -
-
- -

§ tds_writetext_continue()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
TDSRET tds_writetext_continue (TDSSOCKETtds,
const TDS_UCHAR * text,
TDS_UINT size 
)
-
- -

Send some data in the writetext request started by tds_writetext_start.

-

You should write in total (with multiple calls to this function) all bytes declared calling tds_writetext_start.

Parameters
- - - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
textdata to write
sizedata size in bytes
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_writetext_end()

- -
-
- - - - - - - - -
TDSRET tds_writetext_end (TDSSOCKETtds)
-
- -

Finish sending writetext data.

-
Parameters
- - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_writetext_start()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TDSRET tds_writetext_start (TDSSOCKETtds,
const char * objname,
const char * textptr,
const char * timestamp,
int with_log,
TDS_UINT size 
)
-
- -

Start writing writetext request.

-

This request start a bulk session.

Parameters
- - - - - - - -
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
objnametable name
textptrTEXTPTR (see sql documentation)
timestampdata timestamp
with_logis log is enabled during insert
sizebytes to be inserted
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tdsdump_col()

- -
-
- - - - - - - - -
void tdsdump_col (const TDSCOLUMNcol)
-
- -

Write a column value to the debug log.

-
Parameters
- - -
colcolumn to dump
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tdsdump_dump_buf()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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.

-
Parameters
- - - - - - -
filesource file name
level_lineline and level combined. This and file are automatically computed by TDS_DBG_* macros.
msgmessage to print before dump
bufbuffer to dump
lengthnumber of bytes in the buffer
-
-
- -
-
- -

§ tdsdump_log()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tdsdump_log (const char * file,
unsigned int level_line,
const char * fmt,
 ... 
)
-
- -

Write a message to the debug log.

-
Parameters
- - - - -
filename of the log file
level_linekind of detail to be included
fmtprintf-like format string
-
-
- -
-
- -

§ tdsdump_on()

- -
-
- - - - - - - - -
void tdsdump_on (void )
-
- -

Turn logging back on.

-

You must call tdsdump_open() before calling this routine.

- -
-
- -

§ tdsdump_open()

- -
-
- - - - - - - - -
int tdsdump_open (const char * filename)
-
- -

Create and truncate a human readable dump file for the TDS traffic.

-

The name of the file is specified by the filename parameter. If that is given as NULL or an empty string, any existing log file will be closed.

-
Returns
true if the file was opened, false if it couldn't be opened.
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

§ tdserror()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int tdserror (const TDSCONTEXTtds_ctx,
TDSSOCKETtds,
int msgno,
int errnum 
)
-
- -

Call the client library's error handler (for library-generated errors only)

-

The client library error handler may return: TDS_INT_CANCEL – Return TDS_FAIL to the calling function. For TDSETIME, closes the connection first. TDS_INT_CONTINUE – For TDSETIME only, retry the network read/write operation. Else invalid. TDS_INT_TIMEOUT – For TDSETIME only, send a TDSCANCEL packet. Else invalid.

-

These are Sybase semantics, but they serve all purposes. The application tells the library to quit, fail, retry, or attempt to cancel. In the event of a network timeout, a failed operation necessarily means the connection becomes unusable, because no cancellation dialog was concluded with the server.

-

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_ctxpoints to a TDSCONTEXT structure
tdsthe connection structure, may be NULL if not connected
msgnoan enumerated libtds msgno, cf. tds.h
errnumthe OS errno, if it matters, else zero
-
-
-
Returns
client library function's return code
- -
-
-

Variable Documentation

- -

§ 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.

-

The following little table is indexed by precision and will tell us the number of bytes required to store the specified precision.

-

Support precision up to 77 digits

- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00431_source.html freetds-1.2.3/doc/reference/a00431_source.html --- freetds-1.1.6/doc/reference/a00431_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00431_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/tds.h Source File +FreeTDS API: include/freetds/stream.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
tds.h
+
stream.h
-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 */
52 typedef struct tdsiconvinfo TDSICONV;
53 typedef struct tds_connection TDSCONNECTION;
54 typedef struct tds_socket TDSSOCKET;
55 typedef struct tds_column TDSCOLUMN;
56 typedef struct tds_bcpinfo TDSBCPINFO;
57 
58 #include <freetds/version.h>
59 #include "tds_sysdep_public.h"
60 #include <freetds/sysdep_private.h>
61 #include <freetds/thread.h>
62 #include <freetds/bool.h>
63 #include <freetds/macros.h>
64 #include <freetds/utils/string.h>
65 #include "replacements.h"
66 
67 #include <freetds/pushvis.h>
68 
69 #ifdef __cplusplus
70 extern "C"
71 {
72 #if 0
73 }
74 #endif
75 #endif
76 
83 {
84  const char *freetds_version; /* release version of FreeTDS */
85  const char *sysconfdir; /* location of freetds.conf */
86  const char *last_update; /* latest software_version date among the modules */
87  int msdblib; /* for MS style dblib */
88  int sybase_compat; /* enable increased Open Client binary compatibility */
89  int threadsafe; /* compile for thread safety default=no */
90  int libiconv; /* search for libiconv in DIR/include and DIR/lib */
91  const char *tdsver; /* TDS protocol version (4.2/4.6/5.0/7.0/7.1) 5.0 */
92  int iodbc; /* build odbc driver against iODBC in DIR */
93  int unixodbc; /* build odbc driver against unixODBC in DIR */
94  int openssl; /* build against OpenSSL */
95  int gnutls; /* build against GnuTLS */
96  int mars; /* MARS enabled */
98 
114 /*
115  * All references to data that touch the wire should use the following typedefs.
116  *
117  * If you have problems on 64-bit machines and the code is
118  * using a native datatype, please change it to use
119  * these. (In the TDS layer only, the API layers have their
120  * own typedefs which equate to these).
121  */
122 typedef char TDS_CHAR; /* 8-bit char */
123 typedef uint8_t TDS_UCHAR; /* 8-bit uchar */
124 typedef uint8_t TDS_TINYINT; /* 8-bit unsigned */
125 typedef int16_t TDS_SMALLINT; /* 16-bit int */
126 typedef uint16_t TDS_USMALLINT; /* 16-bit unsigned */
127 typedef int32_t TDS_INT; /* 32-bit int */
128 typedef uint32_t TDS_UINT; /* 32-bit unsigned */
129 typedef int64_t TDS_INT8; /* 64-bit integer */
130 typedef uint64_t TDS_UINT8; /* 64-bit unsigned */
131 typedef intptr_t TDS_INTPTR;
132 typedef uintptr_t TDS_UINTPTR;
133 typedef tds_sysdep_real32_type TDS_REAL; /* 32-bit real */
134 typedef tds_sysdep_real64_type TDS_FLOAT; /* 64-bit real */
135 
136 #include <freetds/proto.h>
137 
138 #define TDS_INVALID_TYPE ((TDS_SERVER_TYPE) 0)
139 
144 typedef struct
145 {
146  TDS_UINT8 time;
147  TDS_INT date;
148  TDS_SMALLINT offset;
149  TDS_USMALLINT time_prec:3;
150  TDS_USMALLINT _tds_reserved:10;
151  TDS_USMALLINT has_time:1;
152  TDS_USMALLINT has_date:1;
153  TDS_USMALLINT has_offset:1;
155 
157 typedef struct tdsdaterec
158 {
159  TDS_INT year;
160  TDS_INT quarter;
161  TDS_INT month;
162  TDS_INT day;
163  TDS_INT dayofyear;
164  TDS_INT weekday;
165  TDS_INT hour;
166  TDS_INT minute;
167  TDS_INT second;
168  TDS_INT decimicrosecond;
169  TDS_INT timezone;
170 } TDSDATEREC;
171 
177 extern const int tds_numeric_bytes_per_prec[];
178 
179 typedef int TDSRET;
180 #define TDS_NO_MORE_RESULTS ((TDSRET)1)
181 #define TDS_SUCCESS ((TDSRET)0)
182 #define TDS_FAIL ((TDSRET)-1)
183 #define TDS_CANCELLED ((TDSRET)-2)
184 #define TDS_FAILED(rc) ((rc)<0)
185 #define TDS_SUCCEED(rc) ((rc)>=0)
186 #define TDS_PROPAGATE(rc) \
187  do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } while(0)
188 
189 #define TDS_INT_CONTINUE 1
190 #define TDS_INT_CANCEL 2
191 #define TDS_INT_TIMEOUT 3
192 
193 
194 #define TDS_NO_COUNT -1
195 
196 #define TDS_ROW_RESULT 4040
197 #define TDS_PARAM_RESULT 4042
198 #define TDS_STATUS_RESULT 4043
199 #define TDS_MSG_RESULT 4044
200 #define TDS_COMPUTE_RESULT 4045
201 #define TDS_CMD_DONE 4046
202 #define TDS_CMD_SUCCEED 4047
203 #define TDS_CMD_FAIL 4048
204 #define TDS_ROWFMT_RESULT 4049
205 #define TDS_COMPUTEFMT_RESULT 4050
206 #define TDS_DESCRIBE_RESULT 4051
207 #define TDS_DONE_RESULT 4052
208 #define TDS_DONEPROC_RESULT 4053
209 #define TDS_DONEINPROC_RESULT 4054
210 #define TDS_OTHERS_RESULT 4055
211 
212 enum tds_token_results
213 {
214  TDS_TOKEN_RES_OTHERS,
215  TDS_TOKEN_RES_ROWFMT,
216  TDS_TOKEN_RES_COMPUTEFMT,
217  TDS_TOKEN_RES_PARAMFMT,
218  TDS_TOKEN_RES_DONE,
219  TDS_TOKEN_RES_ROW,
220  TDS_TOKEN_RES_COMPUTE,
221  TDS_TOKEN_RES_PROC,
222  TDS_TOKEN_RES_MSG,
223  TDS_TOKEN_RES_ENV,
224 };
225 
226 #define TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))
227 
228 enum tds_token_flags
229 {
230  TDS_HANDLE_ALL = 0,
231  TDS_TOKEN_FLAG(OTHERS),
232  TDS_TOKEN_FLAG(ROWFMT),
233  TDS_TOKEN_FLAG(COMPUTEFMT),
234  TDS_TOKEN_FLAG(PARAMFMT),
235  TDS_TOKEN_FLAG(DONE),
236  TDS_TOKEN_FLAG(ROW),
237  TDS_TOKEN_FLAG(COMPUTE),
238  TDS_TOKEN_FLAG(PROC),
239  TDS_TOKEN_FLAG(MSG),
240  TDS_TOKEN_FLAG(ENV),
241  TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC,
242  TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS
243 };
244 
249 {
252  , TDS_DONE_ERROR = 0x02
253  , TDS_DONE_INXACT = 0x04
254  , TDS_DONE_PROC = 0x08
255  , TDS_DONE_COUNT = 0x10
257  , TDS_DONE_EVENT = 0x40 /* part of an event notification. */
258  , TDS_DONE_SRVERROR = 0x100
260  /* after the above flags, a TDS_DONE packet has a field describing the state of the transaction */
261  , TDS_DONE_NO_TRAN = 0 /* No transaction in effect */
262  , TDS_DONE_TRAN_SUCCEED = 1 /* Transaction completed successfully */
263  , TDS_DONE_TRAN_PROGRESS= 2 /* Transaction in progress */
264  , TDS_DONE_STMT_ABORT = 3 /* A statement aborted */
265  , TDS_DONE_TRAN_ABORT = 4 /* Transaction aborted */
266 };
267 
268 
269 /*
270  * TDSERRNO is emitted by libtds to the client library's error handler
271  * (which may in turn call the client's error handler).
272  * These match the db-lib msgno, because the same values have the same meaning
273  * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo).
274  */
275 typedef enum { TDSEOK = TDS_SUCCESS,
276  TDSEVERDOWN = 100,
277  TDSEINPROGRESS,
278  TDSEICONVIU = 2400,
279  TDSEICONVAVAIL = 2401,
280  TDSEICONVO = 2402,
281  TDSEICONVI = 2403,
282  TDSEICONV2BIG = 2404,
283  TDSEPORTINSTANCE = 2500,
284  TDSESYNC = 20001,
285  TDSEFCON = 20002,
286  TDSETIME = 20003,
287  TDSEREAD = 20004,
288  TDSEWRIT = 20006,
289  TDSESOCK = 20008,
290  TDSECONN = 20009,
291  TDSEMEM = 20010,
292  TDSEINTF = 20012, /* Server name not found in interface file */
293  TDSEUHST = 20013, /* Unknown host machine name. */
294  TDSEPWD = 20014,
295  TDSESEOF = 20017,
296  TDSERPND = 20019,
297  TDSEBTOK = 20020,
298  TDSEOOB = 20022,
299  TDSECLOS = 20056,
300  TDSEUSCT = 20058,
301  TDSEUTDS = 20146,
302  TDSEEUNR = 20185,
303  TDSECAP = 20203,
304  TDSENEG = 20210,
305  TDSEUMSG = 20212,
306  TDSECAPTYP = 20213,
307  TDSECONF = 20214,
308  TDSEBPROBADTYP = 20250,
309  TDSECLOSEIN = 20292
310 } TDSERRNO;
311 
312 
313 enum {
314  TDS_CUR_ISTAT_UNUSED = 0x00,
315  TDS_CUR_ISTAT_DECLARED = 0x01,
316  TDS_CUR_ISTAT_OPEN = 0x02,
317  TDS_CUR_ISTAT_CLOSED = 0x04,
318  TDS_CUR_ISTAT_RDONLY = 0x08,
319  TDS_CUR_ISTAT_UPDATABLE = 0x10,
320  TDS_CUR_ISTAT_ROWCNT = 0x20,
321  TDS_CUR_ISTAT_DEALLOC = 0x40
322 };
323 
324 /* string types */
325 #define TDS_NULLTERM -9
326 
327 
328 typedef union tds_option_arg
329 {
330  TDS_TINYINT ti;
331  TDS_INT i;
332  TDS_CHAR *c;
334 
335 
336 typedef enum tds_encryption_level {
337  TDS_ENCRYPTION_DEFAULT,
338  TDS_ENCRYPTION_OFF,
339  TDS_ENCRYPTION_REQUEST,
340  TDS_ENCRYPTION_REQUIRE
341 } TDS_ENCRYPTION_LEVEL;
342 
343 /*
344  * TODO use system macros for optimization
345  * See mcrypt for reference and linux kernel source for optimization
346  * check if unaligned access and use fast write/read when implemented
347  */
348 #define TDS_BYTE_SWAP16(value) \
349  (((((uint16_t)value)<<8) & 0xFF00u) | \
350  ((((uint16_t)value)>>8) & 0x00FFu))
351 
352 #define TDS_BYTE_SWAP32(value) \
353  (((((uint32_t)value)<<24) & 0xFF000000u)| \
354  ((((uint32_t)value)<< 8) & 0x00FF0000u)| \
355  ((((uint32_t)value)>> 8) & 0x0000FF00u)| \
356  ((((uint32_t)value)>>24) & 0x000000FFu))
357 
358 #define is_end_token(x) ((x) >= TDS_DONE_TOKEN && (x) <= TDS_DONEINPROC_TOKEN)
359 
360 enum {
361  TDS_TYPEFLAG_INVALID = 0,
362  TDS_TYPEFLAG_NULLABLE = 1,
363  TDS_TYPEFLAG_FIXED = 2,
364  TDS_TYPEFLAG_VARIABLE = 4,
365  TDS_TYPEFLAG_COLLATE = 8,
366  TDS_TYPEFLAG_ASCII = 16,
367  TDS_TYPEFLAG_UNICODE = 32,
368  TDS_TYPEFLAG_BINARY = 64,
369  TDS_TYPEFLAG_DATETIME = 128,
370  TDS_TYPEFLAG_NUMERIC = 256,
371 };
372 
373 extern const uint16_t tds_type_flags_ms[256];
374 #if 0
375 extern const uint16_t tds_type_flags_syb[256];
376 extern const char *const tds_type_names[256];
377 #endif
378 
379 #define is_fixed_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
380 #define is_nullable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
381 #define is_variable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)
382 
383 
384 #define is_blob_type(x) ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
385 #define is_blob_col(x) ((x)->column_varint_size > 2)
386 /* large type means it has a two byte size field */
387 /* define is_large_type(x) (x>128) */
388 #define is_numeric_type(x) ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
389 
390 #define is_datetime_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
391 #define is_unicode_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)
392 #define is_collate_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
393 #define is_ascii_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
394 #define is_binary_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != 0)
395 #define is_char_type(x) ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
396 #define is_similar_type(x, y) (is_char_type(x) && is_char_type(y))
397 static inline
398 bool is_tds_type_valid(int type)
399 {
400  return (unsigned) type < 256u && tds_type_flags_ms[type] != 0;
401 }
402 
403 
404 #define TDS_MAX_CAPABILITY 32
405 #define MAXPRECISION 77
406 #define TDS_MAX_CONN 4096
407 #define TDS_MAX_DYNID_LEN 30
408 
409 /* defaults to use if no others are found */
410 #define TDS_DEF_SERVER "SYBASE"
411 #define TDS_DEF_BLKSZ 512
412 #define TDS_DEF_CHARSET "iso_1"
413 #define TDS_DEF_LANG "us_english"
414 #if TDS50
415 #define TDS_DEFAULT_VERSION 0x500
416 #define TDS_DEF_PORT 4000
417 #elif TDS71
418 #define TDS_DEFAULT_VERSION 0x701
419 #define TDS_DEF_PORT 1433
420 #elif TDS72
421 #define TDS_DEFAULT_VERSION 0x702
422 #define TDS_DEF_PORT 1433
423 #elif TDS73
424 #define TDS_DEFAULT_VERSION 0x703
425 #define TDS_DEF_PORT 1433
426 #elif TDS74
427 #define TDS_DEFAULT_VERSION 0x704
428 #define TDS_DEF_PORT 1433
429 #else
430 #define TDS_DEFAULT_VERSION 0x000
431 #define TDS_DEF_PORT 1433
432 #endif
433 
434 /* normalized strings from freetds.conf file */
435 #define TDS_STR_VERSION "tds version"
436 #define TDS_STR_BLKSZ "initial block size"
437 #define TDS_STR_SWAPDT "swap broken dates"
438 #define TDS_STR_DUMPFILE "dump file"
439 #define TDS_STR_DEBUGLVL "debug level"
440 #define TDS_STR_DEBUGFLAGS "debug flags"
441 #define TDS_STR_TIMEOUT "timeout"
442 #define TDS_STR_QUERY_TIMEOUT "query timeout"
443 #define TDS_STR_CONNTIMEOUT "connect timeout"
444 #define TDS_STR_HOSTNAME "hostname"
445 #define TDS_STR_HOST "host"
446 #define TDS_STR_PORT "port"
447 #define TDS_STR_TEXTSZ "text size"
448 /* for big endian hosts */
449 #define TDS_STR_EMUL_LE "emulate little endian"
450 #define TDS_STR_CHARSET "charset"
451 #define TDS_STR_CLCHARSET "client charset"
452 #define TDS_STR_USE_UTF_16 "use utf-16"
453 #define TDS_STR_LANGUAGE "language"
454 #define TDS_STR_APPENDMODE "dump file append"
455 #define TDS_STR_DATEFMT "date format"
456 #define TDS_STR_INSTANCE "instance"
457 #define TDS_STR_ASA_DATABASE "asa database"
458 #define TDS_STR_DATABASE "database"
459 #define TDS_STR_ENCRYPTION "encryption"
460 #define TDS_STR_USENTLMV2 "use ntlmv2"
461 #define TDS_STR_USELANMAN "use lanman"
462 /* conf values */
463 #define TDS_STR_ENCRYPTION_OFF "off"
464 #define TDS_STR_ENCRYPTION_REQUEST "request"
465 #define TDS_STR_ENCRYPTION_REQUIRE "require"
466 /* Defines to enable optional GSSAPI delegation */
467 #define TDS_GSSAPI_DELEGATION "enable gssapi delegation"
468 /* Kerberos realm name */
469 #define TDS_STR_REALM "realm"
470 /* Kerberos SPN */
471 #define TDS_STR_SPN "spn"
472 /* CA file */
473 #define TDS_STR_CAFILE "ca file"
474 /* CRL file */
475 #define TDS_STR_CRLFILE "crl file"
476 /* check SSL hostname */
477 #define TDS_STR_CHECKSSLHOSTNAME "check certificate hostname"
478 /* database filename to attach on login (MSSQL) */
479 #define TDS_STR_DBFILENAME "database filename"
480 /* Application Intent MSSQL 2012 support */
481 #define TDS_STR_READONLY_INTENT "read-only intent"
482 /* configurable cipher suite to send to openssl's SSL_set_cipher_list() function */
483 #define TLS_STR_OPENSSL_CIPHERS "openssl ciphers"
484 /* enable old TLS v1, required for instance if you are using a really old Windows XP */
485 #define TDS_STR_ENABLE_TLS_V1 "enable tls v1"
486 
487 
488 /* TODO do a better check for alignment than this */
489 typedef union
490 {
491  void *p;
492  int i;
493  int64_t ui;
495 
496 #define TDS_ALIGN_SIZE sizeof(tds_align_struct)
497 
498 typedef struct tds_capability_type
499 {
500  unsigned char type;
501  unsigned char len; /* always sizeof(values) */
502  unsigned char values[TDS_MAX_CAPABILITY/2-2];
504 
505 typedef struct tds_capabilities
506 {
507  TDS_CAPABILITY_TYPE types[2];
509 
510 #define TDS_MAX_LOGIN_STR_SZ 128
511 typedef struct tds_login
512 {
514  int port;
515  TDS_USMALLINT tds_version;
516  int block_size;
517  DSTR language; /* e.g. us-english */
519  TDS_INT connect_timeout;
520  DSTR client_host_name;
521  DSTR server_host_name;
527  DSTR openssl_ciphers;
528  DSTR app_name;
533  DSTR library; /* Ct-Library, DB-Library, TDS-Library or ODBC */
534  TDS_TINYINT encryption_level;
535 
536  TDS_INT query_timeout;
537  TDS_CAPABILITIES capabilities;
538  DSTR client_charset;
539  DSTR database;
540 
541  struct addrinfo *ip_addrs;
542  DSTR instance_name;
543  DSTR dump_file;
544  int debug_flags;
545  int text_size;
546  DSTR routing_address;
547  uint16_t routing_port;
548 
549  unsigned char option_flag2;
550 
551  unsigned int bulk_copy:1;
552  unsigned int suppress_language:1;
553  unsigned int emul_little_endian:1;
554  unsigned int gssapi_use_delegation:1;
555  unsigned int use_ntlmv2:1;
556  unsigned int use_ntlmv2_specified:1;
557  unsigned int use_lanman:1;
558  unsigned int mars:1;
559  unsigned int use_utf16:1;
560  unsigned int use_new_password:1;
561  unsigned int valid_configuration:1;
562  unsigned int check_ssl_hostname:1;
563  unsigned int readonly_intent:1;
564  unsigned int enable_tls_v1:1;
565  unsigned int server_is_valid:1;
566 } TDSLOGIN;
567 
568 typedef struct tds_headers
569 {
570  const char *qn_options;
571  const char *qn_msgtext;
572  TDS_INT qn_timeout;
573  /* TDS 7.4+: trace activity ID char[20] */
574 } TDSHEADERS;
575 
576 typedef struct tds_locale
577 {
578  char *language;
579  char *server_charset;
580  char *date_fmt;
581 } TDSLOCALE;
582 
587 typedef struct tds_blob
588 {
589  TDS_CHAR *textvalue;
590  TDS_CHAR textptr[16];
591  TDS_CHAR timestamp[8];
592  unsigned char valid_ptr;
593 } TDSBLOB;
594 
598 typedef struct tds_variant
599 {
600  /* this MUST have same position and place of textvalue in tds_blob */
601  TDS_CHAR *data;
602  TDS_INT size;
603  TDS_INT data_len;
604  TDS_SERVER_TYPE type;
605  TDS_UCHAR collation[5];
606 } TDSVARIANT;
607 
612 typedef struct tds_encoding
613 {
615  const char *name;
616  unsigned char min_bytes_per_char;
617  unsigned char max_bytes_per_char;
619  unsigned char canonic;
620 } TDS_ENCODING;
621 
622 typedef struct tds_bcpcoldata
623 {
624  TDS_UCHAR *data;
625  TDS_INT datalen;
626  TDS_INT is_null;
627 } BCPCOLDATA;
628 
629 
630 typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col);
631 typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col);
632 typedef TDS_INT tds_func_row_len(TDSCOLUMN *col);
633 typedef unsigned tds_func_put_info_len(TDSSOCKET *tds, TDSCOLUMN *col);
634 typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col);
635 typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7);
636 typedef int tds_func_check(const TDSCOLUMN *col);
637 
638 typedef struct tds_column_funcs
639 {
640  tds_func_get_info *get_info;
641  tds_func_get_data *get_data;
642  tds_func_row_len *row_len;
648  tds_func_put_info_len *put_info_len;
654  tds_func_put_info *put_info;
664  tds_func_put_data *put_data;
665 #if ENABLE_EXTRA_CHECKS
666 
680  tds_func_check *check;
681 #endif
682 #if 0
683  TDSRET (*convert)(TDSSOCKET *tds, TDSCOLUMN *col);
684 #endif
686 
691 {
692  const TDSCOLUMNFUNCS *funcs;
693  TDS_INT column_usertype;
694  TDS_INT column_flags;
695 
696  TDS_INT column_size;
698  TDS_SERVER_TYPE column_type;
703  TDS_TINYINT column_varint_size;
705  TDS_TINYINT column_prec;
706  TDS_TINYINT column_scale;
708  struct
709  {
710  TDS_SERVER_TYPE column_type;
711  TDS_INT column_size;
712  } on_server;
713 
716  DSTR table_name;
717  DSTR column_name;
718  DSTR table_column_name;
719 
720  unsigned char *column_data;
721  void (*column_data_free)(struct tds_column *column);
722  unsigned char column_nullable:1;
723  unsigned char column_writeable:1;
724  unsigned char column_identity:1;
725  unsigned char column_key:1;
726  unsigned char column_hidden:1;
727  unsigned char column_output:1;
728  unsigned char column_timestamp:1;
729  TDS_UCHAR column_collation[5];
730 
731  /* additional fields flags for compute results */
732  TDS_SMALLINT column_operand;
733  TDS_TINYINT column_operator;
734 
735  /* FIXME this is data related, not column */
738 
739  /* related to binding or info stored by client libraries */
740  /* FIXME find a best place to store these data, some are unused */
741  TDS_SMALLINT column_bindtype;
742  TDS_SMALLINT column_bindfmt;
743  TDS_UINT column_bindlen;
744  TDS_SMALLINT *column_nullbind;
745  TDS_CHAR *column_varaddr;
746  TDS_INT *column_lenbind;
747  TDS_INT column_textpos;
748  TDS_INT column_text_sqlgetdatapos;
749  TDS_CHAR column_text_sqlputdatainfo;
750  unsigned char column_iconv_left;
751  char column_iconv_buf[9];
752 
753  BCPCOLDATA *bcp_column_data;
762  TDS_INT bcp_prefix_len;
763  TDS_INT bcp_term_len;
764  TDS_CHAR *bcp_terminator;
765 };
766 
767 
769 typedef struct tds_result_info
770 {
771  /* TODO those fields can became a struct */
772  TDSCOLUMN **columns;
773  TDS_USMALLINT num_cols;
774  TDS_USMALLINT computeid;
775  TDS_INT ref_count;
776  TDSSOCKET *attached_to;
777  unsigned char *current_row;
778  void (*row_free)(struct tds_result_info* result, unsigned char *row);
779  TDS_INT row_size;
780 
781  TDS_SMALLINT *bycolumns;
782  TDS_USMALLINT by_cols;
783  bool rows_exist;
784  /* TODO remove ?? used only in dblib */
785  bool more_results;
786 } TDSRESULTINFO;
787 
789 typedef enum tds_states
790 {
797 } TDS_STATE;
798 
799 typedef enum tds_operations
800 {
801  TDS_OP_NONE = 0,
802 
803  /* mssql operations */
804  TDS_OP_CURSOR = TDS_SP_CURSOR,
805  TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN,
806  TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE,
807  TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE,
808  TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC,
809  TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE,
810  TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH,
811  TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION,
812  TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE,
813  TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL,
814  TDS_OP_PREPARE = TDS_SP_PREPARE,
815  TDS_OP_EXECUTE = TDS_SP_EXECUTE,
816  TDS_OP_PREPEXEC = TDS_SP_PREPEXEC,
817  TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC,
818  TDS_OP_UNPREPARE = TDS_SP_UNPREPARE,
819 
820  /* sybase operations */
821  TDS_OP_DYN_DEALLOC = 100,
822 } TDS_OPERATION;
823 
824 #define TDS_DBG_LOGIN __FILE__, ((__LINE__ << 4) | 11)
825 #define TDS_DBG_HEADER __FILE__, ((__LINE__ << 4) | 10)
826 #define TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7)
827 #define TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6)
828 #define TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5)
829 #define TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4)
830 #define TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3)
831 #define TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2)
832 #define TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1)
833 
834 #define TDS_DBGFLAG_FUNC 0x80
835 #define TDS_DBGFLAG_INFO2 0x40
836 #define TDS_DBGFLAG_INFO1 0x20
837 #define TDS_DBGFLAG_NETWORK 0x10
838 #define TDS_DBGFLAG_WARN 0x08
839 #define TDS_DBGFLAG_ERROR 0x04
840 #define TDS_DBGFLAG_SEVERE 0x02
841 #define TDS_DBGFLAG_ALL 0xfff
842 #define TDS_DBGFLAG_LOGIN 0x0800
843 #define TDS_DBGFLAG_HEADER 0x0400
844 #define TDS_DBGFLAG_PID 0x1000
845 #define TDS_DBGFLAG_TIME 0x2000
846 #define TDS_DBGFLAG_SOURCE 0x4000
847 #define TDS_DBGFLAG_THREAD 0x8000
848 
849 #if 0
850 
855 enum TDS_DBG_LOG_STATE
856 {
857  TDS_DBG_LOGIN = (1 << 0)
859  , TDS_DBG_API = (1 << 1)
860  , TDS_DBG_ASYNC = (1 << 2)
861  , TDS_DBG_DIAG = (1 << 3)
862  , TDS_DBG_error = (1 << 4)
863  /* TODO: ^^^^^ make upper case when old #defines (above) are removed */
864  /* Log FreeTDS runtime/logic error occurs. */
865  , TDS_DBG_PACKET = (1 << 5)
866  , TDS_DBG_LIBTDS = (1 << 6)
867  , TDS_DBG_CONFIG = (1 << 7)
868  , TDS_DBG_DEFAULT = 0xFE
869 };
870 #endif
871 
872 typedef struct tds_result_info TDSCOMPUTEINFO;
873 
875 
876 typedef struct tds_message
877 {
878  TDS_CHAR *server;
879  TDS_CHAR *message;
880  TDS_CHAR *proc_name;
881  TDS_CHAR *sql_state;
882  TDS_INT msgno;
883  TDS_INT line_number;
884  /* -1 .. 255 */
885  TDS_SMALLINT state;
886  TDS_TINYINT priv_msg_type;
887  TDS_TINYINT severity;
888  /* for library-generated errors */
889  int oserr;
890 } TDSMESSAGE;
891 
892 typedef struct tds_upd_col
893 {
894  struct tds_upd_col *next;
895  TDS_INT colnamelength;
896  char * columnname;
897 } TDSUPDCOL;
898 
899 typedef enum {
900  TDS_CURSOR_STATE_UNACTIONED = 0 /* initial value */
901  , TDS_CURSOR_STATE_REQUESTED = 1 /* called by ct_cursor */
902  , TDS_CURSOR_STATE_SENT = 2 /* sent to server */
903  , TDS_CURSOR_STATE_ACTIONED = 3 /* acknowledged by server */
904 } TDS_CURSOR_STATE;
905 
906 typedef struct tds_cursor_status
907 {
908  TDS_CURSOR_STATE declare;
909  TDS_CURSOR_STATE cursor_row;
910  TDS_CURSOR_STATE open;
911  TDS_CURSOR_STATE fetch;
912  TDS_CURSOR_STATE close;
913  TDS_CURSOR_STATE dealloc;
915 
916 typedef enum tds_cursor_operation
917 {
918  TDS_CURSOR_POSITION = 0,
919  TDS_CURSOR_UPDATE = 1,
920  TDS_CURSOR_DELETE = 2,
921  TDS_CURSOR_INSERT = 4
922 } TDS_CURSOR_OPERATION;
923 
924 typedef enum tds_cursor_fetch
925 {
926  TDS_CURSOR_FETCH_NEXT = 1,
927  TDS_CURSOR_FETCH_PREV,
928  TDS_CURSOR_FETCH_FIRST,
929  TDS_CURSOR_FETCH_LAST,
930  TDS_CURSOR_FETCH_ABSOLUTE,
931  TDS_CURSOR_FETCH_RELATIVE
932 } TDS_CURSOR_FETCH;
933 
937 typedef struct tds_cursor
938 {
939  struct tds_cursor *next;
940  TDS_INT ref_count;
941  char *cursor_name;
942  TDS_INT cursor_id;
943  TDS_TINYINT options;
948  char *query;
949  /* TODO for updatable columns */
950  /* TDS_TINYINT number_upd_cols; */
951  /* TDSUPDCOL *cur_col_list; */
952  TDS_INT cursor_rows;
953  /* TDSPARAMINFO *params; */
955  TDS_USMALLINT srv_status;
956  TDSRESULTINFO *res_info;
957  TDS_INT type, concurrency;
958 } TDSCURSOR;
959 
963 typedef struct tds_env
964 {
967  char *language;
969  char *charset;
971  char *database;
972 } TDSENV;
973 
977 typedef struct tds_dynamic
978 {
979  struct tds_dynamic *next;
980  TDS_INT ref_count;
982  TDS_INT num_id;
988  char id[30];
994  TDS_TINYINT emulated;
999  /* int dyn_state; */ /* TODO use it */
1010  char *query;
1011 } TDSDYNAMIC;
1012 
1013 typedef enum {
1014  TDS_MULTIPLE_QUERY,
1015  TDS_MULTIPLE_EXECUTE,
1016  TDS_MULTIPLE_RPC
1017 } TDS_MULTIPLE_TYPE;
1018 
1019 typedef struct tds_multiple
1020 {
1021  TDS_MULTIPLE_TYPE type;
1022  unsigned int flags;
1023 } TDSMULTIPLE;
1024 
1025 /* forward declaration */
1026 typedef struct tds_context TDSCONTEXT;
1027 typedef int (*err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
1028 
1030 {
1031  TDSLOCALE *locale;
1032  void *parent;
1033  /* handlers */
1034  int (*msg_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
1035  int (*err_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
1036  int (*int_handler) (void *);
1037  bool money_use_2_digits;
1038 };
1039 
1040 enum TDS_ICONV_ENTRY
1041 {
1042  client2ucs2
1043  , client2server_chardata
1044  , initial_char_conv_count /* keep last */
1045 };
1046 
1047 typedef struct tds_authentication
1048 {
1049  uint8_t *packet;
1050  int packet_len;
1051  TDSRET (*free)(TDSCONNECTION* conn, struct tds_authentication * auth);
1052  TDSRET (*handle_next)(TDSSOCKET * tds, struct tds_authentication * auth, size_t len);
1054 
1055 typedef struct tds_packet
1056 {
1057  struct tds_packet *next;
1058  short sid;
1059  unsigned len, capacity;
1060  unsigned char buf[1];
1061 } TDSPACKET;
1062 
1063 typedef struct tds_poll_wakeup
1064 {
1065  TDS_SYS_SOCKET s_signal, s_signaled;
1066 } TDSPOLLWAKEUP;
1067 
1068 /* field related to connection */
1070 {
1071  TDS_USMALLINT tds_version;
1072  TDS_UINT product_version;
1073  char *product_name;
1074 
1075  TDS_SYS_SOCKET s;
1076  TDSPOLLWAKEUP wakeup;
1077  const TDSCONTEXT *tds_ctx;
1078 
1081 
1092 
1093  int char_conv_count;
1094  TDSICONV **char_convs;
1095 
1096  TDS_UCHAR collation[5];
1097  TDS_UCHAR tds72_transaction[8];
1098 
1099  TDS_CAPABILITIES capabilities;
1100  unsigned int emul_little_endian:1;
1101  unsigned int use_iconv:1;
1102  unsigned int tds71rev1:1;
1103  unsigned int pending_close:1;
1104  unsigned int encrypt_single_packet:1;
1105 #if ENABLE_ODBC_MARS
1106  unsigned int mars:1;
1107 
1108  TDSSOCKET *in_net_tds;
1109  TDSPACKET *packets;
1110  TDSPACKET *recv_packet;
1111  TDSPACKET *send_packets;
1112  unsigned send_pos, recv_pos;
1113 
1114  tds_mutex list_mtx;
1115 #define BUSY_SOCKET ((TDSSOCKET*)(TDS_UINTPTR)1)
1116 #define TDSSOCKET_VALID(tds) (((TDS_UINTPTR)(tds)) > 1)
1117  struct tds_socket **sessions;
1118  unsigned num_sessions;
1119  unsigned num_cached_packets;
1120  TDSPACKET *packet_cache;
1121 #endif
1122 
1123  int spid;
1124  int client_spid;
1125 
1126  void *tls_session;
1127 #if defined(HAVE_GNUTLS)
1128  void *tls_credentials;
1129 #elif defined(HAVE_OPENSSL)
1130  void *tls_ctx;
1131 #else
1132  void *tls_dummy;
1133 #endif
1134  TDSAUTHENTICATION *authentication;
1135  char *server;
1136 };
1137 
1142 {
1143 #if ENABLE_ODBC_MARS
1144  TDSCONNECTION *conn;
1145 #else
1146  TDSCONNECTION conn[1];
1147 #endif
1148 
1154  unsigned char *in_buf;
1155 
1161  unsigned char *out_buf;
1162 
1167  unsigned int out_buf_max;
1168  unsigned in_pos;
1169  unsigned out_pos;
1170  unsigned in_len;
1171  unsigned char in_flag;
1172  unsigned char out_flag;
1174  void *parent;
1175 
1176 #if ENABLE_ODBC_MARS
1177  short sid;
1178  tds_condition packet_cond;
1179  TDS_UINT recv_seq;
1180  TDS_UINT send_seq;
1181  TDS_UINT recv_wnd;
1182  TDS_UINT send_wnd;
1183 #endif
1184  /* packet we received */
1185  TDSPACKET *recv_packet;
1188 
1195  TDSRESULTINFO *res_info;
1196  TDS_UINT num_comp_info;
1197  TDSCOMPUTEINFO **comp_info;
1198  TDSPARAMINFO *param_info;
1200  bool bulk_query;
1201  bool has_status;
1202  bool in_row;
1203  TDS_INT ret_status;
1204  TDS_STATE state;
1205  volatile
1206  unsigned char in_cancel;
1209  TDS_INT8 rows_affected;
1210  TDS_INT query_timeout;
1211 
1216  void (*env_chg_func) (TDSSOCKET * tds, int type, char *oldval, char *newval);
1217  TDS_OPERATION current_op;
1218 
1219  int option_value;
1220  tds_mutex wire_mtx;
1221 };
1222 
1223 #define tds_get_ctx(tds) ((tds)->conn->tds_ctx)
1224 #define tds_set_ctx(tds, val) do { ((tds)->conn->tds_ctx) = (val); } while(0)
1225 #define tds_get_parent(tds) ((tds)->parent)
1226 #define tds_set_parent(tds, val) do { ((tds)->parent) = (val); } while(0)
1227 #define tds_get_s(tds) ((tds)->conn->s)
1228 #define tds_set_s(tds, val) do { ((tds)->conn->s) = (val); } while(0)
1229 
1230 
1231 /* config.c */
1233 typedef void (*TDSCONFPARSE) (const char *option, const char *value, void *param);
1234 bool tds_read_conf_section(FILE * in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param);
1235 bool tds_read_conf_file(TDSLOGIN * login, const char *server);
1236 void tds_parse_conf_section(const char *option, const char *value, void *param);
1237 TDSLOGIN *tds_read_config_info(TDSSOCKET * tds, TDSLOGIN * login, TDSLOCALE * locale);
1238 void tds_fix_login(TDSLOGIN* login);
1239 TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN* login);
1240 struct addrinfo *tds_lookup_host(const char *servername);
1241 TDSRET tds_lookup_host_set(const char *servername, struct addrinfo **addr);
1242 const char *tds_addrinfo2str(struct addrinfo *addr, char *name, int namemax);
1243 char *tds_get_home_file(const char *file);
1244 
1245 TDSRET tds_set_interfaces_file_loc(const char *interfloc);
1246 extern const char STD_DATETIME_FMT[];
1247 int tds_parse_boolean(const char *value, int default_value);
1248 int tds_config_boolean(const char *option, const char *value, TDSLOGIN * login);
1249 
1250 TDSLOCALE *tds_get_locale(void);
1251 TDSRET tds_alloc_row(TDSRESULTINFO * res_info);
1252 TDSRET tds_alloc_compute_row(TDSCOMPUTEINFO * res_info);
1253 BCPCOLDATA * tds_alloc_bcp_column_data(unsigned int column_size);
1254 TDSDYNAMIC *tds_lookup_dynamic(TDSCONNECTION * conn, const char *id);
1255 /*@observer@*/ const char *tds_prtype(int token);
1256 int tds_get_varint_size(TDSCONNECTION * conn, int datatype);
1257 TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int usertype);
1258 
1259 
1260 /* iconv.c */
1261 TDSRET tds_iconv_open(TDSCONNECTION * conn, const char *charset, int use_utf16);
1262 void tds_iconv_close(TDSCONNECTION * conn);
1263 void tds_srv_charset_changed(TDSCONNECTION * conn, const char *charset);
1264 void tds7_srv_charset_changed(TDSCONNECTION * conn, int sql_collate, int lcid);
1265 int tds_iconv_alloc(TDSCONNECTION * conn);
1266 void tds_iconv_free(TDSCONNECTION * conn);
1267 TDSICONV *tds_iconv_from_collate(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
1268 
1269 
1270 /* mem.c */
1271 void tds_free_socket(TDSSOCKET * tds);
1272 void tds_free_all_results(TDSSOCKET * tds);
1273 void tds_free_results(TDSRESULTINFO * res_info);
1274 void tds_free_param_results(TDSPARAMINFO * param_info);
1275 void tds_free_param_result(TDSPARAMINFO * param_info);
1276 void tds_free_msg(TDSMESSAGE * message);
1277 void tds_cursor_deallocated(TDSCONNECTION *conn, TDSCURSOR *cursor);
1278 void tds_release_cursor(TDSCURSOR **pcursor);
1279 void tds_free_bcp_column_data(BCPCOLDATA * coldata);
1280 TDSRESULTINFO *tds_alloc_results(TDS_USMALLINT num_cols);
1281 TDSCOMPUTEINFO **tds_alloc_compute_results(TDSSOCKET * tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols);
1282 TDSCONTEXT *tds_alloc_context(void * parent);
1283 void tds_free_context(TDSCONTEXT * locale);
1285 void tds_free_input_params(TDSDYNAMIC * dyn);
1286 void tds_release_dynamic(TDSDYNAMIC ** dyn);
1287 static inline
1288 void tds_release_cur_dyn(TDSSOCKET * tds)
1289 {
1291 }
1292 void tds_dynamic_deallocated(TDSCONNECTION *conn, TDSDYNAMIC *dyn);
1293 void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn);
1294 TDSSOCKET *tds_realloc_socket(TDSSOCKET * tds, size_t bufsize);
1295 char *tds_alloc_client_sqlstate(int msgno);
1296 char *tds_alloc_lookup_sqlstate(TDSSOCKET * tds, int msgno);
1297 TDSLOGIN *tds_alloc_login(int use_environment);
1298 TDSDYNAMIC *tds_alloc_dynamic(TDSCONNECTION * conn, const char *id);
1299 void tds_free_login(TDSLOGIN * login);
1300 TDSLOGIN *tds_init_login(TDSLOGIN * login, TDSLOCALE * locale);
1301 TDSLOCALE *tds_alloc_locale(void);
1302 void *tds_alloc_param_data(TDSCOLUMN * curparam);
1303 void tds_free_locale(TDSLOCALE * locale);
1304 TDSCURSOR * tds_alloc_cursor(TDSSOCKET * tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen);
1305 void tds_free_row(TDSRESULTINFO * res_info, unsigned char *row);
1306 TDSSOCKET *tds_alloc_socket(TDSCONTEXT * context, unsigned int bufsize);
1307 TDSSOCKET *tds_alloc_additional_socket(TDSCONNECTION *conn);
1308 void tds_set_current_results(TDSSOCKET *tds, TDSRESULTINFO *info);
1309 void tds_detach_results(TDSRESULTINFO *info);
1310 void * tds_realloc(void **pp, size_t new_size);
1311 #define TDS_RESIZE(p, n_elem) \
1312  tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
1313 #define tds_new(type, n) ((type *) malloc(sizeof(type) * (n)))
1314 #define tds_new0(type, n) ((type *) calloc(n, sizeof(type)))
1315 
1316 TDSPACKET *tds_alloc_packet(void *buf, unsigned len);
1317 TDSPACKET *tds_realloc_packet(TDSPACKET *packet, unsigned len);
1318 void tds_free_packets(TDSPACKET *packet);
1319 TDSBCPINFO *tds_alloc_bcpinfo(void);
1320 void tds_free_bcpinfo(TDSBCPINFO *bcpinfo);
1321 void tds_deinit_bcpinfo(TDSBCPINFO *bcpinfo);
1322 
1323 
1324 /* login.c */
1325 void tds_set_packet(TDSLOGIN * tds_login, int packet_size);
1326 void tds_set_port(TDSLOGIN * tds_login, int port);
1327 bool tds_set_passwd(TDSLOGIN * tds_login, const char *password) TDS_WUR;
1328 void tds_set_bulk(TDSLOGIN * tds_login, bool enabled);
1329 bool tds_set_user(TDSLOGIN * tds_login, const char *username) TDS_WUR;
1330 bool tds_set_app(TDSLOGIN * tds_login, const char *application) TDS_WUR;
1331 bool tds_set_host(TDSLOGIN * tds_login, const char *hostname) TDS_WUR;
1332 bool tds_set_library(TDSLOGIN * tds_login, const char *library) TDS_WUR;
1333 bool tds_set_server(TDSLOGIN * tds_login, const char *server) TDS_WUR;
1334 bool tds_set_client_charset(TDSLOGIN * tds_login, const char *charset) TDS_WUR;
1335 bool tds_set_language(TDSLOGIN * tds_login, const char *language) TDS_WUR;
1336 void tds_set_version(TDSLOGIN * tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver);
1337 int tds_connect_and_login(TDSSOCKET * tds, TDSLOGIN * login);
1338 
1339 
1340 /* query.c */
1341 void tds_start_query(TDSSOCKET *tds, unsigned char packet_type);
1342 
1343 TDSRET tds_submit_query(TDSSOCKET * tds, const char *query);
1344 TDSRET tds_submit_query_params(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
1345 TDSRET tds_submit_queryf(TDSSOCKET * tds, const char *queryf, ...);
1346 TDSRET tds_submit_prepare(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
1347 TDSRET tds_submit_execdirect(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
1348 TDSRET tds71_submit_prepexec(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
1349 TDSRET tds_submit_execute(TDSSOCKET * tds, TDSDYNAMIC * dyn);
1350 TDSRET tds_send_cancel(TDSSOCKET * tds);
1351 const char *tds_next_placeholder(const char *start);
1352 int tds_count_placeholders(const char *query);
1353 int tds_needs_unprepare(TDSCONNECTION * conn, TDSDYNAMIC * dyn);
1354 TDSRET tds_deferred_unprepare(TDSCONNECTION * conn, TDSDYNAMIC * dyn);
1355 TDSRET tds_submit_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn);
1356 TDSRET tds_submit_rpc(TDSSOCKET * tds, const char *rpc_name, TDSPARAMINFO * params, TDSHEADERS * head);
1357 TDSRET tds_submit_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size);
1358 TDSRET tds_submit_begin_tran(TDSSOCKET *tds);
1359 TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont);
1360 TDSRET tds_submit_commit(TDSSOCKET *tds, int cont);
1361 TDSRET tds_disconnect(TDSSOCKET * tds);
1362 size_t tds_quote_id(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
1363 size_t tds_quote_string(TDSSOCKET * tds, char *buffer, const char *str, int len);
1364 const char *tds_skip_comment(const char *s);
1365 const char *tds_skip_quoted(const char *s);
1366 size_t tds_fix_column_size(TDSSOCKET * tds, TDSCOLUMN * curcol);
1367 const char *tds_convert_string(TDSSOCKET * tds, TDSICONV * char_conv, const char *s, int len, size_t *out_len);
1368 void tds_convert_string_free(const char *original, const char *converted);
1369 #if !ENABLE_EXTRA_CHECKS
1370 #define tds_convert_string_free(original, converted) \
1371  do { if (original != converted) free((char*) converted); } while(0)
1372 #endif
1373 TDSRET tds_get_column_declaration(TDSSOCKET * tds, TDSCOLUMN * curcol, char *out);
1374 
1375 TDSRET tds_cursor_declare(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
1376 TDSRET tds_cursor_setrows(TDSSOCKET * tds, TDSCURSOR * cursor, int *send);
1377 TDSRET tds_cursor_open(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
1378 TDSRET tds_cursor_fetch(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row);
1379 TDSRET tds_cursor_get_cursor_info(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_UINT * row_number, TDS_UINT * row_count);
1380 TDSRET tds_cursor_close(TDSSOCKET * tds, TDSCURSOR * cursor);
1381 TDSRET tds_cursor_dealloc(TDSSOCKET * tds, TDSCURSOR * cursor);
1382 TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR * cursor);
1383 TDSRET tds_cursor_update(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO * params);
1384 TDSRET tds_cursor_setname(TDSSOCKET * tds, TDSCURSOR * cursor);
1385 
1386 TDSRET tds_multiple_init(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS * head);
1387 TDSRET tds_multiple_done(TDSSOCKET *tds, TDSMULTIPLE *multiple);
1388 TDSRET tds_multiple_query(TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO * params);
1389 TDSRET tds_multiple_execute(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC * dyn);
1390 
1391 
1392 /* token.c */
1393 TDSRET tds_process_cancel(TDSSOCKET * tds);
1394 int tds_get_token_size(int marker);
1395 TDSRET tds_process_login_tokens(TDSSOCKET * tds);
1396 TDSRET tds_process_simple_query(TDSSOCKET * tds);
1397 int tds5_send_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG * tds_argument,
1398  TDS_INT * tds_argsize);
1399 TDSRET tds_process_tokens(TDSSOCKET * tds, /*@out@*/ TDS_INT * result_type, /*@out@*/ int *done_flags, unsigned flag);
1400 int determine_adjusted_size(const TDSICONV * char_conv, int size);
1401 
1402 
1403 /* data.c */
1404 void tds_set_param_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
1405 void tds_set_column_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
1406 
1407 
1408 /* tds_convert.c */
1409 TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC * dr);
1410 TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize);
1411 extern const char tds_hex_digits[];
1412 
1413 
1414 /* write.c */
1415 int tds_init_write_buf(TDSSOCKET * tds);
1416 int tds_put_n(TDSSOCKET * tds, const void *buf, size_t n);
1417 int tds_put_string(TDSSOCKET * tds, const char *buf, int len);
1418 int tds_put_int(TDSSOCKET * tds, TDS_INT i);
1419 int tds_put_int8(TDSSOCKET * tds, TDS_INT8 i);
1420 int tds_put_smallint(TDSSOCKET * tds, TDS_SMALLINT si);
1422 #define tds_put_tinyint(tds, ti) tds_put_byte(tds,ti)
1423 int tds_put_byte(TDSSOCKET * tds, unsigned char c);
1424 TDSRET tds_flush_packet(TDSSOCKET * tds);
1425 int tds_put_buf(TDSSOCKET * tds, const unsigned char *buf, int dsize, int ssize);
1426 
1427 
1428 /* read.c */
1429 unsigned char tds_get_byte(TDSSOCKET * tds);
1430 void tds_unget_byte(TDSSOCKET * tds);
1431 unsigned char tds_peek(TDSSOCKET * tds);
1432 TDS_USMALLINT tds_get_usmallint(TDSSOCKET * tds);
1433 #define tds_get_smallint(tds) ((TDS_SMALLINT) tds_get_usmallint(tds))
1434 TDS_UINT tds_get_uint(TDSSOCKET * tds);
1435 #define tds_get_int(tds) ((TDS_INT) tds_get_uint(tds))
1436 TDS_UINT8 tds_get_uint8(TDSSOCKET * tds);
1437 #define tds_get_int8(tds) ((TDS_INT8) tds_get_uint8(tds))
1438 size_t tds_get_string(TDSSOCKET * tds, size_t string_len, char *dest, size_t dest_size);
1439 TDSRET tds_get_char_data(TDSSOCKET * tds, char *dest, size_t wire_size, TDSCOLUMN * curcol);
1440 bool tds_get_n(TDSSOCKET * tds, /*@out@*/ /*@null@*/ void *dest, size_t n);
1441 int tds_get_size_by_type(TDS_SERVER_TYPE servertype);
1442 DSTR* tds_dstr_get(TDSSOCKET * tds, DSTR * s, size_t len);
1443 
1444 
1445 /* util.c */
1446 int tdserror (const TDSCONTEXT * tds_ctx, TDSSOCKET * tds, int msgno, int errnum);
1448 void tds_swap_bytes(void *buf, int bytes);
1449 unsigned int tds_gettime_ms(void);
1450 char *tds_strndup(const void *s, TDS_INTPTR len);
1451 
1452 
1453 /* log.c */
1454 void tdsdump_off(void);
1455 void tdsdump_on(void);
1456 int tdsdump_isopen(void);
1457 #include <freetds/popvis.h>
1458 int tdsdump_open(const char *filename);
1459 #include <freetds/pushvis.h>
1460 void tdsdump_close(void);
1461 void tdsdump_dump_buf(const char* file, unsigned int level_line, const char *msg, const void *buf, size_t length);
1462 void tdsdump_col(const TDSCOLUMN *col);
1463 #undef tdsdump_log
1464 void tdsdump_log(const char* file, unsigned int level_line, const char *fmt, ...)
1465 #if defined(__GNUC__) && __GNUC__ >= 2
1466 #if defined(__MINGW32__)
1467  __attribute__ ((__format__ (ms_printf, 3, 4)))
1468 #else
1469  __attribute__ ((__format__ (__printf__, 3, 4)))
1470 #endif
1471 #endif
1472 ;
1473 #define TDSDUMP_LOG_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log
1474 #define tdsdump_log TDSDUMP_LOG_FAST
1475 #define TDSDUMP_BUF_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf
1476 #define tdsdump_dump_buf TDSDUMP_BUF_FAST
1477 
1478 extern int tds_write_dump;
1479 extern int tds_debug_flags;
1480 extern int tds_g_append_mode;
1481 
1482 
1483 /* net.c */
1484 TDSERRNO tds_open_socket(TDSSOCKET * tds, struct addrinfo *ipaddr, unsigned int port, int timeout, int *p_oserr);
1485 void tds_close_socket(TDSSOCKET * tds);
1486 int tds7_get_instance_ports(FILE *output, struct addrinfo *addr);
1487 int tds7_get_instance_port(struct addrinfo *addr, const char *instance);
1488 char *tds_prwsaerror(int erc);
1489 void tds_prwsaerror_free(char *s);
1490 int tds_connection_read(TDSSOCKET * tds, unsigned char *buf, int buflen);
1491 int tds_connection_write(TDSSOCKET *tds, const unsigned char *buf, int buflen, int final);
1492 #define TDSSELREAD POLLIN
1493 #define TDSSELWRITE POLLOUT
1494 int tds_select(TDSSOCKET * tds, unsigned tds_sel, int timeout_seconds);
1495 void tds_connection_close(TDSCONNECTION *conn);
1496 int tds_goodread(TDSSOCKET * tds, unsigned char *buf, int buflen);
1497 int tds_goodwrite(TDSSOCKET * tds, const unsigned char *buffer, size_t buflen);
1498 void tds_socket_flush(TDS_SYS_SOCKET sock);
1499 int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock);
1500 int tds_wakeup_init(TDSPOLLWAKEUP *wakeup);
1501 void tds_wakeup_close(TDSPOLLWAKEUP *wakeup);
1502 void tds_wakeup_send(TDSPOLLWAKEUP *wakeup, char cancel);
1503 static inline TDS_SYS_SOCKET tds_wakeup_get_fd(const TDSPOLLWAKEUP *wakeup)
1504 {
1505  return wakeup->s_signaled;
1506 }
1507 
1508 
1509 /* packet.c */
1510 int tds_read_packet(TDSSOCKET * tds);
1511 TDSRET tds_write_packet(TDSSOCKET * tds, unsigned char final);
1512 #if ENABLE_ODBC_MARS
1513 int tds_append_cancel(TDSSOCKET *tds);
1514 TDSRET tds_append_fin(TDSSOCKET *tds);
1515 #else
1516 int tds_put_cancel(TDSSOCKET * tds);
1517 #endif
1518 
1519 
1520 /* vstrbuild.c */
1521 TDSRET tds_vstrbuild(char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen,
1522  va_list ap);
1523 
1524 
1525 /* numeric.c */
1526 char *tds_money_to_string(const TDS_MONEY * money, char *s, bool use_2_digits);
1527 TDS_INT tds_numeric_to_string(const TDS_NUMERIC * numeric, char *s);
1528 TDS_INT tds_numeric_change_prec_scale(TDS_NUMERIC * numeric, unsigned char new_prec, unsigned char new_scale);
1529 
1530 
1531 /* getmac.c */
1532 void tds_getmac(TDS_SYS_SOCKET s, unsigned char mac[6]);
1533 
1534 
1535 /* challenge.c */
1536 #ifndef HAVE_SSPI
1538 TDSAUTHENTICATION * tds_gss_get_auth(TDSSOCKET * tds);
1539 #else
1540 TDSAUTHENTICATION * tds_sspi_get_auth(TDSSOCKET * tds);
1541 #endif
1542 
1543 
1544 /* random.c */
1545 void tds_random_buffer(unsigned char *out, int len);
1546 
1547 
1548 /* sec_negotiate.c */
1549 TDSAUTHENTICATION * tds5_negotiate_get_auth(TDSSOCKET * tds);
1550 void tds5_negotiate_set_msg_type(TDSSOCKET * tds, TDSAUTHENTICATION * auth, unsigned msg_type);
1551 
1552 
1553 /* bulk.c */
1554 
1557 {
1558  TDS_BCP_IN = 1,
1559  TDS_BCP_OUT = 2,
1560  TDS_BCP_QUERYOUT = 3
1561 };
1562 
1564 {
1565  const char *hint;
1566  void *parent;
1567  DSTR tablename;
1568  TDS_CHAR *insert_stmt;
1569  TDS_INT direction;
1570  TDS_INT identity_insert_on;
1571  TDS_INT xfer_init;
1572  TDS_INT bind_count;
1573  TDSRESULTINFO *bindinfo;
1574 };
1575 
1576 TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
1577 typedef TDSRET (*tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset);
1578 typedef void (*tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset);
1579 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);
1580 TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied);
1581 TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
1582 TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
1583 
1584 TDSRET tds_bcp_fread(TDSSOCKET * tds, TDSICONV * conv, FILE * stream,
1585  const char *terminator, size_t term_len, char **outbuf, size_t * outbytes);
1586 
1587 TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size);
1588 TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size);
1589 TDSRET tds_writetext_end(TDSSOCKET *tds);
1590 
1591 
1592 static inline
1593 bool tds_capability_enabled(const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
1594 {
1595  return (cap->values[sizeof(cap->values)-1-(cap_num>>3)] >> (cap_num&7)) & 1;
1596 }
1597 #define tds_capability_has_req(conn, cap) \
1598  tds_capability_enabled(&conn->capabilities.types[0], cap)
1599 
1600 #define IS_TDS42(x) (x->tds_version==0x402)
1601 #define IS_TDS46(x) (x->tds_version==0x406)
1602 #define IS_TDS50(x) (x->tds_version==0x500)
1603 #define IS_TDS70(x) (x->tds_version==0x700)
1604 #define IS_TDS71(x) (x->tds_version==0x701)
1605 #define IS_TDS72(x) (x->tds_version==0x702)
1606 #define IS_TDS73(x) (x->tds_version==0x703)
1607 
1608 #define IS_TDS50_PLUS(x) ((x)->tds_version>=0x500)
1609 #define IS_TDS7_PLUS(x) ((x)->tds_version>=0x700)
1610 #define IS_TDS71_PLUS(x) ((x)->tds_version>=0x701)
1611 #define IS_TDS72_PLUS(x) ((x)->tds_version>=0x702)
1612 #define IS_TDS73_PLUS(x) ((x)->tds_version>=0x703)
1613 #define IS_TDS74_PLUS(x) ((x)->tds_version>=0x704)
1614 
1615 #define TDS_MAJOR(x) ((x)->tds_version >> 8)
1616 #define TDS_MINOR(x) ((x)->tds_version & 0xff)
1617 
1618 #define IS_TDSDEAD(x) (((x) == NULL) || (x)->state == TDS_DEAD)
1619 
1621 #define TDS_IS_SYBASE(x) (!((x)->conn->product_version & 0x80000000u))
1622 
1623 #define TDS_IS_MSSQL(x) (((x)->conn->product_version & 0x80000000u)!=0)
1624 
1628 #define TDS_MS_VER(maj,min,x) (0x80000000u|((maj)<<24)|((min)<<16)|(x))
1629 
1630 /* TODO test if not similar to ms one*/
1632 #define TDS_SYB_VER(maj,min,x) (((maj)<<24)|((min)<<16)|(x)<<8)
1633 
1634 #ifdef __cplusplus
1635 #if 0
1636 {
1637 #endif
1638 }
1639 #endif
1640 
1641 #include <freetds/popvis.h>
1642 
1643 #define TDS_PUT_INT(tds,v) tds_put_int((tds), ((TDS_INT)(v)))
1644 #define TDS_PUT_SMALLINT(tds,v) tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
1645 #define TDS_PUT_BYTE(tds,v) tds_put_byte((tds), ((unsigned char)(v)))
1646 
1647 #endif /* _tds_h_ */
DSTR user_name
account for login
Definition: tds.h:529
-
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:501
-
TDSLOCALE * tds_get_locale(void)
Get locale information.
Definition: locale.c:50
-
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:1210
-
TDS_INT second
0-59
Definition: tds.h:167
-
int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
Definition: net.c:985
-
const char * tds_next_placeholder(const char *start)
Get position of next placeholder.
Definition: query.c:555
-
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:705
-
TDS_INT day
day of month (1-31)
Definition: tds.h:162
-
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:164
-
more results follow
Definition: tds.h:251
-
TDSENV env
environment is shared between all sessions
Definition: tds.h:1080
-
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:248
-
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:513
-
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:168
-
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.
Definition: log.c:256
-
tds_end
Flags returned in TDS_DONE token.
Definition: tds.h:248
-
Information for a server connection.
Definition: tds.h:1141
-
const char * tds_skip_quoted(const char *s)
Skip quoting string (like &#39;sfsf&#39;, "dflkdj" or [dfkjd])
Definition: query.c:535
-
Definition: tds.h:498
-
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
-
void tdsdump_col(const TDSCOLUMN *col)
Write a column value to the debug log.
Definition: log.c:408
-
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:1472
-
int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Check if dynamic request must be unprepared.
Definition: query.c:1842
-
no data expected
Definition: tds.h:791
-
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:980
-
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:703
-
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1194
-
TDS_CURSOR_STATUS status
cursor parameter
Definition: tds.h:954
-
struct tds_encoding TDS_ENCODING
Information relevant to libiconv.
-
TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
Return declaration for column (like "varchar(20)").
Definition: query.c:737
-
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition: tds.h:942
-
struct addrinfo * tds_lookup_host(const char *servername)
Get the IP address for a hostname.
Definition: config.c:971
-
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
-
bool tds_read_conf_file(TDSLOGIN *login, const char *server)
Read configuration info for given server return 0 on error.
Definition: config.c:344
-
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:1112
-
bool defer_close
true if cursor was marker to be closed when connection is idle
Definition: tds.h:947
-
int determine_adjusted_size(const TDSICONV *char_conv, int size)
Allow for maximum possible size of converted data, while being careful about integer division truncat...
Definition: token.c:3280
-
enum tds_states TDS_STATE
values for tds->state
-
DSTR db_filename
database filename to attach (MSSQL)
Definition: tds.h:524
-
TDS_INT date
date, 0 = 1900-01-01
Definition: tds.h:147
-
struct tds_cursor TDSCURSOR
Holds informations about a cursor.
-
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
-
TDS_TINYINT options
read only|updatable TODO use it
Definition: tds.h:943
-
int tds7_get_instance_ports(FILE *output, struct addrinfo *addr)
Get port of all instances.
Definition: net.c:1091
-
int tds_count_placeholders(const char *query)
Count the number of placeholders (&#39;?&#39;) in a query.
Definition: query.c:591
-
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:714
-
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1209
-
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
-
const char * tds_skip_comment(const char *s)
Skip a comment in a query.
Definition: query.c:510
-
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
-
Information about blobs (e.g.
Definition: tds.h:587
-
DSTR server_charset
charset of server e.g.
Definition: tds.h:518
-
const char * tds_prtype(int token)
Returns string representation of the given type.
Definition: token.c:3052
-
TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Unprepare dynamic on idle.
Definition: query.c:1864
-
Definition: tds.h:511
-
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:334
-
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition: numeric.c:95
-
TDSRET tds_set_interfaces_file_loc(const char *interfloc)
Set the full name of interface file.
Definition: config.c:945
-
const char * name
name of the encoding (ie UTF-8)
Definition: tds.h:615
-
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition: net.c:168
-
DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len)
Reads a string from wire and put in a DSTR.
Definition: read.c:311
-
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2266
-
char * database
database name
Definition: tds.h:971
-
DSTR cafile
certificate authorities file
Definition: tds.h:525
-
TDS_UINT8 tds_get_uint8(TDSSOCKET *tds)
Get an uint64 from the server.
Definition: read.c:148
-
TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds)
Build a NTLMSPP packet to send to server.
Definition: challenge.c:691
-
int port
port of database service
Definition: tds.h:514
-
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_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition: query.c:207
-
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:529
-
client would send data
Definition: tds.h:793
-
Structure to hold a string.
Definition: string.h:36
-
Metadata about columns in regular and compute rows.
Definition: tds.h:690
-
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
-
TDSPARAMINFO * res_info
query results
Definition: tds.h:1000
-
Information relevant to libiconv.
Definition: tds.h:612
-
SQL server server error.
Definition: tds.h:258
-
struct tds_env TDSENV
Current environment as reported by the server.
-
int block_size
packet size (512-65535)
Definition: tds.h:966
-
TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id)
Finds a dynamic given string id.
Definition: token.c:2583
-
TDS_SMALLINT offset
time offset
Definition: tds.h:148
-
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:1206
-
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:394
-
TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont)
Send a rollback request.
Definition: query.c:3719
-
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3124
-
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1167
-
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition: query.c:3078
-
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition: query.c:1737
-
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:163
-
TDS_INT hour
0-23
Definition: tds.h:165
-
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:123
-
bool defer_close
true if dynamic was marker to be closed when connection is idle
Definition: tds.h:998
-
Definition: tds.h:906
-
TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied)
Tell we finished sending BCP data to server.
Definition: bulk.c:804
-
void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Set current dynamic.
Definition: query.c:189
-
TDS_INT column_size
maximun size of data.
Definition: tds.h:696
-
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:3415
-
bool bulk_query
true is query sent was a bulk query so we need to switch state to QUERYING
Definition: tds.h:1200
-
Hold information for any results.
Definition: tds.h:769
-
TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login)
Set TDS version from given string.
Definition: config.c:902
-
TDS_INT type
row fetched from this cursor
Definition: tds.h:957
-
unsigned char in_flag
input buffer type
Definition: tds.h:1171
-
transaction in progress
Definition: tds.h:253
-
TDS_INT year
year
Definition: tds.h:159
-
struct tds_dynamic TDSDYNAMIC
Holds information for a dynamic (also called prepared) query.
-
int tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
Select on a socket until it&#39;s available or the timeout expires.
Definition: net.c:610
-
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
-
results are from a stored procedure
Definition: tds.h:254
-
char * charset
character set encoding
Definition: tds.h:969
-
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:1187
-
void tdsdump_close(void)
Close the TDS dump log file.
Definition: log.c:193
-
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
-
client is writing data
Definition: tds.h:792
-
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition: mem.c:800
-
TDSPACKET * send_packet
packet we are preparing to send
Definition: tds.h:1187
-
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:706
-
struct tds_cursor * next
next in linked list, keep first
Definition: tds.h:939
-
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
-
TDSRET tds_process_login_tokens(TDSSOCKET *tds)
tds_process_login_tokens() is called after sending the login packet to the server.
Definition: token.c:409
-
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server ...
Definition: tds.h:1086
-
struct tds_result_info TDSRESULTINFO
Hold information for any results.
-
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
-
tds_bcp_directions
bcp direction
Definition: tds.h:1556
-
A structure to hold all the compile-time settings.
Definition: tds.h:82
-
TDS_INT cursor_rows
< number of updatable columns
Definition: tds.h:952
-
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:698
-
TDS_INT num_id
numeric id for mssql7+
Definition: tds.h:982
-
Definition: proto.h:25
-
char * cursor_name
name of the cursor
Definition: tds.h:941
-
Definition: tds.h:1029
-
tds_states
values for tds->state
Definition: tds.h:789
-
Definition: tds.h:576
-
size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len)
Quote a string.
Definition: query.c:2310
-
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
-
Current environment as reported by the server.
Definition: tds.h:963
-
void tds_start_query(TDSSOCKET *tds, unsigned char packet_type)
Start query packet of a given type.
Definition: query.c:345
-
Definition: tds.h:1563
-
Definition: tds.h:505
-
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:131
-
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:1321
-
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
-
DSTR crlfile
certificate revocation file
Definition: tds.h:526
-
unsigned char canonic
internal numeric index into array of all encodings
Definition: tds.h:619
-
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1214
-
unsigned in_len
input buffer length
Definition: tds.h:1170
-
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1072
-
Definition: iconv.h:91
-
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition: read.c:100
-
TDSRET tds_submit_commit(TDSSOCKET *tds, int cont)
Send a commit request.
Definition: query.c:3750
-
bool has_status
true is ret_status is valid
Definition: tds.h:1201
-
Definition: tds.h:638
-
Used by tds_datecrack.
Definition: tds.h:157
-
TDS_INT quarter
quarter (0-3)
Definition: tds.h:160
-
Definition: proto.h:38
-
TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start sending BCP data to server.
Definition: bulk.c:834
-
Definition: tds.h:1055
-
Store variant informations.
Definition: tds.h:598
-
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:1042
-
struct tds_variant TDSVARIANT
Store variant informations.
-
DSTR server_spn
server SPN (in freetds.conf)
Definition: tds.h:523
-
TDS_INT month
month number (0-11)
Definition: tds.h:161
-
Definition: thread.h:278
-
Definition: tds.h:568
-
TDSCURSOR * cur_cursor
cursor in use
Definition: tds.h:1199
-
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
-
DSTR password
password of account login
Definition: tds.h:530
-
void tdsdump_on(void)
Turn logging back on.
Definition: log.c:88
-
unsigned in_pos
current position in in_buf
Definition: tds.h:1168
-
bool in_row
true if we are getting rows
Definition: tds.h:1202
-
void tds_detach_results(TDSRESULTINFO *info)
Detach result info from it current socket.
Definition: mem.c:488
-
Definition: tds.h:892
-
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition: mem.c:320
-
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
-
TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Initialize BCP information.
Definition: bulk.c:82
-
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:2750
-
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
-
Definition: tds.h:622
-
char * query
SQL query.
Definition: tds.h:948
-
TDSPARAMINFO * params
query parameters.
Definition: tds.h:1008
-
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:1150
-
TDSRET tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition: read.c:213
-
void tdsdump_off(void)
Temporarily turn off logging.
Definition: log.c:76
-
int tdserror(const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
Call the client library&#39;s error handler (for library-generated errors only)
Definition: util.c:307
-
unsigned char * out_buf
Output buffer.
Definition: tds.h:1161
-
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:93
-
struct tdsdaterec TDSDATEREC
Used by tds_datecrack.
-
error occurred
Definition: tds.h:252
-
TDS_INT timezone
-840 - 840 minutes from UTC
Definition: tds.h:169
-
struct tds_blob TDSBLOB
Information about blobs (e.g.
-
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
-
Definition: tds.h:1019
-
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:184
-
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition: config.c:283
-
Holds informations about a cursor.
Definition: tds.h:937
-
TDS_SYS_SOCKET s
tcp socket, INVALID_SOCKET if not connected
Definition: tds.h:1075
-
int tds_read_packet(TDSSOCKET *tds)
Read in one &#39;packet&#39; from the server.
Definition: packet.c:530
-
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition: mem.c:206
-
void * tds_realloc(void **pp, size_t new_size)
Reallocate a pointer and update it if success.
Definition: mem.c:1821
-
DSTR new_password
new password to set (TDS 7.2+)
Definition: tds.h:531
-
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:2123
-
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:363
-
unsigned char * in_buf
Input buffer.
Definition: tds.h:1154
-
Definition: tds.h:876
-
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition: bulk.c:1167
-
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
-
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:940
-
no connection
Definition: tds.h:796
-
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1203
-
count field in packet is valid
Definition: tds.h:255
-
TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor)
Deallocate cursor on idle.
Definition: query.c:3129
-
struct addrinfo * ip_addrs
ip(s) of server
Definition: tds.h:541
-
TDSRET tds_submit_begin_tran(TDSSOCKET *tds)
Send a rollback request.
Definition: query.c:3691
-
DSTR server_realm_name
server realm name (in freetds.conf)
Definition: tds.h:522
-
struct tds_dynamic * next
next in linked list, keep first
Definition: tds.h:979
-
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition: query.c:1564
-
Definition: tds.h:489
-
char * tds_get_home_file(const char *file)
Return filename from HOME directory.
Definition: config.c:323
-
final result set, command completed successfully.
Definition: tds.h:250
-
Definition: tds.h:1069
-
int tds7_get_instance_port(struct addrinfo *addr, const char *instance)
Get port of given instance.
Definition: net.c:1227
-
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information...
Definition: tds.h:144
-
TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id)
Allocate a dynamic statement.
Definition: mem.c:160
-
Definition: tds.h:1047
-
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:285
-
cilent is waiting for data
Definition: tds.h:794
-
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:977
-
TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Submit a prepared query with parameters.
Definition: query.c:1326
-
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition: tds.h:1212
-
int tds_get_varint_size(TDSCONNECTION *conn, int datatype)
tds_get_varint_size() returns the size of a variable length integer returned in a TDS 7...
Definition: tds_types.h:57
-
void tds_unget_byte(TDSSOCKET *tds)
Unget will always work as long as you don&#39;t call it twice in a row.
Definition: read.c:89
-
TDS_INT bcp_prefix_len
The length, in bytes, of any length prefix this column may have.
Definition: tds.h:762
-
void tds_release_dynamic(TDSDYNAMIC **dyn)
Frees dynamic statement.
Definition: mem.c:253
-
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition: query.c:2021
-
unsigned char out_flag
output buffer type
Definition: tds.h:1172
-
int tds_iconv_alloc(TDSCONNECTION *conn)
Allocate iconv stuff.
Definition: iconv.c:266
-
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query. ...
Definition: tds.h:994
-
char * query
saved query, we need to know original query if prepare is impossible
Definition: tds.h:1010
-
TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start bulk copy to server.
Definition: bulk.c:881
-
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server ...
Definition: tds.h:1091
-
TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...)
Format and submit a query.
Definition: query.c:487
-
TDS_INT minute
0-59
Definition: tds.h:166
-
acknowledging an attention command (usually a cancel)
Definition: tds.h:256
-
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:876
-
Definition: tds.h:328
-
unsigned out_pos
current position in out_buf
Definition: tds.h:1169
-
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition: query.c:1887
-
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition: login.c:125
-
struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
A structure to hold all the compile-time settings.
-
Definition: tds.h:1063
-
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
-
TDS_UINT8 time
time, 7 digit precision
Definition: tds.h:146
-
client is reading data
Definition: tds.h:795
-
TDS_USMALLINT tds_version
TDS version.
Definition: tds.h:515
+
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 
+
30 typedef struct tds_input_stream {
+
35  int (*read)(struct tds_input_stream *stream, void *ptr, size_t len);
+
36 } TDSINSTREAM;
+
37 
+
39 typedef struct tds_output_stream {
+
41  int (*write)(struct tds_output_stream *stream, size_t len);
+
50  char *buffer;
+
51  size_t buf_len;
+
52 } TDSOUTSTREAM;
+
53 
+
55 TDSRET tds_convert_stream(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION direction,
+
56  TDSINSTREAM * istream, TDSOUTSTREAM *ostream);
+
58 TDSRET tds_copy_stream(TDSINSTREAM * istream, TDSOUTSTREAM * ostream);
+
59 
+
60 /* Additional streams */
+
61 
+
63 typedef struct tds_datain_stream {
+
64  TDSINSTREAM stream;
+
65  size_t wire_size;
+
66  TDSSOCKET *tds;
+ +
68 
+
69 void tds_datain_stream_init(TDSDATAINSTREAM * stream, TDSSOCKET * tds, size_t wire_size);
+
70 
+
72 typedef struct tds_dataout_stream {
+
73  TDSOUTSTREAM stream;
+
74  TDSSOCKET *tds;
+
75  size_t written;
+ +
77 
+ +
79 
+
81 typedef struct tds_staticin_stream {
+
82  TDSINSTREAM stream;
+
83  const char *buffer;
+
84  size_t buf_left;
+ +
86 
+
87 void tds_staticin_stream_init(TDSSTATICINSTREAM * stream, const void *ptr, size_t len);
+
88 
+
92 typedef struct tds_staticout_stream {
+
93  TDSOUTSTREAM stream;
+ +
95 
+
96 void tds_staticout_stream_init(TDSSTATICOUTSTREAM * stream, void *ptr, size_t len);
+
97 
+
99 typedef struct tds_dynamic_stream {
+
100  TDSOUTSTREAM stream;
+
102  void **buf;
+
104  size_t allocated;
+
106  size_t size;
+ +
108 
+
109 TDSRET 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
+
size_t size
size of data inside buffer
Definition: stream.h:106
+
void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
Initialize a data output stream.
Definition: stream.c:244
+
input stream to read data from a static buffer
Definition: stream.h:81
+
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
+
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
+
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 ** buf
where is stored the pointer
Definition: stream.h:102
+
Definition: iconv.h:92
+
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
+
Information for a server connection.
Definition: tds.h:1164
+
define a stream of data used for output
Definition: stream.h:39
+
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_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition: stream.c:204
+
output stream to write data to a static buffer.
Definition: stream.h:92
+
size_t wire_size
bytes still to read
Definition: stream.h:65
+
output stream to write data to tds protocol
Definition: stream.h:72
+
define a stream of data used for input
Definition: stream.h:30
+
input stream to read data from tds protocol
Definition: stream.h:63
+
size_t allocated
currently allocated buffer
Definition: stream.h:104
+
char * buffer
write buffer.
Definition: stream.h:50
+
output stream to write data to a dynamic buffer
Definition: stream.h:99
diff -Nru freetds-1.1.6/doc/reference/a00432.map freetds-1.2.3/doc/reference/a00432.map --- freetds-1.1.6/doc/reference/a00432.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00432.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00432.md5 freetds-1.2.3/doc/reference/a00432.md5 --- freetds-1.1.6/doc/reference/a00432.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00432.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e2855396ae2b3dfc362660113cdccbf2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00432.svg freetds-1.2.3/doc/reference/a00432.svg --- freetds-1.1.6/doc/reference/a00432.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00432.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,313 +0,0 @@ - - - - - - -include/freetds/tds.h - - -Node0 - -include/freetds/tds.h - - -Node1 - -stdarg.h - - -Node0->Node1 - - - - -Node2 - -stdio.h - - -Node0->Node2 - - - - -Node3 - - -time.h - - - - -Node0->Node3 - - - - -Node4 - - -freetds/version.h - - - - -Node0->Node4 - - - - -Node5 - - -tds_sysdep_public.h - - - - -Node0->Node5 - - - - -Node7 - - -freetds/sysdep_private.h - - - - -Node0->Node7 - - - - -Node8 - - -freetds/thread.h - - - - -Node0->Node8 - - - - -Node9 - - -freetds/bool.h - - - - -Node0->Node9 - - - - -Node10 - - -freetds/macros.h - - - - -Node0->Node10 - - - - -Node11 - - -freetds/utils/string.h - - - - -Node0->Node11 - - - - -Node12 - - -freetds/pushvis.h - - - - -Node0->Node12 - - - - -Node13 - - -freetds/popvis.h - - - - -Node0->Node13 - - - - -Node14 - - -replacements.h - - - - -Node0->Node14 - - - - -Node18 - - -freetds/proto.h - - - - -Node0->Node18 - - - - -Node3->Node3 - - - - -Node6 - -float.h - - -Node5->Node6 - - - - -Node8->Node5 - - - - -Node11->Node10 - - - - -Node11->Node12 - - - - -Node11->Node13 - - - - -Node14->Node1 - - - - -Node14->Node5 - - - - -Node14->Node7 - - - - -Node14->Node12 - - - - -Node14->Node13 - - - - -Node15 - - -replacements/readpassphrase.h - - - - -Node14->Node15 - - - - -Node16 - - -replacements/poll.h - - - - -Node14->Node16 - - - - -Node15->Node12 - - - - -Node15->Node13 - - - - -Node16->Node12 - - - - -Node16->Node13 - - - - -Node17 - - -config.h - - - - -Node16->Node17 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00433.map freetds-1.2.3/doc/reference/a00433.map --- freetds-1.1.6/doc/reference/a00433.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00433.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00433.md5 freetds-1.2.3/doc/reference/a00433.md5 --- freetds-1.1.6/doc/reference/a00433.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00433.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -373b97e18bd17407111c990f96a84b0b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00433.svg freetds-1.2.3/doc/reference/a00433.svg --- freetds-1.1.6/doc/reference/a00433.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00433.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,161 +0,0 @@ - - - - - - -include/freetds/tds.h - - -Node19 - -include/freetds/tds.h - - -Node20 - - -src/dblib/dblib.c - - - - -Node19->Node20 - - - - -Node21 - - -src/pool/pool.h - - - - -Node19->Node21 - - - - -Node22 - - -src/replacements/iconv.c - - - - -Node19->Node22 - - - - -Node23 - - -src/tds/bulk.c - - - - -Node19->Node23 - - - - -Node24 - - -src/tds/data.c - - - - -Node19->Node24 - - - - -Node25 - - -src/tds/iconv.c - - - - -Node19->Node25 - - - - -Node26 - - -src/tds/read.c - - - - -Node19->Node26 - - - - -Node27 - - -src/tds/stream.c - - - - -Node19->Node27 - - - - -Node28 - - -src/tds/token.c - - - - -Node19->Node28 - - - - -Node29 - - -include/ctlib.h - - - - -Node19->Node29 - - - - -Node30 - - -include/freetds/odbc.h - - - - -Node19->Node30 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00434_source.html freetds-1.2.3/doc/reference/a00434_source.html --- freetds-1.1.6/doc/reference/a00434_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00434_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/thread.h Source File +FreeTDS API: include/freetds/sysdep_private.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
thread.h
+
sysdep_private.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 
35 typedef pthread_mutex_t tds_raw_mutex;
36 #define TDS_RAW_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
37 
38 static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
39 {
40  pthread_mutex_lock(mtx);
41 }
42 
43 static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
44 {
45  return pthread_mutex_trylock(mtx);
46 }
47 
48 static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
49 {
50  pthread_mutex_unlock(mtx);
51 }
52 
53 static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
54 {
55  return pthread_mutex_init(mtx, NULL);
56 }
57 
58 static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
59 {
60  pthread_mutex_destroy(mtx);
61 }
62 
63 typedef pthread_cond_t tds_condition;
64 
65 int tds_raw_cond_init(tds_condition *cond);
66 static inline int tds_raw_cond_destroy(tds_condition *cond)
67 {
68  return pthread_cond_destroy(cond);
69 }
70 static inline int tds_raw_cond_signal(tds_condition *cond)
71 {
72  return pthread_cond_signal(cond);
73 }
74 static inline int tds_raw_cond_wait(tds_condition *cond, tds_raw_mutex *mtx)
75 {
76  return pthread_cond_wait(cond, mtx);
77 }
78 int tds_raw_cond_timedwait(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
79 
80 #define TDS_HAVE_MUTEX 1
81 
82 typedef pthread_t tds_thread;
83 typedef pthread_t tds_thread_id;
84 typedef 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 static 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 
94 static 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 
103 static inline int tds_thread_join(tds_thread th, void **ret)
104 {
105  return pthread_join(th, ret);
106 }
107 
108 static inline tds_thread_id tds_thread_get_current_id(void)
109 {
110  return pthread_self();
111 }
112 
113 static 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 
130 struct ptw32_mcs_node_t_;
131 
132 typedef struct {
133  struct ptw32_mcs_node_t_ *lock;
134  LONG done;
135  DWORD thread_id;
136  CRITICAL_SECTION crit;
137 } tds_raw_mutex;
138 
139 #define TDS_RAW_MUTEX_INITIALIZER { NULL, 0, 0 }
140 
141 static inline int
142 tds_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 
150 void tds_win_mutex_lock(tds_raw_mutex *mutex);
151 
152 static 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 
162 int tds_raw_mutex_trylock(tds_raw_mutex *mtx);
163 
164 static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
165 {
166  mtx->thread_id = 0;
167  LeaveCriticalSection(&mtx->crit);
168 }
169 
170 static 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 */
181 typedef void *TDS_CONDITION_VARIABLE;
182 typedef union {
183  HANDLE ev;
184  TDS_CONDITION_VARIABLE cv;
185 } tds_condition;
186 
187 extern int (*tds_raw_cond_init)(tds_condition *cond);
188 extern int (*tds_raw_cond_destroy)(tds_condition *cond);
189 extern int (*tds_raw_cond_signal)(tds_condition *cond);
190 extern int (*tds_raw_cond_timedwait)(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
191 static 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 
196 typedef HANDLE tds_thread;
197 typedef DWORD tds_thread_id;
198 typedef 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 
203 static 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 
209 static 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 
218 static 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 
235 static inline tds_thread_id tds_thread_get_current_id(void)
236 {
237  return GetCurrentThreadId();
238 }
239 
240 static 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" */
250 typedef struct {
251  char dummy[0]; /* compiler compatibility */
252 } tds_raw_mutex;
253 
254 #define TDS_RAW_MUTEX_INITIALIZER {}
255 
256 static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
257 {
258 }
259 
260 static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
261 {
262  return 0;
263 }
264 
265 static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
266 {
267 }
268 
269 static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
270 {
271  return 0;
272 }
273 
274 static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
275 {
276 }
277 
278 typedef struct {
279  char dummy[0]; /* compiler compatibility */
280 } tds_condition;
281 
282 static inline int tds_raw_cond_init(tds_condition *cond)
283 {
284  return 0;
285 }
286 static 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 
299 typedef struct {
300  char dummy[0]; /* compiler compatibility */
301 } tds_thread;
302 typedef int tds_thread_id;
303 
304 typedef 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 
318 static inline tds_thread_id tds_thread_get_current_id(void)
319 {
320  return 0;
321 }
322 
323 static 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 
347 typedef 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 
356 static 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 
365 static 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 
378 static 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 
385 static 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 
395 static inline int tds_mutex_init(tds_mutex *mtx)
396 {
397  mtx->locked = 0;
398  return tds_raw_mutex_init(&mtx->mtx);
399 }
400 
401 static inline void tds_mutex_free(tds_mutex *mtx)
402 {
403  assert(mtx && !mtx->locked);
404  tds_raw_mutex_free(&mtx->mtx);
405 }
406 
407 static 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 
418 static 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: thread.h:250
-
Definition: ptw32_MCS_lock.c:97
-
Definition: thread.h:299
-
Definition: thread.h:278
+
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
+
33 extern "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
+
51 typedef 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
+
65 int tds_socket_init(void);
+
66 #define INITSOCKET() tds_socket_init()
+
67 void 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__
+
81 typedef 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)
+
197 typedef int TDS_SYS_SOCKET;
+
198 #define INVALID_SOCKET -1
+
199 #define TDS_IS_SOCKET_INVALID(s) ((s) < 0)
+
200 #else
+
201 typedef 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_ */
diff -Nru freetds-1.1.6/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map freetds-1.2.3/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map --- freetds-1.1.6/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 freetds-1.2.3/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +0ee5d6396106f31f3825aef701af5a95 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg freetds-1.2.3/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg --- freetds-1.1.6/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a0383d5dcb629582266a442f0f0dbd13a_icgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_conversion_type + + + +Node1 + + +tds_get_conversion_type + + + + + +Node2 + + +_bcp_convert_out + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map --- freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +610d88b35eb3fe911e4730f447ae8819 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_set_state + + + +Node1 + + +tds_set_state + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map --- freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +51d74ca7dd858eba20534131cf62e264 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg --- freetds-1.1.6/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a16db200d2281f76fe46fc1cbe37ca9df_icgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,97 @@ + + + + + + +tds_set_state + + + +Node1 + + +tds_set_state + + + + + +Node2 + + +tds_query_flush_packet + + + + + +Node1->Node2 + + + + + +Node4 + + +tds_submit_rpc + + + + + +Node1->Node4 + + + + + +Node5 + + +tds_writetext_continue + + + + + +Node1->Node5 + + + + + +Node6 + + +tds_writetext_end + + + + + +Node1->Node6 + + + + + +Node3 + + +tds4_send_emulated_rpc + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.map freetds-1.2.3/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.map --- freetds-1.1.6/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 freetds-1.2.3/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9af48038018161da7df53ad859aeb759 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg freetds-1.2.3/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg --- freetds-1.1.6/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a24471508ddfde7cc0f8577801e70c42f_icgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tdsdump_open + + + +Node1 + + +tdsdump_open + + + + + +Node2 + + +tdsdbopen + + + + + +Node1->Node2 + + + + + +Node3 + + +dbopen + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.map freetds-1.2.3/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.map --- freetds-1.1.6/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 freetds-1.2.3/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +ff39b5fd49e15f3d5a0dfadf98875b95 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.svg freetds-1.2.3/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a3ab8874994a0776acdaff797afdb710a_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_set_server + + + +Node1 + + +tds_set_server + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.map freetds-1.2.3/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.map --- freetds-1.1.6/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.md5 freetds-1.2.3/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +de002511e9e704a7198f61675b64c2ea \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.svg freetds-1.2.3/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a5eec23828b0610c58de248c4edb53879_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_bcp_start_copy_in + + + +Node1 + + +tds_bcp_start_copy_in + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.map freetds-1.2.3/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.map --- freetds-1.1.6/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 freetds-1.2.3/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +185d141dccf6551dcd8d18b9c3a028dc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg freetds-1.2.3/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a7711612cc544a7da2c7aa212b870acb2_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_writetext_start + + + +Node1 + + +tds_writetext_start + + + + + +Node2 + + +tds_submit_queryf + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.map freetds-1.2.3/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.map --- freetds-1.1.6/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 freetds-1.2.3/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +80e8433dc7b61acd0e4829ef76a1bf3d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg freetds-1.2.3/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a8184311543c685f2ee0bcccfb725ca02_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_bcp_fread + + + +Node1 + + +tds_bcp_fread + + + + + +Node2 + + +tds_file_stream_read + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map freetds-1.2.3/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map --- freetds-1.1.6/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 freetds-1.2.3/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +2820d4b6d3981af9a1a2b7dec66ac610 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg freetds-1.2.3/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_bcp_start + + + +Node1 + + +tds_bcp_start + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.map freetds-1.2.3/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.map --- freetds-1.1.6/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 freetds-1.2.3/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +7e932de87744e8fb5da208058355439a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg freetds-1.2.3/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ab68dead99a2ebec55895a10cd3db5202_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_writetext_continue + + + +Node1 + + +tds_writetext_continue + + + + + +Node2 + + +tds_set_state + + + + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.map freetds-1.2.3/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.map --- freetds-1.1.6/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.md5 freetds-1.2.3/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6bc6b9911e8f2a223f020121572d556a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.svg freetds-1.2.3/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ac1e460551f1188620ea478238864ac4b_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_writetext_end + + + +Node1 + + +tds_writetext_end + + + + + +Node2 + + +tds_set_state + + + + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.map freetds-1.2.3/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.map --- freetds-1.1.6/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.md5 freetds-1.2.3/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.md5 --- freetds-1.1.6/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +b748612108c6a026568ba2ec3e2a91a3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.svg freetds-1.2.3/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.svg --- freetds-1.1.6/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_ade7df2db455b61edc83819ad60edb339_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_bcp_done + + + +Node1 + + +tds_bcp_done + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00437.html freetds-1.2.3/doc/reference/a00437.html --- freetds-1.1.6/doc/reference/a00437.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,3153 @@ + + + + + + + +FreeTDS API: include/freetds/tds.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
tds.h File Reference
+
+
+
#include <stdarg.h>
+#include <stdio.h>
+#include <time.h>
+#include <freetds/version.h>
+#include "tds_sysdep_public.h"
+#include <freetds/sysdep_private.h>
+#include <freetds/thread.h>
+#include <freetds/bool.h>
+#include <freetds/macros.h>
+#include <freetds/utils/string.h>
+#include "replacements.h"
+#include <freetds/pushvis.h>
+#include <freetds/proto.h>
+#include <freetds/popvis.h>
+
+Include dependency graph for tds.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

union  tds_align_struct
 
struct  tds_authentication
 
struct  tds_bcpcoldata
 
struct  tds_bcpinfo
 
struct  tds_blob
 Information about blobs (e.g. More...
 
struct  tds_capabilities
 
struct  tds_capability_type
 
struct  tds_column
 Metadata about columns in regular and compute rows. More...
 
struct  tds_column_funcs
 
struct  tds_compiletime_settings
 A structure to hold all the compile-time settings. More...
 
struct  tds_connection
 
struct  tds_context
 
struct  tds_cursor
 Holds informations about a cursor. More...
 
struct  tds_cursor_status
 
struct  TDS_DATETIMEALL
 this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information. More...
 
struct  tds_dynamic
 Holds information for a dynamic (also called prepared) query. More...
 
struct  tds_encoding
 Information relevant to libiconv. More...
 
struct  tds_env
 Current environment as reported by the server. More...
 
struct  tds_freeze
 
struct  tds_headers
 
struct  tds_locale
 
struct  tds_login
 
struct  tds_message
 
struct  tds_multiple
 
union  tds_option_arg
 
struct  tds_packet
 
struct  tds_poll_wakeup
 
struct  tds_result_info
 Hold information for any results. More...
 
struct  tds_socket
 Information for a server connection. More...
 
struct  tds_upd_col
 
struct  tds_variant
 Store variant informations. More...
 
struct  tdsdaterec
 Used by tds_datecrack. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define is_ascii_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
 
+#define is_binary_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != 0)
 
+#define is_blob_col(x)   ((x)->column_varint_size > 2)
 
+#define is_blob_type(x)   ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
 
+#define is_char_type(x)   ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
 
+#define is_collate_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
 
+#define is_datetime_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
 return true if type is a datetime (but not date or time)
 
+#define is_end_token(x)   ((x) >= TDS_DONE_TOKEN && (x) <= TDS_DONEINPROC_TOKEN)
 
+#define is_fixed_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
 
+#define is_nullable_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
 
+#define is_numeric_type(x)   ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
 
+#define is_similar_type(x, y)   (is_char_type(x) && is_char_type(y))
 
+#define IS_TDS42(x)   (x->tds_version==0x402)
 
+#define IS_TDS46(x)   (x->tds_version==0x406)
 
+#define IS_TDS50(x)   (x->tds_version==0x500)
 
+#define IS_TDS50_PLUS(x)   ((x)->tds_version>=0x500)
 
+#define IS_TDS70(x)   (x->tds_version==0x700)
 
+#define IS_TDS71(x)   (x->tds_version==0x701)
 
+#define IS_TDS71_PLUS(x)   ((x)->tds_version>=0x701)
 
+#define IS_TDS72(x)   (x->tds_version==0x702)
 
+#define IS_TDS72_PLUS(x)   ((x)->tds_version>=0x702)
 
+#define IS_TDS73(x)   (x->tds_version==0x703)
 
+#define IS_TDS73_PLUS(x)   ((x)->tds_version>=0x703)
 
+#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)
 
+#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 is_variant_inner_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIANT) != 0)
 
+#define MAXPRECISION   77
 
+#define TDS_ALIGN_SIZE   sizeof(tds_align_struct)
 
#define TDS_BYTE_SWAP16(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_CMD_DONE   4046
 
+#define TDS_CMD_FAIL   4048
 
+#define TDS_CMD_SUCCEED   4047
 
+#define TDS_COMPUTE_RESULT   4045
 
+#define TDS_COMPUTEFMT_RESULT   4050
 
+#define tds_convert_string_free(original, converted)   do { if (original != converted) free((char*) converted); } while(0)
 
+#define TDS_DBG_ERROR   __FILE__, ((__LINE__ << 4) | 2)
 
+#define TDS_DBG_FUNC   __FILE__, ((__LINE__ << 4) | 7)
 
+#define TDS_DBG_HEADER   __FILE__, ((__LINE__ << 4) | 10)
 
+#define TDS_DBG_INFO1   __FILE__, ((__LINE__ << 4) | 5)
 
+#define TDS_DBG_INFO2   __FILE__, ((__LINE__ << 4) | 6)
 
+#define TDS_DBG_LOGIN   __FILE__, ((__LINE__ << 4) | 11)
 
+#define TDS_DBG_NETWORK   __FILE__, ((__LINE__ << 4) | 4)
 
+#define TDS_DBG_SEVERE   __FILE__, ((__LINE__ << 4) | 1)
 
+#define TDS_DBG_WARN   __FILE__, ((__LINE__ << 4) | 3)
 
+#define TDS_DBGFLAG_ALL   0xfff
 
+#define TDS_DBGFLAG_ERROR   0x04
 
+#define TDS_DBGFLAG_FUNC   0x80
 
+#define TDS_DBGFLAG_HEADER   0x0400
 
+#define TDS_DBGFLAG_INFO1   0x20
 
+#define TDS_DBGFLAG_INFO2   0x40
 
+#define TDS_DBGFLAG_LOGIN   0x0800
 
+#define TDS_DBGFLAG_NETWORK   0x10
 
+#define TDS_DBGFLAG_PID   0x1000
 
+#define TDS_DBGFLAG_SEVERE   0x02
 
+#define TDS_DBGFLAG_SOURCE   0x4000
 
+#define TDS_DBGFLAG_THREAD   0x8000
 
+#define TDS_DBGFLAG_TIME   0x2000
 
+#define TDS_DBGFLAG_WARN   0x08
 
+#define TDS_DEF_BLKSZ   512
 
+#define TDS_DEF_CHARSET   "iso_1"
 
+#define TDS_DEF_LANG   "us_english"
 
+#define TDS_DEF_PORT   1433
 
+#define TDS_DEF_SERVER   "SYBASE"
 
+#define TDS_DEFAULT_VERSION   0x000
 
+#define TDS_DESCRIBE_RESULT   4051
 
+#define TDS_DONE_RESULT   4052
 
+#define TDS_DONEINPROC_RESULT   4054
 
+#define TDS_DONEPROC_RESULT   4053
 
+#define TDS_END_LEN   while(0); } while(tds_freeze_close(current_freeze), 0); } while(0);
 
+#define TDS_FAIL   ((TDSRET)-1)
 
+#define TDS_FAILED(rc)   ((rc)<0)
 
+#define tds_get_ctx(tds)   ((tds)->conn->tds_ctx)
 
+#define tds_get_int(tds)   ((TDS_INT) tds_get_uint(tds))
 
+#define tds_get_int8(tds)   ((TDS_INT8) tds_get_uint8(tds))
 
+#define tds_get_parent(tds)   ((tds)->parent)
 
+#define tds_get_s(tds)   ((tds)->conn->s)
 
+#define tds_get_smallint(tds)   ((TDS_SMALLINT) tds_get_usmallint(tds))
 
+#define TDS_GSSAPI_DELEGATION   "enable gssapi delegation"
 
+#define TDS_INT_CANCEL   2
 
+#define TDS_INT_CONTINUE   1
 
+#define TDS_INT_TIMEOUT   3
 
+#define TDS_INVALID_TYPE   ((TDS_SERVER_TYPE) 0)
 
#define TDS_IS_MSSQL(x)   (((x)->conn->product_version & 0x80000000u)!=0)
 Check if product is Microsft SQL Server. More...
 
#define TDS_IS_SYBASE(x)   (!((x)->conn->product_version & 0x80000000u))
 Check if product is Sybase (such as Adaptive Server Enterrprice). More...
 
+#define TDS_MAJOR(x)   ((x)->tds_version >> 8)
 
+#define TDS_MAX_CAPABILITY   32
 
+#define TDS_MAX_CONN   4096
 
+#define TDS_MAX_DYNID_LEN   30
 
+#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))
 Calc a version number for mssql. More...
 
+#define TDS_MSG_RESULT   4044
 
+#define tds_new(type, n)   ((type *) malloc(sizeof(type) * (n)))
 
+#define tds_new0(type, n)   ((type *) calloc(n, sizeof(type)))
 
+#define TDS_NO_COUNT   -1
 
+#define TDS_NO_MORE_RESULTS   ((TDSRET)1)
 
+#define TDS_NULLTERM   -9
 
+#define TDS_OTHERS_RESULT   4055
 
+#define tds_packet_get_data_start(pkt)   0
 
+#define tds_packet_zero_data_start(pkt)   do { } while(0)
 
+#define TDS_PARAM_RESULT   4042
 
+#define TDS_PROPAGATE(rc)   do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } while(0)
 
+#define TDS_PUT_BYTE(tds, v)   tds_put_byte((tds), ((unsigned char)(v)))
 
+#define TDS_PUT_INT(tds, v)   tds_put_int((tds), ((TDS_INT)(v)))
 
+#define TDS_PUT_SMALLINT(tds, v)   tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
 
+#define tds_put_tinyint(tds, ti)   tds_put_byte(tds,ti)
 Output a tinyint value.
 
+#define TDS_RESIZE(p, n_elem)   tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
 
+#define TDS_ROW_RESULT   4040
 
+#define TDS_ROWFMT_RESULT   4049
 
+#define tds_set_ctx(tds, val)   do { ((tds)->conn->tds_ctx) = (val); } while(0)
 
+#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_TINYINT(tds_socket)   TDS_START_LEN_GENERIC(tds_socket, 1)
 
+#define TDS_START_LEN_UINT(tds_socket)   TDS_START_LEN_GENERIC(tds_socket, 4)
 
+#define TDS_START_LEN_USMALLINT(tds_socket)   TDS_START_LEN_GENERIC(tds_socket, 2)
 
+#define TDS_STATUS_RESULT   4043
 
+#define TDS_STR_APPENDMODE   "dump file append"
 
+#define TDS_STR_ASA_DATABASE   "asa database"
 
+#define TDS_STR_BLKSZ   "initial block size"
 
+#define TDS_STR_CAFILE   "ca file"
 
+#define TDS_STR_CHARSET   "charset"
 
+#define TDS_STR_CHECKSSLHOSTNAME   "check certificate hostname"
 
+#define TDS_STR_CLCHARSET   "client charset"
 
+#define TDS_STR_CONNTIMEOUT   "connect timeout"
 
+#define TDS_STR_CRLFILE   "crl file"
 
+#define TDS_STR_DATABASE   "database"
 
+#define TDS_STR_DATEFMT   "date format"
 
+#define TDS_STR_DBFILENAME   "database filename"
 
+#define TDS_STR_DEBUGFLAGS   "debug flags"
 
+#define TDS_STR_DEBUGLVL   "debug level"
 
+#define TDS_STR_DUMPFILE   "dump file"
 
+#define TDS_STR_EMUL_LE   "emulate little endian"
 
+#define TDS_STR_ENABLE_TLS_V1   "enable tls v1"
 
+#define TDS_STR_ENCRYPTION   "encryption"
 
+#define TDS_STR_ENCRYPTION_OFF   "off"
 
+#define TDS_STR_ENCRYPTION_REQUEST   "request"
 
+#define TDS_STR_ENCRYPTION_REQUIRE   "require"
 
+#define TDS_STR_HOST   "host"
 
+#define TDS_STR_HOSTNAME   "hostname"
 
+#define TDS_STR_INSTANCE   "instance"
 
+#define TDS_STR_LANGUAGE   "language"
 
+#define TDS_STR_MUTUAL_AUTHENTICATION   "mutual authentication"
 
+#define TDS_STR_PORT   "port"
 
+#define TDS_STR_QUERY_TIMEOUT   "query timeout"
 
+#define TDS_STR_READONLY_INTENT   "read-only intent"
 
+#define TDS_STR_REALM   "realm"
 
+#define TDS_STR_SPN   "spn"
 
+#define TDS_STR_SWAPDT   "swap broken dates"
 
+#define TDS_STR_TEXTSZ   "text size"
 
+#define TDS_STR_TIMEOUT   "timeout"
 
+#define TDS_STR_USE_UTF_16   "use utf-16"
 
+#define TDS_STR_USELANMAN   "use lanman"
 
+#define TDS_STR_USENTLMV2   "use ntlmv2"
 
+#define TDS_STR_VERSION   "tds version"
 
+#define TDS_SUCCEED(rc)   ((rc)>=0)
 
+#define TDS_SUCCESS   ((TDSRET)0)
 
+#define TDS_SYB_VER(maj, min, x)   (((maj)<<24)|((min)<<16)|(x)<<8)
 Calc a version number for Sybase.
 
+#define TDS_TOKEN_FLAG(flag)   TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))
 
+#define TDSDUMP_BUF_FAST   if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf
 
+#define tdsdump_dump_buf   TDSDUMP_BUF_FAST
 
+#define tdsdump_log   TDSDUMP_LOG_FAST
 
+#define TDSDUMP_LOG_FAST   if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log
 
+#define TDSSELREAD   POLLIN
 
+#define TDSSELWRITE   POLLOUT
 
+#define TLS_STR_OPENSSL_CIPHERS   "openssl ciphers"
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef struct tds_bcpcoldata BCPCOLDATA
 
+typedef int(* err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
 
+typedef TDSRET(* tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset)
 
+typedef void(* tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset)
 
+typedef struct tds_capabilities TDS_CAPABILITIES
 
+typedef struct tds_capability_type TDS_CAPABILITY_TYPE
 
+typedef char TDS_CHAR
 
typedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
 A structure to hold all the compile-time settings. More...
 
+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
 Information relevant to libiconv. More...
 
+typedef enum tds_encryption_level TDS_ENCRYPTION_LEVEL
 
+typedef tds_sysdep_real64_type TDS_FLOAT
 
+typedef int tds_func_check(const TDSCOLUMN *col)
 
+typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col)
 
+typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
 
+typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
+typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
 
+typedef TDS_INT tds_func_row_len(TDSCOLUMN *col)
 
+typedef int32_t TDS_INT
 
+typedef int64_t TDS_INT8
 
+typedef intptr_t TDS_INTPTR
 
+typedef enum tds_operations TDS_OPERATION
 
+typedef union tds_option_arg TDS_OPTION_ARG
 
+typedef tds_sysdep_real32_type TDS_REAL
 
+typedef int16_t TDS_SMALLINT
 
+typedef enum tds_states TDS_STATE
 values for tds->state
 
+typedef uint8_t TDS_TINYINT
 
+typedef uint8_t TDS_UCHAR
 
+typedef uint32_t TDS_UINT
 
+typedef uint64_t TDS_UINT8
 
+typedef uintptr_t TDS_UINTPTR
 
+typedef uint16_t TDS_USMALLINT
 
+typedef struct tds_authentication TDSAUTHENTICATION
 
+typedef struct tds_bcpinfo TDSBCPINFO
 
typedef struct tds_blob TDSBLOB
 Information about blobs (e.g. More...
 
+typedef struct tds_column TDSCOLUMN
 
+typedef struct tds_column_funcs TDSCOLUMNFUNCS
 
+typedef struct tds_result_info TDSCOMPUTEINFO
 
+typedef void(* TDSCONFPARSE) (const char *option, const char *value, void *param)
 
+typedef struct tds_connection TDSCONNECTION
 
+typedef struct tds_context TDSCONTEXT
 
+typedef struct tds_cursor TDSCURSOR
 Holds informations about a cursor.
 
+typedef struct tdsdaterec TDSDATEREC
 Used by tds_datecrack.
 
+typedef struct tds_dynamic TDSDYNAMIC
 Holds information for a dynamic (also called prepared) query.
 
+typedef struct tds_env TDSENV
 Current environment as reported by the server.
 
+typedef struct tds_freeze TDSFREEZE
 
+typedef struct tds_headers TDSHEADERS
 
+typedef struct tdsiconvinfo TDSICONV
 
+typedef struct tds_locale TDSLOCALE
 
+typedef struct tds_login TDSLOGIN
 
+typedef struct tds_message TDSMESSAGE
 
+typedef struct tds_multiple TDSMULTIPLE
 
+typedef struct tds_packet TDSPACKET
 
+typedef TDSRESULTINFO TDSPARAMINFO
 
+typedef struct tds_poll_wakeup TDSPOLLWAKEUP
 
+typedef struct tds_result_info TDSRESULTINFO
 Hold information for any results.
 
+typedef int TDSRET
 
+typedef struct tds_socket TDSSOCKET
 
+typedef struct tds_upd_col TDSUPDCOL
 
+typedef struct tds_variant TDSVARIANT
 Store variant informations.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  {
+  TDS_CUR_ISTAT_UNUSED = 0x00, +TDS_CUR_ISTAT_DECLARED = 0x01, +TDS_CUR_ISTAT_OPEN = 0x02, +TDS_CUR_ISTAT_CLOSED = 0x04, +
+  TDS_CUR_ISTAT_RDONLY = 0x08, +TDS_CUR_ISTAT_UPDATABLE = 0x10, +TDS_CUR_ISTAT_ROWCNT = 0x20, +TDS_CUR_ISTAT_DEALLOC = 0x40 +
+ }
 
enum  {
+  TDS_TYPEFLAG_INVALID = 0, +TDS_TYPEFLAG_NULLABLE = 1, +TDS_TYPEFLAG_FIXED = 2, +TDS_TYPEFLAG_VARIABLE = 4, +
+  TDS_TYPEFLAG_COLLATE = 8, +TDS_TYPEFLAG_ASCII = 16, +TDS_TYPEFLAG_UNICODE = 32, +TDS_TYPEFLAG_BINARY = 64, +
+  TDS_TYPEFLAG_DATETIME = 128, +TDS_TYPEFLAG_NUMERIC = 256, +TDS_TYPEFLAG_VARIANT = 512 +
+ }
 
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, +TDS_CURSOR_FETCH_PREV, +TDS_CURSOR_FETCH_FIRST, +TDS_CURSOR_FETCH_LAST, +
+  TDS_CURSOR_FETCH_ABSOLUTE, +TDS_CURSOR_FETCH_RELATIVE +
+ }
 
enum  tds_cursor_operation { TDS_CURSOR_POSITION = 0, +TDS_CURSOR_UPDATE = 1, +TDS_CURSOR_DELETE = 2, +TDS_CURSOR_INSERT = 4 + }
 
enum  TDS_CURSOR_STATE { TDS_CURSOR_STATE_UNACTIONED = 0, +TDS_CURSOR_STATE_REQUESTED = 1, +TDS_CURSOR_STATE_SENT = 2, +TDS_CURSOR_STATE_ACTIONED = 3 + }
 
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, +TDS_DONE_EVENT = 0x40, +
+  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...
 
enum  TDS_ICONV_ENTRY { client2ucs2, +client2server_chardata, +initial_char_conv_count + }
 
enum  TDS_MULTIPLE_TYPE { TDS_MULTIPLE_QUERY, +TDS_MULTIPLE_EXECUTE, +TDS_MULTIPLE_RPC + }
 
enum  tds_operations {
+  TDS_OP_NONE = 0, +TDS_OP_CURSOR = TDS_SP_CURSOR, +TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN, +TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE, +
+  TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE, +TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC, +TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE, +TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH, +
+  TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION, +TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE, +TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL, +TDS_OP_PREPARE = TDS_SP_PREPARE, +
+  TDS_OP_EXECUTE = TDS_SP_EXECUTE, +TDS_OP_PREPEXEC = TDS_SP_PREPEXEC, +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, +
+  TDS_READING, +TDS_DEAD +
+ }
 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), +
+  TDS_TOKEN_FLAG =(OTHERS), +TDS_TOKEN_FLAG =(OTHERS), +TDS_TOKEN_FLAG =(OTHERS), +TDS_TOKEN_FLAG =(OTHERS), +
+  TDS_TOKEN_FLAG =(OTHERS), +TDS_TOKEN_FLAG =(OTHERS), +TDS_TOKEN_FLAG =(OTHERS), +TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC, +
+  TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS +
+ }
 
enum  tds_token_results {
+  TDS_TOKEN_RES_OTHERS, +TDS_TOKEN_RES_ROWFMT, +TDS_TOKEN_RES_COMPUTEFMT, +TDS_TOKEN_RES_PARAMFMT, +
+  TDS_TOKEN_RES_DONE, +TDS_TOKEN_RES_ROW, +TDS_TOKEN_RES_COMPUTE, +TDS_TOKEN_RES_PROC, +
+  TDS_TOKEN_RES_MSG, +TDS_TOKEN_RES_ENV +
+ }
 
enum  TDSERRNO {
+  TDSEOK = TDS_SUCCESS, +TDSEVERDOWN = 100, +TDSEINPROGRESS, +TDSEICONVIU = 2400, +
+  TDSEICONVAVAIL = 2401, +TDSEICONVO = 2402, +TDSEICONVI = 2403, +TDSEICONV2BIG = 2404, +
+  TDSEPORTINSTANCE = 2500, +TDSESYNC = 20001, +TDSEFCON = 20002, +TDSETIME = 20003, +
+  TDSEREAD = 20004, +TDSEWRIT = 20006, +TDSESOCK = 20008, +TDSECONN = 20009, +
+  TDSEMEM = 20010, +TDSEINTF = 20012, +TDSEUHST = 20013, +TDSEPWD = 20014, +
+  TDSESEOF = 20017, +TDSERPND = 20019, +TDSEBTOK = 20020, +TDSEOOB = 20022, +
+  TDSECLOS = 20056, +TDSEUSCT = 20058, +TDSEUTDS = 20146, +TDSEEUNR = 20185, +
+  TDSECAP = 20203, +TDSENEG = 20210, +TDSEUMSG = 20212, +TDSECAPTYP = 20213, +
+  TDSECONF = 20214, +TDSEBPROBADTYP = 20250, +TDSECLOSEIN = 20292 +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

int determine_adjusted_size (const TDSICONV *char_conv, int size)
 Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
 
+static bool is_tds_type_valid (int type)
 
+TDSRET tds5_gss_send (TDSSOCKET *tds)
 
+TDSAUTHENTICATIONtds5_negotiate_get_auth (TDSSOCKET *tds)
 
+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)
 Creates a temporary stored procedure in the server and execute it. More...
 
int tds7_get_instance_port (struct addrinfo *addr, const char *instance)
 Get port of given instance. More...
 
int tds7_get_instance_ports (FILE *output, struct addrinfo *addr)
 Get port of all instances. More...
 
+void tds7_srv_charset_changed (TDSCONNECTION *conn, TDS_UCHAR collate[5])
 
+const char * tds_addrinfo2str (struct addrinfo *addr, char *name, int namemax)
 
+TDSSOCKETtds_alloc_additional_socket (TDSCONNECTION *conn)
 
+BCPCOLDATAtds_alloc_bcp_column_data (unsigned int column_size)
 
+TDSBCPINFOtds_alloc_bcpinfo (void)
 
+char * tds_alloc_client_sqlstate (int msgno)
 
+TDSCOMPUTEINFO ** tds_alloc_compute_results (TDSSOCKET *tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
 
+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)
 
TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
 Allocate a dynamic statement. More...
 
+TDSLOCALEtds_alloc_locale (void)
 
+TDSLOGINtds_alloc_login (int use_environment)
 
+char * tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno)
 
+TDSPACKETtds_alloc_packet (void *buf, unsigned len)
 
void * tds_alloc_param_data (TDSCOLUMN *curparam)
 Allocate data for a parameter. More...
 
TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
 Adds a output parameter to TDSPARAMINFO. More...
 
+TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols)
 
+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)
 
TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
 Tell we finished sending BCP data to server. More...
 
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(). More...
 
TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Initialize BCP information. More...
 
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. More...
 
TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start sending BCP data to server. More...
 
TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start bulk copy to server. More...
 
+static bool tds_capability_enabled (const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
 
void tds_close_socket (TDSSOCKET *tds)
 Close current socket. More...
 
+int tds_config_boolean (const char *option, const char *value, TDSLOGIN *login)
 
TDS_USMALLINT * tds_config_verstr (const char *tdsver, TDSLOGIN *login)
 Set TDS version from given string. More...
 
+int tds_connect_and_login (TDSSOCKET *tds, TDSLOGIN *login)
 
+void tds_connection_close (TDSCONNECTION *conn)
 
+int tds_connection_read (TDSSOCKET *tds, unsigned char *buf, int buflen)
 
+int tds_connection_write (TDSSOCKET *tds, const unsigned char *buf, int buflen, int final)
 
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. More...
 
+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. More...
 
+TDSRET tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor)
 
+TDSRET tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor)
 Send a deallocation request to server.
 
+void tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
 
+TDSRET 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)
 
+TDSRET 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)
 
+TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
 
+TDSRET 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)
 
TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr)
 Convert from db date format to a structured date format. More...
 
TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
 Deallocate cursor on idle. More...
 
TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
 Unprepare dynamic on idle. More...
 
+void tds_deinit_bcpinfo (TDSBCPINFO *bcpinfo)
 
+void 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. More...
 
+void 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. More...
 
TDSRET tds_flush_packet (TDSSOCKET *tds)
 Flush packet to server. More...
 
+void tds_free_all_results (TDSSOCKET *tds)
 
+void tds_free_bcp_column_data (BCPCOLDATA *coldata)
 
+void tds_free_bcpinfo (TDSBCPINFO *bcpinfo)
 
+void tds_free_context (TDSCONTEXT *locale)
 
void tds_free_input_params (TDSDYNAMIC *dyn)
 Frees all allocated input parameters of a dynamic statement. More...
 
+void tds_free_locale (TDSLOCALE *locale)
 
+void tds_free_login (TDSLOGIN *login)
 
+void tds_free_msg (TDSMESSAGE *message)
 
+void tds_free_packets (TDSPACKET *packet)
 
+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_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. More...
 
TDSRET tds_freeze_abort (TDSFREEZE *freeze)
 Discard all data written after the freeze. More...
 
TDSRET tds_freeze_close (TDSFREEZE *freeze)
 Stop keeping data for this specific freeze. More...
 
TDSRET tds_freeze_close_len (TDSFREEZE *freeze, int32_t size)
 Stop keeping data for this specific freeze. More...
 
size_t tds_freeze_written (TDSFREEZE *freeze)
 Compute how many bytes has been written from freeze. More...
 
unsigned char tds_get_byte (TDSSOCKET *tds)
 Return a single byte from the input buffer. More...
 
+TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype)
 
TDSRET tds_get_char_data (TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
 Fetch character data the wire. More...
 
TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
 Return declaration for column (like "varchar(20)"). More...
 
const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void)
 Return a structure capturing the compile-time settings provided to the configure script. More...
 
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) More...
 
char * tds_get_home_file (const char *file)
 Return filename from HOME directory. More...
 
TDSLOCALEtds_get_locale (void)
 Get locale information. More...
 
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. More...
 
+int tds_get_size_by_type (TDS_SERVER_TYPE servertype)
 Return the number of bytes needed by specified type.
 
size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
 Fetch a string from the wire. More...
 
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 More...
 
TDS_UINT tds_get_uint (TDSSOCKET *tds)
 Get an int32 from the server. More...
 
TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
 Get an uint64 from the server. More...
 
+TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
 Get an int16 from the server.
 
+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
 
+void tds_getmac (TDS_SYS_SOCKET s, unsigned char mac[6])
 
+unsigned int tds_gettime_ms (void)
 
+int tds_goodread (TDSSOCKET *tds, unsigned char *buf, int buflen)
 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)
 Allocate iconv stuff. More...
 
+void tds_iconv_close (TDSCONNECTION *conn)
 
+void tds_iconv_free (TDSCONNECTION *conn)
 
+TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
 Get iconv information from a LCID (to support different column encoding under MSSQL2K)
 
+TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
 
TDSLOGINtds_init_login (TDSLOGIN *login, TDSLOCALE *locale)
 Initialize login structure with locale information and other stuff for connection. More...
 
+int tds_init_write_buf (TDSSOCKET *tds)
 
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
 Finds a dynamic given string id. More...
 
struct addrinfo * tds_lookup_host (const char *servername)
 Get the IP address for a hostname. More...
 
+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)
 
+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)
 Check if dynamic request must be unprepared. More...
 
const char * tds_next_placeholder (const char *start)
 Get position of next placeholder. More...
 
TDSAUTHENTICATIONtds_ntlm_get_auth (TDSSOCKET *tds)
 Build a NTLMSPP packet to send to server. More...
 
+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)
 
+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)
 
+void tds_parse_conf_section (const char *option, const char *value, void *param)
 
unsigned char tds_peek (TDSSOCKET *tds)
 Reads a byte from the TDS stream without removing it. More...
 
TDSRET tds_process_cancel (TDSSOCKET *tds)
 
TDSRET tds_process_login_tokens (TDSSOCKET *tds)
 tds_process_login_tokens() is called after sending the login packet to the server. More...
 
TDSRET tds_process_simple_query (TDSSOCKET *tds)
 Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. More...
 
TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
 process all streams. More...
 
const char * tds_prtype (int token)
 Returns string representation of the given type. More...
 
+char * tds_prwsaerror (int erc)
 
+void tds_prwsaerror_free (char *s)
 
+int tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize)
 
+int tds_put_byte (TDSSOCKET *tds, unsigned char c)
 
+int tds_put_cancel (TDSSOCKET *tds)
 
+int tds_put_int (TDSSOCKET *tds, TDS_INT i)
 
+int tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i)
 
+int tds_put_n (TDSSOCKET *tds, const void *buf, size_t n)
 
+int tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si)
 
int tds_put_string (TDSSOCKET *tds, const char *buf, int len)
 Output a string to wire automatic translate string to unicode if needed. More...
 
size_t tds_quote_id (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
 Quote an id. More...
 
size_t tds_quote_id_rpc (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
 Quote an id for a RPC call. More...
 
size_t tds_quote_string (TDSSOCKET *tds, char *buffer, const char *str, int len)
 Quote a string. More...
 
+void tds_random_buffer (unsigned char *out, int len)
 
bool tds_read_conf_file (TDSLOGIN *login, const char *server)
 Read configuration info for given server return 0 on error. More...
 
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) More...
 
TDSLOGINtds_read_config_info (TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
 tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values More...
 
int tds_read_packet (TDSSOCKET *tds)
 Read in one 'packet' from the server. More...
 
void * tds_realloc (void **pp, size_t new_size)
 Reallocate a pointer and update it if success. More...
 
+TDSPACKETtds_realloc_packet (TDSPACKET *packet, unsigned len)
 
+TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, size_t bufsize)
 
+static void tds_release_cur_dyn (TDSSOCKET *tds)
 
+void tds_release_cursor (TDSCURSOR **pcursor)
 
void tds_release_dynamic (TDSDYNAMIC **dyn)
 Frees dynamic statement. More...
 
int tds_select (TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
 Select on a socket until it's available or the timeout expires. More...
 
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. More...
 
+bool tds_set_app (TDSLOGIN *tds_login, const char *application) TDS_WUR
 
+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)
 Set type of column initializing all dependency. More...
 
void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Set current dynamic. More...
 
+void 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
 
TDSRET tds_set_interfaces_file_loc (const char *interfloc)
 Set the full name of interface file. More...
 
+bool tds_set_language (TDSLOGIN *tds_login, const char *language) 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)
 Set type of column initializing all dependency. More...
 
+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
 Set the servername in a TDSLOGIN structure. More...
 
TDS_STATE tds_set_state (TDSSOCKET *tds, TDS_STATE state)
 Set state of TDS connection, with logging and checking. More...
 
+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)
 
const char * tds_skip_comment (const char *s)
 Skip a comment in a query. More...
 
const char * tds_skip_quoted (const char *s)
 Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) More...
 
+void tds_socket_flush (TDS_SYS_SOCKET sock)
 
int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
 Set socket to non-blocking. More...
 
+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. More...
 
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 Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated. More...
 
TDSRET tds_submit_begin_tran (TDSSOCKET *tds)
 Send a rollback request. More...
 
TDSRET tds_submit_commit (TDSSOCKET *tds, int cont)
 Send a commit request. More...
 
TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
 Submit a prepared query with parameters. More...
 
TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Sends a previously prepared dynamic statement to the server. More...
 
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. More...
 
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. More...
 
TDSRET tds_submit_query (TDSSOCKET *tds, const char *query)
 Sends a language string to the database server for processing. More...
 
TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
 Sends a language string to the database server for processing. More...
 
TDSRET tds_submit_queryf (TDSSOCKET *tds, const char *queryf,...)
 Format and submit a query. More...
 
TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont)
 Send a rollback request. More...
 
TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
 Calls a RPC from server. More...
 
TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Send a unprepare request for a prepared query. More...
 
+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. More...
 
+TDSRET tds_vstrbuild (char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen, va_list ap)
 
+void tds_wakeup_close (TDSPOLLWAKEUP *wakeup)
 
+static TDS_SYS_SOCKET tds_wakeup_get_fd (const TDSPOLLWAKEUP *wakeup)
 
+int tds_wakeup_init (TDSPOLLWAKEUP *wakeup)
 
+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)
 Send some data in the writetext request started by tds_writetext_start. More...
 
TDSRET tds_writetext_end (TDSSOCKET *tds)
 Finish sending writetext data. More...
 
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. More...
 
+void tdsdump_close (void)
 Close the TDS dump log file.
 
void tdsdump_col (const TDSCOLUMN *col)
 Write a column value to the debug log. More...
 
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. More...
 
+int tdsdump_isopen (void)
 
void tdsdump_log (const char *file, unsigned int level_line, const char *fmt,...)
 Write a message to the debug log. More...
 
+void tdsdump_off (void)
 Temporarily turn off logging.
 
void tdsdump_on (void)
 Turn logging back on. More...
 
int tdsdump_open (const char *filename)
 Create and truncate a human readable dump file for the TDS traffic. More...
 
int tdserror (const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
 Call the client library's error handler (for library-generated errors only) More...
 
+ + + + + + + + + + + + + + + + + +

+Variables

+const char STD_DATETIME_FMT []
 
+int tds_debug_flags
 
+int tds_g_append_mode
 
+const char tds_hex_digits []
 
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. More...
 
+const uint16_t tds_type_flags_ms [256]
 
+int tds_write_dump
 Tell if TDS debug logging is turned on or off.
 
+

Detailed Description

+

Main include file for libtds

+

Macro Definition Documentation

+ +

◆ TDS_BYTE_SWAP16

+ +
+
+ + + + + + + + +
#define TDS_BYTE_SWAP16( value)
+
+Value:
(((((uint16_t)value)<<8) & 0xFF00u) | \
+
((((uint16_t)value)>>8) & 0x00FFu))
+
+
+
+ +

◆ TDS_BYTE_SWAP32

+ +
+
+ + + + + + + + +
#define TDS_BYTE_SWAP32( value)
+
+Value:
(((((uint32_t)value)<<24) & 0xFF000000u)| \
+
((((uint32_t)value)<< 8) & 0x00FF0000u)| \
+
((((uint32_t)value)>> 8) & 0x0000FF00u)| \
+
((((uint32_t)value)>>24) & 0x000000FFu))
+
+
+
+ +

◆ TDS_IS_MSSQL

+ +
+
+ + + + + + + + +
#define TDS_IS_MSSQL( x)   (((x)->conn->product_version & 0x80000000u)!=0)
+
+ +

Check if product is Microsft SQL Server.

+

x should be a TDSSOCKET*.

+ +
+
+ +

◆ TDS_IS_SYBASE

+ +
+
+ + + + + + + + +
#define TDS_IS_SYBASE( x)   (!((x)->conn->product_version & 0x80000000u))
+
+ +

Check if product is Sybase (such as Adaptive Server Enterrprice).

+

x should be a TDSSOCKET*.

+ +
+
+ +

◆ TDS_MS_VER

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define TDS_MS_VER( maj,
 min,
 
)   (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))

+ +
+
+ +

◆ TDS_START_LEN_GENERIC

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TDS_START_LEN_GENERIC( tds_socket,
 len 
)
+
+Value:
do { \
+
TDSFREEZE current_freeze[1]; \
+
tds_freeze((tds_socket), current_freeze, (len)); do { do
+
+
+
+

Typedef Documentation

+ +

◆ TDS_COMPILETIME_SETTINGS

+ +
+
+ +

A structure to hold all the compile-time settings.

+

This structure is returned by tds_get_compiletime_settings

+ +
+
+ +

◆ TDS_ENCODING

+ +
+
+ + + + +
typedef struct tds_encoding TDS_ENCODING
+
+ +

Information relevant to libiconv.

+

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

+ +
+
+ +

◆ TDSBLOB

+ +
+
+ + + + +
typedef struct tds_blob TDSBLOB
+
+ +

Information about blobs (e.g.

+

text or image). current_row contains this structure.

+ +
+
+

Enumeration Type Documentation

+ +

◆ tds_end

+ +
+
+ + + + +
enum tds_end
+
+ +

Flags returned in TDS_DONE token.

+ + + + + + + + + +
Enumerator
TDS_DONE_FINAL 

final result set, command completed successfully.

+
TDS_DONE_MORE_RESULTS 

more results follow

+
TDS_DONE_ERROR 

error occurred

+
TDS_DONE_INXACT 

transaction in progress

+
TDS_DONE_PROC 

results are from a stored procedure

+
TDS_DONE_COUNT 

count field in packet is valid

+
TDS_DONE_CANCELLED 

acknowledging an attention command (usually a cancel)

+
TDS_DONE_SRVERROR 

SQL server server error.

+
+ +
+
+ +

◆ tds_states

+ +
+
+ + + + +
enum tds_states
+
+ +

values for tds->state

+ + + + + + + +
Enumerator
TDS_IDLE 

no data expected

+
TDS_WRITING 

client is writing data

+
TDS_SENDING 

client would send data

+
TDS_PENDING 

cilent is waiting for data

+
TDS_READING 

client is reading data

+
TDS_DEAD 

no connection

+
+ +
+
+

Function Documentation

+ +

◆ tds_bcp_done()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDSRET tds_bcp_done (TDSSOCKETtds,
int * rows_copied 
)
+
+ +

Tell we finished sending BCP data to server.

+
Parameters
+ + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
[out]rows_copiednumber of rows copied to server
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_bcp_fread()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TDSRET tds_bcp_fread (TDSSOCKETtds,
TDSICONVchar_conv,
FILE * stream,
const char * terminator,
size_t term_len,
char ** outbuf,
size_t * outbytes 
)
+
+ +

Read a data file, passing the data through iconv().

+
Return values
+ + + + +
TDS_SUCCESSsuccess
TDS_FAILerror reading the column
TDS_NO_MORE_RESULTSend of file detected
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_bcp_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDSRET tds_bcp_init (TDSSOCKETtds,
TDSBCPINFObcpinfo 
)
+
+ +

Initialize BCP information.

+

Query structure of the table to server.

Parameters
+ + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information to initialize. Structure should be allocate and table name and direction should be already set.
+
+
+ +
+
+ +

◆ tds_bcp_send_record()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TDSRET tds_bcp_send_record (TDSSOCKETtds,
TDSBCPINFObcpinfo,
tds_bcp_get_col_data get_col_data,
tds_bcp_null_error ignored,
int offset 
)
+
+ +

Send one row of data to server.

+
Parameters
+ + + + + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information
get_col_datafunction to call to retrieve data to be sent
ignoredfunction to call if we try to send NULL if not allowed (not used)
offsetpassed to get_col_data and null_error to specify the row to get
+
+
+
Returns
TDS_SUCCESS or TDS_FAIL.
+ +
+
+ +

◆ tds_bcp_start()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDSRET tds_bcp_start (TDSSOCKETtds,
TDSBCPINFObcpinfo 
)
+
+ +

Start sending BCP data to server.

+

Initialize stream to accept data.

Parameters
+ + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information already prepared
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_bcp_start_copy_in()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDSRET tds_bcp_start_copy_in (TDSSOCKETtds,
TDSBCPINFObcpinfo 
)
+
+ +

Start bulk copy to server.

+
Parameters
+ + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
bcpinfoBCP information already prepared
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_get_conversion_type()

+ +
+
+ + + + + + + + + + + + + + + + + + +
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)

+
Parameters
+ + + +
srctypetype to convert
colsizesize of type
+
+
+
Returns
type for conversion
+
+Here is the caller graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_get_locale()

+ +
+
+ + + + + + + + +
TDSLOCALE* tds_get_locale (void )
+
+ +

Get locale information.

+
Returns
allocated structure with all information or NULL if error
+ +
+
+ +

◆ tds_iconv_alloc()

+ +
+
+ + + + + + + + +
int tds_iconv_alloc (TDSCONNECTIONconn)
+
+ +

Allocate iconv stuff.

+
Returns
0 for success
+ +
+
+ +

◆ tds_numeric_to_string()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDS_INT tds_numeric_to_string (const TDS_NUMERICnumeric,
char * s 
)
+
+
Returns
<0 if error
+ +
+
+ +

◆ tds_set_column_type()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tds_set_column_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
+
+ +

Set type of column initializing all dependency.

+

column_usertype should already be set.

Parameters
+ + + +
curcolcolumn to set
typetype to set
+
+
+ +
+
+ +

◆ tds_set_param_type()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tds_set_param_type (TDSCONNECTIONconn,
TDSCOLUMNcurcol,
TDS_SERVER_TYPE type 
)
+
+ +

Set type of column initializing all dependency.

+
Parameters
+ + + + +
tdsstate information for the socket and the TDS protocol
curcolcolumn to set
typetype to set
+
+
+ +
+
+ +

◆ tds_set_server()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool tds_set_server (TDSLOGINtds_login,
const char * server 
)
+
+ +

Set the servername in a TDSLOGIN structure.

+

Normally copies server into tds_login. If server does not point to a plausible name, the environment variables TDSQUERY and DSQUERY are used, in that order. If they don't exist, the "default default" servername is "SYBASE" (although the utility of that choice is a bit murky).
+

+
Parameters
+ + + +
tds_loginpoints to a TDSLOGIN structure
serverthe servername, or NULL, or a zero-length string
+
+
+
Todo:
open the log file earlier, so these messages can be seen.
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_set_state()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TDS_STATE tds_set_state (TDSSOCKETtds,
TDS_STATE state 
)
+
+ +

Set state of TDS connection, with logging and checking.

+
Parameters
+ + + +
tdsstate information for the socket and the TDS protocol
statethe new state of the connection, cf. TDS_STATE.
+
+
+
Returns
the new state, which might not be state.
+
+Here is the call graph for this function:
+
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_strndup()

+ +
+
+ + + + + + + + + + + + + + + + + + +
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 Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated.

+
Parameters
+ + + +
sstring to copy from
lenlength to copy
+
+
+
Returns
string copied or NULL if errors
+ +
+
+ +

◆ tds_writetext_continue()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
TDSRET tds_writetext_continue (TDSSOCKETtds,
const TDS_UCHAR * text,
TDS_UINT size 
)
+
+ +

Send some data in the writetext request started by tds_writetext_start.

+

You should write in total (with multiple calls to this function) all bytes declared calling tds_writetext_start.

Parameters
+ + + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
textdata to write
sizedata size in bytes
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_writetext_end()

+ +
+
+ + + + + + + + +
TDSRET tds_writetext_end (TDSSOCKETtds)
+
+ +

Finish sending writetext data.

+
Parameters
+ + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tds_writetext_start()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TDSRET tds_writetext_start (TDSSOCKETtds,
const char * objname,
const char * textptr,
const char * timestamp,
int with_log,
TDS_UINT size 
)
+
+ +

Start writing writetext request.

+

This request start a bulk session.

Parameters
+ + + + + + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
objnametable name
textptrTEXTPTR (see sql documentation)
timestampdata timestamp
with_logis log is enabled during insert
sizebytes to be inserted
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ tdsdump_col()

+ +
+
+ + + + + + + + +
void tdsdump_col (const TDSCOLUMNcol)
+
+ +

Write a column value to the debug log.

+


+

Parameters
+ + +
colcolumn to dump
+
+
+ +
+
+ +

◆ tdsdump_dump_buf()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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.

+
Parameters
+ + + + + + +
filesource file name
level_lineline and level combined. This and file are automatically computed by TDS_DBG_* macros.
msgmessage to print before dump
bufbuffer to dump
lengthnumber of bytes in the buffer
+
+
+ +
+
+ +

◆ tdsdump_log()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void tdsdump_log (const char * file,
unsigned int level_line,
const char * fmt,
 ... 
)
+
+ +

Write a message to the debug log.

+


+

Parameters
+ + + + +
filename of the log file
level_linekind of detail to be included
fmtprintf-like format string
+
+
+ +
+
+ +

◆ tdsdump_on()

+ +
+
+ + + + + + + + +
void tdsdump_on (void )
+
+ +

Turn logging back on.

+

You must call tdsdump_open() before calling this routine.

+ +
+
+ +

◆ tdsdump_open()

+ +
+
+ + + + + + + + +
int tdsdump_open (const char * filename)
+
+ +

Create and truncate a human readable dump file for the TDS traffic.

+

The name of the file is specified by the filename parameter. If that is given as NULL or an empty string, any existing log file will be closed.

+
Returns
true if the file was opened, false if it couldn't be opened.
+
+Here is the caller graph for this function:
+
+
+
+
+ +
+
+ +

◆ tdserror()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int tdserror (const TDSCONTEXTtds_ctx,
TDSSOCKETtds,
int msgno,
int errnum 
)
+
+ +

Call the client library's error handler (for library-generated errors only)

+

The client library error handler may return: TDS_INT_CANCEL – Return TDS_FAIL to the calling function. For TDSETIME, closes the connection first. TDS_INT_CONTINUE – For TDSETIME only, retry the network read/write operation. Else invalid. TDS_INT_TIMEOUT – For TDSETIME only, send a TDSCANCEL packet. Else invalid.

+

These are Sybase semantics, but they serve all purposes.
+ The application tells the library to quit, fail, retry, or attempt to cancel. In the event of a network timeout, a failed operation necessarily means the connection becomes unusable, because no cancellation dialog was concluded with the server.
+

+

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_ctxpoints to a TDSCONTEXT structure
tdsthe connection structure, may be NULL if not connected
msgnoan enumerated libtds msgno, cf. tds.h
errnumthe OS errno, if it matters, else zero
+
+
+
Returns
client library function's return code
+ +
+
+

Variable Documentation

+ +

◆ 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.

+

The following little table is indexed by precision and will tell us the number of bytes required to store the specified precision.

+

Support precision up to 77 digits

+ +
+
+
+
Information for a server connection.
Definition: tds.h:1164
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00437_source.html freetds-1.2.3/doc/reference/a00437_source.html --- freetds-1.1.6/doc/reference/a00437_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00437_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/time.h Source File +FreeTDS API: include/freetds/tds.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
time.h
+
tds.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
11 
+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 */
+
52 typedef struct tdsiconvinfo TDSICONV;
+
53 typedef struct tds_connection TDSCONNECTION;
+
54 typedef struct tds_socket TDSSOCKET;
+
55 typedef struct tds_column TDSCOLUMN;
+
56 typedef struct tds_bcpinfo TDSBCPINFO;
+
57 
+
58 #include <freetds/version.h>
+
59 #include "tds_sysdep_public.h"
+
60 #include <freetds/sysdep_private.h>
+
61 #include <freetds/thread.h>
+
62 #include <freetds/bool.h>
+
63 #include <freetds/macros.h>
+
64 #include <freetds/utils/string.h>
+
65 #include "replacements.h"
+
66 
+
67 #include <freetds/pushvis.h>
+
68 
+
69 #ifdef __cplusplus
+
70 extern "C"
+
71 {
+
72 #if 0
+
73 }
+
74 #endif
+
75 #endif
+
76 
+ +
83 {
+
84  const char *freetds_version; /* release version of FreeTDS */
+
85  const char *sysconfdir; /* location of freetds.conf */
+
86  const char *last_update; /* latest software_version date among the modules */
+
87  const char *tdsver; /* TDS protocol version (4.2/4.6/5.0/7.0/7.1) 5.0 */
+
88  bool msdblib; /* for MS style dblib */
+
89  bool sybase_compat; /* enable increased Open Client binary compatibility */
+
90  bool threadsafe; /* compile for thread safety default=no */
+
91  bool libiconv; /* search for libiconv in DIR/include and DIR/lib */
+
92  bool iodbc; /* build odbc driver against iODBC in DIR */
+
93  bool unixodbc; /* build odbc driver against unixODBC in DIR */
+
94  bool openssl; /* build against OpenSSL */
+
95  bool gnutls; /* build against GnuTLS */
+
96  bool mars; /* MARS enabled */
+
97  bool sspi; /* SSPI enabled */
+
98  bool kerberos; /* Kerberos enabled */
+ +
100 
+
116 /*
+
117  * All references to data that touch the wire should use the following typedefs.
+
118  *
+
119  * If you have problems on 64-bit machines and the code is
+
120  * using a native datatype, please change it to use
+
121  * these. (In the TDS layer only, the API layers have their
+
122  * own typedefs which equate to these).
+
123  */
+
124 typedef char TDS_CHAR; /* 8-bit char */
+
125 typedef uint8_t TDS_UCHAR; /* 8-bit uchar */
+
126 typedef uint8_t TDS_TINYINT; /* 8-bit unsigned */
+
127 typedef int16_t TDS_SMALLINT; /* 16-bit int */
+
128 typedef uint16_t TDS_USMALLINT; /* 16-bit unsigned */
+
129 typedef int32_t TDS_INT; /* 32-bit int */
+
130 typedef uint32_t TDS_UINT; /* 32-bit unsigned */
+
131 typedef int64_t TDS_INT8; /* 64-bit integer */
+
132 typedef uint64_t TDS_UINT8; /* 64-bit unsigned */
+
133 typedef intptr_t TDS_INTPTR;
+
134 typedef uintptr_t TDS_UINTPTR;
+
135 typedef tds_sysdep_real32_type TDS_REAL; /* 32-bit real */
+
136 typedef tds_sysdep_real64_type TDS_FLOAT; /* 64-bit real */
+
137 
+
138 #include <freetds/proto.h>
+
139 
+
140 #define TDS_INVALID_TYPE ((TDS_SERVER_TYPE) 0)
+
141 
+
146 typedef struct
+
147 {
+
148  TDS_UINT8 time;
+
149  TDS_INT date;
+
150  TDS_SMALLINT offset;
+
151  TDS_USMALLINT time_prec:3;
+
152  TDS_USMALLINT _tds_reserved:10;
+
153  TDS_USMALLINT has_time:1;
+
154  TDS_USMALLINT has_date:1;
+
155  TDS_USMALLINT has_offset:1;
+ +
157 
+
159 typedef struct tdsdaterec
+
160 {
+
161  TDS_INT year;
+
162  TDS_INT quarter;
+
163  TDS_INT month;
+
164  TDS_INT day;
+
165  TDS_INT dayofyear;
+
166  TDS_INT weekday;
+
167  TDS_INT hour;
+
168  TDS_INT minute;
+
169  TDS_INT second;
+
170  TDS_INT decimicrosecond;
+
171  TDS_INT timezone;
+ +
173 
+
179 extern const int tds_numeric_bytes_per_prec[];
+
180 
+
181 typedef int TDSRET;
+
182 #define TDS_NO_MORE_RESULTS ((TDSRET)1)
+
183 #define TDS_SUCCESS ((TDSRET)0)
+
184 #define TDS_FAIL ((TDSRET)-1)
+
185 #define TDS_CANCELLED ((TDSRET)-2)
+
186 #define TDS_FAILED(rc) ((rc)<0)
+
187 #define TDS_SUCCEED(rc) ((rc)>=0)
+
188 #define TDS_PROPAGATE(rc) \
+
189  do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } while(0)
+
190 
+
191 #define TDS_INT_CONTINUE 1
+
192 #define TDS_INT_CANCEL 2
+
193 #define TDS_INT_TIMEOUT 3
+
194 
+
195 
+
196 #define TDS_NO_COUNT -1
+
197 
+
198 #define TDS_ROW_RESULT 4040
+
199 #define TDS_PARAM_RESULT 4042
+
200 #define TDS_STATUS_RESULT 4043
+
201 #define TDS_MSG_RESULT 4044
+
202 #define TDS_COMPUTE_RESULT 4045
+
203 #define TDS_CMD_DONE 4046
+
204 #define TDS_CMD_SUCCEED 4047
+
205 #define TDS_CMD_FAIL 4048
+
206 #define TDS_ROWFMT_RESULT 4049
+
207 #define TDS_COMPUTEFMT_RESULT 4050
+
208 #define TDS_DESCRIBE_RESULT 4051
+
209 #define TDS_DONE_RESULT 4052
+
210 #define TDS_DONEPROC_RESULT 4053
+
211 #define TDS_DONEINPROC_RESULT 4054
+
212 #define TDS_OTHERS_RESULT 4055
+
213 
+
214 enum tds_token_results
+
215 {
+
216  TDS_TOKEN_RES_OTHERS,
+
217  TDS_TOKEN_RES_ROWFMT,
+
218  TDS_TOKEN_RES_COMPUTEFMT,
+
219  TDS_TOKEN_RES_PARAMFMT,
+
220  TDS_TOKEN_RES_DONE,
+
221  TDS_TOKEN_RES_ROW,
+
222  TDS_TOKEN_RES_COMPUTE,
+
223  TDS_TOKEN_RES_PROC,
+
224  TDS_TOKEN_RES_MSG,
+
225  TDS_TOKEN_RES_ENV,
+
226 };
+
227 
+
228 #define TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))
+
229 
+
230 enum tds_token_flags
+
231 {
+
232  TDS_HANDLE_ALL = 0,
+
233  TDS_TOKEN_FLAG(OTHERS),
+
234  TDS_TOKEN_FLAG(ROWFMT),
+
235  TDS_TOKEN_FLAG(COMPUTEFMT),
+
236  TDS_TOKEN_FLAG(PARAMFMT),
+
237  TDS_TOKEN_FLAG(DONE),
+
238  TDS_TOKEN_FLAG(ROW),
+
239  TDS_TOKEN_FLAG(COMPUTE),
+
240  TDS_TOKEN_FLAG(PROC),
+
241  TDS_TOKEN_FLAG(MSG),
+
242  TDS_TOKEN_FLAG(ENV),
+
243  TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC,
+
244  TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS
+
245 };
+
246 
+ +
251 {
+
252  TDS_DONE_FINAL = 0x00
+ +
254  , TDS_DONE_ERROR = 0x02
+
255  , TDS_DONE_INXACT = 0x04
+
256  , TDS_DONE_PROC = 0x08
+
257  , TDS_DONE_COUNT = 0x10
+ +
259  , TDS_DONE_EVENT = 0x40 /* part of an event notification. */
+
260  , TDS_DONE_SRVERROR = 0x100
+
262  /* after the above flags, a TDS_DONE packet has a field describing the state of the transaction */
+
263  , TDS_DONE_NO_TRAN = 0 /* No transaction in effect */
+
264  , TDS_DONE_TRAN_SUCCEED = 1 /* Transaction completed successfully */
+
265  , TDS_DONE_TRAN_PROGRESS= 2 /* Transaction in progress */
+
266  , TDS_DONE_STMT_ABORT = 3 /* A statement aborted */
+
267  , TDS_DONE_TRAN_ABORT = 4 /* Transaction aborted */
+
268 };
+
269 
+
270 
+
271 /*
+
272  * TDSERRNO is emitted by libtds to the client library's error handler
+
273  * (which may in turn call the client's error handler).
+
274  * These match the db-lib msgno, because the same values have the same meaning
+
275  * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo).
+
276  */
+
277 typedef enum { TDSEOK = TDS_SUCCESS,
+
278  TDSEVERDOWN = 100,
+
279  TDSEINPROGRESS,
+
280  TDSEICONVIU = 2400,
+
281  TDSEICONVAVAIL = 2401,
+
282  TDSEICONVO = 2402,
+
283  TDSEICONVI = 2403,
+
284  TDSEICONV2BIG = 2404,
+
285  TDSEPORTINSTANCE = 2500,
+
286  TDSESYNC = 20001,
+
287  TDSEFCON = 20002,
+
288  TDSETIME = 20003,
+
289  TDSEREAD = 20004,
+
290  TDSEWRIT = 20006,
+
291  TDSESOCK = 20008,
+
292  TDSECONN = 20009,
+
293  TDSEMEM = 20010,
+
294  TDSEINTF = 20012, /* Server name not found in interface file */
+
295  TDSEUHST = 20013, /* Unknown host machine name. */
+
296  TDSEPWD = 20014,
+
297  TDSESEOF = 20017,
+
298  TDSERPND = 20019,
+
299  TDSEBTOK = 20020,
+
300  TDSEOOB = 20022,
+
301  TDSECLOS = 20056,
+
302  TDSEUSCT = 20058,
+
303  TDSEUTDS = 20146,
+
304  TDSEEUNR = 20185,
+
305  TDSECAP = 20203,
+
306  TDSENEG = 20210,
+
307  TDSEUMSG = 20212,
+
308  TDSECAPTYP = 20213,
+
309  TDSECONF = 20214,
+
310  TDSEBPROBADTYP = 20250,
+
311  TDSECLOSEIN = 20292
+
312 } TDSERRNO;
+
313 
+
314 
+
315 enum {
+
316  TDS_CUR_ISTAT_UNUSED = 0x00,
+
317  TDS_CUR_ISTAT_DECLARED = 0x01,
+
318  TDS_CUR_ISTAT_OPEN = 0x02,
+
319  TDS_CUR_ISTAT_CLOSED = 0x04,
+
320  TDS_CUR_ISTAT_RDONLY = 0x08,
+
321  TDS_CUR_ISTAT_UPDATABLE = 0x10,
+
322  TDS_CUR_ISTAT_ROWCNT = 0x20,
+
323  TDS_CUR_ISTAT_DEALLOC = 0x40
+
324 };
+
325 
+
326 /* string types */
+
327 #define TDS_NULLTERM -9
+
328 
+
329 
+
330 typedef union tds_option_arg
+
331 {
+
332  TDS_TINYINT ti;
+
333  TDS_INT i;
+
334  TDS_CHAR *c;
+ +
336 
+
337 
+
338 typedef enum tds_encryption_level {
+
339  TDS_ENCRYPTION_DEFAULT,
+
340  TDS_ENCRYPTION_OFF,
+
341  TDS_ENCRYPTION_REQUEST,
+
342  TDS_ENCRYPTION_REQUIRE
+
343 } TDS_ENCRYPTION_LEVEL;
+
344 
+
345 /*
+
346  * TODO use system macros for optimization
+
347  * See mcrypt for reference and linux kernel source for optimization
+
348  * check if unaligned access and use fast write/read when implemented
+
349  */
+
350 #define TDS_BYTE_SWAP16(value) \
+
351  (((((uint16_t)value)<<8) & 0xFF00u) | \
+
352  ((((uint16_t)value)>>8) & 0x00FFu))
+
353 
+
354 #define TDS_BYTE_SWAP32(value) \
+
355  (((((uint32_t)value)<<24) & 0xFF000000u)| \
+
356  ((((uint32_t)value)<< 8) & 0x00FF0000u)| \
+
357  ((((uint32_t)value)>> 8) & 0x0000FF00u)| \
+
358  ((((uint32_t)value)>>24) & 0x000000FFu))
+
359 
+
360 #define is_end_token(x) ((x) >= TDS_DONE_TOKEN && (x) <= TDS_DONEINPROC_TOKEN)
+
361 
+
362 enum {
+
363  TDS_TYPEFLAG_INVALID = 0,
+
364  TDS_TYPEFLAG_NULLABLE = 1,
+
365  TDS_TYPEFLAG_FIXED = 2,
+
366  TDS_TYPEFLAG_VARIABLE = 4,
+
367  TDS_TYPEFLAG_COLLATE = 8,
+
368  TDS_TYPEFLAG_ASCII = 16,
+
369  TDS_TYPEFLAG_UNICODE = 32,
+
370  TDS_TYPEFLAG_BINARY = 64,
+
371  TDS_TYPEFLAG_DATETIME = 128,
+
372  TDS_TYPEFLAG_NUMERIC = 256,
+
373  TDS_TYPEFLAG_VARIANT = 512,
+
374 };
+
375 
+
376 extern const uint16_t tds_type_flags_ms[256];
+
377 #if 0
+
378 extern const uint16_t tds_type_flags_syb[256];
+
379 extern const char *const tds_type_names[256];
+
380 #endif
+
381 
+
382 #define is_fixed_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
+
383 #define is_nullable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
+
384 #define is_variable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)
+
385 #define is_variant_inner_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIANT) != 0)
+
386 
+
387 
+
388 #define is_blob_type(x) ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
+
389 #define is_blob_col(x) ((x)->column_varint_size > 2)
+
390 /* large type means it has a two byte size field */
+
391 /* define is_large_type(x) (x>128) */
+
392 #define is_numeric_type(x) ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
+
393 
+
394 #define is_datetime_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
+
395 #define is_unicode_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)
+
396 #define is_collate_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
+
397 #define is_ascii_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
+
398 #define is_binary_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != 0)
+
399 #define is_char_type(x) ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
+
400 #define is_similar_type(x, y) (is_char_type(x) && is_char_type(y))
+
401 static inline
+
402 bool is_tds_type_valid(int type)
+
403 {
+
404  return (unsigned) type < 256u && tds_type_flags_ms[type] != 0;
+
405 }
+
406 
+
407 
+
408 #define TDS_MAX_CAPABILITY 32
+
409 #define MAXPRECISION 77
+
410 #define TDS_MAX_CONN 4096
+
411 #define TDS_MAX_DYNID_LEN 30
+
412 
+
413 /* defaults to use if no others are found */
+
414 #define TDS_DEF_SERVER "SYBASE"
+
415 #define TDS_DEF_BLKSZ 512
+
416 #define TDS_DEF_CHARSET "iso_1"
+
417 #define TDS_DEF_LANG "us_english"
+
418 #if TDS50
+
419 #define TDS_DEFAULT_VERSION 0x500
+
420 #define TDS_DEF_PORT 4000
+
421 #elif TDS71
+
422 #define TDS_DEFAULT_VERSION 0x701
+
423 #define TDS_DEF_PORT 1433
+
424 #elif TDS72
+
425 #define TDS_DEFAULT_VERSION 0x702
+
426 #define TDS_DEF_PORT 1433
+
427 #elif TDS73
+
428 #define TDS_DEFAULT_VERSION 0x703
+
429 #define TDS_DEF_PORT 1433
+
430 #elif TDS74
+
431 #define TDS_DEFAULT_VERSION 0x704
+
432 #define TDS_DEF_PORT 1433
+
433 #else
+
434 #define TDS_DEFAULT_VERSION 0x000
+
435 #define TDS_DEF_PORT 1433
+
436 #endif
+
437 
+
438 /* normalized strings from freetds.conf file */
+
439 #define TDS_STR_VERSION "tds version"
+
440 #define TDS_STR_BLKSZ "initial block size"
+
441 #define TDS_STR_SWAPDT "swap broken dates"
+
442 #define TDS_STR_DUMPFILE "dump file"
+
443 #define TDS_STR_DEBUGLVL "debug level"
+
444 #define TDS_STR_DEBUGFLAGS "debug flags"
+
445 #define TDS_STR_TIMEOUT "timeout"
+
446 #define TDS_STR_QUERY_TIMEOUT "query timeout"
+
447 #define TDS_STR_CONNTIMEOUT "connect timeout"
+
448 #define TDS_STR_HOSTNAME "hostname"
+
449 #define TDS_STR_HOST "host"
+
450 #define TDS_STR_PORT "port"
+
451 #define TDS_STR_TEXTSZ "text size"
+
452 /* for big endian hosts, obsolete, ignored */
+
453 #define TDS_STR_EMUL_LE "emulate little endian"
+
454 #define TDS_STR_CHARSET "charset"
+
455 #define TDS_STR_CLCHARSET "client charset"
+
456 #define TDS_STR_USE_UTF_16 "use utf-16"
+
457 #define TDS_STR_LANGUAGE "language"
+
458 #define TDS_STR_APPENDMODE "dump file append"
+
459 #define TDS_STR_DATEFMT "date format"
+
460 #define TDS_STR_INSTANCE "instance"
+
461 #define TDS_STR_ASA_DATABASE "asa database"
+
462 #define TDS_STR_DATABASE "database"
+
463 #define TDS_STR_ENCRYPTION "encryption"
+
464 #define TDS_STR_USENTLMV2 "use ntlmv2"
+
465 #define TDS_STR_USELANMAN "use lanman"
+
466 /* conf values */
+
467 #define TDS_STR_ENCRYPTION_OFF "off"
+
468 #define TDS_STR_ENCRYPTION_REQUEST "request"
+
469 #define TDS_STR_ENCRYPTION_REQUIRE "require"
+
470 /* Defines to enable optional GSSAPI delegation */
+
471 #define TDS_GSSAPI_DELEGATION "enable gssapi delegation"
+
472 /* Mutual authentication */
+
473 #define TDS_STR_MUTUAL_AUTHENTICATION "mutual authentication"
+
474 /* Kerberos realm name */
+
475 #define TDS_STR_REALM "realm"
+
476 /* Kerberos SPN */
+
477 #define TDS_STR_SPN "spn"
+
478 /* CA file */
+
479 #define TDS_STR_CAFILE "ca file"
+
480 /* CRL file */
+
481 #define TDS_STR_CRLFILE "crl file"
+
482 /* check SSL hostname */
+
483 #define TDS_STR_CHECKSSLHOSTNAME "check certificate hostname"
+
484 /* database filename to attach on login (MSSQL) */
+
485 #define TDS_STR_DBFILENAME "database filename"
+
486 /* Application Intent MSSQL 2012 support */
+
487 #define TDS_STR_READONLY_INTENT "read-only intent"
+
488 /* configurable cipher suite to send to openssl's SSL_set_cipher_list() function */
+
489 #define TLS_STR_OPENSSL_CIPHERS "openssl ciphers"
+
490 /* enable old TLS v1, required for instance if you are using a really old Windows XP */
+
491 #define TDS_STR_ENABLE_TLS_V1 "enable tls v1"
+
492 
+
493 
+
494 /* TODO do a better check for alignment than this */
+
495 typedef union
+
496 {
+
497  void *p;
+
498  int i;
+
499  int64_t ui;
+ +
501 
+
502 #define TDS_ALIGN_SIZE sizeof(tds_align_struct)
+
503 
+
504 typedef struct tds_capability_type
+
505 {
+
506  unsigned char type;
+
507  unsigned char len; /* always sizeof(values) */
+
508  unsigned char values[TDS_MAX_CAPABILITY/2-2];
+ +
510 
+
511 typedef struct tds_capabilities
+
512 {
+
513  TDS_CAPABILITY_TYPE types[2];
+ +
515 
+
516 #define TDS_MAX_LOGIN_STR_SZ 128
+
517 typedef struct tds_login
+
518 {
+ +
520  int port;
+
521  TDS_USMALLINT tds_version;
+
522  int block_size;
+
523  DSTR language; /* e.g. us-english */
+ +
525  TDS_INT connect_timeout;
+
526  DSTR client_host_name;
+
527  DSTR server_host_name;
+ + + + + +
533  DSTR openssl_ciphers;
+
534  DSTR app_name;
+ + + +
539  DSTR library; /* Ct-Library, DB-Library, TDS-Library or ODBC */
+
540  TDS_TINYINT encryption_level;
+
541 
+
542  TDS_INT query_timeout;
+
543  TDS_CAPABILITIES capabilities;
+
544  DSTR client_charset;
+
545  DSTR database;
+
546 
+
547  struct addrinfo *ip_addrs;
+
548  DSTR instance_name;
+
549  DSTR dump_file;
+
550  int debug_flags;
+
551  int text_size;
+
552  DSTR routing_address;
+
553  uint16_t routing_port;
+
554 
+
555  unsigned char option_flag2;
+
556 
+
557  unsigned int bulk_copy:1;
+
558  unsigned int suppress_language:1;
+
559  unsigned int gssapi_use_delegation:1;
+
560  unsigned int mutual_authentication:1;
+
561  unsigned int use_ntlmv2:1;
+
562  unsigned int use_ntlmv2_specified:1;
+
563  unsigned int use_lanman:1;
+
564  unsigned int mars:1;
+
565  unsigned int use_utf16:1;
+
566  unsigned int use_new_password:1;
+
567  unsigned int valid_configuration:1;
+
568  unsigned int check_ssl_hostname:1;
+
569  unsigned int readonly_intent:1;
+
570  unsigned int enable_tls_v1:1;
+
571  unsigned int server_is_valid:1;
+
572 } TDSLOGIN;
+
573 
+
574 typedef struct tds_headers
+
575 {
+
576  const char *qn_options;
+
577  const char *qn_msgtext;
+
578  TDS_INT qn_timeout;
+
579  /* TDS 7.4+: trace activity ID char[20] */
+
580 } TDSHEADERS;
+
581 
+
582 typedef struct tds_locale
+
583 {
+
584  char *language;
+
585  char *server_charset;
+
586  char *date_fmt;
+
587 } TDSLOCALE;
+
588 
+
593 typedef struct tds_blob
+
594 {
+
595  TDS_CHAR *textvalue;
+
596  TDS_CHAR textptr[16];
+
597  TDS_CHAR timestamp[8];
+
598  unsigned char valid_ptr;
+ +
600 
+
604 typedef struct tds_variant
+
605 {
+
606  /* this MUST have same position and place of textvalue in tds_blob */
+
607  TDS_CHAR *data;
+
608  TDS_INT size;
+
609  TDS_INT data_len;
+
610  TDS_SERVER_TYPE type;
+
611  TDS_UCHAR collation[5];
+ +
613 
+
618 typedef struct tds_encoding
+
619 {
+
621  const char *name;
+
622  unsigned char min_bytes_per_char;
+
623  unsigned char max_bytes_per_char;
+
625  unsigned char canonic;
+ +
627 
+
628 typedef struct tds_bcpcoldata
+
629 {
+
630  TDS_UCHAR *data;
+
631  TDS_INT datalen;
+
632  TDS_INT is_null;
+
633 } BCPCOLDATA;
+
634 
+
635 
+
636 typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col);
+
637 typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col);
+
638 typedef TDS_INT tds_func_row_len(TDSCOLUMN *col);
+
639 typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col);
+
640 typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7);
+
641 typedef int tds_func_check(const TDSCOLUMN *col);
+
642 
+
643 typedef struct tds_column_funcs
+
644 {
+
645  tds_func_get_info *get_info;
+
646  tds_func_get_data *get_data;
+
647  tds_func_row_len *row_len;
+
653  tds_func_put_info *put_info;
+
663  tds_func_put_data *put_data;
+
664 #if ENABLE_EXTRA_CHECKS
+
665 
+
679  tds_func_check *check;
+
680 #endif
+
681 #if 0
+
682  TDSRET (*convert)(TDSSOCKET *tds, TDSCOLUMN *col);
+
683 #endif
+ +
685 
+ +
690 {
+
691  const TDSCOLUMNFUNCS *funcs;
+
692  TDS_INT column_usertype;
+
693  TDS_INT column_flags;
+
694 
+
695  TDS_INT column_size;
+
697  TDS_SERVER_TYPE column_type;
+
702  TDS_TINYINT column_varint_size;
+
704  TDS_TINYINT column_prec;
+
705  TDS_TINYINT column_scale;
+
707  struct
+
708  {
+
709  TDS_SERVER_TYPE column_type;
+
710  TDS_INT column_size;
+
711  } on_server;
+
712 
+ +
715  DSTR table_name;
+
716  DSTR column_name;
+
717  DSTR table_column_name;
+
718 
+
719  unsigned char *column_data;
+
720  void (*column_data_free)(struct tds_column *column);
+
721  unsigned char column_nullable:1;
+
722  unsigned char column_writeable:1;
+
723  unsigned char column_identity:1;
+
724  unsigned char column_key:1;
+
725  unsigned char column_hidden:1;
+
726  unsigned char column_output:1;
+
727  unsigned char column_timestamp:1;
+
728  unsigned char column_computed:1;
+
729  TDS_UCHAR column_collation[5];
+
730 
+
731  /* additional fields flags for compute results */
+
732  TDS_SMALLINT column_operand;
+
733  TDS_TINYINT column_operator;
+
734 
+
735  /* FIXME this is data related, not column */
+ +
738 
+
739  /* related to binding or info stored by client libraries */
+
740  /* FIXME find a best place to store these data, some are unused */
+
741  TDS_SMALLINT column_bindtype;
+
742  TDS_SMALLINT column_bindfmt;
+
743  TDS_UINT column_bindlen;
+
744  TDS_SMALLINT *column_nullbind;
+
745  TDS_CHAR *column_varaddr;
+
746  TDS_INT *column_lenbind;
+
747  TDS_INT column_textpos;
+
748  TDS_INT column_text_sqlgetdatapos;
+
749  TDS_CHAR column_text_sqlputdatainfo;
+
750  unsigned char column_iconv_left;
+
751  char column_iconv_buf[9];
+
752 
+
753  BCPCOLDATA *bcp_column_data;
+
762  TDS_INT bcp_prefix_len;
+
763  TDS_INT bcp_term_len;
+
764  TDS_CHAR *bcp_terminator;
+
765 };
+
766 
+
767 
+
769 typedef struct tds_result_info
+
770 {
+
771  /* TODO those fields can became a struct */
+
772  TDSCOLUMN **columns;
+
773  TDS_USMALLINT num_cols;
+
774  TDS_USMALLINT computeid;
+
775  TDS_INT ref_count;
+
776  TDSSOCKET *attached_to;
+
777  unsigned char *current_row;
+
778  void (*row_free)(struct tds_result_info* result, unsigned char *row);
+
779  TDS_INT row_size;
+
780 
+
781  TDS_SMALLINT *bycolumns;
+
782  TDS_USMALLINT by_cols;
+
783  bool rows_exist;
+
784  /* TODO remove ?? used only in dblib */
+
785  bool more_results;
+ +
787 
+
789 typedef enum tds_states
+
790 {
+ + + + + +
796  TDS_DEAD
+ +
798 
+
799 typedef enum tds_operations
+
800 {
+
801  TDS_OP_NONE = 0,
+
802 
+
803  /* mssql operations */
+
804  TDS_OP_CURSOR = TDS_SP_CURSOR,
+
805  TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN,
+
806  TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE,
+
807  TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE,
+
808  TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC,
+
809  TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE,
+
810  TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH,
+
811  TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION,
+
812  TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE,
+
813  TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL,
+
814  TDS_OP_PREPARE = TDS_SP_PREPARE,
+
815  TDS_OP_EXECUTE = TDS_SP_EXECUTE,
+
816  TDS_OP_PREPEXEC = TDS_SP_PREPEXEC,
+
817  TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC,
+
818  TDS_OP_UNPREPARE = TDS_SP_UNPREPARE,
+
819 
+
820  /* sybase operations */
+
821  TDS_OP_DYN_DEALLOC = 100,
+
822 } TDS_OPERATION;
+
823 
+
824 #define TDS_DBG_LOGIN __FILE__, ((__LINE__ << 4) | 11)
+
825 #define TDS_DBG_HEADER __FILE__, ((__LINE__ << 4) | 10)
+
826 #define TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7)
+
827 #define TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6)
+
828 #define TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5)
+
829 #define TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4)
+
830 #define TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3)
+
831 #define TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2)
+
832 #define TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1)
+
833 
+
834 #define TDS_DBGFLAG_FUNC 0x80
+
835 #define TDS_DBGFLAG_INFO2 0x40
+
836 #define TDS_DBGFLAG_INFO1 0x20
+
837 #define TDS_DBGFLAG_NETWORK 0x10
+
838 #define TDS_DBGFLAG_WARN 0x08
+
839 #define TDS_DBGFLAG_ERROR 0x04
+
840 #define TDS_DBGFLAG_SEVERE 0x02
+
841 #define TDS_DBGFLAG_ALL 0xfff
+
842 #define TDS_DBGFLAG_LOGIN 0x0800
+
843 #define TDS_DBGFLAG_HEADER 0x0400
+
844 #define TDS_DBGFLAG_PID 0x1000
+
845 #define TDS_DBGFLAG_TIME 0x2000
+
846 #define TDS_DBGFLAG_SOURCE 0x4000
+
847 #define TDS_DBGFLAG_THREAD 0x8000
+
848 
+
849 #if 0
+
850 
+
855 enum TDS_DBG_LOG_STATE
+
856 {
+
857  TDS_DBG_LOGIN = (1 << 0)
+
859  , TDS_DBG_API = (1 << 1)
+
860  , TDS_DBG_ASYNC = (1 << 2)
+
861  , TDS_DBG_DIAG = (1 << 3)
+
862  , TDS_DBG_error = (1 << 4)
+
863  /* TODO: ^^^^^ make upper case when old #defines (above) are removed */
+
864  /* Log FreeTDS runtime/logic error occurs. */
+
865  , TDS_DBG_PACKET = (1 << 5)
+
866  , TDS_DBG_LIBTDS = (1 << 6)
+
867  , TDS_DBG_CONFIG = (1 << 7)
+
868  , TDS_DBG_DEFAULT = 0xFE
+
869 };
+
870 #endif
+
871 
+
872 typedef struct tds_result_info TDSCOMPUTEINFO;
+
873 
+ +
875 
+
876 typedef struct tds_message
+
877 {
+
878  TDS_CHAR *server;
+
879  TDS_CHAR *message;
+
880  TDS_CHAR *proc_name;
+
881  TDS_CHAR *sql_state;
+
882  TDS_INT msgno;
+
883  TDS_INT line_number;
+
884  /* -1 .. 255 */
+
885  TDS_SMALLINT state;
+
886  TDS_TINYINT priv_msg_type;
+
887  TDS_TINYINT severity;
+
888  /* for library-generated errors */
+
889  int oserr;
+
890 } TDSMESSAGE;
+
891 
+
892 typedef struct tds_upd_col
+
893 {
+
894  struct tds_upd_col *next;
+
895  TDS_INT colnamelength;
+
896  char * columnname;
+
897 } TDSUPDCOL;
+
898 
+
899 typedef enum {
+
900  TDS_CURSOR_STATE_UNACTIONED = 0 /* initial value */
+
901  , TDS_CURSOR_STATE_REQUESTED = 1 /* called by ct_cursor */
+
902  , TDS_CURSOR_STATE_SENT = 2 /* sent to server */
+
903  , TDS_CURSOR_STATE_ACTIONED = 3 /* acknowledged by server */
+
904 } TDS_CURSOR_STATE;
+
905 
+
906 typedef struct tds_cursor_status
+
907 {
+
908  TDS_CURSOR_STATE declare;
+
909  TDS_CURSOR_STATE cursor_row;
+
910  TDS_CURSOR_STATE open;
+
911  TDS_CURSOR_STATE fetch;
+
912  TDS_CURSOR_STATE close;
+
913  TDS_CURSOR_STATE dealloc;
+ +
915 
+
916 typedef enum tds_cursor_operation
+
917 {
+
918  TDS_CURSOR_POSITION = 0,
+
919  TDS_CURSOR_UPDATE = 1,
+
920  TDS_CURSOR_DELETE = 2,
+
921  TDS_CURSOR_INSERT = 4
+
922 } TDS_CURSOR_OPERATION;
+
923 
+
924 typedef enum tds_cursor_fetch
+
925 {
+
926  TDS_CURSOR_FETCH_NEXT = 1,
+
927  TDS_CURSOR_FETCH_PREV,
+
928  TDS_CURSOR_FETCH_FIRST,
+
929  TDS_CURSOR_FETCH_LAST,
+
930  TDS_CURSOR_FETCH_ABSOLUTE,
+
931  TDS_CURSOR_FETCH_RELATIVE
+
932 } TDS_CURSOR_FETCH;
+
933 
+
937 typedef struct tds_cursor
+
938 {
+
939  struct tds_cursor *next;
+
940  TDS_INT ref_count;
+
941  char *cursor_name;
+
942  TDS_INT cursor_id;
+
943  TDS_TINYINT options;
+ +
948  char *query;
+
949  /* TODO for updatable columns */
+
950  /* TDS_TINYINT number_upd_cols; */
+
951  /* TDSUPDCOL *cur_col_list; */
+
952  TDS_INT cursor_rows;
+
953  /* TDSPARAMINFO *params; */
+ +
955  TDS_USMALLINT srv_status;
+
956  TDSRESULTINFO *res_info;
+
957  TDS_INT type, concurrency;
+ +
959 
+
963 typedef struct tds_env
+
964 {
+ +
967  char *language;
+
969  char *charset;
+
971  char *database;
+ +
973 
+
977 typedef struct tds_dynamic
+
978 {
+
979  struct tds_dynamic *next;
+
980  TDS_INT ref_count;
+
982  TDS_INT num_id;
+
988  char id[30];
+
994  TDS_TINYINT emulated;
+ +
999  /* int dyn_state; */ /* TODO use it */
+ + +
1010  char *query;
+ +
1012 
+
1013 typedef enum {
+
1014  TDS_MULTIPLE_QUERY,
+
1015  TDS_MULTIPLE_EXECUTE,
+
1016  TDS_MULTIPLE_RPC
+
1017 } TDS_MULTIPLE_TYPE;
+
1018 
+
1019 typedef struct tds_multiple
+
1020 {
+
1021  TDS_MULTIPLE_TYPE type;
+
1022  unsigned int flags;
+
1023 } TDSMULTIPLE;
+
1024 
+
1025 /* forward declaration */
+
1026 typedef struct tds_context TDSCONTEXT;
+
1027 typedef int (*err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
+
1028 
+ +
1030 {
+
1031  TDSLOCALE *locale;
+
1032  void *parent;
+
1033  /* handlers */
+
1034  int (*msg_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
+
1035  int (*err_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
+
1036  int (*int_handler) (void *);
+
1037  bool money_use_2_digits;
+
1038 };
+
1039 
+
1040 enum TDS_ICONV_ENTRY
+
1041 {
+
1042  client2ucs2
+
1043  , client2server_chardata
+
1044  , initial_char_conv_count /* keep last */
+
1045 };
+
1046 
+
1047 typedef struct tds_authentication
+
1048 {
+
1049  uint8_t *packet;
+
1050  int packet_len;
+
1051  /* TDS_MSG_TOKEN type, for TDS5 */
+
1052  uint16_t msg_type;
+
1053  TDSRET (*free)(TDSCONNECTION* conn, struct tds_authentication * auth);
+
1054  TDSRET (*handle_next)(TDSSOCKET * tds, struct tds_authentication * auth, size_t len);
+ +
1056 
+
1057 typedef struct tds_packet
+
1058 {
+
1059  struct tds_packet *next;
+
1060  uint16_t sid;
+
1061 
+
1062 #if ENABLE_ODBC_MARS
+
1063 
+
1066  uint8_t data_start;
+
1067 #endif
+
1068 
+
1072  unsigned data_len;
+
1073  unsigned capacity;
+
1074  unsigned char buf[1];
+
1075 } TDSPACKET;
+
1076 
+
1077 #if ENABLE_ODBC_MARS
+
1078 #define tds_packet_zero_data_start(pkt) do { (pkt)->data_start = 0; } while(0)
+
1079 #define tds_packet_get_data_start(pkt) ((pkt)->data_start)
+
1080 #else
+
1081 #define tds_packet_zero_data_start(pkt) do { } while(0)
+
1082 #define tds_packet_get_data_start(pkt) 0
+
1083 #endif
+
1084 
+
1085 typedef struct tds_poll_wakeup
+
1086 {
+
1087  TDS_SYS_SOCKET s_signal, s_signaled;
+
1088 } TDSPOLLWAKEUP;
+
1089 
+
1090 /* field related to connection */
+ +
1092 {
+
1093  TDS_USMALLINT tds_version;
+
1094  TDS_UINT product_version;
+
1095  char *product_name;
+
1096 
+
1097  TDS_SYS_SOCKET s;
+
1098  TDSPOLLWAKEUP wakeup;
+
1099  const TDSCONTEXT *tds_ctx;
+
1100 
+ +
1103 
+ + +
1114 
+
1115  int char_conv_count;
+
1116  TDSICONV **char_convs;
+
1117 
+
1118  TDS_UCHAR collation[5];
+
1119  TDS_UCHAR tds72_transaction[8];
+
1120 
+
1121  TDS_CAPABILITIES capabilities;
+
1122  unsigned int use_iconv:1;
+
1123  unsigned int tds71rev1:1;
+
1124  unsigned int pending_close:1;
+
1125  unsigned int encrypt_single_packet:1;
+
1126 #if ENABLE_ODBC_MARS
+
1127  unsigned int mars:1;
+
1128 
+
1129  TDSSOCKET *in_net_tds;
+
1130  TDSPACKET *packets;
+
1131  TDSPACKET *recv_packet;
+
1132  TDSPACKET *send_packets;
+
1133  unsigned send_pos, recv_pos;
+
1134 
+
1135 #define BUSY_SOCKET ((TDSSOCKET*)(TDS_UINTPTR)1)
+
1136 #define TDSSOCKET_VALID(tds) (((TDS_UINTPTR)(tds)) > 1)
+
1137  struct tds_socket **sessions;
+
1138  unsigned num_sessions;
+
1139 #endif
+
1140  tds_mutex list_mtx;
+
1141 
+
1142  unsigned num_cached_packets;
+
1143  TDSPACKET *packet_cache;
+
1144 
+
1145  int spid;
+
1146  int client_spid;
+
1147 
+
1148  void *tls_session;
+
1149 #if defined(HAVE_GNUTLS)
+
1150  void *tls_credentials;
+
1151 #elif defined(HAVE_OPENSSL)
+
1152  void *tls_ctx;
+
1153 #else
+
1154  void *tls_dummy;
+
1155 #endif
+
1156  TDSAUTHENTICATION *authentication;
+
1157  char *server;
+
1158 };
+
1159 
+ +
1164 {
+
1165 #if ENABLE_ODBC_MARS
+
1166  TDSCONNECTION *conn;
+
1167 #else
+
1168  TDSCONNECTION conn[1];
+
1169 #endif
+
1170 
+
1171  void *parent;
+
1172 
+
1178  unsigned char *in_buf;
+
1179 
+
1186  unsigned char *out_buf;
+
1187 
+
1192  unsigned int out_buf_max;
+
1193  unsigned in_pos;
+
1194  unsigned out_pos;
+
1195  unsigned in_len;
+
1196  unsigned char in_flag;
+
1197  unsigned char out_flag;
+
1199  unsigned frozen;
+ +
1205 
+
1206 #if ENABLE_ODBC_MARS
+
1207 
+
1211  uint16_t sid;
+
1212 
+
1217  tds_condition packet_cond;
+
1218 
+
1223  TDSPACKET *sending_packet;
+
1224  TDS_UINT recv_seq;
+
1225  TDS_UINT send_seq;
+
1226  TDS_UINT recv_wnd;
+
1227  TDS_UINT send_wnd;
+
1228 #endif
+
1229  /* packet we received */
+
1230  TDSPACKET *recv_packet;
+ +
1233 
+ +
1240  TDSRESULTINFO *res_info;
+
1241  TDS_UINT num_comp_info;
+
1242  TDSCOMPUTEINFO **comp_info;
+
1243  TDSPARAMINFO *param_info;
+ +
1245  bool bulk_query;
+
1246  bool has_status;
+
1247  bool in_row;
+
1248  volatile
+
1249  unsigned char in_cancel;
+
1251  TDS_INT ret_status;
+
1252  TDS_STATE state;
+
1253 
+
1254  TDS_INT query_timeout;
+
1255  TDS_INT8 rows_affected;
+ + +
1261  void (*env_chg_func) (TDSSOCKET * tds, int type, char *oldval, char *newval);
+
1262  TDS_OPERATION current_op;
+
1263 
+
1264  int option_value;
+
1265  tds_mutex wire_mtx;
+
1266 };
+
1267 
+
1268 #define tds_get_ctx(tds) ((tds)->conn->tds_ctx)
+
1269 #define tds_set_ctx(tds, val) do { ((tds)->conn->tds_ctx) = (val); } while(0)
+
1270 #define tds_get_parent(tds) ((tds)->parent)
+
1271 #define tds_set_parent(tds, val) do { ((tds)->parent) = (val); } while(0)
+
1272 #define tds_get_s(tds) ((tds)->conn->s)
+
1273 #define tds_set_s(tds, val) do { ((tds)->conn->s) = (val); } while(0)
+
1274 
+
1275 
+
1276 /* config.c */
+ +
1278 typedef void (*TDSCONFPARSE) (const char *option, const char *value, void *param);
+
1279 bool tds_read_conf_section(FILE * in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param);
+
1280 bool tds_read_conf_file(TDSLOGIN * login, const char *server);
+
1281 void tds_parse_conf_section(const char *option, const char *value, void *param);
+
1282 TDSLOGIN *tds_read_config_info(TDSSOCKET * tds, TDSLOGIN * login, TDSLOCALE * locale);
+
1283 void tds_fix_login(TDSLOGIN* login);
+
1284 TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN* login);
+
1285 struct addrinfo *tds_lookup_host(const char *servername);
+
1286 TDSRET tds_lookup_host_set(const char *servername, struct addrinfo **addr);
+
1287 const char *tds_addrinfo2str(struct addrinfo *addr, char *name, int namemax);
+
1288 char *tds_get_home_file(const char *file);
+
1289 
+
1290 TDSRET tds_set_interfaces_file_loc(const char *interfloc);
+
1291 extern const char STD_DATETIME_FMT[];
+
1292 int tds_parse_boolean(const char *value, int default_value);
+
1293 int tds_config_boolean(const char *option, const char *value, TDSLOGIN * login);
+
1294 
+
1295 TDSLOCALE *tds_get_locale(void);
+
1296 TDSRET tds_alloc_row(TDSRESULTINFO * res_info);
+
1297 TDSRET tds_alloc_compute_row(TDSCOMPUTEINFO * res_info);
+
1298 BCPCOLDATA * tds_alloc_bcp_column_data(unsigned int column_size);
+
1299 TDSDYNAMIC *tds_lookup_dynamic(TDSCONNECTION * conn, const char *id);
+
1300 /*@observer@*/ const char *tds_prtype(int token);
+
1301 int tds_get_varint_size(TDSCONNECTION * conn, int datatype);
+
1302 TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int usertype);
+
1303 
+
1304 
+
1305 /* iconv.c */
+
1306 TDSRET tds_iconv_open(TDSCONNECTION * conn, const char *charset, int use_utf16);
+
1307 void tds_iconv_close(TDSCONNECTION * conn);
+
1308 void tds_srv_charset_changed(TDSCONNECTION * conn, const char *charset);
+
1309 void tds7_srv_charset_changed(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
+
1310 int tds_iconv_alloc(TDSCONNECTION * conn);
+
1311 void tds_iconv_free(TDSCONNECTION * conn);
+
1312 TDSICONV *tds_iconv_from_collate(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
+
1313 
+
1314 
+
1315 /* mem.c */
+
1316 void tds_free_socket(TDSSOCKET * tds);
+
1317 void tds_free_all_results(TDSSOCKET * tds);
+
1318 void tds_free_results(TDSRESULTINFO * res_info);
+
1319 void tds_free_param_results(TDSPARAMINFO * param_info);
+
1320 void tds_free_param_result(TDSPARAMINFO * param_info);
+
1321 void tds_free_msg(TDSMESSAGE * message);
+
1322 void tds_cursor_deallocated(TDSCONNECTION *conn, TDSCURSOR *cursor);
+
1323 void tds_release_cursor(TDSCURSOR **pcursor);
+
1324 void tds_free_bcp_column_data(BCPCOLDATA * coldata);
+
1325 TDSRESULTINFO *tds_alloc_results(TDS_USMALLINT num_cols);
+
1326 TDSCOMPUTEINFO **tds_alloc_compute_results(TDSSOCKET * tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols);
+
1327 TDSCONTEXT *tds_alloc_context(void * parent);
+
1328 void tds_free_context(TDSCONTEXT * locale);
+ +
1330 void tds_free_input_params(TDSDYNAMIC * dyn);
+
1331 void tds_release_dynamic(TDSDYNAMIC ** dyn);
+
1332 static inline
+
1333 void tds_release_cur_dyn(TDSSOCKET * tds)
+
1334 {
+ +
1336 }
+
1337 void tds_dynamic_deallocated(TDSCONNECTION *conn, TDSDYNAMIC *dyn);
+
1338 void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn);
+
1339 TDSSOCKET *tds_realloc_socket(TDSSOCKET * tds, size_t bufsize);
+
1340 char *tds_alloc_client_sqlstate(int msgno);
+
1341 char *tds_alloc_lookup_sqlstate(TDSSOCKET * tds, int msgno);
+
1342 TDSLOGIN *tds_alloc_login(int use_environment);
+
1343 TDSDYNAMIC *tds_alloc_dynamic(TDSCONNECTION * conn, const char *id);
+
1344 void tds_free_login(TDSLOGIN * login);
+
1345 TDSLOGIN *tds_init_login(TDSLOGIN * login, TDSLOCALE * locale);
+
1346 TDSLOCALE *tds_alloc_locale(void);
+
1347 void *tds_alloc_param_data(TDSCOLUMN * curparam);
+
1348 void tds_free_locale(TDSLOCALE * locale);
+
1349 TDSCURSOR * tds_alloc_cursor(TDSSOCKET * tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen);
+
1350 void tds_free_row(TDSRESULTINFO * res_info, unsigned char *row);
+
1351 TDSSOCKET *tds_alloc_socket(TDSCONTEXT * context, unsigned int bufsize);
+
1352 TDSSOCKET *tds_alloc_additional_socket(TDSCONNECTION *conn);
+
1353 void tds_set_current_results(TDSSOCKET *tds, TDSRESULTINFO *info);
+
1354 void tds_detach_results(TDSRESULTINFO *info);
+
1355 void * tds_realloc(void **pp, size_t new_size);
+
1356 #define TDS_RESIZE(p, n_elem) \
+
1357  tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
+
1358 #define tds_new(type, n) ((type *) malloc(sizeof(type) * (n)))
+
1359 #define tds_new0(type, n) ((type *) calloc(n, sizeof(type)))
+
1360 
+
1361 TDSPACKET *tds_alloc_packet(void *buf, unsigned len);
+
1362 TDSPACKET *tds_realloc_packet(TDSPACKET *packet, unsigned len);
+
1363 void tds_free_packets(TDSPACKET *packet);
+
1364 TDSBCPINFO *tds_alloc_bcpinfo(void);
+
1365 void tds_free_bcpinfo(TDSBCPINFO *bcpinfo);
+
1366 void tds_deinit_bcpinfo(TDSBCPINFO *bcpinfo);
+
1367 
+
1368 
+
1369 /* login.c */
+
1370 void tds_set_packet(TDSLOGIN * tds_login, int packet_size);
+
1371 void tds_set_port(TDSLOGIN * tds_login, int port);
+
1372 bool tds_set_passwd(TDSLOGIN * tds_login, const char *password) TDS_WUR;
+
1373 void tds_set_bulk(TDSLOGIN * tds_login, bool enabled);
+
1374 bool tds_set_user(TDSLOGIN * tds_login, const char *username) TDS_WUR;
+
1375 bool tds_set_app(TDSLOGIN * tds_login, const char *application) TDS_WUR;
+
1376 bool tds_set_host(TDSLOGIN * tds_login, const char *hostname) TDS_WUR;
+
1377 bool tds_set_library(TDSLOGIN * tds_login, const char *library) TDS_WUR;
+
1378 bool tds_set_server(TDSLOGIN * tds_login, const char *server) TDS_WUR;
+
1379 bool tds_set_client_charset(TDSLOGIN * tds_login, const char *charset) TDS_WUR;
+
1380 bool tds_set_language(TDSLOGIN * tds_login, const char *language) TDS_WUR;
+
1381 void tds_set_version(TDSLOGIN * tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver);
+
1382 int tds_connect_and_login(TDSSOCKET * tds, TDSLOGIN * login);
+
1383 
+
1384 
+
1385 /* query.c */
+
1386 void tds_start_query(TDSSOCKET *tds, unsigned char packet_type);
+
1387 
+
1388 TDSRET tds_submit_query(TDSSOCKET * tds, const char *query);
+
1389 TDSRET tds_submit_query_params(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
+
1390 TDSRET tds_submit_queryf(TDSSOCKET * tds, const char *queryf, ...);
+
1391 TDSRET tds_submit_prepare(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
+
1392 TDSRET tds_submit_execdirect(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
+
1393 TDSRET tds71_submit_prepexec(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
+
1394 TDSRET tds_submit_execute(TDSSOCKET * tds, TDSDYNAMIC * dyn);
+
1395 TDSRET tds_send_cancel(TDSSOCKET * tds);
+
1396 const char *tds_next_placeholder(const char *start);
+
1397 int tds_count_placeholders(const char *query);
+
1398 int tds_needs_unprepare(TDSCONNECTION * conn, TDSDYNAMIC * dyn);
+
1399 TDSRET tds_deferred_unprepare(TDSCONNECTION * conn, TDSDYNAMIC * dyn);
+
1400 TDSRET tds_submit_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn);
+
1401 TDSRET tds_submit_rpc(TDSSOCKET * tds, const char *rpc_name, TDSPARAMINFO * params, TDSHEADERS * head);
+
1402 TDSRET tds_submit_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size);
+
1403 TDSRET tds_submit_begin_tran(TDSSOCKET *tds);
+
1404 TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont);
+
1405 TDSRET tds_submit_commit(TDSSOCKET *tds, int cont);
+
1406 TDSRET tds_disconnect(TDSSOCKET * tds);
+
1407 size_t tds_quote_id(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
+
1408 size_t tds_quote_id_rpc(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
+
1409 size_t tds_quote_string(TDSSOCKET * tds, char *buffer, const char *str, int len);
+
1410 const char *tds_skip_comment(const char *s);
+
1411 const char *tds_skip_quoted(const char *s);
+
1412 size_t tds_fix_column_size(TDSSOCKET * tds, TDSCOLUMN * curcol);
+
1413 const char *tds_convert_string(TDSSOCKET * tds, TDSICONV * char_conv, const char *s, int len, size_t *out_len);
+
1414 void tds_convert_string_free(const char *original, const char *converted);
+
1415 #if !ENABLE_EXTRA_CHECKS
+
1416 #define tds_convert_string_free(original, converted) \
+
1417  do { if (original != converted) free((char*) converted); } while(0)
+
1418 #endif
+
1419 TDSRET tds_get_column_declaration(TDSSOCKET * tds, TDSCOLUMN * curcol, char *out);
+
1420 
+
1421 TDSRET tds_cursor_declare(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
+
1422 TDSRET tds_cursor_setrows(TDSSOCKET * tds, TDSCURSOR * cursor, int *send);
+
1423 TDSRET tds_cursor_open(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
+
1424 TDSRET tds_cursor_fetch(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row);
+
1425 TDSRET tds_cursor_get_cursor_info(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_UINT * row_number, TDS_UINT * row_count);
+
1426 TDSRET tds_cursor_close(TDSSOCKET * tds, TDSCURSOR * cursor);
+
1427 TDSRET tds_cursor_dealloc(TDSSOCKET * tds, TDSCURSOR * cursor);
+
1428 TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR * cursor);
+
1429 TDSRET tds_cursor_update(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO * params);
+
1430 TDSRET tds_cursor_setname(TDSSOCKET * tds, TDSCURSOR * cursor);
+
1431 
+
1432 TDSRET tds_multiple_init(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS * head);
+
1433 TDSRET tds_multiple_done(TDSSOCKET *tds, TDSMULTIPLE *multiple);
+
1434 TDSRET tds_multiple_query(TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO * params);
+
1435 TDSRET tds_multiple_execute(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC * dyn);
+
1436 
+
1437 
+
1438 /* token.c */
+
1439 TDSRET tds_process_cancel(TDSSOCKET * tds);
+
1440 int tds_get_token_size(int marker);
+
1441 TDSRET tds_process_login_tokens(TDSSOCKET * tds);
+
1442 TDSRET tds_process_simple_query(TDSSOCKET * tds);
+
1443 int tds5_send_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG * tds_argument,
+
1444  TDS_INT * tds_argsize);
+
1445 TDSRET tds_process_tokens(TDSSOCKET * tds, /*@out@*/ TDS_INT * result_type, /*@out@*/ int *done_flags, unsigned flag);
+
1446 int determine_adjusted_size(const TDSICONV * char_conv, int size);
+
1447 
+
1448 
+
1449 /* data.c */
+
1450 void tds_set_param_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
+
1451 void tds_set_column_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
+
1452 
+
1453 
+
1454 /* tds_convert.c */
+
1455 TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC * dr);
+
1456 TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize);
+
1457 extern const char tds_hex_digits[];
+
1458 
+
1459 
+
1460 /* write.c */
+
1461 int tds_init_write_buf(TDSSOCKET * tds);
+
1462 int tds_put_n(TDSSOCKET * tds, const void *buf, size_t n);
+
1463 int tds_put_string(TDSSOCKET * tds, const char *buf, int len);
+
1464 int tds_put_int(TDSSOCKET * tds, TDS_INT i);
+
1465 int tds_put_int8(TDSSOCKET * tds, TDS_INT8 i);
+
1466 int tds_put_smallint(TDSSOCKET * tds, TDS_SMALLINT si);
+
1468 #define tds_put_tinyint(tds, ti) tds_put_byte(tds,ti)
+
1469 int tds_put_byte(TDSSOCKET * tds, unsigned char c);
+
1470 TDSRET tds_flush_packet(TDSSOCKET * tds);
+
1471 int tds_put_buf(TDSSOCKET * tds, const unsigned char *buf, int dsize, int ssize);
+
1472 
+
1473 
+
1474 /* read.c */
+
1475 unsigned char tds_get_byte(TDSSOCKET * tds);
+
1476 void tds_unget_byte(TDSSOCKET * tds);
+
1477 unsigned char tds_peek(TDSSOCKET * tds);
+
1478 TDS_USMALLINT tds_get_usmallint(TDSSOCKET * tds);
+
1479 #define tds_get_smallint(tds) ((TDS_SMALLINT) tds_get_usmallint(tds))
+
1480 TDS_UINT tds_get_uint(TDSSOCKET * tds);
+
1481 #define tds_get_int(tds) ((TDS_INT) tds_get_uint(tds))
+
1482 TDS_UINT8 tds_get_uint8(TDSSOCKET * tds);
+
1483 #define tds_get_int8(tds) ((TDS_INT8) tds_get_uint8(tds))
+
1484 size_t tds_get_string(TDSSOCKET * tds, size_t string_len, char *dest, size_t dest_size);
+
1485 TDSRET tds_get_char_data(TDSSOCKET * tds, char *dest, size_t wire_size, TDSCOLUMN * curcol);
+
1486 bool tds_get_n(TDSSOCKET * tds, /*@out@*/ /*@null@*/ void *dest, size_t n);
+
1487 int tds_get_size_by_type(TDS_SERVER_TYPE servertype);
+
1488 DSTR* tds_dstr_get(TDSSOCKET * tds, DSTR * s, size_t len);
+
1489 
+
1490 
+
1491 /* util.c */
+
1492 int tdserror (const TDSCONTEXT * tds_ctx, TDSSOCKET * tds, int msgno, int errnum);
+ +
1494 void tds_swap_bytes(void *buf, int bytes);
+
1495 unsigned int tds_gettime_ms(void);
+
1496 char *tds_strndup(const void *s, TDS_INTPTR len);
+
1497 
+
1498 
+
1499 /* log.c */
+
1500 void tdsdump_off(void);
+
1501 void tdsdump_on(void);
+
1502 int tdsdump_isopen(void);
+
1503 #include <freetds/popvis.h>
+
1504 int tdsdump_open(const char *filename);
+
1505 #include <freetds/pushvis.h>
+
1506 void tdsdump_close(void);
+
1507 void tdsdump_dump_buf(const char* file, unsigned int level_line, const char *msg, const void *buf, size_t length);
+
1508 void tdsdump_col(const TDSCOLUMN *col);
+
1509 #undef tdsdump_log
+
1510 void tdsdump_log(const char* file, unsigned int level_line, const char *fmt, ...)
+
1511 #if defined(__GNUC__) && __GNUC__ >= 2
+
1512 #if defined(__MINGW32__)
+
1513  __attribute__ ((__format__ (ms_printf, 3, 4)))
+
1514 #else
+
1515  __attribute__ ((__format__ (__printf__, 3, 4)))
+
1516 #endif
+
1517 #endif
+
1518 ;
+
1519 #define TDSDUMP_LOG_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log
+
1520 #define tdsdump_log TDSDUMP_LOG_FAST
+
1521 #define TDSDUMP_BUF_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf
+
1522 #define tdsdump_dump_buf TDSDUMP_BUF_FAST
+
1523 
+
1524 extern int tds_write_dump;
+
1525 extern int tds_debug_flags;
+
1526 extern int tds_g_append_mode;
+
1527 
+
1528 
+
1529 /* net.c */
+
1530 TDSERRNO tds_open_socket(TDSSOCKET * tds, struct addrinfo *ipaddr, unsigned int port, int timeout, int *p_oserr);
+
1531 void tds_close_socket(TDSSOCKET * tds);
+
1532 int tds7_get_instance_ports(FILE *output, struct addrinfo *addr);
+
1533 int tds7_get_instance_port(struct addrinfo *addr, const char *instance);
+
1534 char *tds_prwsaerror(int erc);
+
1535 void tds_prwsaerror_free(char *s);
+
1536 int tds_connection_read(TDSSOCKET * tds, unsigned char *buf, int buflen);
+
1537 int tds_connection_write(TDSSOCKET *tds, const unsigned char *buf, int buflen, int final);
+
1538 #define TDSSELREAD POLLIN
+
1539 #define TDSSELWRITE POLLOUT
+
1540 int tds_select(TDSSOCKET * tds, unsigned tds_sel, int timeout_seconds);
+
1541 void tds_connection_close(TDSCONNECTION *conn);
+
1542 int tds_goodread(TDSSOCKET * tds, unsigned char *buf, int buflen);
+
1543 int tds_goodwrite(TDSSOCKET * tds, const unsigned char *buffer, size_t buflen);
+
1544 void tds_socket_flush(TDS_SYS_SOCKET sock);
+
1545 int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock);
+
1546 int tds_wakeup_init(TDSPOLLWAKEUP *wakeup);
+
1547 void tds_wakeup_close(TDSPOLLWAKEUP *wakeup);
+
1548 void tds_wakeup_send(TDSPOLLWAKEUP *wakeup, char cancel);
+
1549 static inline TDS_SYS_SOCKET tds_wakeup_get_fd(const TDSPOLLWAKEUP *wakeup)
+
1550 {
+
1551  return wakeup->s_signaled;
+
1552 }
+
1553 
+
1554 
+
1555 /* packet.c */
+
1556 int tds_read_packet(TDSSOCKET * tds);
+
1557 TDSRET tds_write_packet(TDSSOCKET * tds, unsigned char final);
+
1558 #if ENABLE_ODBC_MARS
+
1559 int tds_append_cancel(TDSSOCKET *tds);
+
1560 TDSRET tds_append_syn(TDSSOCKET *tds);
+
1561 TDSRET tds_append_fin(TDSSOCKET *tds);
+
1562 #else
+
1563 int tds_put_cancel(TDSSOCKET * tds);
+
1564 #endif
+
1565 
+
1566 typedef struct tds_freeze {
+ + +
1572  unsigned pkt_pos;
+
1574  unsigned size_len;
+
1575 } TDSFREEZE;
+
1576 
+
1577 void tds_freeze(TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len);
+
1578 size_t tds_freeze_written(TDSFREEZE *freeze);
+
1579 TDSRET tds_freeze_abort(TDSFREEZE *freeze);
+
1580 TDSRET tds_freeze_close(TDSFREEZE *freeze);
+
1581 TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size);
+
1582 
+
1583 static void inline
+
1584 tds_set_current_send_packet(TDSSOCKET *tds, TDSPACKET *pkt)
+
1585 {
+
1586  tds->send_packet = pkt;
+
1587  tds->out_buf = pkt->buf + tds_packet_get_data_start(pkt);
+
1588 }
+
1589 
+
1590 /* Macros to allow some indentation of the packets.
+
1591  *
+
1592  * The 3 nested fake loops require some explanation:
+
1593  * - first is to allows to declare variables;
+
1594  * - second is to force using brackets;
+
1595  * - third is to avoids that a break inside will skip the close.
+
1596  */
+
1597 #define TDS_START_LEN_GENERIC(tds_socket, len) do { \
+
1598  TDSFREEZE current_freeze[1]; \
+
1599  tds_freeze((tds_socket), current_freeze, (len)); do { do
+
1600 #define TDS_END_LEN while(0); } while(tds_freeze_close(current_freeze), 0); } while(0);
+
1601 
+
1602 #define TDS_START_LEN_TINYINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 1)
+
1603 #define TDS_START_LEN_USMALLINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 2)
+
1604 #define TDS_START_LEN_UINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 4)
+
1605 
+
1606 /* vstrbuild.c */
+
1607 TDSRET tds_vstrbuild(char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen,
+
1608  va_list ap);
+
1609 
+
1610 
+
1611 /* numeric.c */
+
1612 char *tds_money_to_string(const TDS_MONEY * money, char *s, bool use_2_digits);
+
1613 TDS_INT tds_numeric_to_string(const TDS_NUMERIC * numeric, char *s);
+
1614 TDS_INT tds_numeric_change_prec_scale(TDS_NUMERIC * numeric, unsigned char new_prec, unsigned char new_scale);
+
1615 
+
1616 
+
1617 /* getmac.c */
+
1618 void tds_getmac(TDS_SYS_SOCKET s, unsigned char mac[6]);
+
1619 
+
1620 
+
1621 /* challenge.c */
+
1622 #ifndef HAVE_SSPI
+ +
1624 TDSAUTHENTICATION * tds_gss_get_auth(TDSSOCKET * tds);
+
1625 #else
+
1626 TDSAUTHENTICATION * tds_sspi_get_auth(TDSSOCKET * tds);
+
1627 #endif
+
1628 TDSRET tds5_gss_send(TDSSOCKET *tds);
+
1629 
+
1630 
+
1631 /* random.c */
+
1632 void tds_random_buffer(unsigned char *out, int len);
+
1633 
+
1634 
+
1635 /* sec_negotiate.c */
+
1636 TDSAUTHENTICATION * tds5_negotiate_get_auth(TDSSOCKET * tds);
+
1637 static inline
+
1638 void tds5_negotiate_set_msg_type(TDSAUTHENTICATION * tds_auth, unsigned msg_type)
+
1639 {
+
1640  if (tds_auth)
+
1641  tds_auth->msg_type = msg_type;
+
1642 }
+
1643 
+
1644 
+
1645 /* bulk.c */
+
1646 
+ +
1649 {
+
1650  TDS_BCP_IN = 1,
+
1651  TDS_BCP_OUT = 2,
+
1652  TDS_BCP_QUERYOUT = 3
+
1653 };
+
1654 
+ +
1656 {
+
1657  const char *hint;
+
1658  void *parent;
+
1659  DSTR tablename;
+
1660  TDS_CHAR *insert_stmt;
+
1661  TDS_INT direction;
+
1662  TDS_INT identity_insert_on;
+
1663  TDS_INT xfer_init;
+
1664  TDS_INT bind_count;
+
1665  TDSRESULTINFO *bindinfo;
+
1666 };
+
1667 
+
1668 TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
+
1669 typedef TDSRET (*tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset);
+
1670 typedef void (*tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset);
+
1671 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);
+
1672 TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied);
+
1673 TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
+
1674 TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
+
1675 
+
1676 TDSRET tds_bcp_fread(TDSSOCKET * tds, TDSICONV * conv, FILE * stream,
+
1677  const char *terminator, size_t term_len, char **outbuf, size_t * outbytes);
+
1678 
+
1679 TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size);
+
1680 TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size);
+
1681 TDSRET tds_writetext_end(TDSSOCKET *tds);
+
1682 
+
1683 
+
1684 static inline
+
1685 bool tds_capability_enabled(const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
+
1686 {
+
1687  return (cap->values[sizeof(cap->values)-1-(cap_num>>3)] >> (cap_num&7)) & 1;
+
1688 }
+
1689 #define tds_capability_has_req(conn, cap) \
+
1690  tds_capability_enabled(&conn->capabilities.types[0], cap)
+
1691 
+
1692 #define IS_TDS42(x) (x->tds_version==0x402)
+
1693 #define IS_TDS46(x) (x->tds_version==0x406)
+
1694 #define IS_TDS50(x) (x->tds_version==0x500)
+
1695 #define IS_TDS70(x) (x->tds_version==0x700)
+
1696 #define IS_TDS71(x) (x->tds_version==0x701)
+
1697 #define IS_TDS72(x) (x->tds_version==0x702)
+
1698 #define IS_TDS73(x) (x->tds_version==0x703)
+
1699 
+
1700 #define IS_TDS50_PLUS(x) ((x)->tds_version>=0x500)
+
1701 #define IS_TDS7_PLUS(x) ((x)->tds_version>=0x700)
+
1702 #define IS_TDS71_PLUS(x) ((x)->tds_version>=0x701)
+
1703 #define IS_TDS72_PLUS(x) ((x)->tds_version>=0x702)
+
1704 #define IS_TDS73_PLUS(x) ((x)->tds_version>=0x703)
+
1705 #define IS_TDS74_PLUS(x) ((x)->tds_version>=0x704)
+
1706 
+
1707 #define TDS_MAJOR(x) ((x)->tds_version >> 8)
+
1708 #define TDS_MINOR(x) ((x)->tds_version & 0xff)
+
1709 
+
1710 #define IS_TDSDEAD(x) (((x) == NULL) || (x)->state == TDS_DEAD)
+
1711 
+
1713 #define TDS_IS_SYBASE(x) (!((x)->conn->product_version & 0x80000000u))
+ +
1715 #define TDS_IS_MSSQL(x) (((x)->conn->product_version & 0x80000000u)!=0)
+ +
1720 #define TDS_MS_VER(maj,min,x) (0x80000000u|((maj)<<24)|((min)<<16)|(x))
+ +
1722 /* TODO test if not similar to ms one*/
+
1724 #define TDS_SYB_VER(maj,min,x) (((maj)<<24)|((min)<<16)|(x)<<8)
+ +
1726 #ifdef __cplusplus
+
1727 #if 0
+
1728 {
+
1729 #endif
+
1730 }
+
1731 #endif
+
1732 
+
1733 #include <freetds/popvis.h>
+
1734 
+
1735 #define TDS_PUT_INT(tds,v) tds_put_int((tds), ((TDS_INT)(v)))
+
1736 #define TDS_PUT_SMALLINT(tds,v) tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
+
1737 #define TDS_PUT_BYTE(tds,v) tds_put_byte((tds), ((unsigned char)(v)))
+
1738 
+
1739 #endif /* _tds_h_ */
+
+
int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Check if dynamic request must be unprepared.
Definition: query.c:1752
+
int tds7_get_instance_port(struct addrinfo *addr, const char *instance)
Get port of given instance.
Definition: net.c:1229
+
unsigned int bulk_copy
if bulk copy should be enabled
Definition: tds.h:557
+
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition: read.c:100
+
tds_states
values for tds->state
Definition: tds.h:790
+
TDS_USMALLINT tds_version
TDS version.
Definition: tds.h:521
+
Definition: proto.h:39
+
DSTR new_password
new password to set (TDS 7.2+)
Definition: tds.h:537
+
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
+
Store variant informations.
Definition: tds.h:605
+
TDSRET tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition: read.c:195
+
void tds_detach_results(TDSRESULTINFO *info)
Detach result info from it current socket.
Definition: mem.c:488
+
@ TDS_DONE_INXACT
transaction in progress
Definition: tds.h:255
+
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition: net.c:168
+
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server
Definition: tds.h:1108
+
bool has_status
true is ret_status is valid
Definition: tds.h:1246
+
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
+
unsigned pkt_pos
position in pkt
Definition: tds.h:1572
+
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition: mem.c:320
+
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition: query.c:1797
+
Definition: tds.h:575
+
TDS_INT month
month number (0-11)
Definition: tds.h:163
+
bool bulk_query
true is query sent was a bulk query so we need to switch state to QUERYING
Definition: tds.h:1245
+
TDS_INT second
0-59
Definition: tds.h:169
+
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2171
+
@ TDS_DONE_MORE_RESULTS
more results follow
Definition: tds.h:253
+
struct addrinfo * ip_addrs
ip(s) of server
Definition: tds.h:547
+
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition: tds.h:994
+
DSTR cafile
certificate authorities file
Definition: tds.h:531
+
unsigned size_len
length size (0, 1, 2 or 4)
Definition: tds.h:1574
+
void tdsdump_on(void)
Turn logging back on.
Definition: log.c:88
+
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition: tds.h:1204
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
@ TDS_IDLE
no data expected
Definition: tds.h:791
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
TDSCURSOR * cur_cursor
cursor in use
Definition: tds.h:1244
+
void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Set current dynamic.
Definition: query.c:192
+
TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id)
Allocate a dynamic statement.
Definition: mem.c:160
+
TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id)
Finds a dynamic given string id.
Definition: token.c:2583
+
Current environment as reported by the server.
Definition: tds.h:964
+
void tds_start_query(TDSSOCKET *tds, unsigned char packet_type)
Start query packet of a given type.
Definition: query.c:332
+
Definition: tds.h:1566
+
Definition: tds.h:512
+
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition: query.c:1630
+
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
+
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition: query.c:1929
+
Definition: tds.h:1086
+
Definition: tds.h:331
+
TDS_INT timezone
-840 - 840 minutes from UTC
Definition: tds.h:171
+
tds_func_put_data * put_data
Send column data to server.
Definition: tds.h:663
+
@ TDS_DONE_PROC
results are from a stored procedure
Definition: tds.h:256
+
TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...)
Format and submit a query.
Definition: query.c:467
+
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition: packet.c:527
+
struct tdsdaterec TDSDATEREC
Used by tds_datecrack.
+
Information about blobs (e.g.
Definition: tds.h:594
+
TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied)
Tell we finished sending BCP data to server.
Definition: bulk.c:810
+
void tds_freeze(TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len)
Stop writing to server and cache every packet not sending them to server.
Definition: packet.c:907
+
char * database
database name
Definition: tds.h:971
+
TDSRET tds_submit_begin_tran(TDSSOCKET *tds)
Send a rollback request.
Definition: query.c:3665
+
TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start sending BCP data to server.
Definition: bulk.c:840
+
TDS_INT year
year
Definition: tds.h:161
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
TDSPACKET * send_packet
packet we are preparing to send
Definition: tds.h:1232
+
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1259
+
TDS_INT cursor_rows
< number of updatable columns
Definition: tds.h:952
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition: log.c:112
+
bool defer_close
true if dynamic was marker to be closed when connection is idle
Definition: tds.h:998
+
Hold information for any results.
Definition: tds.h:770
+
Definition: iconv.h:92
+
unsigned char * out_buf
Output buffer.
Definition: tds.h:1186
+
@ TDS_SENDING
client would send data
Definition: tds.h:793
+
Definition: tds.h:1048
+
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition: tds.h:147
+
TDS_INT type
row fetched from this cursor
Definition: tds.h:957
+
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1094
+
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition: tds.h:942
+
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
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: tds.h:505
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
DSTR crlfile
certificate revocation file
Definition: tds.h:532
+
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
+
int tds_iconv_alloc(TDSCONNECTION *conn)
Allocate iconv stuff.
Definition: iconv.c:305
+
@ TDS_WRITING
client is writing data
Definition: tds.h:792
+
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
+
DSTR db_filename
database filename to attach (MSSQL)
Definition: tds.h:530
+
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:877
+
const char * tds_skip_quoted(const char *s)
Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])
Definition: query.c:515
+
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:127
+
unsigned char canonic
internal numeric index into array of all encodings
Definition: tds.h:625
+
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
+
tds_func_put_info * put_info
Send metadata column information to server.
Definition: tds.h:653
+
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server
Definition: tds.h:1113
+
Information relevant to libiconv.
Definition: tds.h:619
+
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition: query.c:210
+
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition: mem.c:800
+
bool in_row
true if we are getting rows
Definition: tds.h:1247
+
TDSRET tds_freeze_abort(TDSFREEZE *freeze)
Discard all data written after the freeze.
Definition: packet.c:961
+
char * query
saved query, we need to know original query if prepare is impossible
Definition: tds.h:1010
+
Definition: tds.h:893
+
DSTR server_spn
server SPN (in freetds.conf)
Definition: tds.h:529
+
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:227
+
TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
Return declaration for column (like "varchar(20)").
Definition: query.c:718
+
const char * tds_prtype(int token)
Returns string representation of the given type.
Definition: token.c:3052
+
Definition: tds.h:1030
+
TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds)
Build a NTLMSPP packet to send to server.
Definition: challenge.c:721
+
A structure to hold all the compile-time settings.
Definition: tds.h:83
+
char * charset
character set encoding
Definition: tds.h:969
+
TDSRET tds_process_login_tokens(TDSSOCKET *tds)
tds_process_login_tokens() is called after sending the login packet to the server.
Definition: token.c:410
+
const char * tds_skip_comment(const char *s)
Skip a comment in a query.
Definition: query.c:490
+
enum tds_states TDS_STATE
values for tds->state
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:940
+
int tds_count_placeholders(const char *query)
Count the number of placeholders ('?') in a query.
Definition: query.c:571
+
int port
port of database service
Definition: tds.h:520
+
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition: tds.h:1257
+
TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont)
Send a rollback request.
Definition: query.c:3693
+
int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen)
Loops until we have received some characters return -1 on failure.
Definition: net.c:916
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
+
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
+
struct tds_env TDSENV
Current environment as reported by the server.
+
DSTR server_charset
charset of server e.g.
Definition: tds.h:524
+
char * cursor_name
name of the cursor
Definition: tds.h:941
+
struct tds_blob TDSBLOB
Information about blobs (e.g.
+
TDSRET tds_set_interfaces_file_loc(const char *interfloc)
Set the full name of interface file.
Definition: config.c:965
+
TDSPACKET * pkt
first packet frozen
Definition: tds.h:1570
+
Definition: tds.h:644
+
int determine_adjusted_size(const TDSICONV *char_conv, int size)
Allow for maximum possible size of converted data, while being careful about integer division truncat...
Definition: token.c:3280
+
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
+
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
+
size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len)
Quote a string.
Definition: query.c:2241
+
char * query
SQL query.
Definition: tds.h:948
+
struct tds_cursor * next
next in linked list, keep first
Definition: tds.h:939
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
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
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition: login.c:125
+
void tdsdump_off(void)
Temporarily turn off logging.
Definition: log.c:76
+
int block_size
packet size (512-65535)
Definition: tds.h:966
+
struct tds_variant TDSVARIANT
Store variant informations.
+
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
+
@ TDS_DONE_SRVERROR
SQL server server error.
Definition: tds.h:260
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
TDS_INT quarter
quarter (0-3)
Definition: tds.h:162
+
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:1249
+
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
+
bool defer_close
true if cursor was marker to be closed when connection is idle
Definition: tds.h:947
+
TDSPARAMINFO * params
query parameters.
Definition: tds.h:1008
+
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:530
+
TDS_INT minute
0-59
Definition: tds.h:168
+
TDS_UINT8 tds_get_uint8(TDSSOCKET *tds)
Get an uint64 from the server.
Definition: read.c:140
+
TDS_TINYINT options
read only|updatable TODO use it
Definition: tds.h:943
+
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:2750
+
TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size)
Stop keeping data for this specific freeze.
Definition: packet.c:1031
+
const char * name
name of the encoding (ie UTF-8)
Definition: tds.h:621
+
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition: mem.c:206
+
unsigned data_len
data length, this does not account SMP header, only TDS part
Definition: tds.h:1072
+
@ TDS_DONE_CANCELLED
acknowledging an attention command (usually a cancel)
Definition: tds.h:258
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
@ TDS_DONE_ERROR
error occurred
Definition: tds.h:254
+
TDS_INT decimicrosecond
0-9999999
Definition: tds.h:170
+
TDS_SYS_SOCKET s
tcp socket, INVALID_SOCKET if not connected
Definition: tds.h:1097
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
Holds informations about a cursor.
Definition: tds.h:938
+
unsigned char out_flag
output buffer type
Definition: tds.h:1197
+
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:612
+
TDS_INT day
day of month (1-31)
Definition: tds.h:164
+
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
+
Definition: tds.h:877
+
TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Submit a prepared query with parameters.
Definition: query.c:1256
+
Definition: tds.h:1656
+
Definition: tds.h:518
+
void * tds_realloc(void **pp, size_t new_size)
Reallocate a pointer and update it if success.
Definition: mem.c:1876
+
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
+
TDSRET tds_freeze_close(TDSFREEZE *freeze)
Stop keeping data for this specific freeze.
Definition: packet.c:996
+
unsigned out_pos
current position in out_buf
Definition: tds.h:1194
+
struct tds_dynamic TDSDYNAMIC
Holds information for a dynamic (also called prepared) query.
+
TDS_INT num_id
numeric id for mssql7+
Definition: tds.h:982
+
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:408
+
unsigned int pending_close
true is connection has pending closing (cursors or dynamic)
Definition: tds.h:1124
+
struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
A structure to hold all the compile-time settings.
+
struct tds_cursor TDSCURSOR
Holds informations about a cursor.
+
TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Initialize BCP information.
Definition: bulk.c:82
+
TDSPARAMINFO * res_info
query results
Definition: tds.h:1000
+
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
+
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:1234
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
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
+
TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login)
Set TDS version from given string.
Definition: config.c:922
+
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:1156
+
TDS_SMALLINT offset
time offset
Definition: tds.h:150
+
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition: tds.h:166
+
tds_bcp_directions
bcp direction
Definition: tds.h:1649
+
Definition: tds.h:629
+
Definition: tds.h:1058
+
TDSLOCALE * tds_get_locale(void)
Get locale information.
Definition: locale.c:50
+
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
+
TDS_UINT8 time
time, 7 digit precision
Definition: tds.h:148
+
Used by tds_datecrack.
Definition: tds.h:160
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:980
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
Definition: tds.h:907
+
Definition: proto.h:26
+
size_t tds_freeze_written(TDSFREEZE *freeze)
Compute how many bytes has been written from freeze.
Definition: packet.c:935
+
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition: tds_types.h:9
+
TDSSOCKET * tds
which socket we refer to
Definition: tds.h:1568
+
Definition: thread.h:278
+
bool tds_read_conf_file(TDSLOGIN *login, const char *server)
Read configuration info for given server return 0 on error.
Definition: config.c:346
+
struct tds_dynamic * next
next in linked list, keep first
Definition: tds.h:979
+
Definition: tds.h:583
+
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition: bulk.c:1173
+
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition: config.c:285
+
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1251
+
DSTR password
password of account login
Definition: tds.h:536
+
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
+
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition: convert.c:3122
+
TDSRET tds_submit_commit(TDSSOCKET *tds, int cont)
Send a commit request.
Definition: query.c:3724
+
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
+
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:1341
+
int tds7_get_instance_ports(FILE *output, struct addrinfo *addr)
Get port of all instances.
Definition: net.c:1093
+
TDS_INT bcp_prefix_len
The length, in bytes, of any length prefix this column may have.
Definition: tds.h:762
+
@ TDS_DONE_COUNT
count field in packet is valid
Definition: tds.h:257
+
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition: data.c:249
+
const char * tds_next_placeholder(const char *start)
Get position of next placeholder.
Definition: query.c:535
+
void tds_release_dynamic(TDSDYNAMIC **dyn)
Frees dynamic statement.
Definition: mem.c:253
+
struct tds_encoding TDS_ENCODING
Information relevant to libiconv.
+
void tdsdump_col(const TDSCOLUMN *col)
Write a column value to the debug log.
Definition: log.c:408
+
TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Unprepare dynamic on idle.
Definition: query.c:1774
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1192
+
int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
Definition: net.c:987
+
char * tds_get_home_file(const char *file)
Return filename from HOME directory.
Definition: config.c:325
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
TDS_INT hour
0-23
Definition: tds.h:167
+
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition: query.c:1491
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
Definition: tds.h:1092
+
Definition: tds.h:496
+
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
+
DSTR user_name
account for login
Definition: tds.h:535
+
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
+
struct tds_result_info TDSRESULTINFO
Hold information for any results.
+
@ TDS_DONE_FINAL
final result set, command completed successfully.
Definition: tds.h:252
+
TDS_INT dayofyear
day of year (1-366)
Definition: tds.h:165
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
unsigned char in_flag
input buffer type
Definition: tds.h:1196
+
tds_end
Flags returned in TDS_DONE token.
Definition: tds.h:251
+
TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor)
Deallocate cursor on idle.
Definition: query.c:3057
+
struct addrinfo * tds_lookup_host(const char *servername)
Get the IP address for a hostname.
Definition: config.c:991
+
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:1118
+
TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start bulk copy to server.
Definition: bulk.c:887
+
TDS_CURSOR_STATUS status
cursor parameter
Definition: tds.h:954
+
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:337
+
Definition: tds.h:1020
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
TDS_INT date
date, 0 = 1900-01-01
Definition: tds.h:149
+
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:1048
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+
void tdsdump_close(void)
Close the TDS dump log file.
Definition: log.c:193
+
@ TDS_READING
client is reading data
Definition: tds.h:795
+
DSTR server_realm_name
server realm name (in freetds.conf)
Definition: tds.h:528
+
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition: query.c:3006
+
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition: numeric.c:95
diff -Nru freetds-1.1.6/doc/reference/a00438.map freetds-1.2.3/doc/reference/a00438.map --- freetds-1.1.6/doc/reference/a00438.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00438.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00438.md5 freetds-1.2.3/doc/reference/a00438.md5 --- freetds-1.1.6/doc/reference/a00438.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00438.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +f56c7ea9a6f36e4f0506665c71291a0f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00438.svg freetds-1.2.3/doc/reference/a00438.svg --- freetds-1.1.6/doc/reference/a00438.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00438.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,376 @@ + + + + + + +include/freetds/tds.h + + + +Node1 + + +include/freetds/tds.h + + + + + +Node2 + + +stdarg.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + +Node4 + + +time.h + + + + + +Node1->Node4 + + + + + +Node5 + + +freetds/version.h + + + + + +Node1->Node5 + + + + + +Node6 + + +tds_sysdep_public.h + + + + + +Node1->Node6 + + + + + +Node8 + + +freetds/sysdep_private.h + + + + + +Node1->Node8 + + + + + +Node9 + + +freetds/thread.h + + + + + +Node1->Node9 + + + + + +Node10 + + +freetds/bool.h + + + + + +Node1->Node10 + + + + + +Node11 + + +freetds/macros.h + + + + + +Node1->Node11 + + + + + +Node12 + + +freetds/utils/string.h + + + + + +Node1->Node12 + + + + + +Node13 + + +freetds/pushvis.h + + + + + +Node1->Node13 + + + + + +Node14 + + +freetds/popvis.h + + + + + +Node1->Node14 + + + + + +Node15 + + +replacements.h + + + + + +Node1->Node15 + + + + + +Node19 + + +freetds/proto.h + + + + + +Node1->Node19 + + + + + +Node4->Node4 + + + + + +Node7 + + +float.h + + + + + +Node6->Node7 + + + + + +Node9->Node6 + + + + + +Node12->Node11 + + + + + +Node12->Node13 + + + + + +Node12->Node14 + + + + + +Node15->Node2 + + + + + +Node15->Node6 + + + + + +Node15->Node8 + + + + + +Node15->Node13 + + + + + +Node15->Node14 + + + + + +Node16 + + +replacements/readpassphrase.h + + + + + +Node15->Node16 + + + + + +Node17 + + +replacements/poll.h + + + + + +Node15->Node17 + + + + + +Node16->Node13 + + + + + +Node16->Node14 + + + + + +Node17->Node13 + + + + + +Node17->Node14 + + + + + +Node18 + + +config.h + + + + + +Node17->Node18 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00439.map freetds-1.2.3/doc/reference/a00439.map --- freetds-1.1.6/doc/reference/a00439.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00439.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00439.md5 freetds-1.2.3/doc/reference/a00439.md5 --- freetds-1.1.6/doc/reference/a00439.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00439.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +fe0f48a33ec7447c1b939b03e7da6ee2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00439.svg freetds-1.2.3/doc/reference/a00439.svg --- freetds-1.1.6/doc/reference/a00439.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00439.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,202 @@ + + + + + + +include/freetds/tds.h + + + +Node1 + + +include/freetds/tds.h + + + + + +Node2 + + +src/dblib/bcp.c + + + + + +Node1->Node2 + + + + + +Node3 + + +src/dblib/dblib.c + + + + + +Node1->Node3 + + + + + +Node4 + + +src/pool/pool.h + + + + + +Node1->Node4 + + + + + +Node5 + + +src/replacements/iconv.c + + + + + +Node1->Node5 + + + + + +Node6 + + +src/tds/bulk.c + + + + + +Node1->Node6 + + + + + +Node7 + + +src/tds/data.c + + + + + +Node1->Node7 + + + + + +Node8 + + +src/tds/iconv.c + + + + + +Node1->Node8 + + + + + +Node9 + + +src/tds/read.c + + + + + +Node1->Node9 + + + + + +Node10 + + +src/tds/stream.c + + + + + +Node1->Node10 + + + + + +Node11 + + +src/tds/token.c + + + + + +Node1->Node11 + + + + + +Node12 + + +include/ctlib.h + + + + + +Node1->Node12 + + + + + +Node13 + + +include/freetds/odbc.h + + + + + +Node1->Node13 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00440_source.html freetds-1.2.3/doc/reference/a00440_source.html --- freetds-1.1.6/doc/reference/a00440_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00440_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/tls.h Source File +FreeTDS API: include/freetds/thread.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
tls.h
+
thread.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_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>
43 
44 #if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
45 TDSRET tds_ssl_init(TDSSOCKET *tds);
46 void tds_ssl_deinit(TDSCONNECTION *conn);
47 
48 # ifdef HAVE_GNUTLS
49 
50 static inline int
51 tds_ssl_pending(TDSCONNECTION *conn)
52 {
53  return gnutls_record_check_pending((gnutls_session_t) conn->tls_session);
54 }
55 
56 static inline int
57 tds_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 
62 static inline int
63 tds_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 
69 /* compatibility for LibreSSL 2.7 */
70 #ifdef LIBRESSL_VERSION_NUMBER
71 #define TLS_ST_OK SSL_ST_OK
72 #endif
73 
74 static inline int
75 tds_ssl_pending(TDSCONNECTION *conn)
76 {
77  return SSL_pending((SSL *) conn->tls_session);
78 }
79 
80 static inline int
81 tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
82 {
83  return SSL_read((SSL *) conn->tls_session, buf, buflen);
84 }
85 
86 static inline int
87 tds_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
93 static inline TDSRET
94 tds_ssl_init(TDSSOCKET *tds)
95 {
96  return TDS_FAIL;
97 }
98 
99 static inline void
100 tds_ssl_deinit(TDSCONNECTION *conn)
101 {
102 }
103 
104 static inline int
105 tds_ssl_pending(TDSCONNECTION *conn)
106 {
107  return 0;
108 }
109 
110 static inline int
111 tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
112 {
113  return -1;
114 }
115 
116 static inline int
117 tds_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_ */
Information for a server connection.
Definition: tds.h:1141
-
Definition: tds.h:1069
+
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 
+
35 typedef pthread_mutex_t tds_raw_mutex;
+
36 #define TDS_RAW_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
+
37 
+
38 static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
+
39 {
+
40  pthread_mutex_lock(mtx);
+
41 }
+
42 
+
43 static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
+
44 {
+
45  return pthread_mutex_trylock(mtx);
+
46 }
+
47 
+
48 static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
+
49 {
+
50  pthread_mutex_unlock(mtx);
+
51 }
+
52 
+
53 static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
+
54 {
+
55  return pthread_mutex_init(mtx, NULL);
+
56 }
+
57 
+
58 static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
+
59 {
+
60  pthread_mutex_destroy(mtx);
+
61 }
+
62 
+
63 typedef pthread_cond_t tds_condition;
+
64 
+
65 int tds_raw_cond_init(tds_condition *cond);
+
66 static inline int tds_raw_cond_destroy(tds_condition *cond)
+
67 {
+
68  return pthread_cond_destroy(cond);
+
69 }
+
70 static inline int tds_raw_cond_signal(tds_condition *cond)
+
71 {
+
72  return pthread_cond_signal(cond);
+
73 }
+
74 static inline int tds_raw_cond_wait(tds_condition *cond, tds_raw_mutex *mtx)
+
75 {
+
76  return pthread_cond_wait(cond, mtx);
+
77 }
+
78 int tds_raw_cond_timedwait(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
+
79 
+
80 #define TDS_HAVE_MUTEX 1
+
81 
+
82 typedef pthread_t tds_thread;
+
83 typedef pthread_t tds_thread_id;
+
84 typedef 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 static 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 
+
94 static 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 
+
103 static inline int tds_thread_join(tds_thread th, void **ret)
+
104 {
+
105  return pthread_join(th, ret);
+
106 }
+
107 
+
108 static inline tds_thread_id tds_thread_get_current_id(void)
+
109 {
+
110  return pthread_self();
+
111 }
+
112 
+
113 static 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 
+
130 struct ptw32_mcs_node_t_;
+
131 
+
132 typedef struct {
+
133  struct ptw32_mcs_node_t_ *lock;
+
134  LONG done;
+
135  DWORD thread_id;
+
136  CRITICAL_SECTION crit;
+
137 } tds_raw_mutex;
+
138 
+
139 #define TDS_RAW_MUTEX_INITIALIZER { NULL, 0, 0 }
+
140 
+
141 static inline int
+
142 tds_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 
+
150 void tds_win_mutex_lock(tds_raw_mutex *mutex);
+
151 
+
152 static 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 
+
162 int tds_raw_mutex_trylock(tds_raw_mutex *mtx);
+
163 
+
164 static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
+
165 {
+
166  mtx->thread_id = 0;
+
167  LeaveCriticalSection(&mtx->crit);
+
168 }
+
169 
+
170 static 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 */
+
181 typedef void *TDS_CONDITION_VARIABLE;
+
182 typedef union {
+
183  HANDLE ev;
+
184  TDS_CONDITION_VARIABLE cv;
+
185 } tds_condition;
+
186 
+
187 extern int (*tds_raw_cond_init)(tds_condition *cond);
+
188 extern int (*tds_raw_cond_destroy)(tds_condition *cond);
+
189 extern int (*tds_raw_cond_signal)(tds_condition *cond);
+
190 extern int (*tds_raw_cond_timedwait)(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
+
191 static 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 
+
196 typedef HANDLE tds_thread;
+
197 typedef DWORD tds_thread_id;
+
198 typedef 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 
+
203 static 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 
+
209 static 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 
+
218 static 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 
+
235 static inline tds_thread_id tds_thread_get_current_id(void)
+
236 {
+
237  return GetCurrentThreadId();
+
238 }
+
239 
+
240 static 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" */
+
250 typedef struct {
+
251  char dummy[0]; /* compiler compatibility */
+
252 } tds_raw_mutex;
+
253 
+
254 #define TDS_RAW_MUTEX_INITIALIZER {}
+
255 
+
256 static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
+
257 {
+
258 }
+
259 
+
260 static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
+
261 {
+
262  return 0;
+
263 }
+
264 
+
265 static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
+
266 {
+
267 }
+
268 
+
269 static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
+
270 {
+
271  return 0;
+
272 }
+
273 
+
274 static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
+
275 {
+
276 }
+
277 
+
278 typedef struct {
+
279  char dummy[0]; /* compiler compatibility */
+
280 } tds_condition;
+
281 
+
282 static inline int tds_raw_cond_init(tds_condition *cond)
+
283 {
+
284  return 0;
+
285 }
+
286 static 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 
+
299 typedef struct {
+
300  char dummy[0]; /* compiler compatibility */
+
301 } tds_thread;
+
302 typedef int tds_thread_id;
+
303 
+
304 typedef 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 
+
318 static inline tds_thread_id tds_thread_get_current_id(void)
+
319 {
+
320  return 0;
+
321 }
+
322 
+
323 static 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 
+
347 typedef 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 
+
356 static 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 
+
365 static 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 
+
378 static 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 
+
385 static 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 
+
395 static inline int tds_mutex_init(tds_mutex *mtx)
+
396 {
+
397  mtx->locked = 0;
+
398  return tds_raw_mutex_init(&mtx->mtx);
+
399 }
+
400 
+
401 static inline void tds_mutex_free(tds_mutex *mtx)
+
402 {
+
403  assert(mtx && !mtx->locked);
+
404  tds_raw_mutex_free(&mtx->mtx);
+
405 }
+
406 
+
407 static 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 
+
418 static 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: thread.h:250
+
Definition: thread.h:299
+
Definition: ptw32_MCS_lock.c:98
+
Definition: thread.h:278
diff -Nru freetds-1.1.6/doc/reference/a00443_source.html freetds-1.2.3/doc/reference/a00443_source.html --- freetds-1.1.6/doc/reference/a00443_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00443_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/bjoern-utf8.h Source File +FreeTDS API: include/freetds/time.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
bjoern-utf8.h
+
time.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.
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 
18 extern const uint8_t utf8_table[];
19 
20 static inline uint32_t
21 decode_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 
29  *state = utf8_table[256 + *state + type];
30  return *state;
31 }
+
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 
+
diff -Nru freetds-1.1.6/doc/reference/a00446_source.html freetds-1.2.3/doc/reference/a00446_source.html --- freetds-1.1.6/doc/reference/a00446_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00446_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/des.h Source File +FreeTDS API: include/freetds/tls.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
des.h
+
tls.h
-
1 #ifndef DES_H
2 #define DES_H
3 
4 #ifdef HAVE_NETTLE
5 #include <nettle/des.h>
6 
7 typedef struct des_ctx DES_KEY;
8 #endif
9 
10 #include <freetds/pushvis.h>
11 
12 typedef uint8_t des_cblock[8];
13 
14 #ifndef HAVE_NETTLE
15 typedef 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 
23 int tds_des_set_key(DES_KEY * dkey, const des_cblock user_key, int len);
24 void tds_des_encrypt(const DES_KEY * key, des_cblock block);
25 #endif
26 
27 void tds_des_set_odd_parity(des_cblock key);
28 int 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
33 static 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 
38 static 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:15
+
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_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>
+
43 
+
44 #if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
+
45 TDSRET tds_ssl_init(TDSSOCKET *tds);
+
46 void tds_ssl_deinit(TDSCONNECTION *conn);
+
47 
+
48 # ifdef HAVE_GNUTLS
+
49 
+
50 static inline int
+
51 tds_ssl_pending(TDSCONNECTION *conn)
+
52 {
+
53  return gnutls_record_check_pending((gnutls_session_t) conn->tls_session);
+
54 }
+
55 
+
56 static inline int
+
57 tds_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 
+
62 static inline int
+
63 tds_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 
+
69 /* compatibility for LibreSSL 2.7 */
+
70 #ifdef LIBRESSL_VERSION_NUMBER
+
71 #define TLS_ST_OK SSL_ST_OK
+
72 #endif
+
73 
+
74 static inline int
+
75 tds_ssl_pending(TDSCONNECTION *conn)
+
76 {
+
77  return SSL_pending((SSL *) conn->tls_session);
+
78 }
+
79 
+
80 static inline int
+
81 tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
+
82 {
+
83  return SSL_read((SSL *) conn->tls_session, buf, buflen);
+
84 }
+
85 
+
86 static inline int
+
87 tds_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
+
93 static inline TDSRET
+
94 tds_ssl_init(TDSSOCKET *tds)
+
95 {
+
96  return TDS_FAIL;
+
97 }
+
98 
+
99 static inline void
+
100 tds_ssl_deinit(TDSCONNECTION *conn)
+
101 {
+
102 }
+
103 
+
104 static inline int
+
105 tds_ssl_pending(TDSCONNECTION *conn)
+
106 {
+
107  return 0;
+
108 }
+
109 
+
110 static inline int
+
111 tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
+
112 {
+
113  return -1;
+
114 }
+
115 
+
116 static inline int
+
117 tds_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_ */
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: tds.h:1092
diff -Nru freetds-1.1.6/doc/reference/a00449_source.html freetds-1.2.3/doc/reference/a00449_source.html --- freetds-1.1.6/doc/reference/a00449_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00449_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/dlist.h Source File +FreeTDS API: include/freetds/utils/bjoern-utf8.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
dlist.h
+
bjoern-utf8.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 
23 typedef struct dlist_ring {
24  struct dlist_ring *next;
25  struct dlist_ring *prev;
26 } dlist_ring;
27 
28 #if ENABLE_EXTRA_CHECKS
29 void 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 
38 static 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
+
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.
+
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 
+
18 extern const uint8_t utf8_table[];
+
19 
+
20 static inline uint32_t
+
21 decode_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 
+
29  *state = utf8_table[256 + *state + type];
+
30  return *state;
+
31 }
diff -Nru freetds-1.1.6/doc/reference/a00452_source.html freetds-1.2.3/doc/reference/a00452_source.html --- freetds-1.1.6/doc/reference/a00452_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00452_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/dlist.tmpl.h Source File +FreeTDS API: include/freetds/utils/des.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
dlist.tmpl.h
+
des.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 #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 
33 typedef 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 static 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 
52 static 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 
58 static 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 
63 static 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 
68 static 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 
73 static 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 
78 static 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 
85 static 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 
92 static 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 
105 static 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.tmpl.h:33
-
Definition: dlist.h:23
+
1 #ifndef DES_H
+
2 #define DES_H
+
3 
+
4 #ifdef HAVE_NETTLE
+
5 #include <nettle/des.h>
+
6 
+
7 typedef struct des_ctx DES_KEY;
+
8 #endif
+
9 
+
10 #include <freetds/pushvis.h>
+
11 
+
12 typedef uint8_t des_cblock[8];
+
13 
+
14 #ifndef HAVE_NETTLE
+
15 typedef 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 
+
23 int tds_des_set_key(DES_KEY * dkey, const des_cblock user_key, int len);
+
24 void tds_des_encrypt(const DES_KEY * key, des_cblock block);
+
25 #endif
+
26 
+
27 void tds_des_set_odd_parity(des_cblock key);
+
28 int 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
+
33 static 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 
+
38 static 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
diff -Nru freetds-1.1.6/doc/reference/a00455_source.html freetds-1.2.3/doc/reference/a00455_source.html --- freetds-1.1.6/doc/reference/a00455_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00455_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/hmac_md5.h Source File +FreeTDS API: include/freetds/utils/dlist.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
hmac_md5.h
+
dlist.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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 _hmac_md5_h_
21 #define _hmac_md5_h_
22 
23 #include <freetds/pushvis.h>
24 void 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
+
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 
+
23 typedef struct dlist_ring {
+
24  struct dlist_ring *next;
+
25  struct dlist_ring *prev;
+
26 } dlist_ring;
+
27 
+
28 #if ENABLE_EXTRA_CHECKS
+
29 void 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 
+
38 static 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
diff -Nru freetds-1.1.6/doc/reference/a00458_source.html freetds-1.2.3/doc/reference/a00458_source.html --- freetds-1.1.6/doc/reference/a00458_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00458_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/md4.h Source File +FreeTDS API: include/freetds/utils/dlist.tmpl.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
md4.h
+
dlist.tmpl.h
-
1 #ifndef MD4_H
2 #define MD4_H
3 
4 #ifndef HAVE_NETTLE
5 
6 #include <freetds/pushvis.h>
7 
8 struct MD4Context
9 {
10  uint32_t buf[4];
11  uint64_t bytes;
12  uint32_t in[16];
13 };
14 
15 void MD4Init(struct MD4Context *context);
16 void MD4Update(struct MD4Context *context, const uint8_t *buf, size_t len);
17 void MD4Final(struct MD4Context *context, uint8_t *digest);
18 
19 typedef struct MD4Context MD4_CTX;
20 
21 #include <freetds/popvis.h>
22 
23 #else
24 
25 #include <nettle/md4.h>
26 
27 typedef struct md4_ctx MD4_CTX;
28 
29 static inline void MD4Init(MD4_CTX *ctx)
30 {
31  nettle_md4_init(ctx);
32 }
33 
34 static inline void MD4Update(MD4_CTX *ctx, const uint8_t *buf, size_t len)
35 {
36  nettle_md4_update(ctx, len, buf);
37 }
38 
39 static 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:8
+
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 #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 
+
33 typedef 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 static 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 
+
52 static 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 
+
58 static 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 
+
63 static 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 
+
68 static 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 
+
73 static 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 
+
78 static 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 
+
85 static 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 
+
92 static 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 
+
105 static 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
diff -Nru freetds-1.1.6/doc/reference/a00461_source.html freetds-1.2.3/doc/reference/a00461_source.html --- freetds-1.1.6/doc/reference/a00461_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00461_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/md5.h Source File +FreeTDS API: include/freetds/utils/hmac_md5.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
md5.h
+
hmac_md5.h
-
1 #ifndef MD5_H
2 #define MD5_H
3 
4 #ifndef HAVE_NETTLE
5 
6 #include <freetds/pushvis.h>
7 
8 struct MD5Context {
9  uint32_t buf[4];
10  uint64_t bytes;
11  uint32_t in[16];
12 };
13 
14 void MD5Init(struct MD5Context *context);
15 void MD5Update(struct MD5Context *context, const uint8_t *buf, size_t len);
16 void MD5Final(struct MD5Context *context, uint8_t *digest);
17 
18 /*
19  * This is needed to make RSAREF happy on some MS-DOS compilers.
20  */
21 typedef struct MD5Context MD5_CTX;
22 
23 #include <freetds/popvis.h>
24 
25 #else
26 
27 #include <nettle/md5.h>
28 
29 typedef struct md5_ctx MD5_CTX;
30 
31 static inline void MD5Init(MD5_CTX *ctx)
32 {
33  nettle_md5_init(ctx);
34 }
35 
36 static inline void MD5Update(MD5_CTX *ctx, const uint8_t *buf, size_t len)
37 {
38  nettle_md5_update(ctx, len, buf);
39 }
40 
41 static 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
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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 _hmac_md5_h_
+
21 #define _hmac_md5_h_
+
22 
+
23 #include <freetds/pushvis.h>
+
24 void 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
diff -Nru freetds-1.1.6/doc/reference/a00464_source.html freetds-1.2.3/doc/reference/a00464_source.html --- freetds-1.1.6/doc/reference/a00464_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00464_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils/string.h Source File +FreeTDS API: include/freetds/utils/md4.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
string.h
+
md4.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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 
36 typedef struct tds_dstr {
37  size_t dstr_size;
38  char dstr_s[1];
39 } *DSTR;
40 
42 extern const struct tds_dstr tds_str_empty;
43 
49 #define DSTR_INITIALIZER ((struct tds_dstr*) &tds_str_empty)
50 
52 static inline void
54 {
55  *(s) = DSTR_INITIALIZER;
56 }
57 
59 static inline int
61 {
62  return (*s)->dstr_size == 0;
63 }
64 
70 static inline char *
72 {
73  return (*s)->dstr_s;
74 }
75 
77 static inline const char *
78 tds_dstr_cstr(const DSTR * s)
79 {
80  return (*s)->dstr_s;
81 }
82 
84 static inline size_t
85 tds_dstr_len(const DSTR * s)
86 {
87  return (*s)->dstr_size;
88 }
89 
91 #define tds_dstr_empty(s) \
92  tds_dstr_free(s)
93 
94 void tds_dstr_zero(DSTR * s);
95 void tds_dstr_free(DSTR * s);
96 
97 DSTR* tds_dstr_dup(DSTR * s, const DSTR * src) TDS_WUR;
98 DSTR* tds_dstr_copy(DSTR * s, const char *src) TDS_WUR;
99 DSTR* tds_dstr_copyn(DSTR * s, const char *src, size_t length) TDS_WUR;
100 DSTR* tds_dstr_set(DSTR * s, char *src) TDS_WUR;
101 
102 DSTR* tds_dstr_setlen(DSTR *s, size_t length);
103 DSTR* tds_dstr_alloc(DSTR *s, size_t length) TDS_WUR;
104 
107 #include <freetds/popvis.h>
108 
109 #endif /* _tdsstring_h_ */
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
-
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
-
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
-
Structure to hold a string.
Definition: string.h:36
-
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
-
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
-
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition: tdsstring.c:134
-
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
-
struct tds_dstr * DSTR
Structure to hold a string.
-
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition: tdsstring.c:107
-
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
-
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition: string.h:49
-
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
-
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
-
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition: tdsstring.c:55
+
1 #ifndef MD4_H
+
2 #define MD4_H
+
3 
+
4 #ifndef HAVE_NETTLE
+
5 
+
6 #include <freetds/pushvis.h>
+
7 
+
8 struct MD4Context
+
9 {
+
10  uint32_t buf[4];
+
11  uint64_t bytes;
+
12  uint32_t in[16];
+
13 };
+
14 
+
15 void MD4Init(struct MD4Context *context);
+
16 void MD4Update(struct MD4Context *context, const uint8_t *buf, size_t len);
+
17 void MD4Final(struct MD4Context *context, uint8_t *digest);
+
18 
+
19 typedef struct MD4Context MD4_CTX;
+
20 
+
21 #include <freetds/popvis.h>
+
22 
+
23 #else
+
24 
+
25 #include <nettle/md4.h>
+
26 
+
27 typedef struct md4_ctx MD4_CTX;
+
28 
+
29 static inline void MD4Init(MD4_CTX *ctx)
+
30 {
+
31  nettle_md4_init(ctx);
+
32 }
+
33 
+
34 static inline void MD4Update(MD4_CTX *ctx, const uint8_t *buf, size_t len)
+
35 {
+
36  nettle_md4_update(ctx, len, buf);
+
37 }
+
38 
+
39 static 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
diff -Nru freetds-1.1.6/doc/reference/a00467_source.html freetds-1.2.3/doc/reference/a00467_source.html --- freetds-1.1.6/doc/reference/a00467_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00467_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/utils.h Source File +FreeTDS API: include/freetds/utils/md5.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
utils.h
+
md5.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>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 void tds_sleep_s(unsigned sec);
37 void tds_sleep_ms(unsigned ms);
38 
39 char *tds_getpassarg(char *arg);
40 
41 char *tds_timestamp_str(char *str, int maxlen);
42 struct tm *tds_localtime_r(const time_t *timep, struct tm *result);
43 int tds_getservice(const char *name);
44 char *tds_get_homedir(void);
45 
46 int 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
+
1 #ifndef MD5_H
+
2 #define MD5_H
+
3 
+
4 #ifndef HAVE_NETTLE
+
5 
+
6 #include <freetds/pushvis.h>
+
7 
+
8 struct MD5Context {
+
9  uint32_t buf[4];
+
10  uint64_t bytes;
+
11  uint32_t in[16];
+
12 };
+
13 
+
14 void MD5Init(struct MD5Context *context);
+
15 void MD5Update(struct MD5Context *context, const uint8_t *buf, size_t len);
+
16 void MD5Final(struct MD5Context *context, uint8_t *digest);
+
17 
+
18 /*
+
19  * This is needed to make RSAREF happy on some MS-DOS compilers.
+
20  */
+
21 typedef struct MD5Context MD5_CTX;
+
22 
+
23 #include <freetds/popvis.h>
+
24 
+
25 #else
+
26 
+
27 #include <nettle/md5.h>
+
28 
+
29 typedef struct md5_ctx MD5_CTX;
+
30 
+
31 static inline void MD5Init(MD5_CTX *ctx)
+
32 {
+
33  nettle_md5_init(ctx);
+
34 }
+
35 
+
36 static inline void MD5Update(MD5_CTX *ctx, const uint8_t *buf, size_t len)
+
37 {
+
38  nettle_md5_update(ctx, len, buf);
+
39 }
+
40 
+
41 static 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
diff -Nru freetds-1.1.6/doc/reference/a00470_source.html freetds-1.2.3/doc/reference/a00470_source.html --- freetds-1.1.6/doc/reference/a00470_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00470_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/version.h Source File +FreeTDS API: include/freetds/utils/string.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
version.h
+
string.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 _tdsversion_h_
21 #define _tdsversion_h_
22 
23 /* $Id: 9640daf619734147e3b5ff6a1dad56ad305ffa51 $ */
24 
25 #define TDS_VERSION_NO "freetds v1.1.6"
26 
27 #define TDS_VERSION_MAJOR 1
28 #define TDS_VERSION_MINOR 1
29 #define TDS_VERSION_SUBVERSION 6
30 #define TDS_VERSION_BUILD_NUMBER 7073
31 
32 #endif
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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 
+
36 typedef struct tds_dstr {
+
37  size_t dstr_size;
+
38  char dstr_s[1];
+
39 } *DSTR;
+
40 
+
42 extern const struct tds_dstr tds_str_empty;
+
43 
+
49 #define DSTR_INITIALIZER ((struct tds_dstr*) &tds_str_empty)
+
50 
+
52 static inline void
+ +
54 {
+
55  *(s) = DSTR_INITIALIZER;
+
56 }
+
57 
+
59 static inline int
+ +
61 {
+
62  return (*s)->dstr_size == 0;
+
63 }
+
64 
+
70 static inline char *
+ +
72 {
+
73  return (*s)->dstr_s;
+
74 }
+
75 
+
77 static inline const char *
+
78 tds_dstr_cstr(const DSTR * s)
+
79 {
+
80  return (*s)->dstr_s;
+
81 }
+
82 
+
84 static inline size_t
+
85 tds_dstr_len(const DSTR * s)
+
86 {
+
87  return (*s)->dstr_size;
+
88 }
+
89 
+
91 #define tds_dstr_empty(s) \
+
92  tds_dstr_free(s)
+
93 
+
94 void tds_dstr_zero(DSTR * s);
+
95 void tds_dstr_free(DSTR * s);
+
96 
+
97 DSTR* tds_dstr_dup(DSTR * s, const DSTR * src) TDS_WUR;
+
98 DSTR* tds_dstr_copy(DSTR * s, const char *src) TDS_WUR;
+
99 DSTR* tds_dstr_copyn(DSTR * s, const char *src, size_t length) TDS_WUR;
+
100 DSTR* tds_dstr_set(DSTR * s, char *src) TDS_WUR;
+
101 
+
102 DSTR* tds_dstr_setlen(DSTR *s, size_t length);
+
103 DSTR* tds_dstr_alloc(DSTR *s, size_t length) TDS_WUR;
+
104 
+
107 #include <freetds/popvis.h>
+
108 
+
109 #endif /* _tdsstring_h_ */
+
+
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition: tdsstring.c:165
+
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
+
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition: tdsstring.c:107
+
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition: string.h:71
+
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition: tdsstring.c:55
+
static void tds_dstr_init(DSTR *s)
init a string with empty
Definition: string.h:53
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition: string.h:85
+
Structure to hold a string.
Definition: string.h:36
+
struct tds_dstr * DSTR
Structure to hold a string.
+
const struct tds_dstr tds_str_empty
Internal representation for an empty string.
Definition: tdsstring.c:45
+
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_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
diff -Nru freetds-1.1.6/doc/reference/a00473_source.html freetds-1.2.3/doc/reference/a00473_source.html --- freetds-1.1.6/doc/reference/a00473_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00473_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/freetds/windows.h Source File +FreeTDS API: include/freetds/utils.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
windows.h
+
utils.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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_windows_h_
21 #define freetds_windows_h_
22 
23 #ifdef _WIN32
24 #include <winsock2.h>
25 #include <ws2tcpip.h>
26 #include <windows.h>
27 #endif
28 
29 #endif /* freetds_windows_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>
+
31 
+
32 #ifdef __cplusplus
+
33 extern "C" {
+
34 #endif
+
35 
+
36 void tds_sleep_s(unsigned sec);
+
37 void tds_sleep_ms(unsigned ms);
+
38 
+
39 char *tds_getpassarg(char *arg);
+
40 
+
41 char *tds_timestamp_str(char *str, int maxlen);
+
42 struct tm *tds_localtime_r(const time_t *timep, struct tm *result);
+
43 int tds_getservice(const char *name);
+
44 char *tds_get_homedir(void);
+
45 
+
46 int 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
diff -Nru freetds-1.1.6/doc/reference/a00476_source.html freetds-1.2.3/doc/reference/a00476_source.html --- freetds-1.1.6/doc/reference/a00476_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00476_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/odbcss.h Source File +FreeTDS API: include/freetds/version.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
odbcss.h
+
version.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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 _odbcss_h_
21 #define _odbcss_h_
22 
23 #ifdef TDSODBC_BCP
24 #include <sql.h>
25 #endif
26 
27 #ifdef __cplusplus
28 extern "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 
132 typedef 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... */
188 enum
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 
252 typedef 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 
264 struct tdsodbc_impl_bcp_init_params
265 {
266  const void *tblname;
267  const void *hfile;
268  const void *errfile;
269  int direction;
270 };
271 
272 static TDSODBC_INLINE RETCODE SQL_API
273 bcp_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 
279 static TDSODBC_INLINE RETCODE SQL_API
280 bcp_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 
286 struct tdsodbc_impl_bcp_control_params
287 {
288  int field;
289  void *value;
290 };
291 
292 static TDSODBC_INLINE RETCODE SQL_API
293 bcp_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 
299 struct tdsodbc_impl_bcp_colptr_params
300 {
301  const unsigned char * colptr;
302  int table_column;
303 };
304 
305 static TDSODBC_INLINE RETCODE SQL_API
306 bcp_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 
312 static TDSODBC_INLINE RETCODE SQL_API
313 bcp_sendrow(HDBC hdbc)
314 {
315  return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL;
316 }
317 
318 struct tdsodbc_impl_bcp_batch_params
319 {
320  int rows;
321 };
322 
323 static TDSODBC_INLINE int SQL_API
324 bcp_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 
330 struct tdsodbc_impl_bcp_done_params
331 {
332  int rows;
333 };
334 
335 static TDSODBC_INLINE int SQL_API
336 bcp_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 
342 struct 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 static TDSODBC_INLINE RETCODE SQL_API
354 bcp_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:539
-
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:1957
-
Definition: odbcss.h:139
-
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:1984
-
Definition: sybdb.h:294
-
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1337
-
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:661
-
Definition: odbcss.h:132
-
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:2026
+
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 _tdsversion_h_
+
21 #define _tdsversion_h_
+
22 
+
23 /* $Id: 9640daf619734147e3b5ff6a1dad56ad305ffa51 $ */
+
24 
+
25 #define TDS_VERSION_NO "freetds v1.2.3"
+
26 
+
27 #define TDS_VERSION_MAJOR 1
+
28 #define TDS_VERSION_MINOR 2
+
29 #define TDS_VERSION_SUBVERSION 3
+
30 #define TDS_VERSION_BUILD_NUMBER 191
+
31 
+
32 #endif
diff -Nru freetds-1.1.6/doc/reference/a00479.html freetds-1.2.3/doc/reference/a00479.html --- freetds-1.1.6/doc/reference/a00479.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00479.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,167 +0,0 @@ - - - - - - - -FreeTDS API: include/replacements/poll.h File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
poll.h File Reference
-
-
- -

Provide poll call where missing. -More...

-
#include <config.h>
-#include <freetds/pushvis.h>
-#include <freetds/popvis.h>
-
-Include dependency graph for poll.h:
-
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
-
-
-
-

Go to the source code of this file.

- - - - -

-Classes

struct  pollfd
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

-#define _REPLACEMENTS_POLL_H
 
-#define FD_SETSIZE   OPEN_MAX
 
-#define poll(fds, nfds, timeout)   tds_poll(fds, nfds, timeout)
 
-#define POLLERR   0x0008
 
-#define POLLHUP   0x0010
 
-#define POLLIN   0x0001
 
-#define POLLNORM   POLLIN
 
-#define POLLNVAL   0x0020
 
-#define POLLOUT   0x0004
 
-#define POLLPRI   POLLIN
 
-#define POLLRDBAND   POLLIN
 
-#define POLLRDNORM   POLLIN
 
-#define POLLWRBAND   POLLOUT
 
-#define POLLWRNORM   POLLOUT
 
- - - -

-Typedefs

-typedef struct pollfd pollfd_t
 
- - - -

-Functions

-int tds_poll (struct pollfd fds[], int nfds, int timeout)
 
-

Detailed Description

-

Provide poll call where missing.

-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00479_source.html freetds-1.2.3/doc/reference/a00479_source.html --- freetds-1.1.6/doc/reference/a00479_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00479_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/replacements/poll.h Source File +FreeTDS API: include/freetds/windows.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
poll.h
+
windows.h
-Go to the documentation of this file.
1 
5 #if !defined(_REPLACEMENTS_POLL_H) && !defined(HAVE_POLL)
6 #define _REPLACEMENTS_POLL_H
7 
8 #include <config.h>
9 
10 #if HAVE_LIMITS_H
11 #include <limits.h>
12 #endif
13 
14 #if HAVE_SYS_SELECT_H
15 #include <sys/select.h>
16 #endif
17 
18 #if defined(_WIN32)
19 #include <winsock2.h>
20 #endif
21 
22 #if defined(__VMS)
23 #include <time.h> /* FD_SETSIZE is in here */
24 #endif
25 
26 #if !defined(FD_SETSIZE)
27 # if !defined(OPEN_MAX)
28 # error cannot establish FD_SETSIZE
29 # endif
30 #define FD_SETSIZE OPEN_MAX
31 #endif
32 
33 #include <freetds/pushvis.h>
34 
35 #ifndef _WIN32
36 /* poll flags */
37 # define POLLIN 0x0001
38 # define POLLOUT 0x0004
39 # define POLLERR 0x0008
40 
41 /* synonyms */
42 # define POLLNORM POLLIN
43 # define POLLPRI POLLIN
44 # define POLLRDNORM POLLIN
45 # define POLLRDBAND POLLIN
46 # define POLLWRNORM POLLOUT
47 # define POLLWRBAND POLLOUT
48 
49 /* ignored */
50 # define POLLHUP 0x0010
51 # define POLLNVAL 0x0020
52 typedef struct pollfd {
53  int fd; /* file descriptor to poll */
54  short events; /* events of interest on fd */
55  short revents; /* events that occurred on fd */
56 } pollfd_t;
57 
58 #else /* Windows */
59 /*
60  * Windows use different constants then Unix
61  * Newer version have a WSAPoll which is equal to Unix poll
62  */
63 # if !defined(POLLRDNORM) && !defined(POLLWRNORM)
64 # define POLLIN 0x0300
65 # define POLLOUT 0x0010
66 # define POLLERR 0x0001
67 # define POLLRDNORM 0x0100
68 # define POLLWRNORM 0x0010
69 typedef struct pollfd {
70  SOCKET fd; /* file descriptor to poll */
71  short events; /* events of interest on fd */
72  short revents; /* events that occurred on fd */
73 } pollfd_t;
74 # else
75 typedef struct pollfd pollfd_t;
76 # endif
77 #endif
78 
79 #undef poll
80 int tds_poll(struct pollfd fds[], int nfds, int timeout);
81 #define poll(fds, nfds, timeout) tds_poll(fds, nfds, timeout)
82 
83 #include <freetds/popvis.h>
84 
85 #endif
Definition: poll.h:52
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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_windows_h_
+
21 #define freetds_windows_h_
+
22 
+
23 #ifdef _WIN32
+
24 #include <winsock2.h>
+
25 #include <ws2tcpip.h>
+
26 #include <windows.h>
+
27 #endif
+
28 
+
29 #endif /* freetds_windows_h_ */
diff -Nru freetds-1.1.6/doc/reference/a00480.map freetds-1.2.3/doc/reference/a00480.map --- freetds-1.1.6/doc/reference/a00480.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00480.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00480.md5 freetds-1.2.3/doc/reference/a00480.md5 --- freetds-1.1.6/doc/reference/a00480.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00480.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8c64cfc9d6a0c6985706838e50947df1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00480.svg freetds-1.2.3/doc/reference/a00480.svg --- freetds-1.1.6/doc/reference/a00480.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00480.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ - - - - - - -include/replacements/poll.h - - -Node0 - -include/replacements -/poll.h - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - - -freetds/pushvis.h - - - - -Node0->Node2 - - - - -Node3 - - -freetds/popvis.h - - - - -Node0->Node3 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00481.map freetds-1.2.3/doc/reference/a00481.map --- freetds-1.1.6/doc/reference/a00481.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00481.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00481.md5 freetds-1.2.3/doc/reference/a00481.md5 --- freetds-1.1.6/doc/reference/a00481.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00481.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -469a9db7fff88c4e616a307823bd68a1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00481.svg freetds-1.2.3/doc/reference/a00481.svg --- freetds-1.1.6/doc/reference/a00481.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00481.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,203 +0,0 @@ - - - - - - -include/replacements/poll.h - - -Node4 - -include/replacements -/poll.h - - -Node5 - - -include/replacements.h - - - - -Node4->Node5 - - - - -Node6 - - -src/dblib/dblib.c - - - - -Node5->Node6 - - - - -Node7 - - -src/tds/bulk.c - - - - -Node5->Node7 - - - - -Node8 - - -src/tds/token.c - - - - -Node5->Node8 - - - - -Node9 - - -include/freetds/tds.h - - - - -Node5->Node9 - - - - -Node9->Node6 - - - - -Node9->Node7 - - - - -Node9->Node8 - - - - -Node10 - - -src/pool/pool.h - - - - -Node9->Node10 - - - - -Node11 - - -src/replacements/iconv.c - - - - -Node9->Node11 - - - - -Node12 - - -src/tds/data.c - - - - -Node9->Node12 - - - - -Node13 - - -src/tds/iconv.c - - - - -Node9->Node13 - - - - -Node14 - - -src/tds/read.c - - - - -Node9->Node14 - - - - -Node15 - - -src/tds/stream.c - - - - -Node9->Node15 - - - - -Node16 - - -include/ctlib.h - - - - -Node9->Node16 - - - - -Node17 - - -include/freetds/odbc.h - - - - -Node9->Node17 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00482_source.html freetds-1.2.3/doc/reference/a00482_source.html --- freetds-1.1.6/doc/reference/a00482_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00482_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/replacements/readpassphrase.h Source File +FreeTDS API: include/odbcss.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
readpassphrase.h
+
odbcss.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.
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
56 char * 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_ */
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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 _odbcss_h_
+
21 #define _odbcss_h_
+
22 
+
23 #ifdef TDSODBC_BCP
+
24 #include <sql.h>
+
25 #endif
+
26 
+
27 #ifdef __cplusplus
+
28 extern "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 
+
132 typedef 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... */
+
188 enum
+
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 
+
252 typedef 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 
+
264 struct tdsodbc_impl_bcp_init_params
+
265 {
+
266  const void *tblname;
+
267  const void *hfile;
+
268  const void *errfile;
+
269  int direction;
+
270 };
+
271 
+
272 static TDSODBC_INLINE RETCODE SQL_API
+
273 bcp_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 
+
279 static TDSODBC_INLINE RETCODE SQL_API
+
280 bcp_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 
+
286 struct tdsodbc_impl_bcp_control_params
+
287 {
+
288  int field;
+
289  void *value;
+
290 };
+
291 
+
292 static TDSODBC_INLINE RETCODE SQL_API
+
293 bcp_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 
+
299 struct tdsodbc_impl_bcp_colptr_params
+
300 {
+
301  const unsigned char * colptr;
+
302  int table_column;
+
303 };
+
304 
+
305 static TDSODBC_INLINE RETCODE SQL_API
+
306 bcp_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 
+
312 static TDSODBC_INLINE RETCODE SQL_API
+
313 bcp_sendrow(HDBC hdbc)
+
314 {
+
315  return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL;
+
316 }
+
317 
+
318 struct tdsodbc_impl_bcp_batch_params
+
319 {
+
320  int rows;
+
321 };
+
322 
+
323 static TDSODBC_INLINE int SQL_API
+
324 bcp_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 
+
330 struct tdsodbc_impl_bcp_done_params
+
331 {
+
332  int rows;
+
333 };
+
334 
+
335 static TDSODBC_INLINE int SQL_API
+
336 bcp_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 
+
342 struct 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 static TDSODBC_INLINE RETCODE SQL_API
+
354 bcp_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_ */
+
+
Definition: odbcss.h:132
+
Definition: sybdb.h:295
+
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:669
+
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:2007
+
Definition: odbcss.h:139
+
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:2076
+
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:543
+
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:2034
+
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1380
diff -Nru freetds-1.1.6/doc/reference/a00485.html freetds-1.2.3/doc/reference/a00485.html --- freetds-1.1.6/doc/reference/a00485.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00485.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,170 @@ + + + + + + + +FreeTDS API: include/replacements/poll.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
poll.h File Reference
+
+
+ +

Provide poll call where missing. +More...

+
#include <config.h>
+#include <freetds/pushvis.h>
+#include <freetds/popvis.h>
+
+Include dependency graph for poll.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  pollfd
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define _REPLACEMENTS_POLL_H
 
+#define FD_SETSIZE   OPEN_MAX
 
+#define poll(fds, nfds, timeout)   tds_poll(fds, nfds, timeout)
 
+#define POLLERR   0x0008
 
+#define POLLHUP   0x0010
 
+#define POLLIN   0x0001
 
+#define POLLNORM   POLLIN
 
+#define POLLNVAL   0x0020
 
+#define POLLOUT   0x0004
 
+#define POLLPRI   POLLIN
 
+#define POLLRDBAND   POLLIN
 
+#define POLLRDNORM   POLLIN
 
+#define POLLWRBAND   POLLOUT
 
+#define POLLWRNORM   POLLOUT
 
+ + + +

+Typedefs

+typedef struct pollfd pollfd_t
 
+ + + +

+Functions

+int tds_poll (struct pollfd fds[], int nfds, int timeout)
 
+

Detailed Description

+

Provide poll call where missing.

+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00485_source.html freetds-1.2.3/doc/reference/a00485_source.html --- freetds-1.1.6/doc/reference/a00485_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00485_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/replacements.h Source File +FreeTDS API: include/replacements/poll.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
replacements.h
+
poll.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 _replacements_h_
21 #define _replacements_h_
22 
23 #include <stdarg.h>
24 #include "tds_sysdep_public.h"
25 #include <freetds/sysdep_private.h>
26 
27 #include <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
41 #include <replacements/poll.h>
42 #endif /* !HAVE_POLL */
43 
44 #include <freetds/pushvis.h>
45 
46 #ifdef __cplusplus
47 extern "C"
48 {
49 #endif
50 
51 #if !HAVE_ASPRINTF
52 #undef asprintf
53 int tds_asprintf(char **ret, const char *fmt, ...);
54 #define asprintf tds_asprintf
55 #endif /* !HAVE_ASPRINTF */
56 
57 #if !HAVE_VASPRINTF
58 #undef vasprintf
59 int 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
70 char *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
77 char *tds_strsep(char **stringp, const char *delim);
78 #define strsep tds_strsep
79 #endif /* !HAVE_STRSEP */
80 
81 #if !HAVE_STRLCPY
82 size_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
88 typedef 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;
97 } tds_addrinfo;
98 
99 int tds_getaddrinfo(const char *node, const char *service, const struct tds_addrinfo *hints, struct tds_addrinfo **res);
100 int tds_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
101 void 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
113 size_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
119 char *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
145 int 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
166 int tds_getopt(int argc, char * const argv[], const char *optstring);
167 #define getopt tds_getopt
168 
169 extern char *optarg;
170 extern int optind, offset, opterr, optreset;
171 #endif
172 
173 #if !HAVE_SOCKETPAIR
174 int 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
179 int tds_daemon(int no_chdir, int no_close);
180 #define daemon(d,c) tds_daemon(d,c)
181 #endif
182 
183 #ifdef __cplusplus
184 }
185 #endif
186 
187 #include <freetds/popvis.h>
188 
189 #endif
Provide poll call where missing.
-
Definition: replacements.h:88
+Go to the documentation of this file.
1 
+
5 #if !defined(_REPLACEMENTS_POLL_H) && !defined(HAVE_POLL)
+
6 #define _REPLACEMENTS_POLL_H
+
7 
+
8 #include <config.h>
+
9 
+
10 #if HAVE_LIMITS_H
+
11 #include <limits.h>
+
12 #endif
+
13 
+
14 #if HAVE_SYS_SELECT_H
+
15 #include <sys/select.h>
+
16 #endif
+
17 
+
18 #if defined(_WIN32)
+
19 #include <winsock2.h>
+
20 #endif
+
21 
+
22 #if defined(__VMS)
+
23 #include <time.h> /* FD_SETSIZE is in here */
+
24 #endif
+
25 
+
26 #if !defined(FD_SETSIZE)
+
27 # if !defined(OPEN_MAX)
+
28 # error cannot establish FD_SETSIZE
+
29 # endif
+
30 #define FD_SETSIZE OPEN_MAX
+
31 #endif
+
32 
+
33 #include <freetds/pushvis.h>
+
34 
+
35 #ifndef _WIN32
+
36 /* poll flags */
+
37 # define POLLIN 0x0001
+
38 # define POLLOUT 0x0004
+
39 # define POLLERR 0x0008
+
40 
+
41 /* synonyms */
+
42 # define POLLNORM POLLIN
+
43 # define POLLPRI POLLIN
+
44 # define POLLRDNORM POLLIN
+
45 # define POLLRDBAND POLLIN
+
46 # define POLLWRNORM POLLOUT
+
47 # define POLLWRBAND POLLOUT
+
48 
+
49 /* ignored */
+
50 # define POLLHUP 0x0010
+
51 # define POLLNVAL 0x0020
+
52 typedef struct pollfd {
+
53  int fd; /* file descriptor to poll */
+
54  short events; /* events of interest on fd */
+
55  short revents; /* events that occurred on fd */
+
56 } pollfd_t;
+
57 
+
58 #else /* Windows */
+
59 /*
+
60  * Windows use different constants then Unix
+
61  * Newer version have a WSAPoll which is equal to Unix poll
+
62  */
+
63 # if !defined(POLLRDNORM) && !defined(POLLWRNORM)
+
64 # define POLLIN 0x0300
+
65 # define POLLOUT 0x0010
+
66 # define POLLERR 0x0001
+
67 # define POLLRDNORM 0x0100
+
68 # define POLLWRNORM 0x0010
+
69 typedef struct pollfd {
+
70  SOCKET fd; /* file descriptor to poll */
+
71  short events; /* events of interest on fd */
+
72  short revents; /* events that occurred on fd */
+
73 } pollfd_t;
+
74 # else
+
75 typedef struct pollfd pollfd_t;
+
76 # endif
+
77 #endif
+
78 
+
79 #undef poll
+
80 int tds_poll(struct pollfd fds[], int nfds, int timeout);
+
81 #define poll(fds, nfds, timeout) tds_poll(fds, nfds, timeout)
+
82 
+
83 #include <freetds/popvis.h>
+
84 
+
85 #endif
+
Definition: poll.h:52
diff -Nru freetds-1.1.6/doc/reference/a00486.map freetds-1.2.3/doc/reference/a00486.map --- freetds-1.1.6/doc/reference/a00486.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00486.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00486.md5 freetds-1.2.3/doc/reference/a00486.md5 --- freetds-1.1.6/doc/reference/a00486.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00486.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +b94a065de99a6e917283704131cd34ec \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00486.svg freetds-1.2.3/doc/reference/a00486.svg --- freetds-1.1.6/doc/reference/a00486.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00486.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,68 @@ + + + + + + +include/replacements/poll.h + + + +Node1 + + +include/replacements +/poll.h + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +freetds/pushvis.h + + + + + +Node1->Node3 + + + + + +Node4 + + +freetds/popvis.h + + + + + +Node1->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00487.map freetds-1.2.3/doc/reference/a00487.map --- freetds-1.1.6/doc/reference/a00487.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00487.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00487.md5 freetds-1.2.3/doc/reference/a00487.md5 --- freetds-1.1.6/doc/reference/a00487.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00487.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +d6941f5308ee6eb394d7da96afe67c68 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00487.svg freetds-1.2.3/doc/reference/a00487.svg --- freetds-1.1.6/doc/reference/a00487.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00487.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,257 @@ + + + + + + +include/replacements/poll.h + + + +Node1 + + +include/replacements +/poll.h + + + + + +Node2 + + +include/replacements.h + + + + + +Node1->Node2 + + + + + +Node3 + + +src/dblib/bcp.c + + + + + +Node2->Node3 + + + + + +Node4 + + +src/dblib/dblib.c + + + + + +Node2->Node4 + + + + + +Node5 + + +src/tds/bulk.c + + + + + +Node2->Node5 + + + + + +Node6 + + +src/tds/token.c + + + + + +Node2->Node6 + + + + + +Node7 + + +include/freetds/tds.h + + + + + +Node2->Node7 + + + + + +Node7->Node3 + + + + + +Node7->Node4 + + + + + +Node7->Node5 + + + + + +Node7->Node6 + + + + + +Node8 + + +src/pool/pool.h + + + + + +Node7->Node8 + + + + + +Node9 + + +src/replacements/iconv.c + + + + + +Node7->Node9 + + + + + +Node10 + + +src/tds/data.c + + + + + +Node7->Node10 + + + + + +Node11 + + +src/tds/iconv.c + + + + + +Node7->Node11 + + + + + +Node12 + + +src/tds/read.c + + + + + +Node7->Node12 + + + + + +Node13 + + +src/tds/stream.c + + + + + +Node7->Node13 + + + + + +Node14 + + +include/ctlib.h + + + + + +Node7->Node14 + + + + + +Node15 + + +include/freetds/odbc.h + + + + + +Node7->Node15 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00488_source.html freetds-1.2.3/doc/reference/a00488_source.html --- freetds-1.1.6/doc/reference/a00488_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00488_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/sqldb.h Source File +FreeTDS API: include/replacements/readpassphrase.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
sqldb.h
+
readpassphrase.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 SQLDB_h
21 #define SQLDB_h
22 
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 
176 static const char rcsid_sqldb_h[] = "$Id: sqldb.h,v 1.6 2009-12-02 22:35:18 jklowden Exp $";
177 static 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.
+
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
+
56 char * 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_ */
diff -Nru freetds-1.1.6/doc/reference/a00491_source.html freetds-1.2.3/doc/reference/a00491_source.html --- freetds-1.1.6/doc/reference/a00491_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00491_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/sqlfront.h Source File +FreeTDS API: include/replacements.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
sqlfront.h
+
replacements.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  */
20 
21 #ifndef SQLFRONT_h
22 #define SQLFRONT_h
23 
24 #include "./sybfront.h"
25 
26 static const char rcsid_sqlfront_h[] = "$Id: sqlfront.h,v 1.10 2011-07-13 11:06:31 freddy77 Exp $";
27 static const void *const no_unused_sqlfront_h_warn[] = { rcsid_sqlfront_h, no_unused_sqlfront_h_warn };
28 
29 typedef DBPROCESS * PDBPROCESS;
30 typedef LOGINREC * PLOGINREC;
31 typedef DBCURSOR * PDBCURSOR;
32 
33 typedef int * LPINT;
34 typedef char * LPSTR;
35 #if !defined(PHP_MSSQL_H) || !defined(PHP_MSSQL_API)
36 typedef BYTE * LPBYTE;
37 #endif
38 typedef void * LPVOID;
39 typedef const char * LPCSTR;
40 
41 typedef const LPINT LPCINT;
42 #ifndef _LPCBYTE_DEFINED
43 #define _LPCBYTE_DEFINED
44 typedef const BYTE * LPCBYTE;
45 #endif
46 typedef USHORT * LPUSHORT;
47 typedef const LPUSHORT LPCUSHORT;
48 typedef DBINT * LPDBINT;
49 typedef const LPDBINT LPCDBINT;
50 typedef DBBINARY * LPDBBINARY;
51 typedef const LPDBBINARY LPCDBBINARY;
52 typedef DBDATEREC * LPDBDATEREC;
53 typedef const LPDBDATEREC LPCDBDATEREC;
54 typedef DBDATETIME * LPDBDATETIME;
55 typedef const LPDBDATETIME LPCDBDATETIME;
56 
57 #endif
Definition: sybdb.h:294
-
Definition: dblib.h:120
-
Definition: sybdb.h:473
-
Definition: bsqlodbc.c:99
+
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 _replacements_h_
+
21 #define _replacements_h_
+
22 
+
23 #include <stdarg.h>
+
24 #include "tds_sysdep_public.h"
+
25 #include <freetds/sysdep_private.h>
+
26 
+
27 #include <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
+
41 #include <replacements/poll.h>
+
42 #endif /* !HAVE_POLL */
+
43 
+
44 #include <freetds/pushvis.h>
+
45 
+
46 #ifdef __cplusplus
+
47 extern "C"
+
48 {
+
49 #endif
+
50 
+
51 #if !HAVE_ASPRINTF
+
52 #undef asprintf
+
53 int tds_asprintf(char **ret, const char *fmt, ...);
+
54 #define asprintf tds_asprintf
+
55 #endif /* !HAVE_ASPRINTF */
+
56 
+
57 #if !HAVE_VASPRINTF
+
58 #undef vasprintf
+
59 int 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
+
70 char *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
+
77 char *tds_strsep(char **stringp, const char *delim);
+
78 #define strsep tds_strsep
+
79 #endif /* !HAVE_STRSEP */
+
80 
+
81 #if !HAVE_STRLCPY
+
82 size_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
+
88 typedef 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;
+
97 } tds_addrinfo;
+
98 
+
99 int tds_getaddrinfo(const char *node, const char *service, const struct tds_addrinfo *hints, struct tds_addrinfo **res);
+
100 int tds_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
+
101 void 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
+
113 size_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
+
119 char *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
+
145 int 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
+
166 int tds_getopt(int argc, char * const argv[], const char *optstring);
+
167 #define getopt tds_getopt
+
168 
+
169 extern char *optarg;
+
170 extern int optind, offset, opterr, optreset;
+
171 #endif
+
172 
+
173 #if !HAVE_SOCKETPAIR
+
174 int 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
+
179 int tds_daemon(int no_chdir, int no_close);
+
180 #define daemon(d,c) tds_daemon(d,c)
+
181 #endif
+
182 
+
183 #ifdef __cplusplus
+
184 }
+
185 #endif
+
186 
+
187 #include <freetds/popvis.h>
+
188 
+
189 #endif
+
Definition: replacements.h:88
+
Provide poll call where missing.
diff -Nru freetds-1.1.6/doc/reference/a00494_source.html freetds-1.2.3/doc/reference/a00494_source.html --- freetds-1.1.6/doc/reference/a00494_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00494_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/sybdb.dox.h Source File +FreeTDS API: include/sqldb.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
sybdb.dox.h
+
sqldb.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
2  * Copyright (C) 2005 James K. Lowden
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 
93  /*------------------------*/
119  /*------------------------*/
135 /* \fn DBSETLHID(x,y) (not implemented)
136  * \ingroup dblib_core
137  * \brief
138  * \sa dbsetlhid()
139  */
140 /* \fn DBSETLNOSHORT(x,y) (not implemented)
141  * \ingroup dblib_core
142  * \brief
143  * \sa dbsetlnoshort()
144  */
145 /* \fn DBSETLHIER(x,y) (not implemented)
146  * \ingroup dblib_core
147  * \brief
148  * \sa dbsetlhier()
149  */
171 /* \fn BCP_SETLABELED(x,y) (not implemented)
172  * \ingroup dblib_internal
173  * \brief Sybase macro mapping to the Microsoft (lower-case) function.
174  * \sa bcp_setlabeled()
175  */
182  /*------------------------*/
183 
+
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 SQLDB_h
+
21 #define SQLDB_h
+
22 
+
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 
+
176 static const char rcsid_sqldb_h[] = "$Id: sqldb.h,v 1.6 2009-12-02 22:35:18 jklowden Exp $";
+
177 static 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.
diff -Nru freetds-1.1.6/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map freetds-1.2.3/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map --- freetds-1.1.6/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 freetds-1.2.3/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 --- freetds-1.1.6/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -403ade863c15e17b3afc0fbc937dd8e0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg freetds-1.2.3/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg --- freetds-1.1.6/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcolinfo - - -Node0 - -dbcolinfo - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map freetds-1.2.3/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map --- freetds-1.1.6/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 freetds-1.2.3/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c6a69340be84720c30023900a8fb53cf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg freetds-1.2.3/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg --- freetds-1.1.6/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -dbopen - - -Node3 - -dbopen - - -Node4 - - -tdsdbopen - - - - -Node3->Node4 - - - - -Node5 - - -tdsdump_open - - - - -Node4->Node5 - - - - -Node6 - - -tdsdump_log - - - - -Node4->Node6 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00497.html freetds-1.2.3/doc/reference/a00497.html --- freetds-1.1.6/doc/reference/a00497.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,2752 +0,0 @@ - - - - - - - -FreeTDS API: include/sybdb.h File Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
sybdb.h File Reference
-
-
- -

Primary include file for db-lib applications. -More...

-
#include "tds_sysdep_public.h"
-
-Include dependency graph for sybdb.h:
-
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
-
-
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  DBCOL
 
struct  DBCOL2
 
struct  DBDATETIME
 
struct  DBDATETIME4
 
struct  DBDATETIMEALL
 
struct  DBMONEY
 
struct  DBMONEY4
 
struct  DBNUMERIC
 
struct  dbstring
 
struct  dbtypeinfo
 
struct  DBVARYBIN
 
struct  DBVARYCHAR
 
struct  tds_microsoft_dbdaterec
 
struct  tds_microsoft_dbdaterec2
 
struct  tds_sybase_dbdaterec
 
struct  tds_sybase_dbdaterec2
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

#define BCP_SETL(x, y)   dbsetlbool((x), (y), DBSETBCP)
 Enable (or prevent) bcp operations for connections made with a login. More...
 
-#define BCP_SETLABELED(x, y)   dbsetlbool((x), (y), DBSETLABELED)
 
-#define BCPBATCH   4
 
-#define BCPFIRST   2
 
-#define BCPHINTS   6
 
-#define BCPKEEPIDENTITY   8
 
-#define BCPLABELED   5
 
-#define BCPLAST   3
 
-#define BCPMAXERRS   1
 
-#define BIGDATETIMEBIND   23
 
-#define BIGINTBIND   30
 
-#define BIGTIMEBIND   24
 
-#define BINARYBIND   15
 
-#define BITBIND   16
 
-#define BUF_FULL   -3
 
-#define CHARBIND   0
 
-#define DATEBIND   21
 
-#define DATETIME2BIND   31
 
-#define DATETIMEBIND   11
 
-#define DB_IN   1
 
-#define DB_OUT   2
 
-#define DB_QUERYOUT   3
 
-#define DBARITHABORT   6
 
-#define DBARITHIGNORE   4
 
-#define DBAUTH   29
 
-#define DBBOTH   2
 
-#define DBBROWSE   8
 
-#define DBBUFFER   14
 
-#define DBCHAINXACTS   26
 
-#define DBCLIENTCURSORS   33
 
-#define DBCMDNONE   0
 
-#define DBCMDPEND   1
 
#define DBCMDROW(x)   dbcmdrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBCMDSENT   2
 
-#define DBCONFIRM   12
 
#define DBCOUNT(x)   dbcount((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBCURCMD(x)   dbcurcmd((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBCURROW(x)   dbcurrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBDATEFIRST   25
 
-#define DBDATEFORMAT   19
 
-#define DBDATESHORT   32
 
#define DBDEAD(x)   dbdead((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBDOUBLE   1
 
-#define DBERRLVL   11
 
-#define DBESTIMATE   1
 
-#define DBFIPSFLAG   27
 
#define DBFIRSTROW(x)   dbfirstrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBGETTIME   dbgettime
 
-#define DBIDENTITY   30
 
-#define DBINTERRUPT   4
 
#define DBIORDESC(x)   dbiordesc((x))
 Sybase macro, maps to the internal (lower-case) function. More...
 
#define DBIOWDESC(x)   dbiowdesc((x))
 Sybase macro, maps to the internal (lower-case) function. More...
 
#define DBISAVAIL(x)   dbisavail((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBISOLATION   28
 
#define DBLASTROW(x)   dblastrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBLFCONVERT   24
 
-#define DBMAXNAME   128
 
-#define DBMAXNUMLEN   33
 
#define DBMORECMDS(x)   dbmorecmds((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBNATLANG   18
 
-#define DBNOAUTOFREE   15
 
-#define DBNOCOUNT   5
 
-#define DBNOERR   -1
 
-#define DBNOEXEC   3
 
-#define DBNOIDCOL   31
 
-#define DBNOSAVE   0
 
-#define DBNOTIFICATION   2
 
-#define DBNUMOPTIONS   36
 
-#define DBOFFSET   9
 
-#define dbopen(x, y)   tdsdbopen((x),(y), 0)
 
-#define DBPADOFF   0
 
-#define DBPADON   1
 
-#define DBPARSEONLY   0
 
-#define DBPRCOLSEP   21
 
-#define DBPRCOLSEP   21
 
-#define DBPRLINELEN   22
 
-#define DBPRLINELEN   22
 
-#define DBPRLINESEP   23
 
-#define DBPRPAD   20
 
-#define DBQUOTEDIDENT   35
 
-#define DBRESULT   1
 
-#define DBROWCOUNT   16
 
#define DBROWS(x)   dbrows((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBROWTYPE(x)   dbrowtype((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
-#define DBRPCCURSOR   TDS_STATIC_CAST(DBSMALLINT, 0x0008)
 
-#define DBRPCDEFAULT   2
 
-#define DBRPCRECOMPILE   TDS_STATIC_CAST(DBSMALLINT, 0x0001)
 
-#define DBRPCRESET   TDS_STATIC_CAST(DBSMALLINT, 0x0002)
 
-#define DBRPCRETURN   1
 
-#define DBSAVE   1
 
-#define DBSETAPP   5
 
-#define DBSETBCP   6
 
-#define DBSETCHARSET   10
 
-#define DBSETDBNAME   14
 
-#define DBSETENCRYPT   12
 
-#define DBSETHOST   1
 
-#define DBSETLABELED   13
 
#define DBSETLAPP(x, y)   dbsetlname((x), (y), DBSETAPP)
 Set the (client) application name in the login packet. More...
 
-#define dbsetlapp(x, y)   dbsetlname((x), (y), DBSETAPP)
 
#define DBSETLCHARSET(x, y)   dbsetlname((x), (y), DBSETCHARSET)
 Set the client character set in the login packet. More...
 
-#define DBSETLDBNAME(x, y)   dbsetlname((x), (y), DBSETDBNAME)
 
#define DBSETLENCRYPT(x, y)   dbsetlbool((x), (y), DBSETENCRYPT)
 Enable (or not) network password encryption for Sybase servers version 10.0 or above. More...
 
#define DBSETLHOST(x, y)   dbsetlname((x), (y), DBSETHOST)
 Set the (client) host name in the login packet. More...
 
-#define dbsetlhost(x, y)   dbsetlname((x), (y), DBSETHOST)
 
#define DBSETLLABELED(x, y)   dbsetlbool((x), (y), DBSETLABELED)
 Alternative way to set login packet fields. More...
 
#define DBSETLNATLANG(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages. More...
 
#define dbsetlnatlang(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages. More...
 
-#define DBSETLNTLMV2(x, y)   dbsetlbool((x), (y), DBSETNTLMV2)
 
#define DBSETLPACKET(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections. More...
 
#define dbsetlpacket(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections. More...
 
#define DBSETLPWD(x, y)   dbsetlname((x), (y), DBSETPWD)
 Set the password in the login packet. More...
 
-#define dbsetlpwd(x, y)   dbsetlname((x), (y), DBSETPWD)
 
-#define DBSETLREADONLY(x, y)   dbsetlbool((x), (y), DBSETREADONLY)
 
-#define DBSETLSECURE(x)   dbsetlbool((x), (1), DBSETBCP)
 
#define DBSETLUSER(x, y)   dbsetlname((x), (y), DBSETUSER)
 Set the username in the login packet. More...
 
-#define dbsetluser(x, y)   dbsetlname((x), (y), DBSETUSER)
 
-#define DBSETLUTF16(x, y)   dbsetlbool((x), (y), DBSETUTF16)
 
#define DBSETLVERSION(login, version)   dbsetlversion((login), (version))
 maps to the Microsoft (lower-case) function. More...
 
-#define DBSETNATLANG   7
 
-#define DBSETNTLMV2   1002
 
-#define DBSETPACKET   11
 
-#define DBSETPWD   3
 
-#define DBSETREADONLY   1003
 
-#define DBSETTIME   34
 
-#define DBSETUSER   2
 
-#define DBSETUTF16   1001
 
-#define DBSHOWPLAN   2
 
-#define DBSINGLE   0
 
-#define DBSTAT   10
 
-#define DBSTORPROCID   13
 
#define DBTDS(a)   dbtds(a)
 Sybase macro, maps to the internal (lower-case) function. More...
 
-#define DBTDS_2_0   1 /* pre 4.0 SQL Server */
 
-#define DBTDS_3_4   2 /* Microsoft SQL Server (3.0) */
 
-#define DBTDS_4_0   3 /* 4.0 SQL Server */
 
-#define DBTDS_4_2   4 /* 4.2 SQL Server */
 
-#define DBTDS_4_6   5 /* 2.0 OpenServer and 4.6 SQL Server. */
 
-#define DBTDS_4_9_5   6 /* 4.9.5 (NCR) SQL Server */
 
-#define DBTDS_5_0   7 /* 5.0 SQL Server */
 
-#define DBTDS_7_0   8 /* Microsoft SQL Server 7.0 */
 
-#define DBTDS_7_1   9 /* Microsoft SQL Server 2000 */
 
-#define DBTDS_7_2   10 /* Microsoft SQL Server 2005 */
 
-#define DBTDS_7_3   11 /* Microsoft SQL Server 2008 */
 
-#define DBTDS_7_4   12 /* Microsoft SQL Server 2012/2014 */
 
-#define DBTDS_8_0   9 /* Microsoft SQL Server 2000 */
 
-#define DBTDS_9_0   10 /* Microsoft SQL Server 2005 */
 
-#define DBTDS_UNKNOWN   0
 DBTDS_xxx are returned by DBTDS() The integer values of the constants are poorly chosen.
 
-#define DBTEXTLIMIT   7
 
-#define DBTEXTSIZE   17
 
-#define DBTIMEOUT   3
 
-#define DBTXPLEN   16
 
-#define DBTXTSLEN   8
 
-#define DBVER42   DBVERSION_42
 
-#define DBVER60   DBVERSION_70 /* our best approximation */
 
-#define DBVERSION_100   2
 
-#define DBVERSION_42   3
 
-#define DBVERSION_46   1
 
-#define DBVERSION_70   4
 
-#define DBVERSION_71   5
 
-#define DBVERSION_72   6
 
-#define DBVERSION_73   7
 
-#define DBVERSION_74   8
 
-#define DBVERSION_UNKNOWN   0
 DBVERSION_xxx are used with dbsetversion()
 
-#define DECIMALBIND   18
 
-#define FAIL   0
 
-#define FALSE   0
 
-#define FLT8BIND   9
 
-#define INT_CANCEL   2
 
-#define INT_CONTINUE   1
 
-#define INT_EXIT   0
 
-#define INT_TIMEOUT   3
 
-#define INTBIND   8
 
-#define MAXBINDTYPES   32 /* keep last */
 
-#define MAXOPTTEXT   32
 
-#define MONEYBIND   13
 
-#define MORE_ROWS   -1
 
-#define NO_MORE_RESULTS   2
 
-#define NO_MORE_ROWS   -2
 
-#define NOSUCHOPTION   2
 
-#define NTBSTRINGBIND   2
 
-#define NUMERICBIND   17
 
-#define OFF   0
 
-#define ON   1
 
-#define REALBIND   10
 
-#define REG_ROW   -1
 
-#define SMALLBIND   7
 
-#define SMALLDATETIMEBIND   12
 
-#define SMALLMONEYBIND   14
 
-#define SRCDECIMALBIND   20
 
-#define SRCNUMERICBIND   19
 
-#define STRINGBIND   1
 
-#define SUCCEED   1
 
-#define SYBAOPAVG   0x4f
 
-#define SYBAOPAVGU   0x50
 
-#define SYBAOPCHECKSUM_AGG   0x72
 
-#define SYBAOPCNT   0x4b
 
-#define SYBAOPCNT_BIG   0x09
 
-#define SYBAOPCNTU   0x4c
 
-#define SYBAOPMAX   0x52
 
-#define SYBAOPMIN   0x51
 
-#define SYBAOPSTDEV   0x30
 
-#define SYBAOPSTDEVP   0x31
 
-#define SYBAOPSUM   0x4d
 
-#define SYBAOPSUMU   0x4e
 
-#define SYBAOPVAR   0x32
 
-#define SYBAOPVARP   0x33
 
-#define SYBBIGDATETIME   SYBBIGDATETIME
 
-#define SYBBIGTIME   SYBBIGTIME
 
-#define SYBBINARY   SYBBINARY
 
-#define SYBBIT   SYBBIT
 
-#define SYBBITN   SYBBITN
 
-#define SYBCHAR   SYBCHAR
 
-#define SYBDATE   SYBDATE
 
-#define SYBDATETIME   SYBDATETIME
 
-#define SYBDATETIME4   SYBDATETIME4
 
-#define SYBDATETIMN   SYBDATETIMN
 
-#define SYBDECIMAL   SYBDECIMAL
 
-#define SYBEAAMT   20035 /* User attempted a dbaltbind() with mismatched column and variable types. */
 
-#define SYBEABMT   20033 /* User attempted a dbbind() with mismatched column and variable types. */
 
-#define SYBEABNC   20032 /* Attempt to bind to a non-existent column. */
 
-#define SYBEABNP   20034 /* Attempt to bind using NULL pointers. */
 
-#define SYBEABNV   20046 /* Attempt to bind to a NULL program variable. */
 
-#define SYBEACNV   20148 /* Attemp to do conversion with NULL destination variable. */
 
-#define SYBEADST   20128 /* Error in attempting to determine the size of a pair of translation tables. */
 
-#define SYBEAICF   20127 /* Error in attempting to install custom format. */
 
-#define SYBEALTT   20129 /* Error in attempting to load a pair of translation tables. */
 
-#define SYBEAOLF   20133 /* Error in attempting to open a localization file. */
 
-#define SYBEAPCT   20130 /* Error in attempting to perform a character-set translation. */
 
-#define SYBEAPUT   20040 /* Attempt to print unknown token. */
 
-#define SYBEARDI   20134 /* Error in attempting to read datetime information from a localization file. */
 
-#define SYBEARDL   20136 /* Error in attempting to read the dblib.loc localization file. */
 
-#define SYBEASEC   20091 /* Attempt to send an empty command buffer to the SQL Server. */
 
-#define SYBEASNL   20041 /* Attempt to set fields in a null loginrec. */
 
-#define SYBEASTF   20089 /* VMS: Unable to setmode for control_c ast. */
 
-#define SYBEASTL   20197 /* Synchronous I/O attempted at AST level. */
 
-#define SYBEASUL   20043 /* Attempt to set unknown loginrec field. */
 
-#define SYBEATTNACK   20296 /* Timed out waiting for server to acknowledge attention." */
 
-#define SYBEAUTN   20062 /* Attempt to update the timestamp of a table which has no timestamp column. */
 
-#define SYBEBADPK   20201 /* Packet size of %1! not supported. -- size of %2! used instead. */
 
-#define SYBEBADTYPE   20254 /* Illegal value for type parameter given to %1!. */
 
-#define SYBEBBCI   20068 /* Batch successfully bulk-copied to SQL Server. */
 
-#define SYBEBBFL   20297 /* -001- Batch failed in bulk-copy to SQL Server */
 
-#define SYBEBBL   20215 /* Bad bindlen parameter passed to dbsetnull() */
 
-#define SYBEBCBC   20081 /* bcp_columns() must be called before bcp_colfmt() and bcp_colfmt_ps(). */
 
-#define SYBEBCBNPR   20230 /* bcp_bind(): if varaddr is NULL, prefixlen must be 0 and no terminator should be specified. */
 
-#define SYBEBCBNTYP   20231 /* bcp_bind(): if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
 
-#define SYBEBCBPREF   20236 /* Illegal prefix length. Legal values are 0, 1, 2 or 4. */
 
-#define SYBEBCFO   20082 /* Bcp host-files must contain at least one column. */
 
-#define SYBEBCHLEN   20235 /* host_collen should be greater than or equal to -1. */
 
-#define SYBEBCIS   20075 /* Attempt to bulk-copy an illegally-sized column value to the SQL Server. */
 
-#define SYBEBCIT   20107 /* It's illegal to use BCP terminators with program variables other than SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE. */
 
-#define SYBEBCITBLEN   20239 /* bcp_init(): tblname parameter is too long. */
 
-#define SYBEBCITBNM   20238 /* bcp_init(): tblname parameter cannot be NULL. */
 
-#define SYBEBCMTXT   20228 /* bcp_moretext() may be used only when there is at least one text or image column in the server table. */
 
-#define SYBEBCNL   20105 /* Negative length-prefix found in BCP data-file. */
 
-#define SYBEBCNN   20073 /* Attempt to bulk-copy a NULL value into Server column %d, which does not accept NULL values. */
 
-#define SYBEBCNT   20064 /* Attempt to use Bulk Copy with a non-existent Server table. */
 
-#define SYBEBCOR   20074 /* Attempt to bulk-copy an oversized row to the SQL Server. */
 
-#define SYBEBCPB   20078 /* bcp_bind(), bcp_moretext() and bcp_sendrow() may NOT be used after bcp_init() has been passed a non-NULL input file name. */
 
-#define SYBEBCPCTYP   20233 /* bcp_colfmt(): If table_colnum is 0, host_type cannot be 0. */
 
-#define SYBEBCPI   20076 /* bcp_init() must be called before any other bcp routines. */
 
-#define SYBEBCPN   20077 /* bcp_bind(), bcp_collen(), bcp_colptr(), bcp_moretext() and bcp_sendrow() may be used only after bcp_init() has been called with the copy direction set to DB_IN. */
 
-#define SYBEBCPOPT   20294 /* The option cannot be called while a bulk copy operation is progress. */
 
-#define SYBEBCPREC   20229 /* Column %1!: Illegal precision value encountered. */
 
-#define SYBEBCPREF   20237 /* Illegal prefix length. Legal values are -1, 0, 1, 2 or 4. */
 
-#define SYBEBCRE   20070 /* I/O error while reading bcp data-file. */
 
-#define SYBEBCRO   20111 /* The BCP hostfile '%s' contains only %ld rows. It was impossible to read the requested %ld rows. */
 
-#define SYBEBCSA   20108 /* The BCP hostfile '%s' contains only %ld rows. Skipping all of these rows is not allowed. */
 
-#define SYBEBCSET   20221 /* Unknown character-set encountered." */
 
-#define SYBEBCSI   20106 /* Host-file columns may be skipped only when copying INto the Server. */
 
-#define SYBEBCSNDROW   20240 /* bcp_sendrow() may NOT be called unless all text data for the previous row has been sent using bcp_moretext(). */
 
-#define SYBEBCSNTYP   20232 /* column number %1!: if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
 
-#define SYBEBCUC   20085 /* Bcp: Unable to close host data-file. */
 
-#define SYBEBCUO   20084 /* Bcp: Unable to open host data-file. */
 
-#define SYBEBCVH   20083 /* bcp_exec() may be called only after bcp_init() has been passed a valid host file. */
 
-#define SYBEBCVLEN   20234 /* varlen should be greater than or equal to -1. */
 
-#define SYBEBCWE   20072 /* I/O error while writing bcp data-file. */
 
-#define SYBEBDIO   20063 /* Bad bulk-copy direction. Must be either IN or OUT. */
 
-#define SYBEBEOF   20104 /* Unexpected EOF encountered in BCP data-file. */
 
-#define SYBEBIHC   20103 /* Incorrect host-column number found in bcp format-file. */
 
-#define SYBEBIVI   20080 /* bcp_columns(), bcp_colfmt() and bcp_colfmt_ps() may be used only after bcp_init() has been passed a valid input file. */
 
-#define SYBEBNCR   20024 /* Attempt to bind user variable to a non-existent compute row. */
 
-#define SYBEBNUM   20214 /* Bad numbytes parameter passed to dbstrcpy() */
 
-#define SYBEBOOL   20293 /* Boolean parameters must be TRUE or FALSE. */
 
-#define SYBEBPKS   20193 /* In DBSETLPACKET(), the packet size parameter must be between 0 and 999999. */
 
-#define SYBEBPREC   20216 /* Illegal precision specified */
 
-#define SYBEBPROBADDEF   20249 /* bcp protocol error: illegal default column id received. */
 
-#define SYBEBPROBADLEN   20251 /* bcp protocol error: illegal datatype length received. */
 
-#define SYBEBPROBADPREC   20252 /* bcp protocol error: illegal precision value received. */
 
-#define SYBEBPROBADSCL   20253 /* bcp protocol error: illegal scale value received. */
 
-#define SYBEBPROBADTYP   20250 /* bcp protocol error: unknown column datatype. */
 
-#define SYBEBPROCOL   20241 /* bcp protocol error: returned column count differs from the actual number of columns received. */
 
-#define SYBEBPRODEF   20242 /* bcp protocol error: expected default information and got none. */
 
-#define SYBEBPRODEFID   20244 /* bcp protocol error: default column id and actual column id are not same */
 
-#define SYBEBPRODEFTYP   20246 /* bcp protocol error: default value datatype differs from column datatype. */
 
-#define SYBEBPROEXTDEF   20247 /* bcp protocol error: more than one row of default information received. */
 
-#define SYBEBPROEXTRES   20248 /* bcp protocol error: unexpected set of results received. */
 
-#define SYBEBPRONODEF   20245 /* bcp protocol error: default value received for column that does not have default. */
 
-#define SYBEBPRONUMDEF   20243 /* bcp protocol error: expected number of defaults differs from the actual number of defaults received. */
 
-#define SYBEBRFF   20100 /* I/O error while reading bcp format-file. */
 
-#define SYBEBSCALE   20217 /* Illegal scale specified */
 
-#define SYBEBTMT   20095 /* Attempt to send too much TEXT data via the bcp_moretext() call. */
 
-#define SYBEBTOK   20020 /* Bad token from SQL Server: Data-stream processing out of sync. */
 
-#define SYBEBTYP   20023 /* Unknown bind type passed to DB-LIBRARY function. */
 
-#define SYBEBTYPSRV   20220 /* Datatype is not supported by the server. */
 
-#define SYBEBUCE   20087 /* Bcp: Unable to close error-file. */
 
-#define SYBEBUCF   20099 /* Bcp: Unable to close format-file. */
 
-#define SYBEBUDF   20102 /* Bcp: Unrecognized datatype found in format-file. */
 
-#define SYBEBUFF   20147 /* Bcp: Unable to create format-file. */
 
-#define SYBEBUFL   20005 /* DB-LIBRARY internal error - send buffer length corrupted. */
 
-#define SYBEBULKINSERT   20599 /* cannot build bulk insert statement */
 
-#define SYBEBUOE   20086 /* Bcp: Unable to open error-file. */
 
-#define SYBEBUOF   20098 /* Bcp: Unable to open format-file. */
 
-#define SYBEBWEF   20088 /* I/O error while writing bcp error-file. */
 
-#define SYBEBWFF   20101 /* I/O error while writing bcp format-file. */
 
-#define SYBECAP   20203 /* DB-Library capabilities not accepted by the Server. */
 
-#define SYBECAPTYP   20213 /* Unexpected capability type in CAPABILITY datastream. */
 
-#define SYBECDNS   20031 /* Datastream indicates that a compute column is derived from a non-existent select-list member. */
 
-#define SYBECDOMAIN   20218 /* Source field value is not within the domain of legal values. */
 
-#define SYBECINTERNAL   20219 /* Internal Conversion error. */
 
-#define SYBECLOS   20056 /* Error in closing network connection. */
 
-#define SYBECLOSEIN   20292 /* Unable to close interface file. */
 
-#define SYBECLPR   20051 /* Data-conversion resulted in loss of precision. */
 
-#define SYBECNOR   20026 /* Column number out of range. */
 
-#define SYBECNOV   20052 /* Attempt to set variable to NULL resulted in overflow. */
 
-#define SYBECOFL   20049 /* Data-conversion resulted in overflow. */
 
-#define SYBECOLSIZE   22000 /* Invalid column information structure size */
 
-#define SYBECONN   20009 /* Unable to connect socket -- SQL Server is unavailable or does not exist. */
 
-#define SYBECRNC   20116 /* The current row is not a result of compute clause %d, so it is illegal to attempt to extract that data from this row. */
 
-#define SYBECRSAGR   20263 /* Aggregate functions are not allowed in a cursor statement. */
 
-#define SYBECRSBROL   20266 /* Backward scrolling cannot be used in a forward scrolling cursor. */
 
-#define SYBECRSBSKEY   20268 /* Keyset cannot be scrolled backward in mixed cursors with a previous fetch type. */
 
-#define SYBECRSBUFR   20260 /* Row buffering should not be turned on when using cursor APIs. */
 
-#define SYBECRSDIS   20262 /* Cursor statement contains one of the disallowed phrases 'compute', 'union', 'for browse', or 'select into'. */
 
-#define SYBECRSFLAST   20265 /* Fetch type LAST requires fully keyset driven cursors. */
 
-#define SYBECRSFRAND   20264 /* Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors. */
 
-#define SYBECRSFROWN   20267 /* Row number to be fetched is outside valid range. */
 
-#define SYBECRSFTYPE   20280 /* Unknown fetch type. */
 
-#define SYBECRSINV   20277 /* Invalid cursor statement. */
 
-#define SYBECRSINVALID   20281 /* The cursor handle is invalid. */
 
-#define SYBECRSMROWS   20282 /* Multiple rows are returned, only one is expected. */
 
-#define SYBECRSNOBIND   20279 /* Cursor bind must be called prior to updating cursor */
 
-#define SYBECRSNOCOUNT   20270 /* The DBNOCOUNT option should not be turned on when doing updates or deletes with dbcursor(). */
 
-#define SYBECRSNOFREE   20261 /* The DBNOAUTOFREE option should not be turned on when using cursor APIs. */
 
-#define SYBECRSNOIND   20256 /* One of the tables involved in the cursor statement does not have a unique index. */
 
-#define SYBECRSNOKEYS   20278 /* The entire keyset must be defined for KEYSET cursors. */
 
-#define SYBECRSNOLEN   20284 /* No unique index found. */
 
-#define SYBECRSNOPTCC   20285 /* No OPTCC was found. */
 
-#define SYBECRSNORDER   20286 /* The order of clauses must be from, where, and order by. */
 
-#define SYBECRSNORES   20255 /* Cursor statement generated no results. */
 
-#define SYBECRSNOTABLE   20287 /* Table name is NULL. */
 
-#define SYBECRSNOUPD   20276 /* Update or delete operation did not affect any rows. */
 
-#define SYBECRSNOWHERE   20273 /* A WHERE clause is not allowed in a cursor update or insert. */
 
-#define SYBECRSNROWS   20283 /* No rows returned, at least one is expected. */
 
-#define SYBECRSNUNIQUE   20288 /* No unique keys associated with this view. */
 
-#define SYBECRSORD   20259 /* Only fully keyset driven cursors can have 'order by', ' group by', or 'having' phrases. */
 
-#define SYBECRSRO   20269 /* Data locking or modifications cannot be made in a READONLY cursor. */
 
-#define SYBECRSSET   20274 /* A SET clause is required for a cursor update or insert. */
 
-#define SYBECRSTAB   20271 /* Table name must be determined in operations involving data locking or modifications. */
 
-#define SYBECRSUPDNB   20272 /* Update or insert operations cannot use bind variables when binding type is NOBIND. */
 
-#define SYBECRSUPDTAB   20275 /* Update or insert operations using bind variables require single table cursors. */
 
-#define SYBECRSVAR   20289 /* There is no valid address associated with this bind. */
 
-#define SYBECRSVIEW   20257 /* A view cannot be joined with another table or a view in a cursor statement. */
 
-#define SYBECRSVIIND   20258 /* The view used in the cursor statement does not include all the unique index columns of the underlying tables. */
 
-#define SYBECS   20299 /* -004- cs context Error */
 
-#define SYBECSYN   20050 /* Attempt to convert data stopped by syntax error in source field. */
 
-#define SYBECUFL   20048 /* Data-conversion resulted in underflow. */
 
-#define SYBECWLL   20123 /* Attempt to set column width less than 1. */
 
-#define SYBEDBPS   20011 /* Maximum number of DBPROCESSes already allocated. */
 
-#define SYBEDCL   20298 /* -004- DCL Error */
 
-#define SYBEDDNE   20047 /* DBPROCESS is dead or not enabled. */
 
-#define SYBEDIVZ   20196 /* Attempt to divide by $0.00 in function %1!. */
 
-#define SYBEDNTI   20094 /* Attempt to use dbtxtsput() to put a new text-timestamp into a column whose datatype is neither SYBTEXT nor SYBIMAGE. */
 
-#define SYBEDPOR   20149 /* Out-of-range datepart constant. */
 
-#define SYBEDVOR   20152 /* Day values must be between 1 and 7. */
 
-#define SYBEECAN   20184 /* Attempted to cancel unrequested event notification. */
 
-#define SYBEECRT   20183 /* Must call dbregdefine() before dbregcreate(). */
 
-#define SYBEEINI   20182 /* Must call dbreginit() before dbregraise(). */
 
-#define SYBEEQVA   20059 /* Error in queueing VMS AST routine. */
 
-#define SYBEERRLABEL   20295 /* An illegal value was returned from the security label handler. */
 
-#define SYBEESSL   20172 /* Login security level entered does not agree with operating system level */
 
-#define SYBEETD   20164 /* Failure to send the expected amount of TEXT or IMAGE data via dbmoretext(). */
 
-#define SYBEEUNR   20185 /* Unsolicited event notification received. */
 
-#define SYBEEVOP   20178 /* Called dbregwatch() with a bad options parameter. */
 
-#define SYBEEVST   20181 /* Must initiate a transaction before calling dbregparam(). */
 
-#define SYBEFCON   20002 /* SQL Server connection failed. */
 
-#define SYBEFENC   20222 /* Password Encryption failed." */
 
-#define SYBEFGTL   20122 /* Bcp: Row number of the first row to be copied cannot be greater than the row number for the last row to be copied. */
 
-#define SYBEFMODE   20167 /* Read/Write/Append mode denied on file. */
 
-#define SYBEFRES   20223 /* Challenge-Response function failed.", */
 
-#define SYBEFSHD   20132 /* Error in attempting to find the Sybase home directory. */
 
-#define SYBEFUNC   20204 /* Functionality not supported at the specified version level. */
 
-#define SYBEGENOS   20161 /* General Operating System Error. */
 
-#define SYBEICN   20038 /* Invalid computeid or compute column number. */
 
-#define SYBEICONV2BIG   2404 /* Buffer overflow converting characters from client into server's character set.*/
 
-#define SYBEICONVAVAIL   2401 /* Character set conversion is not available between client character set '%.*s' and server character set '%.*s'.*/
 
-#define SYBEICONVI   2403 /* Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').*/
 
-#define SYBEICONVIU   2400 /* Some character(s) could not be converted into client's character set. */
 
-#define SYBEICONVO   2402 /* Error converting characters into server's character set. Some character(s) could not be converted.*/
 
-#define SYBEIDCL   20143 /* Illegal datetime column length returned by DataServer. Legal datetime lengths are 4 and 8 bytes. */
 
-#define SYBEIDECCL   20227 /* Invalid decimal column length returned by the server. */
 
-#define SYBEIFCL   20145 /* Illegal floating-point column length returned by DataServer. Legal floating-point lengths are 4 and 8 bytes. */
 
-#define SYBEIFNB   20065 /* Illegal field number passed to bcp_control(). */
 
-#define SYBEIICL   20025 /* Illegal integer column length returned by SQL Server. Legal integer lengths are 1, 2, and 4 bytes. */
 
-#define SYBEIMCL   20144 /* Illegal money column length returned by DataServer. Legal money lengths are 4 and 8 bytes. */
 
-#define SYBEINLN   20016 /* Interface file: unexpected end-of-line. */
 
-#define SYBEINTF   20012 /* Server name not found in interface file */
 
-#define SYBEINUMCL   20226 /* Invalid numeric column length returned by the server. */
 
-#define SYBEIPV   20194 /* %1! is an illegal value for the %2! parameter of %3!. */
 
-#define SYBEISOI   20142 /* Invalid sort-order information found. */
 
-#define SYBEISRVPREC   20224 /* Illegal precision value returned by the server. */
 
-#define SYBEISRVSCL   20225 /* Illegal scale value returned by the server. */
 
-#define SYBEITIM   20021 /* Illegal timeout value specified. */
 
-#define SYBEIVERS   20206 /* Illegal version level specified. */
 
-#define SYBEKBCI   20069 /* Bcp: 1000 rows sent to SQL Server. */
 
-#define SYBEKBCO   20067 /* 1000 rows successfully bulk-copied to host-file. */
 
-#define SYBELBLEN   20211 /* Security labels should be less than 256 characters long. */
 
-#define SYBEMEM   20010 /* Unable to allocate sufficient memory */
 
-#define SYBEMOV   20195 /* Money arithmetic resulted in overflow in function %1!. */
 
-#define SYBEMPLL   20112 /* Attempt to set maximum number of DBPROCESSes lower than 1. */
 
-#define SYBEMVOR   20151 /* Month values must be between 1 and 12. */
 
-#define SYBENBUF   20175 /* called dbsendpassthru() with a NULL buf pointer. */
 
-#define SYBENBVP   20153 /* Cannot pass dbsetnull() a NULL bindval pointer. */
 
-#define SYBENDC   20150 /* Cannot have negative component in date in numeric form. */
 
-#define SYBENDTP   20155 /* Called dbdatecrack() with a NULL datetime parameter. */
 
-#define SYBENEG   20210 /* Negotiated login attempt failed. */
 
-#define SYBENEHA   20179 /* Called dbreghandle() with a NULL handler parameter. */
 
-#define SYBENHAN   20174 /* called dbrecvpassthru() with a NULL handler parameter. */
 
-#define SYBENLNL   20173 /* Program not linked with specified network library. */
 
-#define SYBENMOB   20039 /* No such member of 'order by' clause. */
 
-#define SYBENOEV   20200 /* dbpoll() cannot be called if registered procedure notifications have been disabled. */
 
-#define SYBENOTI   20177 /* No event handler installed. */
 
-#define SYBENOVALUE   20290 /* Security labels require both a name and a value */
 
-#define SYBENPRM   20027 /* NULL parameter not allowed for this dboption. */
 
-#define SYBENSIP   20045 /* Negative starting index passed to dbstrcpy(). */
 
-#define SYBENTLL   20042 /* Name too long for loginrec field. */
 
-#define SYBENTST   20170 /* The file being opened must be a stream_lf. */
 
-#define SYBENTTN   20093 /* Attempt to use dbtxtsput() to put a new text-timestamp into a non-existent data row. */
 
-#define SYBENULL   20109 /* NULL DBPROCESS pointer passed to DB-Library. */
 
-#define SYBENULP   20176 /* Called %s with a NULL %s parameter. */
 
-#define SYBENUM   20159 /* Incorrect number of arguments given to DB-Library. */
 
-#define SYBENXID   20036 /* The Server did not grant us a distributed-transaction ID. */
 
-#define SYBEONCE   20207 /* Function can be called only once. */
 
-#define SYBEOOB   20022 /* Error in sending out-of-band data to SQL Server. */
 
-#define SYBEOPIN   20015 /* Could not open interface file. */
 
-#define SYBEOPNA   20121 /* The text/image facility is available only when using a SQL Server whose version number is 4.0 or greater. */
 
-#define SYBEOPTNO   20163 /* Option is not allowed or is unreconized */
 
-#define SYBEOREN   20141 /* Warning: an out-of-range error-number was encountered in dblib.loc. The maximum permissible error-number is defined as DBERRCOUNT in sybdb.h. */
 
-#define SYBEORPF   20096 /* Attempt to set remote password would overflow the login-record's remote-password field. */
 
-#define SYBEOSSL   20171 /* Operating system login level not in range of Secure SQL Server */
 
-#define SYBEPAGE   20162 /* wrong resource type or length given for dbpage() operation. */
 
-#define SYBEPOLL   20199 /* Only one dbpoll() can be active at a time. */
 
-#define SYBEPORT   2500 /* Both port and instance specified */
 
-#define SYBEPRTF   20191 /* dbtracestring() may only be called from a printfunc(). */
 
-#define SYBEPWD   20014 /* Incorrect password. */
 
-#define SYBERDCN   20053 /* Requested data-conversion does not exist. */
 
-#define SYBERDNR   20044 /* Attempt to retrieve data from a non-existent row. */
 
-#define SYBEREAD   20004 /* Read from SQL Server failed. */
 
-#define SYBERESP   20205 /* Response function address passed to dbresponse() must be non-NULL. */
 
-#define SYBERFILE   20166 /* "Can not open resource file." */
 
-#define SYBERPCS   20186 /* Must call dbrpcinit() before dbrpcparam(). */
 
-#define SYBERPIL   20113 /* It is illegal to pass -1 to dbrpcparam() for the datalen of parameters which are of type SYBCHAR, SYBVARCHAR, SYBBINARY, or SYBVARBINARY. */
 
-#define SYBERPNA   20120 /* The RPC facility is available only when using a SQL Server whose version number is 4.0 or greater. */
 
-#define SYBERPND   20019 /* Attempt to initiate a new SQL Server operation with results pending. */
 
-#define SYBERPNULL   20208 /* value parameter for dbprcparam() can be NULL, only if the datalen parameter is 0 */
 
-#define SYBERPTXTIM   20209 /* RPC parameters cannot be of type Text/Image. */
 
-#define SYBERPUL   20114 /* When passing a SYBINTN, SYBDATETIMN, SYBMONEYN, or SYBFLTN parameter via dbrpcparam(), it's necessary to specify the parameter's maximum or actual length, so that DB-Library can recognize it as a SYBINT1, SYBINT2, SYBINT4, SYBMONEY, or SYBMONEY4, etc. */
 
-#define SYBERTCC   20117 /* dbreadtext() may not be used to receive the results of a query which contains a COMPUTE clause. */
 
-#define SYBERTSC   20118 /* dbreadtext() may only be used to receive the results of a query which contains a single result column. */
 
-#define SYBERTYPE   20165 /* Invalid resource type given to DB-Library. */
 
-#define SYBERXID   20037 /* The Server did not recognize our distributed-transaction ID. */
 
-#define SYBESECURE   20202 /* Secure Server function not supported in this version. */
 
-#define SYBESEFA   20198 /* DBSETNOTIFS cannot be called if connections are present. */
 
-#define SYBESEOF   20017 /* Unexpected EOF from SQL Server. */
 
-#define SYBESFOV   20054 /* dbsafestr() overflowed its destination buffer. */
 
-#define SYBESLCT   20168 /* Could not select or copy field specified */
 
-#define SYBESMSG   20018 /* General SQL Server error: Check messages from the SQL Server. */
 
-#define SYBESOCK   20008 /* Unable to open socket */
 
-#define SYBESPID   20154 /* Called dbspid() with a NULL dbproc. */
 
-#define SYBESYNC   20001 /* Read attempted while out of synchronization with SQL Server. */
 
-#define SYBETDSVER   2410 /* Cannot bcp with TDSVER < 5.0 */
 
-#define SYBETEXS   20188 /* Called dbmoretext() with a bad size parameter. */
 
-#define SYBETIME   20003 /* SQL Server connection timed out. */
 
-#define SYBETMCF   20126 /* Attempt to install too many custom formats via dbfmtinstall(). */
 
-#define SYBETMTD   20092 /* Attempt to send too much TEXT data via the dbmoretext() call. */
 
-#define SYBETPAR   20187 /* No SYBTEXT or SYBIMAGE parameters were defined. */
 
-#define SYBETPTN   20071 /* Syntax error: only two periods are permitted in table names. */
 
-#define SYBETRAC   20189 /* Attempted to turn off a trace flag that was not on. */
 
-#define SYBETRAN   20180 /* DBPROCESS is being used for another transaction. */
 
-#define SYBETRAS   20190 /* DB-Library internal error - trace structure not found. */
 
-#define SYBETRSN   20192 /* Bad numbytes parameter passed to dbtracestring(). */
 
-#define SYBETSIT   20061 /* Attempt to call dbtsput() with an invalid timestamp. */
 
-#define SYBETTS   20066 /* The table which bulk-copy is attempting to copy to a host-file is shorter than the number of rows which bulk-copy was instructed to skip. */
 
-#define SYBETYPE   20160 /* Invalid argument type given to DB-Library. */
 
-#define SYBEUACS   20090 /* VMS: Unable to assign channel to sys$command. */
 
-#define SYBEUAVE   20057 /* Unable to allocate VMS event flag. */
 
-#define SYBEUCPT   20125 /* Unrecognized custom-format parameter-type encountered in dbstrbuild(). */
 
-#define SYBEUCRR   20119 /* Internal software error: Unknown connection result reported by * dbpasswd(). */
 
-#define SYBEUDTY   20060 /* Unknown datatype encountered. */
 
-#define SYBEUFDS   20124 /* Unrecognized format encountered in dbstrbuild(). */
 
-#define SYBEUFDT   20029 /* Unknown fixed-length datatype encountered. */
 
-#define SYBEUHST   20013 /* Unknown host machine name */
 
-#define SYBEUMSG   20212 /* Unknown message-id in MSG datastream. */
 
-#define SYBEUNAM   20110 /* Unable to get current username from operating system. */
 
-#define SYBEUNOP   20115 /* Unknown option passed to dbsetopt(). */
 
-#define SYBEUNT   20055 /* Unknown network type found in interface file. */
 
-#define SYBEURCI   20135 /* Unable to read copyright information from the dblib localization file. */
 
-#define SYBEUREI   20140 /* Unable to read error information from the dblib localization file. */
 
-#define SYBEUREM   20138 /* Unable to read error mnemonic from the dblib localization file. */
 
-#define SYBEURES   20139 /* Unable to read error string from the dblib localization file. */
 
-#define SYBEURMI   20137 /* Unable to read money-format information from the dblib localization file. */
 
-#define SYBEUSCT   20058 /* Unable to set communications timer. */
 
-#define SYBEUTDS   20146 /* Unrecognized TDS version received from SQL Server. */
 
-#define SYBEUVBF   20097 /* Attempt to read an unknown version of BCP format-file. */
 
-#define SYBEUVDT   20028 /* Unknown variable-length datatype encountered. */
 
-#define SYBEVDPT   20079 /* For bulk copy, all variable-length data must have either a length-prefix or a terminator specified. */
 
-#define SYBEVERDOWN   100 /* TDS version downgraded . */
 
-#define SYBEVMS   20007 /* Sendflush: VMS I/O error. */
 
-#define SYBEVOIDRET   20291 /* Parameter of type SYBVOID cannot be a return parameter. */
 
-#define SYBEWAID   20030 /* DB-LIBRARY internal error: ALTFMT following ALTNAME has wrong id. */
 
-#define SYBEWRIT   20006 /* Write to SQL Server failed. */
 
-#define SYBEXOCI   20131 /* A character-set translation overflowed its destination buffer while using bcp to copy data from a host-file to the SQL Server. */
 
-#define SYBEXTDN   20157 /* Warning: the xlt_todisp parameter to dbfree_xlate() was NULL. The space associated with the xlt_tosrv parameter has been freed. */
 
-#define SYBEXTN   20156 /* The xlt_todisp and xlt_tosrv parameters to dbfree_xlate() were NULL. */
 
-#define SYBEXTSN   20158 /* Warning: the xlt_tosrv parameter to dbfree_xlate() was NULL. The space associated with the xlt_todisp parameter has been freed. */
 
-#define SYBEZTXT   20169 /* Attempt to send zero length TEXT or IMAGE to dataserver via dbwritetext(). */
 
-#define SYBFLT8   SYBFLT8
 
-#define SYBFLTN   SYBFLTN
 
-#define SYBIMAGE   SYBIMAGE
 
-#define SYBINT1   SYBINT1
 
-#define SYBINT2   SYBINT2
 
-#define SYBINT4   SYBINT4
 
-#define SYBINT8   SYBINT8
 
-#define SYBINTN   SYBINTN
 
-#define SYBMONEY   SYBMONEY
 
-#define SYBMONEY4   SYBMONEY4
 
-#define SYBMONEYN   SYBMONEYN
 
-#define SYBMSDATE   SYBMSDATE
 
-#define SYBMSDATETIME2   SYBMSDATETIME2
 
-#define SYBMSDATETIMEOFFSET   SYBMSDATETIMEOFFSET
 
-#define SYBMSTIME   SYBMSTIME
 
-#define SYBNTEXT   SYBNTEXT
 
-#define SYBNUMERIC   SYBNUMERIC
 
-#define SYBNVARCHAR   SYBNVARCHAR
 
-#define SYBREAL   SYBREAL
 
-#define SYBTEXT   SYBTEXT
 
-#define SYBTIME   SYBTIME
 
-#define SYBVARBINARY   SYBVARBINARY
 
-#define SYBVARCHAR   SYBVARCHAR
 
-#define SYBVOID   SYBVOID
 
-#define TDS_STATIC_CAST(type, a)   ((type)(a))
 
-#define TIMEBIND   22
 
-#define TINYBIND   6
 
-#define TRUE   1
 
-#define VARYBINBIND   4
 
-#define VARYCHARBIND   3
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef int BOOL
 
-typedef unsigned char BYTE
 
-typedef DBWAITFUNC(* DB_DBBUSY_FUNC) (void *dbproc)
 
-typedef int(* DB_DBCHKINTR_FUNC) (void *dbproc)
 
-typedef int(* DB_DBHNDLINTR_FUNC) (void *dbproc)
 
-typedef void(* DB_DBIDLE_FUNC) (DBWAITFUNC dfunc, void *dbproc)
 
-typedef int64_t DBBIGINT
 
-typedef unsigned char DBBINARY
 
-typedef unsigned char DBBIT
 
-typedef unsigned char DBBOOL
 
-typedef char DBCHAR
 
-typedef void DBCURSOR
 
-typedef struct tds_sybase_dbdaterec DBDATEREC
 
-typedef struct tds_sybase_dbdaterec2 DBDATEREC2
 
-typedef DBNUMERIC DBDECIMAL
 
-typedef tds_sysdep_real64_type DBFLT8
 
-typedef int32_t DBINT
 
-typedef void DBLOGINFO
 
-typedef void(* DBPIVOT_FUNC) (struct col_t *output, const struct col_t *input)
 
-typedef struct tds_dblib_dbprocess DBPROCESS
 
-typedef tds_sysdep_real32_type DBREAL
 
-typedef int16_t DBSMALLINT
 
-typedef void DBSORTORDER
 
-typedef struct dbstring DBSTRING
 
-typedef unsigned char DBTINYINT
 
-typedef struct dbtypeinfo DBTYPEINFO
 
-typedef uint64_t DBUBIGINT
 
-typedef uint32_t DBUINT
 
-typedef uint16_t DBUSMALLINT
 
-typedef void * DBVOIDPTR
 
-typedef int(* DBWAITFUNC) (void)
 
-typedef void DBXLATE
 
-typedef int(* EHANDLEFUNC) (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
 
-typedef int(* INTFUNCPTR) (void *,...)
 
-typedef struct tds_dblib_loginrec LOGINREC
 
-typedef int(* MHANDLEFUNC) (DBPROCESS *dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname, char *proc, int line)
 
-typedef int RETCODE
 
-typedef short SHORT
 
-typedef int STATUS
 
-typedef unsigned short USHORT
 
- - - - - - - -

-Enumerations

enum  {
-  SYBCHAR = 47, -SYBCHAR = 47, -SYBVARCHAR = 39, -SYBVARCHAR = 39, -
-  SYBINTN = 38, -SYBINTN = 38, -SYBINT1 = 48, -SYBINT1 = 48, -
-  SYBINT2 = 52, -SYBINT2 = 52, -SYBINT4 = 56, -SYBINT4 = 56, -
-  SYBINT8 = 127, -SYBINT8 = 127, -SYBFLT8 = 62, -SYBFLT8 = 62, -
-  SYBDATETIME = 61, -SYBDATETIME = 61, -SYBBIT = 50, -SYBBIT = 50, -
-  SYBBITN = 104, -SYBBITN = 104, -SYBTEXT = 35, -SYBTEXT = 35, -
-  SYBNTEXT = 99, -SYBNTEXT = 99, -SYBIMAGE = 34, -SYBIMAGE = 34, -
-  SYBMONEY4 = 122, -SYBMONEY4 = 122, -SYBMONEY = 60, -SYBMONEY = 60, -
-  SYBDATETIME4 = 58, -SYBDATETIME4 = 58, -SYBREAL = 59, -SYBREAL = 59, -
-  SYBBINARY = 45, -SYBBINARY = 45, -SYBVOID = 31, -SYBVOID = 31, -
-  SYBVARBINARY = 37, -SYBVARBINARY = 37, -SYBNUMERIC = 108, -SYBNUMERIC = 108, -
-  SYBDECIMAL = 106, -SYBDECIMAL = 106, -SYBFLTN = 109, -SYBFLTN = 109, -
-  SYBMONEYN = 110, -SYBMONEYN = 110, -SYBDATETIMN = 111, -SYBDATETIMN = 111, -
-  SYBNVARCHAR = 103, -SYBNVARCHAR = 103, -SYBDATE = 49, -SYBDATE = 49, -
-  SYBTIME = 51, -SYBTIME = 51, -SYBBIGDATETIME = 187, -SYBBIGDATETIME = 187, -
-  SYBBIGTIME = 188, -SYBBIGTIME = 188, -SYBMSDATE = 40, -SYBMSDATE = 40, -
-  SYBMSTIME = 41, -SYBMSTIME = 41, -SYBMSDATETIME2 = 42, -SYBMSDATETIME2 = 42, -
-  SYBMSDATETIMEOFFSET = 43, -SYBMSDATETIMEOFFSET = 43 -
- }
 
enum  { MAXCOLNAMELEN = 512 - }
 
enum  CI_TYPE { CI_REGULAR =1, -CI_ALTERNATE =2, -CI_CURSOR =3 - }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

DBINT bcp_batch (DBPROCESS *dbproc)
 Commit a set of rows to the table. More...
 
RETCODE bcp_bind (DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int type, int table_column)
 Bind a program host variable to a database column. More...
 
RETCODE 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)
 Specify the format of a datafile prior to writing to a table. More...
 
RETCODE bcp_colfmt_ps (DBPROCESS *dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int colnum, DBTYPEINFO *typeinfo)
 Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. More...
 
RETCODE bcp_collen (DBPROCESS *dbproc, DBINT varlen, int table_column)
 Set the length of a host variable to be written to a table. More...
 
RETCODE bcp_colptr (DBPROCESS *dbproc, BYTE *colptr, int table_column)
 Override bcp_bind() by pointing to a different host variable. More...
 
RETCODE bcp_columns (DBPROCESS *dbproc, int host_colcount)
 Indicate how many columns are to be found in the datafile. More...
 
RETCODE bcp_control (DBPROCESS *dbproc, int field, DBINT value)
 Set BCP options for uploading a datafile. More...
 
DBINT bcp_done (DBPROCESS *dbproc)
 Conclude the transfer of data from program variables. More...
 
RETCODE bcp_exec (DBPROCESS *dbproc, DBINT *rows_copied)
 Write a datafile to a table. More...
 
-int bcp_getbatchsize (DBPROCESS *dbproc)
 
DBBOOL bcp_getl (LOGINREC *login)
 See if BCP_SETL() was used to set the LOGINREC for BCP work. More...
 
RETCODE bcp_init (DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
 Prepare for bulk copy operation on a table. More...
 
RETCODE bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
 Set "hints" for uploading a file. More...
 
RETCODE bcp_readfmt (DBPROCESS *dbproc, const char filename[])
 Read a format definition file. More...
 
RETCODE bcp_sendrow (DBPROCESS *dbproc)
 Write data in host variables to the table. More...
 
const char * dbacolname (DBPROCESS *dbproc, int computeid, int column)
 Return name of a computed result column. More...
 
BYTE * dbadata (DBPROCESS *dbproc, int computeid, int column)
 Get address of compute column data. More...
 
DBINT dbadlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in a compute column. More...
 
RETCODE dbaltbind (DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Bind a compute column to a program variable. More...
 
-RETCODE dbaltbind_ps (DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr, DBTYPEINFO *typeinfo)
 
int dbaltcolid (DBPROCESS *dbproc, int computeid, int column)
 Get column ID of a compute column. More...
 
DBINT dbaltlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in compute column. More...
 
int dbaltop (DBPROCESS *dbproc, int computeid, int column)
 Get aggregation operator for a compute column. More...
 
int dbalttype (DBPROCESS *dbproc, int computeid, int column)
 Get datatype for a compute column. More...
 
DBINT dbaltutype (DBPROCESS *dbproc, int computeid, int column)
 Get user-defined datatype of a compute column. More...
 
RETCODE dbanullbind (DBPROCESS *dbprocess, int computeid, int column, DBINT *indicator)
 Tie a null-indicator to a compute result column. More...
 
RETCODE dbanydatecrack (DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
 Break any kind of date or time value into useful pieces. More...
 
RETCODE dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Tie a host variable to a resultset column. More...
 
-RETCODE dbbind_ps (DBPROCESS *dbprocess, int column, int vartype, DBINT varlen, BYTE *varaddr, DBTYPEINFO *typeinfo)
 
-int dbbufsize (DBPROCESS *dbprocess)
 
BYTE * dbbylist (DBPROCESS *dbproc, int computeid, int *size)
 Get bylist for a compute row. More...
 
RETCODE dbcancel (DBPROCESS *dbproc)
 Cancel the current command batch. More...
 
RETCODE dbcanquery (DBPROCESS *dbproc)
 Cancel the query currently being retrieved, discarding all pending rows. More...
 
char * dbchange (DBPROCESS *dbprocess)
 See if a command caused the current database to change. More...
 
-DBBOOL dbcharsetconv (DBPROCESS *dbprocess)
 
void dbclose (DBPROCESS *dbproc)
 Close a connection to the server and free associated resources. More...
 
void dbclrbuf (DBPROCESS *dbproc, DBINT n)
 Clear n rows from the row buffer. More...
 
RETCODE dbclropt (DBPROCESS *dbproc, int option, const char param[])
 Reset an option. More...
 
RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
 Append SQL to the command buffer. More...
 
RETCODE dbcmdrow (DBPROCESS *dbproc)
 See if the current command can return rows. More...
 
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). More...
 
DBINT dbcollen (DBPROCESS *dbproc, int column)
 Get size of a regular result column. More...
 
char * dbcolname (DBPROCESS *dbproc, int column)
 Return name of a regular result column. More...
 
char * dbcolsource (DBPROCESS *dbproc, int colnum)
 Get base database column name for a result set column. More...
 
int dbcoltype (DBPROCESS *dbproc, int column)
 Get the datatype of a regular result set column. More...
 
DBTYPEINFOdbcoltypeinfo (DBPROCESS *dbproc, int column)
 Get precision and scale information for a regular result column. More...
 
DBINT dbcolutype (DBPROCESS *dbprocess, int column)
 Get user-defined datatype of a regular result column. More...
 
DBINT dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
 cf. More...
 
DBINT dbconvert_ps (DBPROCESS *dbprocess, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
 Convert one datatype to another. More...
 
DBINT dbcount (DBPROCESS *dbproc)
 Get count of rows processed. More...
 
int dbcurcmd (DBPROCESS *dbproc)
 Get number of the row just returned. More...
 
DBINT dbcurrow (DBPROCESS *dbproc)
 Get number of the row currently being read. More...
 
BYTE * dbdata (DBPROCESS *dbproc, int column)
 Get address of data in a regular result column. More...
 
int dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
 Compare DBDATETIME values, similar to strcmp(3). More...
 
RETCODE dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *dt)
 Break a DBDATETIME value into useful pieces. More...
 
DBINT dbdatlen (DBPROCESS *dbproc, int column)
 Get size of current row's data in a regular result column. More...
 
DBBOOL dbdead (DBPROCESS *dbproc)
 Check if dbproc is an ex-parrot. More...
 
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
 Set an error handler, for messages from db-lib. More...
 
void dbexit (void)
 Close server connections and free all related structures. More...
 
RETCODE dbfcmd (DBPROCESS *dbproc, const char *fmt,...)
 printf-like way to form SQL to send to the server. More...
 
DBINT dbfirstrow (DBPROCESS *dbproc)
 See if a server response has arrived. More...
 
void dbfreebuf (DBPROCESS *dbproc)
 Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt(). More...
 
char * dbgetchar (DBPROCESS *dbprocess, int n)
 Get address of a position in the command buffer. More...
 
-char * dbgetcharset (DBPROCESS *dbprocess)
 
-int dbgetlusername (LOGINREC *login, BYTE *name_buffer, int buffer_len)
 
int dbgetmaxprocs (void)
 get maximum simultaneous connections db-lib will open to the server. More...
 
-char * dbgetnatlanf (DBPROCESS *dbprocess)
 
int dbgetpacket (DBPROCESS *dbproc)
 Get TDS packet size for the connection. More...
 
RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
 Read a row from the row buffer. More...
 
int dbgettime (void)
 Get maximum seconds db-lib waits for a server response to query. More...
 
BYTE * dbgetuserdata (DBPROCESS *dbproc)
 Get address of user-allocated data from a DBPROCESS. More...
 
DBBOOL dbhasretstat (DBPROCESS *dbproc)
 Determine if query generated a return status number. More...
 
RETCODE dbinit (void)
 Initialize db-lib. More...
 
int dbiordesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!) More...
 
int dbiowdesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!) More...
 
-DBBOOL dbisavail (DBPROCESS *dbprocess)
 
BOOL dbiscount (DBPROCESS *dbproc)
 Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature). More...
 
DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
 Get value of an option. More...
 
DBINT dblastrow (DBPROCESS *dbproc)
 Get number of the last row in the row buffer. More...
 
LOGINRECdblogin (void)
 Allocate a LOGINREC structure. More...
 
void dbloginfree (LOGINREC *login)
 free the LOGINREC More...
 
RETCODE dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
 Add two DBMONEY4 values. More...
 
int dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
 Compare two DBMONEY4 values. More...
 
RETCODE dbmny4copy (DBPROCESS *dbprocess, DBMONEY4 *m1, DBMONEY4 *m2)
 Copy a DBMONEY4 value. More...
 
RETCODE dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Negate a DBMONEY4 value. More...
 
RETCODE dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
 Subtract two DBMONEY4 values. More...
 
RETCODE dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest)
 Zero a DBMONEY4 value. More...
 
int dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
 Compare two DBMONEY values. More...
 
RETCODE dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Copy a DBMONEY value. More...
 
RETCODE dbmnydec (DBPROCESS *dbproc, DBMONEY *mnyptr)
 Subtract $0.0001 from a DBMONEY value. More...
 
RETCODE dbmnyinc (DBPROCESS *dbproc, DBMONEY *mnyptr)
 Add $0.0001 to a DBMONEY value. More...
 
RETCODE dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *dest)
 Get maximum negative DBMONEY value supported. More...
 
RETCODE dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *dest)
 Get maximum positive DBMONEY value supported. More...
 
RETCODE dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Negate a DBMONEY value. More...
 
-RETCODE dbmnysub (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *diff)
 
RETCODE dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest)
 Set a DBMONEY value to zero. More...
 
const char * dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
 Get name of a month, in some human language. More...
 
RETCODE dbmorecmds (DBPROCESS *dbproc)
 See if more commands are to be processed. More...
 
RETCODE dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
 Send chunk of a text/image value to the server. More...
 
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
 Set a message handler, for messages from the server. More...
 
char * dbname (DBPROCESS *dbproc)
 Get name of current database. More...
 
-STATUS dbnextrow (DBPROCESS *dbproc)
 
-STATUS dbnextrow_pivoted (DBPROCESS *dbproc, struct pivot_t *pp)
 
RETCODE dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
 Tie a null-indicator to a regular result column. More...
 
int dbnumalts (DBPROCESS *dbproc, int computeid)
 Get count of columns in a compute row. More...
 
int dbnumcols (DBPROCESS *dbproc)
 Return number of regular columns in a result set. More...
 
int dbnumcompute (DBPROCESS *dbprocess)
 Get count of COMPUTE clauses for a result set. More...
 
int dbnumrets (DBPROCESS *dbproc)
 Get count of output parameters filled by a stored procedure. More...
 
DBPROCESSdbopen (LOGINREC *login, const char *server)
 Normally not used. More...
 
RETCODE dbpivot (DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val)
 Pivot the rows, creating a new resultset. More...
 
-void dbpivot_count (struct col_t *output, const struct col_t *input)
 
-DBPIVOT_FUNC dbpivot_lookup_name (const char name[])
 
-void dbpivot_max (struct col_t *output, const struct col_t *input)
 
-void dbpivot_min (struct col_t *output, const struct col_t *input)
 
-void dbpivot_sum (struct col_t *output, const struct col_t *input)
 
DBINT dbprcollen (DBPROCESS *dbproc, int column)
 Get size of a result column needed to print column. More...
 
void dbprhead (DBPROCESS *dbproc)
 Print result set headings to stdout. More...
 
RETCODE dbprrow (DBPROCESS *dbproc)
 Print a result set to stdout. More...
 
const char * dbprtype (int token)
 Print a token value's name to a buffer. More...
 
STATUS dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize)
 Fetch part of a text or image value from the server. More...
 
void dbrecftos (const char filename[])
 Record to a file all SQL commands sent to the server. More...
 
RETCODE dbresults (DBPROCESS *dbproc)
 Set up query results. More...
 
-RETCODE dbresults_r (DBPROCESS *dbproc, int recursive)
 
BYTE * dbretdata (DBPROCESS *dbproc, int retnum)
 Get value of an output parameter filled by a stored procedure. More...
 
int dbretlen (DBPROCESS *dbproc, int retnum)
 Get size of an output parameter filled by a stored procedure. More...
 
char * dbretname (DBPROCESS *dbproc, int retnum)
 Get name of an output parameter filled by a stored procedure. More...
 
DBINT dbretstatus (DBPROCESS *dbproc)
 Fetch status value returned by query or remote procedure call. More...
 
int dbrettype (DBPROCESS *dbproc, int retnum)
 Get datatype of a stored procedure's return parameter. More...
 
RETCODE dbrows (DBPROCESS *dbproc)
 Indicate whether a query returned rows. More...
 
-struct pivot_tdbrows_pivoted (DBPROCESS *dbproc)
 
STATUS dbrowtype (DBPROCESS *dbprocess)
 Get returned row's type. More...
 
RETCODE dbrpcinit (DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
 Initialize a remote procedure call. More...
 
RETCODE dbrpcparam (DBPROCESS *dbproc, const char paramname[], BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE *value)
 Add a parameter to a remote procedure call. More...
 
RETCODE dbrpcsend (DBPROCESS *dbproc)
 Execute the procedure and free associated memory. More...
 
RETCODE dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
 safely quotes character values in SQL text. More...
 
-RETCODE * dbsechandle (DBINT type, INTFUNCPTR handler)
 
char * dbservcharset (DBPROCESS *dbprocess)
 Get syscharset name of the server character set. More...
 
void dbsetavail (DBPROCESS *dbprocess)
 Mark a DBPROCESS as "available". More...
 
-void dbsetbusy (DBPROCESS *dbprocess, DB_DBBUSY_FUNC busyfunc)
 
-RETCODE dbsetdefcharset (char *charset)
 
-void dbsetidle (DBPROCESS *dbprocess, DB_DBIDLE_FUNC idlefunc)
 
void dbsetifile (char *filename)
 set name and location of the interfaces file FreeTDS should use to look up a servername. More...
 
void dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
 Set interrupt handler for db-lib to use while blocked against a read from the server. More...
 
RETCODE dbsetlbool (LOGINREC *login, int value, int which)
 Set a boolean value in a LOGINREC structure. More...
 
RETCODE dbsetllong (LOGINREC *login, long value, int which)
 Set an integer value in a LOGINREC structure. More...
 
RETCODE dbsetlname (LOGINREC *login, const char *value, int which)
 Set the value of a string in a LOGINREC structure. More...
 
RETCODE dbsetlogintime (int seconds)
 Set maximum seconds db-lib waits for a server response to a login attempt. More...
 
-RETCODE dbsetlshort (LOGINREC *login, int value, int which)
 
RETCODE dbsetlversion (LOGINREC *login, BYTE version)
 Set TDS version for future connections. More...
 
RETCODE dbsetmaxprocs (int maxprocs)
 Set maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbsetnull (DBPROCESS *dbprocess, int bindtype, int bindlen, BYTE *bindval)
 Define substitution values to be used when binding null values. More...
 
RETCODE dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
 Set db-lib or server option. More...
 
STATUS dbsetrow (DBPROCESS *dbprocess, DBINT row)
 Make a buffered row "current" without fetching it into bound variables. More...
 
RETCODE dbsettime (int seconds)
 Set maximum seconds db-lib waits for a server response to query. More...
 
void dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr)
 Associate client-allocated (and defined) data with a DBPROCESS. More...
 
RETCODE dbsetversion (DBINT version)
 Specify a db-lib version level. More...
 
int dbspid (DBPROCESS *dbproc)
 Get server process ID for a DBPROCESS. More...
 
RETCODE dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print a regular result row to a buffer. More...
 
DBINT dbspr1rowlen (DBPROCESS *dbproc)
 Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row(). More...
 
RETCODE dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print result set headings to a buffer. More...
 
RETCODE dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
 Get formatted string for underlining dbsprhead() column names. More...
 
RETCODE dbsqlexec (DBPROCESS *dbproc)
 send the SQL command to the server and wait for an answer. More...
 
RETCODE dbsqlok (DBPROCESS *dbproc)
 Wait for results of a query from the server. More...
 
RETCODE dbsqlsend (DBPROCESS *dbproc)
 Transmit the command buffer to the server. More...
 
int dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
 Build a printable string from text containing placeholders for variables. More...
 
RETCODE dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest)
 Get a copy of a chunk of the command buffer. More...
 
int dbstrlen (DBPROCESS *dbproc)
 Get size of the command buffer, in bytes. More...
 
RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
 describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) More...
 
int dbtds (DBPROCESS *dbprocess)
 Get the TDS version in use for dbproc. More...
 
-DBINT dbtextsize (DBPROCESS *dbprocess)
 
DBBINARY * dbtxptr (DBPROCESS *dbproc, int column)
 Get text pointer for a column in the current row. More...
 
DBBINARY * dbtxtimestamp (DBPROCESS *dbproc, int column)
 Get text timestamp for a column in the current row. More...
 
-DBBINARY * dbtxtsnewval (DBPROCESS *dbprocess)
 
-RETCODE dbtxtsput (DBPROCESS *dbprocess, DBBINARY newtxts, int colnum)
 
RETCODE dbuse (DBPROCESS *dbproc, const char *name)
 Change current database. More...
 
DBINT dbvarylen (DBPROCESS *dbproc, int column)
 Determine whether a column can vary in size. More...
 
const char * dbversion (void)
 See which version of db-lib is in use. More...
 
DBBOOL dbwillconvert (int srctype, int desttype)
 Test whether or not a datatype can be converted to another datatype. More...
 
RETCODE dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
 Send text or image data to the server. More...
 
-DBBOOL DRBUF (DBPROCESS *dbprocess)
 
DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
 Form a connection with the server. More...
 
-

Detailed Description

-

Primary include file for db-lib applications.

-

Declares macros, functions, enumerated types, and defined tokens used by the db-lib API.

-

Function Documentation

- -

§ dbcolinfo()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbcolinfo (DBPROCESSdbproc,
CI_TYPE type,
DBINT column,
DBINT computeid,
DBCOLpdbcol 
)
-
- -

Get a bunch of column attributes with a single call (Microsoft-compatibility feature).

-
Parameters
- - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
typemust be CI_REGULAR or CI_ALTERNATE (CI_CURSOR is defined by the vendor, but is not yet implemented).
columnNth in the result set, starting from 1.
computeid(ignored)
pdbcoladdress of structure to be populated by this function.
-
-
-
Returns
SUCCEED or FAIL.
-
See also
dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput().
-
Todo:
Support cursor rows.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbopen()

- -
-
- - - - - - - - - - - - - - - - - - -
DBPROCESS* dbopen (LOGINREClogin,
const char * server 
)
-
- -

Normally not used.

-

The function is linked in only if the –enable-sybase-compat configure option is used. Cf. sybdb.h dbopen() macros, and dbdatecrack().

-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbpivot()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbpivot (DBPROCESSdbproc,
int nkeys,
int * keys,
int ncols,
int * cols,
DBPIVOT_FUNC func,
int val 
)
-
- -

Pivot the rows, creating a new resultset.

-

Call dbpivot() immediately after dbresults(). It calls dbnextrow() as long as it returns REG_ROW, transforming the results into a cross-tab report. dbpivot() modifies the metadata such that DB-Library can be used tranparently: retrieve the rows as usual with dbnumcols(), dbnextrow(), etc.

-

, our old friend the number of left-edge columns to group by an array of left-edge columns to group by the number of top-edge columns to group by an array of top-edge columns to group by the aggregation function to use the number of the column to which is applied

-
Returns
the return code from the final call to dbnextrow(). Success is normally indicated by NO_MORE_ROWS.
- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00497_source.html freetds-1.2.3/doc/reference/a00497_source.html --- freetds-1.1.6/doc/reference/a00497_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00497_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/sybdb.h Source File +FreeTDS API: include/sqlfront.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
sybdb.h
+
sqlfront.h
-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 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 
28 #ifndef _sybdb_h_
29 #define _sybdb_h_
30 
31 #include "tds_sysdep_public.h"
32 
33 #undef TDS_STATIC_CAST
34 #ifdef __cplusplus
35 #define TDS_STATIC_CAST(type, a) static_cast<type>(a)
36 extern "C"
37 {
38 #if 0
39 }
40 #endif
41 #else
42 #define TDS_STATIC_CAST(type, a) ((type)(a))
43 #endif
44 
45 #ifdef FALSE
46 #undef FALSE
47 #endif
48 #ifdef TRUE
49 #undef TRUE
50 #endif
51 #define FALSE 0
52 #define TRUE 1
53 
54 #define DBSAVE 1
55 #define DBNOSAVE 0
56 #define DBNOERR -1
57 
58 #define INT_EXIT 0
59 #define INT_CONTINUE 1
60 #define INT_CANCEL 2
61 #define INT_TIMEOUT 3
62 
63 #define DBMAXNUMLEN 33
64 /* https://msdn.microsoft.com/en-us/library/ms176061.aspx */
65 #define DBMAXNAME 128
66 
70 #define DBVERSION_UNKNOWN 0
71 #define DBVERSION_46 1
72 #define DBVERSION_100 2
73 #define DBVERSION_42 3
74 #define DBVERSION_70 4
75 #define DBVERSION_71 5
76 #define DBVERSION_72 6
77 #define DBVERSION_73 7
78 #define DBVERSION_74 8
79 
80 /* these two are defined by Microsoft for dbsetlversion() */
81 #define DBVER42 DBVERSION_42
82 #define DBVER60 DBVERSION_70 /* our best approximation */
83 
88 #define DBTDS_UNKNOWN 0
89 #define DBTDS_2_0 1 /* pre 4.0 SQL Server */
90 #define DBTDS_3_4 2 /* Microsoft SQL Server (3.0) */
91 #define DBTDS_4_0 3 /* 4.0 SQL Server */
92 #define DBTDS_4_2 4 /* 4.2 SQL Server */
93 #define DBTDS_4_6 5 /* 2.0 OpenServer and 4.6 SQL Server. */
94 #define DBTDS_4_9_5 6 /* 4.9.5 (NCR) SQL Server */
95 #define DBTDS_5_0 7 /* 5.0 SQL Server */
96 #define DBTDS_7_0 8 /* Microsoft SQL Server 7.0 */
97 #define DBTDS_8_0 9 /* Microsoft SQL Server 2000 */
98 #define DBTDS_9_0 10 /* Microsoft SQL Server 2005 */
99 #define DBTDS_7_1 9 /* Microsoft SQL Server 2000 */
100 #define DBTDS_7_2 10 /* Microsoft SQL Server 2005 */
101 #define DBTDS_7_3 11 /* Microsoft SQL Server 2008 */
102 #define DBTDS_7_4 12 /* Microsoft SQL Server 2012/2014 */
103 
104 #define DBTXPLEN 16
105 
106 #define BCPMAXERRS 1
107 #define BCPFIRST 2
108 #define BCPLAST 3
109 #define BCPBATCH 4
110 #define BCPKEEPIDENTITY 8
111 
112 #define BCPLABELED 5
113 #define BCPHINTS 6
114 
115 #define DBCMDNONE 0
116 #define DBCMDPEND 1
117 #define DBCMDSENT 2
118 
119 typedef int RETCODE;
120 
121 typedef void DBCURSOR;
122 typedef void DBXLATE;
123 typedef void DBSORTORDER;
124 typedef void DBLOGINFO;
125 typedef void *DBVOIDPTR;
126 typedef short SHORT;
127 typedef unsigned short USHORT;
128 typedef int (*INTFUNCPTR) (void *, ...);
129 typedef int (*DBWAITFUNC) (void);
130 typedef DBWAITFUNC(*DB_DBBUSY_FUNC) (void *dbproc);
131 typedef void (*DB_DBIDLE_FUNC) (DBWAITFUNC dfunc, void *dbproc);
132 typedef int (*DB_DBCHKINTR_FUNC) (void *dbproc);
133 typedef int (*DB_DBHNDLINTR_FUNC) (void *dbproc);
134 
135 #ifndef __INCvxWorksh
136 /* VxWorks already defines STATUS and BOOL. Compiler gets mad if you
137 ** redefine them. */
138 /* __INCvxWorksh will get #defined by std. include files included from tds.h
139 */
140 #ifdef STATUS
141 /* On DU4.0d we get a conflicting STATUS definition from arpa/nameser.h
142  when _REENTRANT is defined.
143 */
144 #undef STATUS
145 #endif
146 typedef int STATUS;
147 #if !defined(_WINDEF_) && !defined(_WINDEF_H) && !defined(DOS32X)
148 typedef int BOOL;
149 #endif
150 #endif
151 
152 #ifndef _tds_h_
153 /* copied from tds.h */
154 /* TODO find a best way... */
155 enum
156 {
157  SYBCHAR = 47, /* 0x2F */
158 #define SYBCHAR SYBCHAR
159  SYBVARCHAR = 39, /* 0x27 */
160 #define SYBVARCHAR SYBVARCHAR
161  SYBINTN = 38, /* 0x26 */
162 #define SYBINTN SYBINTN
163  SYBINT1 = 48, /* 0x30 */
164 #define SYBINT1 SYBINT1
165  SYBINT2 = 52, /* 0x34 */
166 #define SYBINT2 SYBINT2
167  SYBINT4 = 56, /* 0x38 */
168 #define SYBINT4 SYBINT4
169  SYBINT8 = 127, /* 0x7F */
170 #define SYBINT8 SYBINT8
171  SYBFLT8 = 62, /* 0x3E */
172 #define SYBFLT8 SYBFLT8
173  SYBDATETIME = 61, /* 0x3D */
174 #define SYBDATETIME SYBDATETIME
175  SYBBIT = 50, /* 0x32 */
176 #define SYBBIT SYBBIT
177  SYBBITN = 104, /* 0x68 */
178 #define SYBBITN SYBBITN
179  SYBTEXT = 35, /* 0x23 */
180 #define SYBTEXT SYBTEXT
181  SYBNTEXT = 99, /* 0x63 */
182 #define SYBNTEXT SYBNTEXT
183  SYBIMAGE = 34, /* 0x22 */
184 #define SYBIMAGE SYBIMAGE
185  SYBMONEY4 = 122, /* 0x7A */
186 #define SYBMONEY4 SYBMONEY4
187  SYBMONEY = 60, /* 0x3C */
188 #define SYBMONEY SYBMONEY
189  SYBDATETIME4 = 58, /* 0x3A */
190 #define SYBDATETIME4 SYBDATETIME4
191  SYBREAL = 59, /* 0x3B */
192 #define SYBREAL SYBREAL
193  SYBBINARY = 45, /* 0x2D */
194 #define SYBBINARY SYBBINARY
195  SYBVOID = 31, /* 0x1F */
196 #define SYBVOID SYBVOID
197  SYBVARBINARY = 37, /* 0x25 */
198 #define SYBVARBINARY SYBVARBINARY
199  SYBNUMERIC = 108, /* 0x6C */
200 #define SYBNUMERIC SYBNUMERIC
201  SYBDECIMAL = 106, /* 0x6A */
202 #define SYBDECIMAL SYBDECIMAL
203  SYBFLTN = 109, /* 0x6D */
204 #define SYBFLTN SYBFLTN
205  SYBMONEYN = 110, /* 0x6E */
206 #define SYBMONEYN SYBMONEYN
207  SYBDATETIMN = 111, /* 0x6F */
208 #define SYBDATETIMN SYBDATETIMN
209  SYBNVARCHAR = 103, /* 0x67 */
210 #define SYBNVARCHAR SYBNVARCHAR
211  SYBDATE = 49, /* 0x31 */
212 #define SYBDATE SYBDATE
213  SYBTIME = 51, /* 0x33 */
214 #define SYBTIME SYBTIME
215  SYBBIGDATETIME = 187, /* 0xBB */
216 #define SYBBIGDATETIME SYBBIGDATETIME
217  SYBBIGTIME = 188, /* 0xBC */
218 #define SYBBIGTIME SYBBIGTIME
219  SYBMSDATE = 40, /* 0x28 */
220 #define SYBMSDATE SYBMSDATE
221  SYBMSTIME = 41, /* 0x29 */
222 #define SYBMSTIME SYBMSTIME
223  SYBMSDATETIME2 = 42, /* 0x2A */
224 #define SYBMSDATETIME2 SYBMSDATETIME2
225  SYBMSDATETIMEOFFSET = 43, /* 0x2B */
226 #define SYBMSDATETIMEOFFSET SYBMSDATETIMEOFFSET
227 };
228 
229 #define SYBAOPCNT 0x4b
230 #define SYBAOPCNTU 0x4c
231 #define SYBAOPSUM 0x4d
232 #define SYBAOPSUMU 0x4e
233 #define SYBAOPAVG 0x4f
234 #define SYBAOPAVGU 0x50
235 #define SYBAOPMIN 0x51
236 #define SYBAOPMAX 0x52
237 
238 /* mssql2k compute operator */
239 #define SYBAOPCNT_BIG 0x09
240 #define SYBAOPSTDEV 0x30
241 #define SYBAOPSTDEVP 0x31
242 #define SYBAOPVAR 0x32
243 #define SYBAOPVARP 0x33
244 #define SYBAOPCHECKSUM_AGG 0x72
245 
246 #endif
247 
248 typedef unsigned char DBBOOL;
249 typedef char DBCHAR;
250 typedef unsigned char DBBIT;
251 typedef unsigned char DBTINYINT;
252 typedef int16_t DBSMALLINT;
253 typedef int32_t DBINT;
254 typedef int64_t DBBIGINT;
255 typedef unsigned char DBBINARY;
256 typedef tds_sysdep_real32_type DBREAL;
257 typedef tds_sysdep_real64_type DBFLT8;
258 typedef uint16_t DBUSMALLINT;
259 typedef uint32_t DBUINT;
260 typedef uint64_t DBUBIGINT;
261 
262 typedef struct
263 {
264  DBSMALLINT len;
265  char str[256];
266 } DBVARYCHAR;
267 
268 typedef struct
269 {
270  DBSMALLINT len;
271  unsigned char array[256];
272 } DBVARYBIN;
273 
274 typedef struct
275 {
276  unsigned char precision;
277  unsigned char scale;
278  unsigned char array[33];
279 } DBNUMERIC;
280 
281 typedef DBNUMERIC DBDECIMAL;
282 
283 typedef struct
284 {
285  DBINT mnyhigh;
286  DBUINT mnylow;
287 } DBMONEY;
288 
289 typedef struct
290 {
291  DBINT mny4;
292 } DBMONEY4;
293 
294 typedef struct
295 {
296  DBINT dtdays;
297  DBINT dttime;
298 } DBDATETIME;
299 
300 typedef struct
301 {
302  DBUSMALLINT days; /* days since Jan-1-1900 */
303  DBUSMALLINT minutes; /* minutes since midnight */
304 } DBDATETIME4;
305 
306 typedef struct
307 {
308  DBUBIGINT time;
309  DBINT date;
310  DBSMALLINT offset;
311  DBUSMALLINT time_prec:3;
312 // fix a problem with some public headers defining _res
313 #undef _res
314  DBUSMALLINT _res:10;
315  DBUSMALLINT has_time:1;
316  DBUSMALLINT has_date:1;
317  DBUSMALLINT has_offset:1;
318 } DBDATETIMEALL;
319 
320 #ifdef MSDBLIB
321 # define SQLCHAR SYBCHAR
322  typedef struct
323  {
324  DBUSMALLINT numdays;
325  DBUSMALLINT nummins;
326  } DBDATETIM4;
327 #endif
328 
329 typedef struct tds_dblib_loginrec LOGINREC;
330 
331 #ifndef DOS32X
332 typedef unsigned char BYTE;
333 #endif
334 
335 typedef struct dbtypeinfo
336 {
337  DBINT precision;
338  DBINT scale;
339 } DBTYPEINFO;
340 
341 struct dbstring
342 {
343  BYTE *strtext;
344  DBINT strtotlen;
345  struct dbstring *strnext;
346 };
347 typedef struct dbstring DBSTRING;
348 
349 /* Used by dbcolinfo */
350 enum
351 { MAXCOLNAMELEN = 512 }; /* duplicates TDS_SYSNAME_SIZE */
352 typedef enum { CI_REGULAR=1, CI_ALTERNATE=2, CI_CURSOR=3 } CI_TYPE;
353 
354 typedef struct
355 {
356  DBINT SizeOfStruct;
357  DBCHAR Name[MAXCOLNAMELEN+2];
358  DBCHAR ActualName[MAXCOLNAMELEN+2];
359  DBCHAR TableName[MAXCOLNAMELEN+2];
360  SHORT Type;
361  DBINT UserType;
362  DBINT MaxLength;
363  BYTE Precision;
364  BYTE Scale;
365  BOOL VarLength;
366  BYTE Null;
367  BYTE CaseSensitive;
368  BYTE Updatable;
369  BOOL Identity;
370 
371 } DBCOL;
372 
373 typedef struct
374 {
375  DBINT SizeOfStruct;
376  DBCHAR Name[MAXCOLNAMELEN+2];
377  DBCHAR ActualName[MAXCOLNAMELEN+2];
378  DBCHAR TableName[MAXCOLNAMELEN+2];
379  SHORT Type;
380  DBINT UserType;
381  DBINT MaxLength;
382  BYTE Precision;
383  BYTE Scale;
384  BOOL VarLength;
385  BYTE Null;
386  BYTE CaseSensitive;
387  BYTE Updatable;
388  BOOL Identity;
389  SHORT ServerType;
390  DBINT ServerMaxLength;
391  DBCHAR ServerTypeDeclaration[256];
392 } DBCOL2;
393 /* end dbcolinfo stuff */
394 
395 
396 
397 /* a large list of options, DBTEXTSIZE is needed by sybtcl */
398 #define DBPARSEONLY 0
399 #define DBESTIMATE 1
400 #define DBSHOWPLAN 2
401 #define DBNOEXEC 3
402 #define DBARITHIGNORE 4
403 #define DBNOCOUNT 5
404 #define DBARITHABORT 6
405 #define DBTEXTLIMIT 7
406 #define DBBROWSE 8
407 #define DBOFFSET 9
408 #define DBSTAT 10
409 #define DBERRLVL 11
410 #define DBCONFIRM 12
411 #define DBSTORPROCID 13
412 #define DBBUFFER 14
413 #define DBNOAUTOFREE 15
414 #define DBROWCOUNT 16
415 #define DBTEXTSIZE 17
416 #define DBNATLANG 18
417 #define DBDATEFORMAT 19
418 #define DBPRPAD 20
419 #define DBPRCOLSEP 21
420 #define DBPRLINELEN 22
421 #define DBPRLINESEP 23
422 #define DBLFCONVERT 24
423 #define DBDATEFIRST 25
424 #define DBCHAINXACTS 26
425 #define DBFIPSFLAG 27
426 #define DBISOLATION 28
427 #define DBAUTH 29
428 #define DBIDENTITY 30
429 #define DBNOIDCOL 31
430 #define DBDATESHORT 32
431 #define DBCLIENTCURSORS 33
432 #define DBSETTIME 34
433 #define DBQUOTEDIDENT 35
434 
435 #define DBNUMOPTIONS 36
436 
437 #define DBPADOFF 0
438 #define DBPADON 1
439 
440 #define OFF 0
441 #define ON 1
442 
443 #define NOSUCHOPTION 2
444 
445 #define MAXOPTTEXT 32
446 
447 typedef struct tds_dblib_dbprocess DBPROCESS;
448 
449 /*
450  * Sybase & Microsoft use different names for the dbdaterec members.
451  * Keep these two structures physically identical in memory.
452  * dbdatecrack() casts one to the other for ease of implementation.
453  *
454  * Giving credit where credit is due, we can acknowledge that
455  * Microsoft chose the better names here, hands down. ("datedmonth"?!)
456  */
458 {
459  DBINT year; /* 1753 - 9999 */
460  DBINT quarter; /* 1 - 4 */
461  DBINT month; /* 1 - 12 */
462  DBINT day; /* 1 - 31 */
463  DBINT dayofyear; /* 1 - 366 */
464  DBINT week; /* 1 - 54 (for leap years) */
465  DBINT weekday; /* 1 - 7 (Mon. - Sun.) */
466  DBINT hour; /* 0 - 23 */
467  DBINT minute; /* 0 - 59 */
468  DBINT second; /* 0 - 59 */
469  DBINT millisecond; /* 0 - 999 */
470  DBINT tzone; /* -840 - 840 */
471 };
472 
474 {
475  DBINT dateyear; /* 1900 and counting */
476  DBINT quarter; /* 0 - 3 (Microsoft only) */
477  DBINT datemonth; /* 0 - 11 */
478  DBINT datedmonth; /* 1 - 31 */
479  DBINT datedyear; /* 1 - 366 */
480  DBINT week; /* 1 - 54 (Microsoft only) */
481  DBINT datedweek; /* 0 - 6 */
482  DBINT datehour; /* 0 - 23 */
483  DBINT dateminute; /* 0 - 59 */
484  DBINT datesecond; /* 0 - 59 */
485  DBINT datemsecond; /* 0 - 999 */
486  DBINT datetzone; /* -840 - 840 */
487 };
488 
490 {
491  DBINT year; /* 1753 - 9999 */
492  DBINT quarter; /* 1 - 4 */
493  DBINT month; /* 1 - 12 */
494  DBINT day; /* 1 - 31 */
495  DBINT dayofyear; /* 1 - 366 */
496  DBINT week; /* 1 - 54 (for leap years) */
497  DBINT weekday; /* 1 - 7 (Mon. - Sun.) */
498  DBINT hour; /* 0 - 23 */
499  DBINT minute; /* 0 - 59 */
500  DBINT second; /* 0 - 59 */
501  DBINT nanosecond; /* 0 - 999999999 */
502  DBINT tzone; /* 0 - 127 (Sybase only) */
503 };
504 
506 {
507  DBINT dateyear; /* 1900 and counting */
508  DBINT quarter; /* 0 - 3 (Microsoft only) */
509  DBINT datemonth; /* 0 - 11 */
510  DBINT datedmonth; /* 1 - 31 */
511  DBINT datedyear; /* 1 - 366 */
512  DBINT week; /* 1 - 54 (Microsoft only) */
513  DBINT datedweek; /* 0 - 6 */
514  DBINT datehour; /* 0 - 23 */
515  DBINT dateminute; /* 0 - 59 */
516  DBINT datesecond; /* 0 - 59 */
517  DBINT datensecond; /* 0 - 999999999 */
518  DBINT datetzone; /* 0 - 127 */
519 };
520 
521 
522 #ifdef MSDBLIB
523 typedef struct tds_microsoft_dbdaterec DBDATEREC;
524 typedef struct tds_microsoft_dbdaterec2 DBDATEREC2;
525 #else
526 typedef struct tds_sybase_dbdaterec DBDATEREC;
527 typedef struct tds_sybase_dbdaterec2 DBDATEREC2;
528 #endif
529 
530 typedef int (*EHANDLEFUNC) (DBPROCESS * dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
531 
532 typedef int (*MHANDLEFUNC) (DBPROCESS * dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname,
533  char *proc, int line);
534 
535 /* dbpoll() result codes, sybtcl needs DBRESULT */
536 #define DBRESULT 1
537 #define DBNOTIFICATION 2
538 #define DBTIMEOUT 3
539 #define DBINTERRUPT 4
540 
541 /* more sybtcl needs: */
542 #define DBTXTSLEN 8
543 
544 /* bind types */
545 #define CHARBIND 0
546 #define STRINGBIND 1
547 #define NTBSTRINGBIND 2
548 #define VARYCHARBIND 3
549 #define VARYBINBIND 4
550 #define TINYBIND 6
551 #define SMALLBIND 7
552 #define INTBIND 8
553 #define FLT8BIND 9
554 #define REALBIND 10
555 #define DATETIMEBIND 11
556 #define SMALLDATETIMEBIND 12
557 #define MONEYBIND 13
558 #define SMALLMONEYBIND 14
559 #define BINARYBIND 15
560 #define BITBIND 16
561 #define NUMERICBIND 17
562 #define DECIMALBIND 18
563 #define SRCNUMERICBIND 19
564 #define SRCDECIMALBIND 20
565 #define DATEBIND 21
566 #define TIMEBIND 22
567 #define BIGDATETIMEBIND 23
568 #define BIGTIMEBIND 24
569 #define BIGINTBIND 30
570 #define DATETIME2BIND 31
571 #define MAXBINDTYPES 32 /* keep last */
572 
573 #define DBPRCOLSEP 21
574 #define DBPRLINELEN 22
575 #define DBRPCRETURN 1
576 #define DBRPCDEFAULT 2
577 
578 #define REG_ROW -1
579 #define MORE_ROWS -1
580 #define NO_MORE_ROWS -2
581 #define BUF_FULL -3
582 #define NO_MORE_RESULTS 2
583 #define SUCCEED 1
584 #define FAIL 0
585 
586 #define DB_IN 1
587 #define DB_OUT 2
588 #define DB_QUERYOUT 3
589 
590 #define DBSINGLE 0
591 #define DBDOUBLE 1
592 #define DBBOTH 2
593 
594 /* remote procedure call (rpc) options */
595 #define DBRPCRECOMPILE TDS_STATIC_CAST(DBSMALLINT, 0x0001)
596 #define DBRPCRESET TDS_STATIC_CAST(DBSMALLINT, 0x0002)
597 #define DBRPCCURSOR TDS_STATIC_CAST(DBSMALLINT, 0x0008)
598 
599 #if defined(DBLIB_UNIMPLEMENTED)
600 DBBOOL db12hour(DBPROCESS * dbprocess, const char language[]);
601 
602 DBBOOL dbcolbrowse(DBPROCESS * dbprocess, int colnum);
603 
604 RETCODE dbcursor(DBCURSOR * hc, DBINT optype, DBINT bufno, BYTE * table, BYTE * values);
605 RETCODE dbcursorbind(DBCURSOR * hc, int col, int vartype, DBINT varlen, DBINT * poutlen, BYTE * pvaraddr, DBTYPEINFO * typeinfo);
606 void dbcursorclose(DBCURSOR * hc);
607 RETCODE dbcursorcolinfo(DBCURSOR * hc, DBINT column, DBCHAR * colname, DBINT * coltype, DBINT * collen, DBINT * usertype);
608 RETCODE dbcursorfetch(DBCURSOR * hc, DBINT fetchtype, DBINT rownum);
609 RETCODE dbcursorinfo(DBCURSOR * hc, DBINT * ncols, DBINT * nrows);
610 DBCURSOR *dbcursoropen(DBPROCESS * dbprocess, BYTE * stmt, SHORT scollopt, SHORT concuropt, USHORT nrows, DBINT * pstatus);
611 
612 int dbdate4cmp(DBPROCESS * dbprocess, DBDATETIME4 * d1, DBDATETIME4 * d2);
613 RETCODE dbdate4zero(DBPROCESS * dbprocess, DBDATETIME4 * d1);
614 RETCODE dbdatechar(DBPROCESS * dbprocess, char *buf, int datepart, int value);
615 int dbdatename(DBPROCESS * dbprocess, char *buf, int date, DBDATETIME * datetime);
616 char *dateorder(DBPROCESS * dbprocess, char *language);
617 DBINT dbdatepart(DBPROCESS * dbprocess, int datepart, DBDATETIME * datetime);
618 RETCODE dbdatezero(DBPROCESS * dbprocess, DBDATETIME * d1);
619 char *dbdayname(DBPROCESS * dbprocess, char *language, int daynum);
620 
621 int dbgetoff(DBPROCESS * dbprocess, DBUSMALLINT offtype, int startfrom);
622 
623 char *dbqual(DBPROCESS * dbprocess, int tabnum, char *tabname);
624 void dbfreequal(char *qualptr);
625 
626 DBSORTORDER *dbloadsort(DBPROCESS * dbprocess);
627 RETCODE dbfreesort(DBPROCESS * dbprocess, DBSORTORDER * sortorder);
628 
629 RETCODE dbload_xlate(DBPROCESS * dbprocess, char *srv_charset, char *clt_name, DBXLATE ** xlt_tosrv, DBXLATE ** xlt_todisp);
630 
631 RETCODE dbmny4divide(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * quotient);
632 RETCODE dbmny4mul(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * prod);
633 RETCODE dbmnyadd(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * sum);
634 RETCODE dbmnydivide(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * quotient);
635 RETCODE dbmnydown(DBPROCESS * dbproc, DBMONEY * mnyptr, int divisor, int *remainder);
636 RETCODE dbmnyinit(DBPROCESS * dbproc, DBMONEY * mnyptr, int trim, DBBOOL * negative);
637 RETCODE dbmnyndigit(DBPROCESS * dbproc, DBMONEY * mnyptr, DBCHAR * value, DBBOOL * zero);
638 RETCODE dbmnymul(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * prod);
639 RETCODE dbmnydigit(DBPROCESS * dbprocess, DBMONEY * m1, DBCHAR * value, DBBOOL * zero);
640 RETCODE dbmnyscale(DBPROCESS * dbproc, DBMONEY * dest, int multiplier, int addend);
641 
642 
643 RETCODE dbnpcreate(DBPROCESS * dbprocess);
644 RETCODE dbnpdefine(DBPROCESS * dbprocess, DBCHAR * procedure_name, DBSMALLINT namelen);
645 
646 int DBNUMORDERS(DBPROCESS * dbprocess);
647 
648 RETCODE dbpoll(DBPROCESS * dbproc, long milliseconds, DBPROCESS ** ready_dbproc, int *return_reason);
649 int dbordercol(DBPROCESS * dbprocess, int order);
650 
651 RETCODE dbregdrop(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen);
652 RETCODE dbregexec(DBPROCESS * dbproc, DBUSMALLINT options);
653 RETCODE dbreghandle(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen, INTFUNCPTR handler);
654 RETCODE dbreginit(DBPROCESS * dbproc, DBCHAR * procedure_name, DBSMALLINT namelen);
655 RETCODE dbreglist(DBPROCESS * dbproc);
656 RETCODE dbregnowatch(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen);
657 RETCODE dbregparam(DBPROCESS * dbproc, char *param_name, int type, DBINT datalen, BYTE * data);
658 RETCODE dbregwatch(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen, DBUSMALLINT options);
659 RETCODE dbregwatchlist(DBPROCESS * dbprocess);
660 
661 void dbrpwclr(LOGINREC * login);
662 RETCODE dbrpwset(LOGINREC * login, char *srvname, char *password, int pwlen);
663 
664 DBINT dbreadpage(DBPROCESS * dbprocess, char *p_dbname, DBINT pageno, BYTE * buf);
665 RETCODE dbwritepage(DBPROCESS * dbprocess, char *p_dbname, DBINT pageno, DBINT size, BYTE * buf);
666 
667 RETCODE dbsetdeflang(char *language);
668 
669 int dbstrcmp(DBPROCESS * dbprocess, char *s1, int l1, char *s2, int l2, DBSORTORDER * sort);
670 int dbstrsort(DBPROCESS * dbprocess, char *s1, int l1, char *s2, int l2, DBSORTORDER * sort);
671 
672 DBBOOL dbtabbrowse(DBPROCESS * dbprocess, int tabnum);
673 int dbtabcount(DBPROCESS * dbprocess);
674 char *dbtabname(DBPROCESS * dbprocess, int tabnum);
675 char *dbtabsource(DBPROCESS * dbprocess, int colnum, int *tabnum);
676 
677 RETCODE dbsendpassthru(DBPROCESS * dbprocess, DBVOIDPTR bufp);
678 RETCODE dbrecvpassthru(DBPROCESS * dbprocess, DBVOIDPTR * bufp);
679 
680 RETCODE dbgetloginfo(DBPROCESS * dbprocess, DBLOGINFO ** loginfo);
681 RETCODE dbsetloginfo(LOGINREC * loginrec, DBLOGINFO * loginfo);
682 
683 int dbtsnewlen(DBPROCESS * dbprocess);
684 DBBINARY *dbtsnewval(DBPROCESS * dbprocess);
685 RETCODE dbtsput(DBPROCESS * dbprocess, DBBINARY * newts, int newtslen, int tabnum, char *tabname);
686 
687 RETCODE dbfree_xlate(DBPROCESS * dbprocess, DBXLATE * xlt_tosrv, DBXLATE * clt_todisp);
688 int dbxlate(DBPROCESS * dbprocess, char *src, int srclen, char *dest, int destlen, DBXLATE * xlt, int *srcbytes_used,
689  DBBOOL srcend, int status);
690 
691 RETCODE bcp_moretext(DBPROCESS * dbproc, DBINT size, BYTE * text);
692 RETCODE bcp_writefmt(DBPROCESS * dbproc, const char filename[]);
693 
694 void build_xact_string(char *xact_name, char *service_name, DBINT commid, char *result);
695 RETCODE remove_xact(DBPROCESS * connect, DBINT commid, int n);
696 RETCODE abort_xact(DBPROCESS * connect, DBINT commid);
697 void close_commit(DBPROCESS * connect);
698 RETCODE commit_xact(DBPROCESS * connect, DBINT commid);
699 DBPROCESS *open_commit(LOGINREC * login, char *servername);
700 RETCODE scan_xact(DBPROCESS * connect, DBINT commid);
701 DBINT start_xact(DBPROCESS * connect, char *application_name, char *xact_name, int site_count);
702 DBINT stat_xact(DBPROCESS * connect, DBINT commid);
703 
704 #endif /* define unimplemented */
705 
706 BYTE *dbadata(DBPROCESS * dbproc, int computeid, int column);
707 DBINT dbadlen(DBPROCESS * dbproc, int computeid, int column);
708 RETCODE dbaltbind(DBPROCESS * dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE * varaddr);
709 RETCODE dbaltbind_ps(DBPROCESS * dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE * varaddr,
710  DBTYPEINFO * typeinfo);
711 int dbaltcolid(DBPROCESS * dbproc, int computeid, int column);
712 DBINT dbaltlen(DBPROCESS * dbproc, int computeid, int column);
713 int dbaltop(DBPROCESS * dbproc, int computeid, int column);
714 int dbalttype(DBPROCESS * dbproc, int computeid, int column);
715 DBINT dbaltutype(DBPROCESS * dbproc, int computeid, int column);
716 RETCODE dbanullbind(DBPROCESS * dbprocess, int computeid, int column, DBINT * indicator);
717 RETCODE dbbind(DBPROCESS * dbproc, int column, int vartype, DBINT varlen, BYTE * varaddr);
718 RETCODE dbbind_ps(DBPROCESS * dbprocess, int column, int vartype, DBINT varlen, BYTE * varaddr, DBTYPEINFO * typeinfo);
719 int dbbufsize(DBPROCESS * dbprocess);
720 BYTE *dbbylist(DBPROCESS * dbproc, int computeid, int *size);
721 RETCODE dbcancel(DBPROCESS * dbproc);
722 RETCODE dbcanquery(DBPROCESS * dbproc);
723 char *dbchange(DBPROCESS * dbprocess);
724 DBBOOL dbcharsetconv(DBPROCESS * dbprocess);
725 void dbclose(DBPROCESS * dbproc);
726 void dbclrbuf(DBPROCESS * dbproc, DBINT n);
727 RETCODE dbclropt(DBPROCESS * dbproc, int option, const char param[]);
728 RETCODE dbcmd(DBPROCESS * dbproc, const char cmdstring[]);
729 RETCODE dbcmdrow(DBPROCESS * dbproc);
730 
731 #define DBCMDROW(x) dbcmdrow((x))
732 RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol );
733 RETCODE dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol);
734 DBINT dbcollen(DBPROCESS * dbproc, int column);
735 char *dbcolname(DBPROCESS * dbproc, int column);
736 const char *dbacolname(DBPROCESS * dbproc, int computeid, int column);
737 char *dbcolsource(DBPROCESS * dbproc, int colnum);
738 int dbcoltype(DBPROCESS * dbproc, int column);
739 DBTYPEINFO *dbcoltypeinfo(DBPROCESS * dbproc, int column);
740 DBINT dbcolutype(DBPROCESS * dbprocess, int column);
741 DBINT dbconvert(DBPROCESS * dbproc, int srctype, const BYTE * src, DBINT srclen, int desttype, BYTE * dest, DBINT destlen);
742 DBINT dbconvert_ps(DBPROCESS * dbprocess, int srctype, const BYTE * src, DBINT srclen, int desttype, BYTE * dest, DBINT destlen,
743  DBTYPEINFO * typeinfo);
744 BOOL dbiscount(DBPROCESS * dbproc);
745 DBINT dbcount(DBPROCESS * dbproc);
746 
747 #define DBCOUNT(x) dbcount((x))
748 int dbcurcmd(DBPROCESS * dbproc);
749 
750 #define DBCURCMD(x) dbcurcmd((x))
751 DBINT dbcurrow(DBPROCESS * dbproc);
752 
753 #define DBCURROW(x) dbcurrow((x))
754 BYTE *dbdata(DBPROCESS * dbproc, int column);
755 int dbdatecmp(DBPROCESS * dbproc, DBDATETIME * d1, DBDATETIME * d2);
756 RETCODE dbdatecrack(DBPROCESS * dbproc, DBDATEREC * di, DBDATETIME * dt);
757 RETCODE dbanydatecrack(DBPROCESS * dbproc, DBDATEREC2 * di, int type, const void *data);
758 DBINT dbdatlen(DBPROCESS * dbproc, int column);
759 DBBOOL dbdead(DBPROCESS * dbproc);
760 
761 #define DBDEAD(x) dbdead((x))
762 EHANDLEFUNC dberrhandle(EHANDLEFUNC handler);
763 void dbexit(void);
764 RETCODE dbfcmd(DBPROCESS * dbproc, const char *fmt, ...);
765 DBINT dbfirstrow(DBPROCESS * dbproc);
766 
767 #define DBFIRSTROW(x) dbfirstrow((x))
768 void dbfreebuf(DBPROCESS * dbproc);
769 char *dbgetchar(DBPROCESS * dbprocess, int n);
770 char *dbgetcharset(DBPROCESS * dbprocess);
771 int dbgetlusername(LOGINREC * login, BYTE * name_buffer, int buffer_len);
772 int dbgetmaxprocs(void);
773 char *dbgetnatlanf(DBPROCESS * dbprocess);
774 int dbgetpacket(DBPROCESS * dbproc);
775 RETCODE dbgetrow(DBPROCESS * dbproc, DBINT row);
776 int dbgettime(void);
777 #define DBGETTIME dbgettime
778 BYTE *dbgetuserdata(DBPROCESS * dbproc);
779 DBBOOL dbhasretstat(DBPROCESS * dbproc);
780 RETCODE dbinit(void);
781 int dbiordesc(DBPROCESS * dbproc);
782 
783 #define DBIORDESC(x) dbiordesc((x))
784 int dbiowdesc(DBPROCESS * dbproc);
785 
786 #define DBIOWDESC(x) dbiowdesc((x))
787 DBBOOL dbisavail(DBPROCESS * dbprocess);
788 
789 #define DBISAVAIL(x) dbisavail((x))
790 DBBOOL dbisopt(DBPROCESS * dbproc, int option, const char param[]);
791 DBINT dblastrow(DBPROCESS * dbproc);
792 
793 #define DBLASTROW(x) dblastrow((x))
794 LOGINREC *dblogin(void);
795 void dbloginfree(LOGINREC * login);
796 
797 int dbmny4cmp(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2);
798 int dbmnycmp(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2);
799 
800 RETCODE dbmny4add(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * sum);
801 RETCODE dbmnydec(DBPROCESS * dbproc, DBMONEY * mnyptr);
802 RETCODE dbmnyinc(DBPROCESS * dbproc, DBMONEY * mnyptr);
803 RETCODE dbmnymaxpos(DBPROCESS * dbproc, DBMONEY * dest);
804 RETCODE dbmnymaxneg(DBPROCESS * dbproc, DBMONEY * dest);
805 RETCODE dbmny4minus(DBPROCESS * dbproc, DBMONEY4 * src, DBMONEY4 * dest);
806 RETCODE dbmnyminus(DBPROCESS * dbproc, DBMONEY * src, DBMONEY * dest);
807 RETCODE dbmny4sub(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * diff);
808 RETCODE dbmnysub(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * diff);
809 
810 RETCODE dbmny4copy(DBPROCESS * dbprocess, DBMONEY4 * m1, DBMONEY4 * m2);
811 RETCODE dbmnycopy(DBPROCESS * dbproc, DBMONEY * src, DBMONEY * dest);
812 
813 RETCODE dbmny4zero(DBPROCESS * dbproc, DBMONEY4 * dest);
814 RETCODE dbmnyzero(DBPROCESS * dbproc, DBMONEY * dest);
815 
816 const char *dbmonthname(DBPROCESS * dbproc, char *language, int monthnum, DBBOOL shortform);
817 RETCODE dbmorecmds(DBPROCESS * dbproc);
818 
819 #define DBMORECMDS(x) dbmorecmds((x))
820 RETCODE dbmoretext(DBPROCESS * dbproc, DBINT size, const BYTE text[]);
821 MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler);
822 char *dbname(DBPROCESS * dbproc);
823 STATUS dbnextrow(DBPROCESS * dbproc);
824 RETCODE dbnullbind(DBPROCESS * dbproc, int column, DBINT * indicator);
825 int dbnumalts(DBPROCESS * dbproc, int computeid);
826 int dbnumcols(DBPROCESS * dbproc);
827 int dbnumcompute(DBPROCESS * dbprocess);
828 int dbnumrets(DBPROCESS * dbproc);
829 DBPROCESS *tdsdbopen(LOGINREC * login, const char *server, int msdblib);
830 DBPROCESS *dbopen(LOGINREC * login, const char *server);
831 
832 /* pivot functions */
833 struct col_t;
834 void dbpivot_count (struct col_t *output, const struct col_t *input);
835 void dbpivot_sum (struct col_t *output, const struct col_t *input);
836 void dbpivot_min (struct col_t *output, const struct col_t *input);
837 void dbpivot_max (struct col_t *output, const struct col_t *input);
838 
839 struct pivot_t;
840 typedef void (*DBPIVOT_FUNC)(struct col_t *output, const struct col_t *input);
841 struct pivot_t * dbrows_pivoted(DBPROCESS *dbproc);
842 STATUS dbnextrow_pivoted(DBPROCESS *dbproc, struct pivot_t *pp);
843 RETCODE dbpivot(DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val);
844 
845 DBPIVOT_FUNC dbpivot_lookup_name( const char name[] );
846 
847 #ifdef MSDBLIB
848 #define dbopen(x,y) tdsdbopen((x),(y), 1)
849 #else
850 #define dbopen(x,y) tdsdbopen((x),(y), 0)
851 #endif
852 
853 /* fix PHP problem */
854 #ifdef PHP_SYBASE_DBOPEN
855 #undef PHP_SYBASE_DBOPEN
856 #define PHP_SYBASE_DBOPEN dbopen
857 #endif
858 
859 void dbprhead(DBPROCESS * dbproc);
860 DBINT dbprcollen(DBPROCESS * dbproc, int column);
861 RETCODE dbprrow(DBPROCESS * dbproc);
862 const char *dbprtype(int token);
863 DBBOOL DRBUF(DBPROCESS * dbprocess);
864 STATUS dbreadtext(DBPROCESS * dbproc, void *buf, DBINT bufsize);
865 void dbrecftos(const char filename[]);
866 RETCODE dbresults(DBPROCESS * dbproc);
867 RETCODE dbresults_r(DBPROCESS * dbproc, int recursive);
868 BYTE *dbretdata(DBPROCESS * dbproc, int retnum);
869 int dbretlen(DBPROCESS * dbproc, int retnum);
870 char *dbretname(DBPROCESS * dbproc, int retnum);
871 DBINT dbretstatus(DBPROCESS * dbproc);
872 int dbrettype(DBPROCESS * dbproc, int retnum);
873 RETCODE dbrows(DBPROCESS * dbproc);
874 
875 #define DBROWS(x) dbrows((x))
876 STATUS dbrowtype(DBPROCESS * dbprocess);
877 
878 #define DBROWTYPE(x) dbrowtype((x))
879 RETCODE dbrpcinit(DBPROCESS * dbproc, const char rpcname[], DBSMALLINT options);
880 RETCODE dbrpcparam(DBPROCESS * dbproc, const char paramname[], BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE * value);
881 RETCODE dbrpcsend(DBPROCESS * dbproc);
882 RETCODE dbsafestr(DBPROCESS * dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype);
883 RETCODE *dbsechandle(DBINT type, INTFUNCPTR handler);
884 char *dbservcharset(DBPROCESS * dbprocess);
885 void dbsetavail(DBPROCESS * dbprocess);
886 void dbsetbusy(DBPROCESS * dbprocess, DB_DBBUSY_FUNC busyfunc);
887 RETCODE dbsetdefcharset(char *charset);
888 void dbsetidle(DBPROCESS * dbprocess, DB_DBIDLE_FUNC idlefunc);
889 void dbsetifile(char *filename);
890 void dbsetinterrupt(DBPROCESS * dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr);
891 RETCODE dbsetlogintime(int seconds);
892 RETCODE dbsetmaxprocs(int maxprocs);
893 RETCODE dbsetnull(DBPROCESS * dbprocess, int bindtype, int bindlen, BYTE * bindval);
894 RETCODE dbsetopt(DBPROCESS * dbproc, int option, const char *char_param, int int_param);
895 STATUS dbsetrow(DBPROCESS * dbprocess, DBINT row);
896 RETCODE dbsettime(int seconds);
897 void dbsetuserdata(DBPROCESS * dbproc, BYTE * ptr);
898 RETCODE dbsetversion(DBINT version);
899 
900 int dbspid(DBPROCESS * dbproc);
901 RETCODE dbspr1row(DBPROCESS * dbproc, char *buffer, DBINT buf_len);
902 DBINT dbspr1rowlen(DBPROCESS * dbproc);
903 RETCODE dbsprhead(DBPROCESS * dbproc, char *buffer, DBINT buf_len);
904 RETCODE dbsprline(DBPROCESS * dbproc, char *buffer, DBINT buf_len, DBCHAR line_char);
905 RETCODE dbsqlexec(DBPROCESS * dbproc);
906 RETCODE dbsqlok(DBPROCESS * dbproc);
907 RETCODE dbsqlsend(DBPROCESS * dbproc);
908 int dbstrbuild(DBPROCESS * dbproc, char *charbuf, int bufsize, char *text, char *formats, ...);
909 RETCODE dbstrcpy(DBPROCESS * dbproc, int start, int numbytes, char *dest);
910 int dbstrlen(DBPROCESS * dbproc);
911 DBINT dbvarylen(DBPROCESS * dbproc, int column);
912 
913 #define SYBEVERDOWN 100 /* TDS version downgraded . */
914 #define SYBEICONVIU 2400 /* Some character(s) could not be converted into client's character set. */
915 #define SYBEICONVAVAIL 2401 /* Character set conversion is not available between client character set '%.*s' and server character set '%.*s'.*/
916 #define SYBEICONVO 2402 /* Error converting characters into server's character set. Some character(s) could not be converted.*/
917 #define SYBEICONVI 2403 /* Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').*/
918 #define SYBEICONV2BIG 2404 /* Buffer overflow converting characters from client into server's character set.*/
919  /* cf. doc/dblib_errors.txt for more iconv error values. */
920  /* Reserve a few slots for other iconv-related issues. */
921 #define SYBETDSVER 2410 /* Cannot bcp with TDSVER < 5.0 */
922 #define SYBEPORT 2500 /* Both port and instance specified */
923 #define SYBESYNC 20001 /* Read attempted while out of synchronization with SQL Server. */
924 #define SYBEFCON 20002 /* SQL Server connection failed. */
925 #define SYBETIME 20003 /* SQL Server connection timed out. */
926 #define SYBEREAD 20004 /* Read from SQL Server failed. */
927 #define SYBEBUFL 20005 /* DB-LIBRARY internal error - send buffer length corrupted. */
928 #define SYBEWRIT 20006 /* Write to SQL Server failed. */
929 #define SYBEVMS 20007 /* Sendflush: VMS I/O error. */
930 #define SYBESOCK 20008 /* Unable to open socket */
931 #define SYBECONN 20009 /* Unable to connect socket -- SQL Server is unavailable or does not exist. */
932 #define SYBEMEM 20010 /* Unable to allocate sufficient memory */
933 #define SYBEDBPS 20011 /* Maximum number of DBPROCESSes already allocated. */
934 #define SYBEINTF 20012 /* Server name not found in interface file */
935 #define SYBEUHST 20013 /* Unknown host machine name */
936 #define SYBEPWD 20014 /* Incorrect password. */
937 #define SYBEOPIN 20015 /* Could not open interface file. */
938 #define SYBEINLN 20016 /* Interface file: unexpected end-of-line. */
939 #define SYBESEOF 20017 /* Unexpected EOF from SQL Server. */
940 #define SYBESMSG 20018 /* General SQL Server error: Check messages from the SQL Server. */
941 #define SYBERPND 20019 /* Attempt to initiate a new SQL Server operation with results pending. */
942 #define SYBEBTOK 20020 /* Bad token from SQL Server: Data-stream processing out of sync. */
943 #define SYBEITIM 20021 /* Illegal timeout value specified. */
944 #define SYBEOOB 20022 /* Error in sending out-of-band data to SQL Server. */
945 #define SYBEBTYP 20023 /* Unknown bind type passed to DB-LIBRARY function. */
946 #define SYBEBNCR 20024 /* Attempt to bind user variable to a non-existent compute row. */
947 #define SYBEIICL 20025 /* Illegal integer column length returned by SQL Server. Legal integer lengths are 1, 2, and 4 bytes. */
948 #define SYBECNOR 20026 /* Column number out of range. */
949 #define SYBENPRM 20027 /* NULL parameter not allowed for this dboption. */
950 #define SYBEUVDT 20028 /* Unknown variable-length datatype encountered. */
951 #define SYBEUFDT 20029 /* Unknown fixed-length datatype encountered. */
952 #define SYBEWAID 20030 /* DB-LIBRARY internal error: ALTFMT following ALTNAME has wrong id. */
953 #define SYBECDNS 20031 /* Datastream indicates that a compute column is derived from a non-existent select-list member. */
954 #define SYBEABNC 20032 /* Attempt to bind to a non-existent column. */
955 #define SYBEABMT 20033 /* User attempted a dbbind() with mismatched column and variable types. */
956 #define SYBEABNP 20034 /* Attempt to bind using NULL pointers. */
957 #define SYBEAAMT 20035 /* User attempted a dbaltbind() with mismatched column and variable types. */
958 #define SYBENXID 20036 /* The Server did not grant us a distributed-transaction ID. */
959 #define SYBERXID 20037 /* The Server did not recognize our distributed-transaction ID. */
960 #define SYBEICN 20038 /* Invalid computeid or compute column number. */
961 #define SYBENMOB 20039 /* No such member of 'order by' clause. */
962 #define SYBEAPUT 20040 /* Attempt to print unknown token. */
963 #define SYBEASNL 20041 /* Attempt to set fields in a null loginrec. */
964 #define SYBENTLL 20042 /* Name too long for loginrec field. */
965 #define SYBEASUL 20043 /* Attempt to set unknown loginrec field. */
966 #define SYBERDNR 20044 /* Attempt to retrieve data from a non-existent row. */
967 #define SYBENSIP 20045 /* Negative starting index passed to dbstrcpy(). */
968 #define SYBEABNV 20046 /* Attempt to bind to a NULL program variable. */
969 #define SYBEDDNE 20047 /* DBPROCESS is dead or not enabled. */
970 #define SYBECUFL 20048 /* Data-conversion resulted in underflow. */
971 #define SYBECOFL 20049 /* Data-conversion resulted in overflow. */
972 #define SYBECSYN 20050 /* Attempt to convert data stopped by syntax error in source field. */
973 #define SYBECLPR 20051 /* Data-conversion resulted in loss of precision. */
974 #define SYBECNOV 20052 /* Attempt to set variable to NULL resulted in overflow. */
975 #define SYBERDCN 20053 /* Requested data-conversion does not exist. */
976 #define SYBESFOV 20054 /* dbsafestr() overflowed its destination buffer. */
977 #define SYBEUNT 20055 /* Unknown network type found in interface file. */
978 #define SYBECLOS 20056 /* Error in closing network connection. */
979 #define SYBEUAVE 20057 /* Unable to allocate VMS event flag. */
980 #define SYBEUSCT 20058 /* Unable to set communications timer. */
981 #define SYBEEQVA 20059 /* Error in queueing VMS AST routine. */
982 #define SYBEUDTY 20060 /* Unknown datatype encountered. */
983 #define SYBETSIT 20061 /* Attempt to call dbtsput() with an invalid timestamp. */
984 #define SYBEAUTN 20062 /* Attempt to update the timestamp of a table which has no timestamp column. */
985 #define SYBEBDIO 20063 /* Bad bulk-copy direction. Must be either IN or OUT. */
986 #define SYBEBCNT 20064 /* Attempt to use Bulk Copy with a non-existent Server table. */
987 #define SYBEIFNB 20065 /* Illegal field number passed to bcp_control(). */
988 #define SYBETTS 20066 /* The table which bulk-copy is attempting to copy to a host-file is shorter than the number of rows which bulk-copy was instructed to skip. */
989 #define SYBEKBCO 20067 /* 1000 rows successfully bulk-copied to host-file. */
990 #define SYBEBBCI 20068 /* Batch successfully bulk-copied to SQL Server. */
991 #define SYBEKBCI 20069 /* Bcp: 1000 rows sent to SQL Server. */
992 #define SYBEBCRE 20070 /* I/O error while reading bcp data-file. */
993 #define SYBETPTN 20071 /* Syntax error: only two periods are permitted in table names. */
994 #define SYBEBCWE 20072 /* I/O error while writing bcp data-file. */
995 #define SYBEBCNN 20073 /* Attempt to bulk-copy a NULL value into Server column %d, which does not accept NULL values. */
996 #define SYBEBCOR 20074 /* Attempt to bulk-copy an oversized row to the SQL Server. */
997 #define SYBEBCIS 20075 /* Attempt to bulk-copy an illegally-sized column value to the SQL Server. */
998 #define SYBEBCPI 20076 /* bcp_init() must be called before any other bcp routines. */
999 #define SYBEBCPN 20077 /* bcp_bind(), bcp_collen(), bcp_colptr(), bcp_moretext() and bcp_sendrow() may be used only after bcp_init() has been called with the copy direction set to DB_IN. */
1000 #define SYBEBCPB 20078 /* bcp_bind(), bcp_moretext() and bcp_sendrow() may NOT be used after bcp_init() has been passed a non-NULL input file name. */
1001 #define SYBEVDPT 20079 /* For bulk copy, all variable-length data must have either a length-prefix or a terminator specified. */
1002 #define SYBEBIVI 20080 /* bcp_columns(), bcp_colfmt() and bcp_colfmt_ps() may be used only after bcp_init() has been passed a valid input file. */
1003 #define SYBEBCBC 20081 /* bcp_columns() must be called before bcp_colfmt() and bcp_colfmt_ps(). */
1004 #define SYBEBCFO 20082 /* Bcp host-files must contain at least one column. */
1005 #define SYBEBCVH 20083 /* bcp_exec() may be called only after bcp_init() has been passed a valid host file. */
1006 #define SYBEBCUO 20084 /* Bcp: Unable to open host data-file. */
1007 #define SYBEBCUC 20085 /* Bcp: Unable to close host data-file. */
1008 #define SYBEBUOE 20086 /* Bcp: Unable to open error-file. */
1009 #define SYBEBUCE 20087 /* Bcp: Unable to close error-file. */
1010 #define SYBEBWEF 20088 /* I/O error while writing bcp error-file. */
1011 #define SYBEASTF 20089 /* VMS: Unable to setmode for control_c ast. */
1012 #define SYBEUACS 20090 /* VMS: Unable to assign channel to sys$command. */
1013 #define SYBEASEC 20091 /* Attempt to send an empty command buffer to the SQL Server. */
1014 #define SYBETMTD 20092 /* Attempt to send too much TEXT data via the dbmoretext() call. */
1015 #define SYBENTTN 20093 /* Attempt to use dbtxtsput() to put a new text-timestamp into a non-existent data row. */
1016 #define SYBEDNTI 20094 /* Attempt to use dbtxtsput() to put a new text-timestamp into a column whose datatype is neither SYBTEXT nor SYBIMAGE. */
1017 #define SYBEBTMT 20095 /* Attempt to send too much TEXT data via the bcp_moretext() call. */
1018 #define SYBEORPF 20096 /* Attempt to set remote password would overflow the login-record's remote-password field. */
1019 #define SYBEUVBF 20097 /* Attempt to read an unknown version of BCP format-file. */
1020 #define SYBEBUOF 20098 /* Bcp: Unable to open format-file. */
1021 #define SYBEBUCF 20099 /* Bcp: Unable to close format-file. */
1022 #define SYBEBRFF 20100 /* I/O error while reading bcp format-file. */
1023 #define SYBEBWFF 20101 /* I/O error while writing bcp format-file. */
1024 #define SYBEBUDF 20102 /* Bcp: Unrecognized datatype found in format-file. */
1025 #define SYBEBIHC 20103 /* Incorrect host-column number found in bcp format-file. */
1026 #define SYBEBEOF 20104 /* Unexpected EOF encountered in BCP data-file. */
1027 #define SYBEBCNL 20105 /* Negative length-prefix found in BCP data-file. */
1028 #define SYBEBCSI 20106 /* Host-file columns may be skipped only when copying INto the Server. */
1029 #define SYBEBCIT 20107 /* It's illegal to use BCP terminators with program variables other than SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE. */
1030 #define SYBEBCSA 20108 /* The BCP hostfile '%s' contains only %ld rows. Skipping all of these rows is not allowed. */
1031 #define SYBENULL 20109 /* NULL DBPROCESS pointer passed to DB-Library. */
1032 #define SYBEUNAM 20110 /* Unable to get current username from operating system. */
1033 #define SYBEBCRO 20111 /* The BCP hostfile '%s' contains only %ld rows. It was impossible to read the requested %ld rows. */
1034 #define SYBEMPLL 20112 /* Attempt to set maximum number of DBPROCESSes lower than 1. */
1035 #define SYBERPIL 20113 /* It is illegal to pass -1 to dbrpcparam() for the datalen of parameters which are of type SYBCHAR, SYBVARCHAR, SYBBINARY, or SYBVARBINARY. */
1036 #define SYBERPUL 20114 /* When passing a SYBINTN, SYBDATETIMN, SYBMONEYN, or SYBFLTN parameter via dbrpcparam(), it's necessary to specify the parameter's maximum or actual length, so that DB-Library can recognize it as a SYBINT1, SYBINT2, SYBINT4, SYBMONEY, or SYBMONEY4, etc. */
1037 #define SYBEUNOP 20115 /* Unknown option passed to dbsetopt(). */
1038 #define SYBECRNC 20116 /* The current row is not a result of compute clause %d, so it is illegal to attempt to extract that data from this row. */
1039 #define SYBERTCC 20117 /* dbreadtext() may not be used to receive the results of a query which contains a COMPUTE clause. */
1040 #define SYBERTSC 20118 /* dbreadtext() may only be used to receive the results of a query which contains a single result column. */
1041 #define SYBEUCRR 20119 /* Internal software error: Unknown connection result reported by * dbpasswd(). */
1042 #define SYBERPNA 20120 /* The RPC facility is available only when using a SQL Server whose version number is 4.0 or greater. */
1043 #define SYBEOPNA 20121 /* The text/image facility is available only when using a SQL Server whose version number is 4.0 or greater. */
1044 #define SYBEFGTL 20122 /* Bcp: Row number of the first row to be copied cannot be greater than the row number for the last row to be copied. */
1045 #define SYBECWLL 20123 /* Attempt to set column width less than 1. */
1046 #define SYBEUFDS 20124 /* Unrecognized format encountered in dbstrbuild(). */
1047 #define SYBEUCPT 20125 /* Unrecognized custom-format parameter-type encountered in dbstrbuild(). */
1048 #define SYBETMCF 20126 /* Attempt to install too many custom formats via dbfmtinstall(). */
1049 #define SYBEAICF 20127 /* Error in attempting to install custom format. */
1050 #define SYBEADST 20128 /* Error in attempting to determine the size of a pair of translation tables. */
1051 #define SYBEALTT 20129 /* Error in attempting to load a pair of translation tables. */
1052 #define SYBEAPCT 20130 /* Error in attempting to perform a character-set translation. */
1053 #define SYBEXOCI 20131 /* A character-set translation overflowed its destination buffer while using bcp to copy data from a host-file to the SQL Server. */
1054 #define SYBEFSHD 20132 /* Error in attempting to find the Sybase home directory. */
1055 #define SYBEAOLF 20133 /* Error in attempting to open a localization file. */
1056 #define SYBEARDI 20134 /* Error in attempting to read datetime information from a localization file. */
1057 #define SYBEURCI 20135 /* Unable to read copyright information from the dblib localization file. */
1058 #define SYBEARDL 20136 /* Error in attempting to read the dblib.loc localization file. */
1059 #define SYBEURMI 20137 /* Unable to read money-format information from the dblib localization file. */
1060 #define SYBEUREM 20138 /* Unable to read error mnemonic from the dblib localization file. */
1061 #define SYBEURES 20139 /* Unable to read error string from the dblib localization file. */
1062 #define SYBEUREI 20140 /* Unable to read error information from the dblib localization file. */
1063 #define SYBEOREN 20141 /* Warning: an out-of-range error-number was encountered in dblib.loc. The maximum permissible error-number is defined as DBERRCOUNT in sybdb.h. */
1064 #define SYBEISOI 20142 /* Invalid sort-order information found. */
1065 #define SYBEIDCL 20143 /* Illegal datetime column length returned by DataServer. Legal datetime lengths are 4 and 8 bytes. */
1066 #define SYBEIMCL 20144 /* Illegal money column length returned by DataServer. Legal money lengths are 4 and 8 bytes. */
1067 #define SYBEIFCL 20145 /* Illegal floating-point column length returned by DataServer. Legal floating-point lengths are 4 and 8 bytes. */
1068 #define SYBEUTDS 20146 /* Unrecognized TDS version received from SQL Server. */
1069 #define SYBEBUFF 20147 /* Bcp: Unable to create format-file. */
1070 #define SYBEACNV 20148 /* Attemp to do conversion with NULL destination variable. */
1071 #define SYBEDPOR 20149 /* Out-of-range datepart constant. */
1072 #define SYBENDC 20150 /* Cannot have negative component in date in numeric form. */
1073 #define SYBEMVOR 20151 /* Month values must be between 1 and 12. */
1074 #define SYBEDVOR 20152 /* Day values must be between 1 and 7. */
1075 #define SYBENBVP 20153 /* Cannot pass dbsetnull() a NULL bindval pointer. */
1076 #define SYBESPID 20154 /* Called dbspid() with a NULL dbproc. */
1077 #define SYBENDTP 20155 /* Called dbdatecrack() with a NULL datetime parameter. */
1078 #define SYBEXTN 20156 /* The xlt_todisp and xlt_tosrv parameters to dbfree_xlate() were NULL. */
1079 #define SYBEXTDN 20157 /* Warning: the xlt_todisp parameter to dbfree_xlate() was NULL. The space associated with the xlt_tosrv parameter has been freed. */
1080 #define SYBEXTSN 20158 /* Warning: the xlt_tosrv parameter to dbfree_xlate() was NULL. The space associated with the xlt_todisp parameter has been freed. */
1081 #define SYBENUM 20159 /* Incorrect number of arguments given to DB-Library. */
1082 #define SYBETYPE 20160 /* Invalid argument type given to DB-Library. */
1083 #define SYBEGENOS 20161 /* General Operating System Error. */
1084 #define SYBEPAGE 20162 /* wrong resource type or length given for dbpage() operation. */
1085 #define SYBEOPTNO 20163 /* Option is not allowed or is unreconized */
1086 #define SYBEETD 20164 /* Failure to send the expected amount of TEXT or IMAGE data via dbmoretext(). */
1087 #define SYBERTYPE 20165 /* Invalid resource type given to DB-Library. */
1088 #define SYBERFILE 20166 /* "Can not open resource file." */
1089 #define SYBEFMODE 20167 /* Read/Write/Append mode denied on file. */
1090 #define SYBESLCT 20168 /* Could not select or copy field specified */
1091 #define SYBEZTXT 20169 /* Attempt to send zero length TEXT or IMAGE to dataserver via dbwritetext(). */
1092 #define SYBENTST 20170 /* The file being opened must be a stream_lf. */
1093 #define SYBEOSSL 20171 /* Operating system login level not in range of Secure SQL Server */
1094 #define SYBEESSL 20172 /* Login security level entered does not agree with operating system level */
1095 #define SYBENLNL 20173 /* Program not linked with specified network library. */
1096 #define SYBENHAN 20174 /* called dbrecvpassthru() with a NULL handler parameter. */
1097 #define SYBENBUF 20175 /* called dbsendpassthru() with a NULL buf pointer. */
1098 #define SYBENULP 20176 /* Called %s with a NULL %s parameter. */
1099 #define SYBENOTI 20177 /* No event handler installed. */
1100 #define SYBEEVOP 20178 /* Called dbregwatch() with a bad options parameter. */
1101 #define SYBENEHA 20179 /* Called dbreghandle() with a NULL handler parameter. */
1102 #define SYBETRAN 20180 /* DBPROCESS is being used for another transaction. */
1103 #define SYBEEVST 20181 /* Must initiate a transaction before calling dbregparam(). */
1104 #define SYBEEINI 20182 /* Must call dbreginit() before dbregraise(). */
1105 #define SYBEECRT 20183 /* Must call dbregdefine() before dbregcreate(). */
1106 #define SYBEECAN 20184 /* Attempted to cancel unrequested event notification. */
1107 #define SYBEEUNR 20185 /* Unsolicited event notification received. */
1108 #define SYBERPCS 20186 /* Must call dbrpcinit() before dbrpcparam(). */
1109 #define SYBETPAR 20187 /* No SYBTEXT or SYBIMAGE parameters were defined. */
1110 #define SYBETEXS 20188 /* Called dbmoretext() with a bad size parameter. */
1111 #define SYBETRAC 20189 /* Attempted to turn off a trace flag that was not on. */
1112 #define SYBETRAS 20190 /* DB-Library internal error - trace structure not found. */
1113 #define SYBEPRTF 20191 /* dbtracestring() may only be called from a printfunc(). */
1114 #define SYBETRSN 20192 /* Bad numbytes parameter passed to dbtracestring(). */
1115 #define SYBEBPKS 20193 /* In DBSETLPACKET(), the packet size parameter must be between 0 and 999999. */
1116 #define SYBEIPV 20194 /* %1! is an illegal value for the %2! parameter of %3!. */
1117 #define SYBEMOV 20195 /* Money arithmetic resulted in overflow in function %1!. */
1118 #define SYBEDIVZ 20196 /* Attempt to divide by $0.00 in function %1!. */
1119 #define SYBEASTL 20197 /* Synchronous I/O attempted at AST level. */
1120 #define SYBESEFA 20198 /* DBSETNOTIFS cannot be called if connections are present. */
1121 #define SYBEPOLL 20199 /* Only one dbpoll() can be active at a time. */
1122 #define SYBENOEV 20200 /* dbpoll() cannot be called if registered procedure notifications have been disabled. */
1123 #define SYBEBADPK 20201 /* Packet size of %1! not supported. -- size of %2! used instead. */
1124 #define SYBESECURE 20202 /* Secure Server function not supported in this version. */
1125 #define SYBECAP 20203 /* DB-Library capabilities not accepted by the Server. */
1126 #define SYBEFUNC 20204 /* Functionality not supported at the specified version level. */
1127 #define SYBERESP 20205 /* Response function address passed to dbresponse() must be non-NULL. */
1128 #define SYBEIVERS 20206 /* Illegal version level specified. */
1129 #define SYBEONCE 20207 /* Function can be called only once. */
1130 #define SYBERPNULL 20208 /* value parameter for dbprcparam() can be NULL, only if the datalen parameter is 0 */
1131 #define SYBERPTXTIM 20209 /* RPC parameters cannot be of type Text/Image. */
1132 #define SYBENEG 20210 /* Negotiated login attempt failed. */
1133 #define SYBELBLEN 20211 /* Security labels should be less than 256 characters long. */
1134 #define SYBEUMSG 20212 /* Unknown message-id in MSG datastream. */
1135 #define SYBECAPTYP 20213 /* Unexpected capability type in CAPABILITY datastream. */
1136 #define SYBEBNUM 20214 /* Bad numbytes parameter passed to dbstrcpy() */
1137 #define SYBEBBL 20215 /* Bad bindlen parameter passed to dbsetnull() */
1138 #define SYBEBPREC 20216 /* Illegal precision specified */
1139 #define SYBEBSCALE 20217 /* Illegal scale specified */
1140 #define SYBECDOMAIN 20218 /* Source field value is not within the domain of legal values. */
1141 #define SYBECINTERNAL 20219 /* Internal Conversion error. */
1142 #define SYBEBTYPSRV 20220 /* Datatype is not supported by the server. */
1143 #define SYBEBCSET 20221 /* Unknown character-set encountered." */
1144 #define SYBEFENC 20222 /* Password Encryption failed." */
1145 #define SYBEFRES 20223 /* Challenge-Response function failed.", */
1146 #define SYBEISRVPREC 20224 /* Illegal precision value returned by the server. */
1147 #define SYBEISRVSCL 20225 /* Illegal scale value returned by the server. */
1148 #define SYBEINUMCL 20226 /* Invalid numeric column length returned by the server. */
1149 #define SYBEIDECCL 20227 /* Invalid decimal column length returned by the server. */
1150 #define SYBEBCMTXT 20228 /* bcp_moretext() may be used only when there is at least one text or image column in the server table. */
1151 #define SYBEBCPREC 20229 /* Column %1!: Illegal precision value encountered. */
1152 #define SYBEBCBNPR 20230 /* bcp_bind(): if varaddr is NULL, prefixlen must be 0 and no terminator should be specified. */
1153 #define SYBEBCBNTYP 20231 /* bcp_bind(): if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
1154 #define SYBEBCSNTYP 20232 /* column number %1!: if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
1155 #define SYBEBCPCTYP 20233 /* bcp_colfmt(): If table_colnum is 0, host_type cannot be 0. */
1156 #define SYBEBCVLEN 20234 /* varlen should be greater than or equal to -1. */
1157 #define SYBEBCHLEN 20235 /* host_collen should be greater than or equal to -1. */
1158 #define SYBEBCBPREF 20236 /* Illegal prefix length. Legal values are 0, 1, 2 or 4. */
1159 #define SYBEBCPREF 20237 /* Illegal prefix length. Legal values are -1, 0, 1, 2 or 4. */
1160 #define SYBEBCITBNM 20238 /* bcp_init(): tblname parameter cannot be NULL. */
1161 #define SYBEBCITBLEN 20239 /* bcp_init(): tblname parameter is too long. */
1162 #define SYBEBCSNDROW 20240 /* bcp_sendrow() may NOT be called unless all text data for the previous row has been sent using bcp_moretext(). */
1163 #define SYBEBPROCOL 20241 /* bcp protocol error: returned column count differs from the actual number of columns received. */
1164 #define SYBEBPRODEF 20242 /* bcp protocol error: expected default information and got none. */
1165 #define SYBEBPRONUMDEF 20243 /* bcp protocol error: expected number of defaults differs from the actual number of defaults received. */
1166 #define SYBEBPRODEFID 20244 /* bcp protocol error: default column id and actual column id are not same */
1167 #define SYBEBPRONODEF 20245 /* bcp protocol error: default value received for column that does not have default. */
1168 #define SYBEBPRODEFTYP 20246 /* bcp protocol error: default value datatype differs from column datatype. */
1169 #define SYBEBPROEXTDEF 20247 /* bcp protocol error: more than one row of default information received. */
1170 #define SYBEBPROEXTRES 20248 /* bcp protocol error: unexpected set of results received. */
1171 #define SYBEBPROBADDEF 20249 /* bcp protocol error: illegal default column id received. */
1172 #define SYBEBPROBADTYP 20250 /* bcp protocol error: unknown column datatype. */
1173 #define SYBEBPROBADLEN 20251 /* bcp protocol error: illegal datatype length received. */
1174 #define SYBEBPROBADPREC 20252 /* bcp protocol error: illegal precision value received. */
1175 #define SYBEBPROBADSCL 20253 /* bcp protocol error: illegal scale value received. */
1176 #define SYBEBADTYPE 20254 /* Illegal value for type parameter given to %1!. */
1177 #define SYBECRSNORES 20255 /* Cursor statement generated no results. */
1178 #define SYBECRSNOIND 20256 /* One of the tables involved in the cursor statement does not have a unique index. */
1179 #define SYBECRSVIEW 20257 /* A view cannot be joined with another table or a view in a cursor statement. */
1180 #define SYBECRSVIIND 20258 /* The view used in the cursor statement does not include all the unique index columns of the underlying tables. */
1181 #define SYBECRSORD 20259 /* Only fully keyset driven cursors can have 'order by', ' group by', or 'having' phrases. */
1182 #define SYBECRSBUFR 20260 /* Row buffering should not be turned on when using cursor APIs. */
1183 #define SYBECRSNOFREE 20261 /* The DBNOAUTOFREE option should not be turned on when using cursor APIs. */
1184 #define SYBECRSDIS 20262 /* Cursor statement contains one of the disallowed phrases 'compute', 'union', 'for browse', or 'select into'. */
1185 #define SYBECRSAGR 20263 /* Aggregate functions are not allowed in a cursor statement. */
1186 #define SYBECRSFRAND 20264 /* Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors. */
1187 #define SYBECRSFLAST 20265 /* Fetch type LAST requires fully keyset driven cursors. */
1188 #define SYBECRSBROL 20266 /* Backward scrolling cannot be used in a forward scrolling cursor. */
1189 #define SYBECRSFROWN 20267 /* Row number to be fetched is outside valid range. */
1190 #define SYBECRSBSKEY 20268 /* Keyset cannot be scrolled backward in mixed cursors with a previous fetch type. */
1191 #define SYBECRSRO 20269 /* Data locking or modifications cannot be made in a READONLY cursor. */
1192 #define SYBECRSNOCOUNT 20270 /* The DBNOCOUNT option should not be turned on when doing updates or deletes with dbcursor(). */
1193 #define SYBECRSTAB 20271 /* Table name must be determined in operations involving data locking or modifications. */
1194 #define SYBECRSUPDNB 20272 /* Update or insert operations cannot use bind variables when binding type is NOBIND. */
1195 #define SYBECRSNOWHERE 20273 /* A WHERE clause is not allowed in a cursor update or insert. */
1196 #define SYBECRSSET 20274 /* A SET clause is required for a cursor update or insert. */
1197 #define SYBECRSUPDTAB 20275 /* Update or insert operations using bind variables require single table cursors. */
1198 #define SYBECRSNOUPD 20276 /* Update or delete operation did not affect any rows. */
1199 #define SYBECRSINV 20277 /* Invalid cursor statement. */
1200 #define SYBECRSNOKEYS 20278 /* The entire keyset must be defined for KEYSET cursors. */
1201 #define SYBECRSNOBIND 20279 /* Cursor bind must be called prior to updating cursor */
1202 #define SYBECRSFTYPE 20280 /* Unknown fetch type. */
1203 #define SYBECRSINVALID 20281 /* The cursor handle is invalid. */
1204 #define SYBECRSMROWS 20282 /* Multiple rows are returned, only one is expected. */
1205 #define SYBECRSNROWS 20283 /* No rows returned, at least one is expected. */
1206 #define SYBECRSNOLEN 20284 /* No unique index found. */
1207 #define SYBECRSNOPTCC 20285 /* No OPTCC was found. */
1208 #define SYBECRSNORDER 20286 /* The order of clauses must be from, where, and order by. */
1209 #define SYBECRSNOTABLE 20287 /* Table name is NULL. */
1210 #define SYBECRSNUNIQUE 20288 /* No unique keys associated with this view. */
1211 #define SYBECRSVAR 20289 /* There is no valid address associated with this bind. */
1212 #define SYBENOVALUE 20290 /* Security labels require both a name and a value */
1213 #define SYBEVOIDRET 20291 /* Parameter of type SYBVOID cannot be a return parameter. */
1214 #define SYBECLOSEIN 20292 /* Unable to close interface file. */
1215 #define SYBEBOOL 20293 /* Boolean parameters must be TRUE or FALSE. */
1216 #define SYBEBCPOPT 20294 /* The option cannot be called while a bulk copy operation is progress. */
1217 #define SYBEERRLABEL 20295 /* An illegal value was returned from the security label handler. */
1218 #define SYBEATTNACK 20296 /* Timed out waiting for server to acknowledge attention." */
1219 #define SYBEBBFL 20297 /* -001- Batch failed in bulk-copy to SQL Server */
1220 #define SYBEDCL 20298 /* -004- DCL Error */
1221 #define SYBECS 20299 /* -004- cs context Error */
1222 #define SYBEBULKINSERT 20599 /* cannot build bulk insert statement */
1223 #define SYBECOLSIZE 22000 /* Invalid column information structure size */
1224 
1225 int dbtds(DBPROCESS * dbprocess);
1226 
1227 #define DBTDS(a) dbtds(a)
1228 DBINT dbtextsize(DBPROCESS * dbprocess);
1229 DBBINARY *dbtxptr(DBPROCESS * dbproc, int column);
1230 DBBINARY *dbtxtimestamp(DBPROCESS * dbproc, int column);
1231 DBBINARY *dbtxtsnewval(DBPROCESS * dbprocess);
1232 RETCODE dbtxtsput(DBPROCESS * dbprocess, DBBINARY newtxts, int colnum);
1233 RETCODE dbuse(DBPROCESS * dbproc, const char *name);
1234 const char *dbversion(void);
1235 DBBOOL dbwillconvert(int srctype, int desttype);
1236 RETCODE dbwritetext(DBPROCESS * dbproc, char *objname, DBBINARY * textptr, DBTINYINT textptrlen, DBBINARY * timestamp,
1237  DBBOOL log, DBINT size, BYTE * text);
1238 
1239 /* LOGINREC manipulation */
1240 RETCODE dbsetlname(LOGINREC * login, const char *value, int which);
1241 RETCODE dbsetlbool(LOGINREC * login, int value, int which);
1242 RETCODE dbsetlshort(LOGINREC * login, int value, int which);
1243 RETCODE dbsetllong(LOGINREC * login, long value, int which);
1244 RETCODE dbsetlversion (LOGINREC * login, BYTE version);
1245 
1246 #define DBSETHOST 1
1247 #define DBSETLHOST(x,y) dbsetlname((x), (y), DBSETHOST)
1248 #define dbsetlhost(x,y) dbsetlname((x), (y), DBSETHOST)
1249 #define DBSETUSER 2
1250 #define DBSETLUSER(x,y) dbsetlname((x), (y), DBSETUSER)
1251 #define dbsetluser(x,y) dbsetlname((x), (y), DBSETUSER)
1252 #define DBSETPWD 3
1253 #define DBSETLPWD(x,y) dbsetlname((x), (y), DBSETPWD)
1254 #define dbsetlpwd(x,y) dbsetlname((x), (y), DBSETPWD)
1255 #if defined(DBLIB_UNIMPLEMENTED)
1256 # define DBSETHID 4 /* not implemented */
1257 # define DBSETLHID(x,y) dbsetlname((x), (y), DBSETHID)
1258 #endif
1259 #define DBSETAPP 5
1260 #define DBSETLAPP(x,y) dbsetlname((x), (y), DBSETAPP)
1261 #define dbsetlapp(x,y) dbsetlname((x), (y), DBSETAPP)
1262 #define DBSETBCP 6
1263 #define BCP_SETL(x,y) dbsetlbool((x), (y), DBSETBCP)
1264 #define DBSETLSECURE(x) dbsetlbool((x), (1), DBSETBCP)
1265 #define DBSETNATLANG 7
1266 #define DBSETLNATLANG(x,y) dbsetlname((x), (y), DBSETNATLANG)
1267 #define dbsetlnatlang(x,y) dbsetlname((x), (y), DBSETNATLANG)
1268 #if defined(DBLIB_UNIMPLEMENTED)
1269 # define DBSETNOSHORT 8 /* not implemented */
1270 # define DBSETLNOSHORT(x,y) dbsetlbool((x), (y), DBSETNOSHORT)
1271 # define DBSETHIER 9 /* not implemented */
1272 # define DBSETLHIER(x,y) dbsetlshort((x), (y), DBSETHIER)
1273 #endif
1274 #define DBSETCHARSET 10
1275 #define DBSETLCHARSET(x,y) dbsetlname((x), (y), DBSETCHARSET)
1276 #define DBSETPACKET 11
1277 #define DBSETLPACKET(x,y) dbsetllong((x), (y), DBSETPACKET)
1278 #define dbsetlpacket(x,y) dbsetllong((x), (y), DBSETPACKET)
1279 #define DBSETENCRYPT 12
1280 #define DBSETLENCRYPT(x,y) dbsetlbool((x), (y), DBSETENCRYPT)
1281 #define DBSETLABELED 13
1282 #define DBSETLLABELED(x,y) dbsetlbool((x), (y), DBSETLABELED)
1283 #define BCP_SETLABELED(x,y) dbsetlbool((x), (y), DBSETLABELED)
1284 #define DBSETDBNAME 14
1285 #define DBSETLDBNAME(x,y) dbsetlname((x), (y), DBSETDBNAME)
1286 #define DBSETLVERSION(login, version) dbsetlversion((login), (version))
1287 /* settings from here are purely FreeTDS extensions */
1288 #define DBSETUTF16 1001
1289 #define DBSETLUTF16(x,y) dbsetlbool((x), (y), DBSETUTF16)
1290 #define DBSETNTLMV2 1002
1291 #define DBSETLNTLMV2(x,y) dbsetlbool((x), (y), DBSETNTLMV2)
1292 #define DBSETREADONLY 1003
1293 #define DBSETLREADONLY(x,y) dbsetlbool((x), (y), DBSETREADONLY)
1294 
1295 RETCODE bcp_init(DBPROCESS * dbproc, const char *tblname, const char *hfile, const char *errfile, int direction);
1296 DBINT bcp_done(DBPROCESS * dbproc);
1297 
1298 DBINT bcp_batch(DBPROCESS * dbproc);
1299 RETCODE bcp_bind(DBPROCESS * dbproc, BYTE * varaddr, int prefixlen, DBINT varlen, BYTE * terminator, int termlen, int type,
1300  int table_column);
1301 RETCODE bcp_collen(DBPROCESS * dbproc, DBINT varlen, int table_column);
1302 RETCODE bcp_columns(DBPROCESS * dbproc, int host_colcount);
1303 RETCODE bcp_colfmt(DBPROCESS * dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen,
1304  const BYTE * host_term, int host_termlen, int colnum);
1305 RETCODE bcp_colfmt_ps(DBPROCESS * dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen,
1306  BYTE * host_term, int host_termlen, int colnum, DBTYPEINFO * typeinfo);
1307 RETCODE bcp_colptr(DBPROCESS * dbproc, BYTE * colptr, int table_column);
1308 RETCODE bcp_control(DBPROCESS * dbproc, int field, DBINT value);
1309 int bcp_getbatchsize(DBPROCESS * dbproc); /* FreeTDS only */
1310 RETCODE bcp_exec(DBPROCESS * dbproc, DBINT * rows_copied);
1311 DBBOOL bcp_getl(LOGINREC * login);
1312 RETCODE bcp_options(DBPROCESS * dbproc, int option, BYTE * value, int valuelen);
1313 RETCODE bcp_readfmt(DBPROCESS * dbproc, const char filename[]);
1314 RETCODE bcp_sendrow(DBPROCESS * dbproc);
1315 
1316 #ifdef __cplusplus
1317 #if 0
1318 {
1319 #endif
1320 }
1321 #endif
1322 
1323 #endif
int dbaltop(DBPROCESS *dbproc, int computeid, int column)
Get aggregation operator for a compute column.
Definition: dblib.c:4424
-
int dbcurcmd(DBPROCESS *dbproc)
Get number of the row just returned.
Definition: dblib.c:6200
-
RETCODE dbtablecolinfo(DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo)...
Definition: dblib.c:6445
-
MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler)
Set a message handler, for messages from the server.
Definition: dblib.c:5120
-
RETCODE dbsprhead(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print result set headings to a buffer.
Definition: dblib.c:3875
-
DBINT dbconvert_ps(DBPROCESS *dbprocess, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
Convert one datatype to another.
Definition: dblib.c:2280
-
RETCODE dbmny4copy(DBPROCESS *dbprocess, DBMONEY4 *m1, DBMONEY4 *m2)
Copy a DBMONEY4 value.
Definition: dblib.c:5720
-
char * dbgetchar(DBPROCESS *dbprocess, int n)
Get address of a position in the command buffer.
Definition: dblib.c:6290
-
Definition: sybdb.h:354
-
DBBOOL dbwillconvert(int srctype, int desttype)
Test whether or not a datatype can be converted to another datatype.
Definition: dblib.c:2854
-
RETCODE dbgetrow(DBPROCESS *dbproc, DBINT row)
Read a row from the row buffer.
Definition: dblib.c:1910
-
int dbstrbuild(DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
Build a printable string from text containing placeholders for variables.
Definition: dblib.c:7281
-
void dbfreebuf(DBPROCESS *dbproc)
Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().
Definition: dblib.c:6040
-
RETCODE dbcancel(DBPROCESS *dbproc)
Cancel the current command batch.
Definition: dblib.c:3374
-
char * dbcolsource(DBPROCESS *dbproc, int colnum)
Get base database column name for a result set column.
Definition: dblib.c:3124
-
DBINT dbcolutype(DBPROCESS *dbprocess, int column)
Get user-defined datatype of a regular result column.
Definition: dblib.c:2973
-
DBINT dbcurrow(DBPROCESS *dbproc)
Get number of the row currently being read.
Definition: dblib.c:6166
-
RETCODE dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
Add two DBMONEY4 values.
Definition: dblib.c:5573
-
const char * dbacolname(DBPROCESS *dbproc, int computeid, int column)
Return name of a computed result column.
Definition: dblib.c:1878
-
RETCODE dbstrcpy(DBPROCESS *dbproc, int start, int numbytes, char *dest)
Get a copy of a chunk of the command buffer.
Definition: dblib.c:6323
-
RETCODE dbbind(DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
Tie a host variable to a resultset column.
Definition: dblib.c:2614
-
int dbgettime(void)
Get maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4203
-
RETCODE dbuse(DBPROCESS *dbproc, const char *name)
Change current database.
Definition: dblib.c:1426
-
int dbaltcolid(DBPROCESS *dbproc, int computeid, int column)
Get column ID of a compute column.
Definition: dblib.c:4264
-
RETCODE dbmorecmds(DBPROCESS *dbproc)
See if more commands are to be processed.
Definition: dblib.c:6217
-
RETCODE dbsqlok(DBPROCESS *dbproc)
Wait for results of a query from the server.
Definition: dblib.c:4794
-
RETCODE bcp_collen(DBPROCESS *dbproc, DBINT varlen, int table_column)
Set the length of a host variable to be written to a table.
Definition: bcp.c:261
-
RETCODE dbrpcinit(DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
Initialize a remote procedure call.
Definition: rpc.c:72
-
RETCODE dbsetmaxprocs(int maxprocs)
Set maximum simultaneous connections db-lib will open to the server.
Definition: dblib.c:4079
-
RETCODE bcp_exec(DBPROCESS *dbproc, DBINT *rows_copied)
Write a datafile to a table.
Definition: bcp.c:1564
-
Definition: dbpivot.c:765
-
Definition: sybdb.h:505
-
int dbgetpacket(DBPROCESS *dbproc)
Get TDS packet size for the connection.
Definition: dblib.c:4055
-
RETCODE dbsettime(int seconds)
Set maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4172
-
void dbrecftos(const char filename[])
Record to a file all SQL commands sent to the server.
Definition: dblib.c:6748
-
Definition: sybdb.h:457
-
void dbsetifile(char *filename)
set name and location of the interfaces file FreeTDS should use to look up a servername.
Definition: dblib.c:2691
-
RETCODE dbrpcparam(DBPROCESS *dbproc, const char paramname[], BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE *value)
Add a parameter to a remote procedure call.
Definition: rpc.c:155
-
RETCODE dbdatecrack(DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *dt)
Break a DBDATETIME value into useful pieces.
Definition: dblib.c:5827
-
char * dbchange(DBPROCESS *dbprocess)
See if a command caused the current database to change.
Definition: dblib.c:6968
-
DBINT dbaltutype(DBPROCESS *dbproc, int computeid, int column)
Get user-defined datatype of a compute column.
Definition: dblib.c:7095
-
RETCODE dbclropt(DBPROCESS *dbproc, int option, const char param[])
Reset an option.
Definition: dblib.c:6075
-
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:539
-
RETCODE 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)
Specify the format of a datafile prior to writing to a table.
Definition: bcp.c:372
-
void dbsetuserdata(DBPROCESS *dbproc, BYTE *ptr)
Associate client-allocated (and defined) data with a DBPROCESS.
Definition: dblib.c:5920
-
void dbprhead(DBPROCESS *dbproc)
Print result set headings to stdout.
Definition: dblib.c:3939
-
RETCODE dbmny4zero(DBPROCESS *dbproc, DBMONEY4 *dest)
Zero a DBMONEY4 value.
Definition: dblib.c:5550
-
RETCODE dbsqlexec(DBPROCESS *dbproc)
send the SQL command to the server and wait for an answer.
Definition: dblib.c:1400
-
DBINT dbcount(DBPROCESS *dbproc)
Get count of rows processed.
Definition: dblib.c:2804
-
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).
Definition: dblib.c:3025
-
RETCODE dbmny4sub(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
Subtract two DBMONEY4 values.
Definition: dblib.c:5604
-
BYTE * dbdata(DBPROCESS *dbproc, int column)
Get address of data in a regular result column.
Definition: dblib.c:3332
-
void dbclrbuf(DBPROCESS *dbproc, DBINT n)
Clear n rows from the row buffer.
Definition: dblib.c:2824
-
int dbtds(DBPROCESS *dbprocess)
Get the TDS version in use for dbproc.
Definition: dblib.c:6782
-
RETCODE bcp_init(DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
Prepare for bulk copy operation on a table.
Definition: bcp.c:164
-
DBPROCESS * tdsdbopen(LOGINREC *login, const char *server, int msdblib)
Form a connection with the server.
Definition: dblib.c:1165
-
RETCODE dbsafestr(DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
safely quotes character values in SQL text.
Definition: dblib.c:6367
-
BYTE * dbgetuserdata(DBPROCESS *dbproc)
Get address of user-allocated data from a DBPROCESS.
Definition: dblib.c:5938
-
RETCODE dbsprline(DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
Get formatted string for underlining dbsprhead() column names.
Definition: dblib.c:3817
-
char * dbretname(DBPROCESS *dbproc, int retnum)
Get name of an output parameter filled by a stored procedure.
Definition: dblib.c:4704
-
DBINT dbvarylen(DBPROCESS *dbproc, int column)
Determine whether a column can vary in size.
Definition: dblib.c:3198
-
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:1957
-
int dbnumrets(DBPROCESS *dbproc)
Get count of output parameters filled by a stored procedure.
Definition: dblib.c:4672
-
Definition: sybdb.h:262
-
int dbspid(DBPROCESS *dbproc)
Get server process ID for a DBPROCESS.
Definition: dblib.c:5900
-
STATUS dbreadtext(DBPROCESS *dbproc, void *buf, DBINT bufsize)
Fetch part of a text or image value from the server.
Definition: dblib.c:6644
-
RETCODE dbmnyzero(DBPROCESS *dbproc, DBMONEY *dest)
Set a DBMONEY value to zero.
Definition: dblib.c:5304
-
char * dbcolname(DBPROCESS *dbproc, int column)
Return name of a regular result column.
Definition: dblib.c:1852
-
DBBINARY * dbtxptr(DBPROCESS *dbproc, int column)
Get text pointer for a column in the current row.
Definition: dblib.c:6538
-
DBPROCESS * dbopen(LOGINREC *login, const char *server)
Normally not used.
Definition: dbopen.c:36
-
RETCODE dbmoretext(DBPROCESS *dbproc, DBINT size, const BYTE text[])
Send chunk of a text/image value to the server.
Definition: dblib.c:6713
-
DBBINARY * dbtxtimestamp(DBPROCESS *dbproc, int column)
Get text timestamp for a column in the current row.
Definition: dblib.c:6508
-
DBTYPEINFO * dbcoltypeinfo(DBPROCESS *dbproc, int column)
Get precision and scale information for a regular result column.
Definition: dblib.c:2996
-
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:1984
-
const char * dbversion(void)
See which version of db-lib is in use.
Definition: dblib.c:6821
-
RETCODE dbcmd(DBPROCESS *dbproc, const char cmdstring[])
Append SQL to the command buffer.
Definition: dblib.c:1354
-
Definition: sybdb.h:294
-
void dbclose(DBPROCESS *dbproc)
Close a connection to the server and free associated resources.
Definition: dblib.c:1466
-
Definition: sybdb.h:489
-
Definition: dblib.h:120
-
BYTE * dbretdata(DBPROCESS *dbproc, int retnum)
Get value of an output parameter filled by a stored procedure.
Definition: dblib.c:4733
-
Definition: sybdb.h:274
-
const char * dbprtype(int token)
Print a token value&#39;s name to a buffer.
Definition: dblib.c:6428
-
Definition: dbpivot.c:75
-
RETCODE dbanullbind(DBPROCESS *dbprocess, int computeid, int column, DBINT *indicator)
Tie a null-indicator to a compute result column.
Definition: dblib.c:2756
-
Definition: sybdb.h:373
-
RETCODE dbsetopt(DBPROCESS *dbproc, int option, const char *char_param, int int_param)
Set db-lib or server option.
Definition: dblib.c:4451
-
RETCODE dbrows(DBPROCESS *dbproc)
Indicate whether a query returned rows.
Definition: dblib.c:4014
-
RETCODE dbmnydec(DBPROCESS *dbproc, DBMONEY *mnyptr)
Subtract $0.0001 from a DBMONEY value.
Definition: dblib.c:5471
-
RETCODE dbnullbind(DBPROCESS *dbproc, int column, DBINT *indicator)
Tie a null-indicator to a regular result column.
Definition: dblib.c:2720
-
int dbiowdesc(DBPROCESS *dbproc)
Get file descriptor of the socket used by a DBPROCESS to write data coming to the server...
Definition: dblib.c:7228
-
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1337
-
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:661
-
BYTE * dbbylist(DBPROCESS *dbproc, int computeid, int *size)
Get bylist for a compute row.
Definition: dblib.c:4979
-
void dbexit(void)
Close server connections and free all related structures.
Definition: dblib.c:1533
-
char * dbservcharset(DBPROCESS *dbprocess)
Get syscharset name of the server character set.
Definition: dblib.c:7004
-
RETCODE dbrpcsend(DBPROCESS *dbproc)
Execute the procedure and free associated memory.
Definition: rpc.c:281
-
RETCODE dbmnymaxpos(DBPROCESS *dbproc, DBMONEY *dest)
Get maximum positive DBMONEY value supported.
Definition: dblib.c:5325
-
RETCODE dbpivot(DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val)
Pivot the rows, creating a new resultset.
Definition: dbpivot.c:908
-
RETCODE dbsetlname(LOGINREC *login, const char *value, int which)
Set the value of a string in a LOGINREC structure.
Definition: dblib.c:763
-
RETCODE dbcanquery(DBPROCESS *dbproc)
Cancel the query currently being retrieved, discarding all pending rows.
Definition: dblib.c:6011
-
void dbsetinterrupt(DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
Set interrupt handler for db-lib to use while blocked against a read from the server.
Definition: dblib.c:4611
-
DBINT dbdatlen(DBPROCESS *dbproc, int column)
Get size of current row&#39;s data in a regular result column.
Definition: dblib.c:3304
-
Definition: sybdb.h:306
-
RETCODE dbmny4minus(DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
Negate a DBMONEY4 value.
Definition: dblib.c:5526
-
RETCODE bcp_columns(DBPROCESS *dbproc, int host_colcount)
Indicate how many columns are to be found in the datafile.
Definition: bcp.c:296
-
int dbrettype(DBPROCESS *dbproc, int retnum)
Get datatype of a stored procedure&#39;s return parameter.
Definition: dblib.c:6246
-
LOGINREC * dblogin(void)
Allocate a LOGINREC structure.
Definition: dblib.c:709
-
RETCODE bcp_options(DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
Set "hints" for uploading a file.
Definition: bcp.c:613
-
Definition: sybdb.h:473
-
int dbgetmaxprocs(void)
get maximum simultaneous connections db-lib will open to the server.
Definition: dblib.c:4151
-
DBINT dbcollen(DBPROCESS *dbproc, int column)
Get size of a regular result column.
Definition: dblib.c:3149
-
RETCODE dbprrow(DBPROCESS *dbproc)
Print a result set to stdout.
Definition: dblib.c:3520
-
RETCODE dbsetlbool(LOGINREC *login, int value, int which)
Set a boolean value in a LOGINREC structure.
Definition: dblib.c:897
-
RETCODE dbmnymaxneg(DBPROCESS *dbproc, DBMONEY *dest)
Get maximum negative DBMONEY value supported.
Definition: dblib.c:5346
-
void dbloginfree(LOGINREC *login)
free the LOGINREC
Definition: dblib.c:741
-
int dbnumalts(DBPROCESS *dbproc, int computeid)
Get count of columns in a compute row.
Definition: dblib.c:4920
-
EHANDLEFUNC dberrhandle(EHANDLEFUNC handler)
Set an error handler, for messages from db-lib.
Definition: dblib.c:5101
-
int dbnumcompute(DBPROCESS *dbprocess)
Get count of COMPUTE clauses for a result set.
Definition: dblib.c:4953
-
DBBOOL dbhasretstat(DBPROCESS *dbproc)
Determine if query generated a return status number.
Definition: dblib.c:4630
-
RETCODE dbsetllong(LOGINREC *login, long value, int which)
Set an integer value in a LOGINREC structure.
Definition: dblib.c:826
-
STATUS dbrowtype(DBPROCESS *dbprocess)
Get returned row&#39;s type.
Definition: dblib.c:6183
-
RETCODE dbsetlogintime(int seconds)
Set maximum seconds db-lib waits for a server response to a login attempt.
Definition: dblib.c:4219
-
RETCODE dbsetlversion(LOGINREC *login, BYTE version)
Set TDS version for future connections.
Definition: dblib.c:936
-
void dbsetavail(DBPROCESS *dbprocess)
Mark a DBPROCESS as "available".
Definition: dblib.c:7256
-
int dbiordesc(DBPROCESS *dbproc)
Get file descriptor of the socket used by a DBPROCESS to read data coming from the server...
Definition: dblib.c:7212
-
RETCODE dbfcmd(DBPROCESS *dbproc, const char *fmt,...)
printf-like way to form SQL to send to the server.
Definition: dblib.c:1315
-
BOOL dbiscount(DBPROCESS *dbproc)
Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature)...
Definition: dblib.c:2784
-
RETCODE dbresults(DBPROCESS *dbproc)
Set up query results.
Definition: dblib.c:1674
-
DBINT dbaltlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in compute column.
Definition: dblib.c:7118
-
Definition: sybdb.h:289
-
DBINT dbprcollen(DBPROCESS *dbproc, int column)
Get size of a result column needed to print column.
Definition: dblib.c:3172
-
DBINT dbfirstrow(DBPROCESS *dbproc)
See if a server response has arrived.
Definition: dblib.c:7173
-
Definition: sybdb.h:268
-
RETCODE dbmnyinc(DBPROCESS *dbproc, DBMONEY *mnyptr)
Add $0.0001 to a DBMONEY value.
Definition: dblib.c:5443
-
RETCODE dbmnycopy(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
Copy a DBMONEY value.
Definition: dblib.c:5990
-
RETCODE dbaltbind(DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
Bind a compute column to a program variable.
Definition: dblib.c:4349
-
RETCODE dbanydatecrack(DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
Break any kind of date or time value into useful pieces.
Definition: dblib.c:5848
-
int dbdatecmp(DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
Compare DBDATETIME values, similar to strcmp(3).
Definition: dblib.c:5745
-
RETCODE dbspr1row(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print a regular result row to a buffer.
Definition: dblib.c:3437
-
int dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
Compare two DBMONEY4 values.
Definition: dblib.c:5692
-
const char * dbmonthname(DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
Get name of a month, in some human language.
Definition: dblib.c:6939
-
RETCODE dbinit(void)
Initialize db-lib.
Definition: dblib.c:664
-
int dbnumcols(DBPROCESS *dbproc)
Return number of regular columns in a result set.
Definition: dblib.c:1828
-
RETCODE dbwritetext(DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
Send text or image data to the server.
Definition: dblib.c:6575
-
DBINT dbretstatus(DBPROCESS *dbproc)
Fetch status value returned by query or remote procedure call.
Definition: dblib.c:4654
-
BYTE * dbadata(DBPROCESS *dbproc, int computeid, int column)
Get address of compute column data.
Definition: dblib.c:4395
-
char * dbname(DBPROCESS *dbproc)
Get name of current database.
Definition: dblib.c:6988
-
Definition: sybdb.h:341
-
RETCODE bcp_colfmt_ps(DBPROCESS *dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int colnum, DBTYPEINFO *typeinfo)
Specify the format of a host file for bulk copy purposes, with precision and scale support for numeri...
Definition: bcp.c:504
-
Definition: dblib.h:42
-
int dbretlen(DBPROCESS *dbproc, int retnum)
Get size of an output parameter filled by a stored procedure.
Definition: dblib.c:4759
-
RETCODE dbsqlsend(DBPROCESS *dbproc)
Transmit the command buffer to the server.
Definition: dblib.c:7024
-
Definition: sybdb.h:300
-
int dbstrlen(DBPROCESS *dbproc)
Get size of the command buffer, in bytes.
Definition: dblib.c:6271
-
RETCODE dbmnyminus(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
Negate a DBMONEY value.
Definition: dblib.c:5499
-
DBBOOL dbdead(DBPROCESS *dbproc)
Check if dbproc is an ex-parrot.
Definition: dblib.c:5038
-
int dbmnycmp(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
Compare two DBMONEY values.
Definition: dblib.c:5246
-
Definition: sybdb.h:283
-
STATUS dbsetrow(DBPROCESS *dbprocess, DBINT row)
Make a buffered row "current" without fetching it into bound variables.
Definition: dblib.c:2025
-
DBBOOL bcp_getl(LOGINREC *login)
See if BCP_SETL() was used to set the LOGINREC for BCP work.
Definition: bcp.c:697
-
RETCODE bcp_readfmt(DBPROCESS *dbproc, const char filename[])
Read a format definition file.
Definition: bcp.c:1625
-
RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int type, int table_column)
Bind a program host variable to a database column.
Definition: bcp.c:2026
-
DBUBIGINT time
time, 7 digit precision
Definition: sybdb.h:308
-
DBBOOL dbisopt(DBPROCESS *dbproc, int option, const char param[])
Get value of an option.
Definition: dblib.c:6143
-
RETCODE dbsetnull(DBPROCESS *dbprocess, int bindtype, int bindlen, BYTE *bindval)
Define substitution values to be used when binding null values.
Definition: dblib.c:1942
-
RETCODE dbsetversion(DBINT version)
Specify a db-lib version level.
Definition: dblib.c:5956
-
DBSMALLINT offset
time offset
Definition: sybdb.h:310
-
int dbalttype(DBPROCESS *dbproc, int computeid, int column)
Get datatype for a compute column.
Definition: dblib.c:4320
-
DBINT dbspr1rowlen(DBPROCESS *dbproc)
Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row().
Definition: dblib.c:3399
-
DBINT dbadlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in a compute column.
Definition: dblib.c:4290
-
Definition: sybdb.h:335
-
DBINT date
date, 0 = 1900-01-01
Definition: sybdb.h:309
-
DBINT dblastrow(DBPROCESS *dbproc)
Get number of the last row in the row buffer.
Definition: dblib.c:7188
-
RETCODE dbcmdrow(DBPROCESS *dbproc)
See if the current command can return rows.
Definition: dblib.c:4240
-
DBINT dbconvert(DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
cf.
Definition: dblib.c:2573
-
int dbcoltype(DBPROCESS *dbproc, int column)
Get the datatype of a regular result set column.
Definition: dblib.c:2950
+
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  */
+
20 
+
21 #ifndef SQLFRONT_h
+
22 #define SQLFRONT_h
+
23 
+
24 #include "./sybfront.h"
+
25 
+
26 static const char rcsid_sqlfront_h[] = "$Id: sqlfront.h,v 1.10 2011-07-13 11:06:31 freddy77 Exp $";
+
27 static const void *const no_unused_sqlfront_h_warn[] = { rcsid_sqlfront_h, no_unused_sqlfront_h_warn };
+
28 
+
29 typedef DBPROCESS * PDBPROCESS;
+
30 typedef LOGINREC * PLOGINREC;
+
31 typedef DBCURSOR * PDBCURSOR;
+
32 
+
33 typedef int * LPINT;
+
34 typedef char * LPSTR;
+
35 #if !defined(PHP_MSSQL_H) || !defined(PHP_MSSQL_API)
+
36 typedef BYTE * LPBYTE;
+
37 #endif
+
38 typedef void * LPVOID;
+
39 typedef const char * LPCSTR;
+
40 
+
41 typedef const LPINT LPCINT;
+
42 #ifndef _LPCBYTE_DEFINED
+
43 #define _LPCBYTE_DEFINED
+
44 typedef const BYTE * LPCBYTE;
+
45 #endif
+
46 typedef USHORT * LPUSHORT;
+
47 typedef const LPUSHORT LPCUSHORT;
+
48 typedef DBINT * LPDBINT;
+
49 typedef const LPDBINT LPCDBINT;
+
50 typedef DBBINARY * LPDBBINARY;
+
51 typedef const LPDBBINARY LPCDBBINARY;
+
52 typedef DBDATEREC * LPDBDATEREC;
+
53 typedef const LPDBDATEREC LPCDBDATEREC;
+
54 typedef DBDATETIME * LPDBDATETIME;
+
55 typedef const LPDBDATETIME LPCDBDATETIME;
+
56 
+
57 #endif
+
Definition: sybdb.h:295
+
Definition: dblib.h:123
+
Definition: sybdb.h:474
+
Definition: bsqlodbc.c:100
diff -Nru freetds-1.1.6/doc/reference/a00498.map freetds-1.2.3/doc/reference/a00498.map --- freetds-1.1.6/doc/reference/a00498.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00498.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00498.md5 freetds-1.2.3/doc/reference/a00498.md5 --- freetds-1.1.6/doc/reference/a00498.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00498.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4714dba80225ebadc975da36e4ea14b2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00498.svg freetds-1.2.3/doc/reference/a00498.svg --- freetds-1.1.6/doc/reference/a00498.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00498.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ - - - - - - -include/sybdb.h - - -Node0 - -include/sybdb.h - - -Node1 - - -tds_sysdep_public.h - - - - -Node0->Node1 - - - - -Node2 - -float.h - - -Node1->Node2 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00499.map freetds-1.2.3/doc/reference/a00499.map --- freetds-1.1.6/doc/reference/a00499.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00499.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00499.md5 freetds-1.2.3/doc/reference/a00499.md5 --- freetds-1.1.6/doc/reference/a00499.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00499.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d4ab18f4f0d18bfb7b718ec736ef278e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00499.svg freetds-1.2.3/doc/reference/a00499.svg --- freetds-1.1.6/doc/reference/a00499.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00499.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ - - - - - - -include/sybdb.h - - -Node3 - -include/sybdb.h - - -Node4 - - -src/dblib/dblib.c - - - - -Node3->Node4 - - - - -Node5 - - -include/sqldb.h - - - - -Node3->Node5 - - - - -Node6 - - -include/sybfront.h - - - - -Node3->Node6 - - - - -Node6->Node4 - - - - -Node7 - - -include/sqlfront.h - - - - -Node6->Node7 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00500_source.html freetds-1.2.3/doc/reference/a00500_source.html --- freetds-1.1.6/doc/reference/a00500_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00500_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/syberror.h Source File +FreeTDS API: include/sybdb.dox.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
syberror.h
+
sybdb.dox.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
24 extern "C"
25 {
26 #if 0
27 }
28 #endif
29 #endif
30 
31 static const char rcsid_syberror_h[] = "$Id: syberror.h,v 1.4 2004-10-28 12:42:12 freddy77 Exp $";
32 static 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
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
2  * Copyright (C) 2005 James K. Lowden
+
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 
+
93  /*------------------------*/
+
119  /*------------------------*/
+
135 /* \fn DBSETLHID(x,y) (not implemented)
+
136  * \ingroup dblib_core
+
137  * \brief
+
138  * \sa dbsetlhid()
+
139  */
+
140 /* \fn DBSETLNOSHORT(x,y) (not implemented)
+
141  * \ingroup dblib_core
+
142  * \brief
+
143  * \sa dbsetlnoshort()
+
144  */
+
145 /* \fn DBSETLHIER(x,y) (not implemented)
+
146  * \ingroup dblib_core
+
147  * \brief
+
148  * \sa dbsetlhier()
+
149  */
+
171 /* \fn BCP_SETLABELED(x,y) (not implemented)
+
172  * \ingroup dblib_internal
+
173  * \brief Sybase macro mapping to the Microsoft (lower-case) function.
+
174  * \sa bcp_setlabeled()
+
175  */
+
182  /*------------------------*/
+
183 
+
diff -Nru freetds-1.1.6/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map freetds-1.2.3/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map --- freetds-1.1.6/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 freetds-1.2.3/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 --- freetds-1.1.6/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3ae7d068fc2e7a919595c5fa1ac7c569 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg freetds-1.2.3/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg --- freetds-1.1.6/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcolinfo + + + +Node1 + + +dbcolinfo + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map freetds-1.2.3/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map --- freetds-1.1.6/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 freetds-1.2.3/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +2ad6010683754a0f40af5ae852adae6a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg freetds-1.2.3/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg --- freetds-1.1.6/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_ae408d8e1c2ab0767d8bfd26d00d1ff6a_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +dbopen + + + +Node1 + + +dbopen + + + + + +Node2 + + +tdsdbopen + + + + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node2->Node3 + + + + + +Node4 + + +tdsdump_open + + + + + +Node2->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00503.html freetds-1.2.3/doc/reference/a00503.html --- freetds-1.1.6/doc/reference/a00503.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,2862 @@ + + + + + + + +FreeTDS API: include/sybdb.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
sybdb.h File Reference
+
+
+ +

Primary include file for db-lib applications. +More...

+
#include "tds_sysdep_public.h"
+
+Include dependency graph for sybdb.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

struct  DBCOL
 
struct  DBCOL2
 
struct  DBDATETIME
 
struct  DBDATETIME4
 
struct  DBDATETIMEALL
 
struct  DBMONEY
 
struct  DBMONEY4
 
struct  DBNUMERIC
 
struct  dbstring
 
struct  dbtypeinfo
 
struct  DBVARYBIN
 
struct  DBVARYCHAR
 
struct  tds_microsoft_dbdaterec
 
struct  tds_microsoft_dbdaterec2
 
struct  tds_sybase_dbdaterec
 
struct  tds_sybase_dbdaterec2
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BCP_SETL(x, y)   dbsetlbool((x), (y), DBSETBCP)
 Enable (or prevent) bcp operations for connections made with a login.
+ More...
 
+#define BCP_SETLABELED(x, y)   dbsetlbool((x), (y), DBSETLABELED)
 
+#define BCPBATCH   4
 
+#define BCPFIRST   2
 
+#define BCPHINTS   6
 
+#define BCPKEEPIDENTITY   8
 
+#define BCPLABELED   5
 
+#define BCPLAST   3
 
+#define BCPMAXERRS   1
 
+#define BIGDATETIMEBIND   23
 
+#define BIGINTBIND   30
 
+#define BIGTIMEBIND   24
 
+#define BINARYBIND   15
 
+#define BITBIND   16
 
+#define BUF_FULL   -3
 
+#define CHARBIND   0
 
+#define DATEBIND   21
 
+#define DATETIME2BIND   31
 
+#define DATETIMEBIND   11
 
+#define DB_IN   1
 
+#define DB_OUT   2
 
+#define DB_QUERYOUT   3
 
+#define DBARITHABORT   6
 
+#define DBARITHIGNORE   4
 
+#define DBAUTH   29
 
+#define DBBOTH   2
 
+#define DBBROWSE   8
 
+#define DBBUFFER   14
 
+#define DBCHAINXACTS   26
 
+#define DBCLIENTCURSORS   33
 
+#define DBCMDNONE   0
 
+#define DBCMDPEND   1
 
#define DBCMDROW(x)   dbcmdrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBCMDSENT   2
 
+#define DBCONFIRM   12
 
#define DBCOUNT(x)   dbcount((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBCURCMD(x)   dbcurcmd((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBCURROW(x)   dbcurrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBDATEFIRST   25
 
+#define DBDATEFORMAT   19
 
+#define DBDATESHORT   32
 
#define DBDEAD(x)   dbdead((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBDOUBLE   1
 
+#define DBERRLVL   11
 
+#define DBESTIMATE   1
 
+#define DBFIPSFLAG   27
 
#define DBFIRSTROW(x)   dbfirstrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBGETTIME   dbgettime
 
+#define DBIDENTITY   30
 
+#define DBINTERRUPT   4
 
#define DBIORDESC(x)   dbiordesc((x))
 Sybase macro, maps to the internal (lower-case) function.
+ More...
 
#define DBIOWDESC(x)   dbiowdesc((x))
 Sybase macro, maps to the internal (lower-case) function.
+ More...
 
#define DBISAVAIL(x)   dbisavail((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBISOLATION   28
 
#define DBLASTROW(x)   dblastrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBLFCONVERT   24
 
+#define DBMAXNAME   128
 
+#define DBMAXNUMLEN   33
 
#define DBMORECMDS(x)   dbmorecmds((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBNATLANG   18
 
+#define DBNOAUTOFREE   15
 
+#define DBNOCOUNT   5
 
+#define DBNOERR   -1
 
+#define DBNOEXEC   3
 
+#define DBNOIDCOL   31
 
+#define DBNOSAVE   0
 
+#define DBNOTIFICATION   2
 
+#define DBNUMOPTIONS   36
 
+#define DBOFFSET   9
 
+#define dbopen(x, y)   tdsdbopen((x),(y), 0)
 
+#define DBPADOFF   0
 
+#define DBPADON   1
 
+#define DBPARSEONLY   0
 
+#define DBPRCOLSEP   21
 
+#define DBPRCOLSEP   21
 
+#define DBPRLINELEN   22
 
+#define DBPRLINELEN   22
 
+#define DBPRLINESEP   23
 
+#define DBPRPAD   20
 
+#define DBQUOTEDIDENT   35
 
+#define DBRESULT   1
 
+#define DBROWCOUNT   16
 
#define DBROWS(x)   dbrows((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBROWTYPE(x)   dbrowtype((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
+#define DBRPCCURSOR   TDS_STATIC_CAST(DBSMALLINT, 0x0008)
 
+#define DBRPCDEFAULT   2
 
+#define DBRPCRECOMPILE   TDS_STATIC_CAST(DBSMALLINT, 0x0001)
 
+#define DBRPCRESET   TDS_STATIC_CAST(DBSMALLINT, 0x0002)
 
+#define DBRPCRETURN   1
 
+#define DBSAVE   1
 
+#define DBSETAPP   5
 
+#define DBSETBCP   6
 
+#define DBSETCHARSET   10
 
+#define DBSETDBNAME   14
 
+#define DBSETDELEGATION   1004
 
+#define DBSETENCRYPT   12
 
+#define DBSETHOST   1
 
+#define DBSETLABELED   13
 
#define DBSETLAPP(x, y)   dbsetlname((x), (y), DBSETAPP)
 Set the (client) application name in the login packet.
+ More...
 
+#define dbsetlapp(x, y)   dbsetlname((x), (y), DBSETAPP)
 
#define DBSETLCHARSET(x, y)   dbsetlname((x), (y), DBSETCHARSET)
 Set the client character set in the login packet. More...
 
+#define DBSETLDBNAME(x, y)   dbsetlname((x), (y), DBSETDBNAME)
 
+#define DBSETLDELEGATION(x, y)   dbsetlbool((x), (y), DBSETDELEGATION)
 
#define DBSETLENCRYPT(x, y)   dbsetlbool((x), (y), DBSETENCRYPT)
 Enable (or not) network password encryption for Sybase servers version 10.0 or above. More...
 
#define DBSETLHOST(x, y)   dbsetlname((x), (y), DBSETHOST)
 Set the (client) host name in the login packet.
+ More...
 
+#define dbsetlhost(x, y)   dbsetlname((x), (y), DBSETHOST)
 
#define DBSETLLABELED(x, y)   dbsetlbool((x), (y), DBSETLABELED)
 Alternative way to set login packet fields.
+ More...
 
+#define DBSETLMUTUALAUTH(x, y)   dbsetlbool((x), (y), DBSETMUTUALAUTH)
 
#define DBSETLNATLANG(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages.
+ More...
 
#define dbsetlnatlang(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages.
+ More...
 
+#define DBSETLNETWORKAUTH(x, y)   dbsetlbool((x), (y), DBSETNETWORKAUTH)
 
+#define DBSETLNTLMV2(x, y)   dbsetlbool((x), (y), DBSETNTLMV2)
 
#define DBSETLPACKET(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections.
+ More...
 
#define dbsetlpacket(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections.
+ More...
 
#define DBSETLPWD(x, y)   dbsetlname((x), (y), DBSETPWD)
 Set the password in the login packet.
+ More...
 
+#define dbsetlpwd(x, y)   dbsetlname((x), (y), DBSETPWD)
 
+#define DBSETLREADONLY(x, y)   dbsetlbool((x), (y), DBSETREADONLY)
 
+#define DBSETLSECURE(x)   dbsetlbool((x), (1), DBSETBCP)
 
+#define DBSETLSERVERPRINCIPAL(x, y)   dbsetlname((x), (y), DBSETSERVERPRINCIPAL)
 
#define DBSETLUSER(x, y)   dbsetlname((x), (y), DBSETUSER)
 Set the username in the login packet.
+ More...
 
+#define dbsetluser(x, y)   dbsetlname((x), (y), DBSETUSER)
 
+#define DBSETLUTF16(x, y)   dbsetlbool((x), (y), DBSETUTF16)
 
#define DBSETLVERSION(login, version)   dbsetlversion((login), (version))
 maps to the Microsoft (lower-case) function.
+ More...
 
+#define DBSETMUTUALAUTH   102
 
+#define DBSETNATLANG   7
 
+#define DBSETNETWORKAUTH   101
 
+#define DBSETNTLMV2   1002
 
+#define DBSETPACKET   11
 
+#define DBSETPWD   3
 
+#define DBSETREADONLY   1003
 
+#define DBSETSERVERPRINCIPAL   103
 
+#define DBSETTIME   34
 
+#define DBSETUSER   2
 
+#define DBSETUTF16   1001
 
+#define DBSHOWPLAN   2
 
+#define DBSINGLE   0
 
+#define DBSTAT   10
 
+#define DBSTORPROCID   13
 
#define DBTDS(a)   dbtds(a)
 Sybase macro, maps to the internal (lower-case) function.
+ More...
 
+#define DBTDS_2_0   1 /* pre 4.0 SQL Server */
 
+#define DBTDS_3_4   2 /* Microsoft SQL Server (3.0) */
 
+#define DBTDS_4_0   3 /* 4.0 SQL Server */
 
+#define DBTDS_4_2   4 /* 4.2 SQL Server */
 
+#define DBTDS_4_6   5 /* 2.0 OpenServer and 4.6 SQL Server. */
 
+#define DBTDS_4_9_5   6 /* 4.9.5 (NCR) SQL Server */
 
+#define DBTDS_5_0   7 /* 5.0 SQL Server */
 
+#define DBTDS_7_0   8 /* Microsoft SQL Server 7.0 */
 
+#define DBTDS_7_1   9 /* Microsoft SQL Server 2000 */
 
+#define DBTDS_7_2   10 /* Microsoft SQL Server 2005 */
 
+#define DBTDS_7_3   11 /* Microsoft SQL Server 2008 */
 
+#define DBTDS_7_4   12 /* Microsoft SQL Server 2012/2014 */
 
+#define DBTDS_8_0   9 /* Microsoft SQL Server 2000 */
 
+#define DBTDS_9_0   10 /* Microsoft SQL Server 2005 */
 
#define DBTDS_UNKNOWN   0
 DBTDS_xxx are returned by DBTDS() The integer values of the constants are poorly chosen. More...
 
+#define DBTEXTLIMIT   7
 
+#define DBTEXTSIZE   17
 
+#define DBTIMEOUT   3
 
+#define DBTXPLEN   16
 
+#define DBTXTSLEN   8
 
+#define DBVER42   DBVERSION_42
 
+#define DBVER60   DBVERSION_70 /* our best approximation */
 
+#define DBVERSION_100   2
 
+#define DBVERSION_42   3
 
+#define DBVERSION_46   1
 
+#define DBVERSION_70   4
 
+#define DBVERSION_71   5
 
+#define DBVERSION_72   6
 
+#define DBVERSION_73   7
 
+#define DBVERSION_74   8
 
+#define DBVERSION_UNKNOWN   0
 DBVERSION_xxx are used with dbsetversion()
 
+#define DECIMALBIND   18
 
+#define FAIL   0
 
+#define FALSE   0
 
+#define FLT8BIND   9
 
+#define INT_CANCEL   2
 
+#define INT_CONTINUE   1
 
+#define INT_EXIT   0
 
+#define INT_TIMEOUT   3
 
+#define INTBIND   8
 
+#define MAXBINDTYPES   32 /* keep last */
 
+#define MAXOPTTEXT   32
 
+#define MONEYBIND   13
 
+#define MORE_ROWS   -1
 
+#define NO_MORE_RESULTS   2
 
+#define NO_MORE_ROWS   -2
 
+#define NOSUCHOPTION   2
 
+#define NTBSTRINGBIND   2
 
+#define NUMERICBIND   17
 
+#define OFF   0
 
+#define ON   1
 
+#define REALBIND   10
 
+#define REG_ROW   -1
 
+#define SMALLBIND   7
 
+#define SMALLDATETIMEBIND   12
 
+#define SMALLMONEYBIND   14
 
+#define SRCDECIMALBIND   20
 
+#define SRCNUMERICBIND   19
 
+#define STRINGBIND   1
 
+#define SUCCEED   1
 
+#define SYBAOPAVG   0x4f
 
+#define SYBAOPAVGU   0x50
 
+#define SYBAOPCHECKSUM_AGG   0x72
 
+#define SYBAOPCNT   0x4b
 
+#define SYBAOPCNT_BIG   0x09
 
+#define SYBAOPCNTU   0x4c
 
+#define SYBAOPMAX   0x52
 
+#define SYBAOPMIN   0x51
 
+#define SYBAOPSTDEV   0x30
 
+#define SYBAOPSTDEVP   0x31
 
+#define SYBAOPSUM   0x4d
 
+#define SYBAOPSUMU   0x4e
 
+#define SYBAOPVAR   0x32
 
+#define SYBAOPVARP   0x33
 
+#define SYBBIGDATETIME   SYBBIGDATETIME
 
+#define SYBBIGTIME   SYBBIGTIME
 
+#define SYBBINARY   SYBBINARY
 
+#define SYBBIT   SYBBIT
 
+#define SYBBITN   SYBBITN
 
+#define SYBCHAR   SYBCHAR
 
+#define SYBDATE   SYBDATE
 
+#define SYBDATETIME   SYBDATETIME
 
+#define SYBDATETIME4   SYBDATETIME4
 
+#define SYBDATETIMN   SYBDATETIMN
 
+#define SYBDECIMAL   SYBDECIMAL
 
+#define SYBEAAMT   20035 /* User attempted a dbaltbind() with mismatched column and variable types. */
 
+#define SYBEABMT   20033 /* User attempted a dbbind() with mismatched column and variable types. */
 
+#define SYBEABNC   20032 /* Attempt to bind to a non-existent column. */
 
+#define SYBEABNP   20034 /* Attempt to bind using NULL pointers. */
 
+#define SYBEABNV   20046 /* Attempt to bind to a NULL program variable. */
 
+#define SYBEACNV   20148 /* Attemp to do conversion with NULL destination variable. */
 
+#define SYBEADST   20128 /* Error in attempting to determine the size of a pair of translation tables. */
 
+#define SYBEAICF   20127 /* Error in attempting to install custom format. */
 
+#define SYBEALTT   20129 /* Error in attempting to load a pair of translation tables. */
 
+#define SYBEAOLF   20133 /* Error in attempting to open a localization file. */
 
+#define SYBEAPCT   20130 /* Error in attempting to perform a character-set translation. */
 
+#define SYBEAPUT   20040 /* Attempt to print unknown token. */
 
+#define SYBEARDI   20134 /* Error in attempting to read datetime information from a localization file. */
 
+#define SYBEARDL   20136 /* Error in attempting to read the dblib.loc localization file. */
 
+#define SYBEASEC   20091 /* Attempt to send an empty command buffer to the SQL Server. */
 
+#define SYBEASNL   20041 /* Attempt to set fields in a null loginrec. */
 
+#define SYBEASTF   20089 /* VMS: Unable to setmode for control_c ast. */
 
+#define SYBEASTL   20197 /* Synchronous I/O attempted at AST level. */
 
+#define SYBEASUL   20043 /* Attempt to set unknown loginrec field. */
 
+#define SYBEATTNACK   20296 /* Timed out waiting for server to acknowledge attention." */
 
+#define SYBEAUTN   20062 /* Attempt to update the timestamp of a table which has no timestamp column. */
 
+#define SYBEBADPK   20201 /* Packet size of %1! not supported. -- size of %2! used instead. */
 
+#define SYBEBADTYPE   20254 /* Illegal value for type parameter given to %1!. */
 
+#define SYBEBBCI   20068 /* Batch successfully bulk-copied to SQL Server. */
 
+#define SYBEBBFL   20297 /* -001- Batch failed in bulk-copy to SQL Server */
 
+#define SYBEBBL   20215 /* Bad bindlen parameter passed to dbsetnull() */
 
+#define SYBEBCBC   20081 /* bcp_columns() must be called before bcp_colfmt() and bcp_colfmt_ps(). */
 
+#define SYBEBCBNPR   20230 /* bcp_bind(): if varaddr is NULL, prefixlen must be 0 and no terminator should be specified. */
 
+#define SYBEBCBNTYP   20231 /* bcp_bind(): if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
 
+#define SYBEBCBPREF   20236 /* Illegal prefix length. Legal values are 0, 1, 2 or 4. */
 
+#define SYBEBCFO   20082 /* Bcp host-files must contain at least one column. */
 
+#define SYBEBCHLEN   20235 /* host_collen should be greater than or equal to -1. */
 
+#define SYBEBCIS   20075 /* Attempt to bulk-copy an illegally-sized column value to the SQL Server. */
 
+#define SYBEBCIT   20107 /* It's illegal to use BCP terminators with program variables other than SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE. */
 
+#define SYBEBCITBLEN   20239 /* bcp_init(): tblname parameter is too long. */
 
+#define SYBEBCITBNM   20238 /* bcp_init(): tblname parameter cannot be NULL. */
 
+#define SYBEBCMTXT   20228 /* bcp_moretext() may be used only when there is at least one text or image column in the server table. */
 
+#define SYBEBCNL   20105 /* Negative length-prefix found in BCP data-file. */
 
+#define SYBEBCNN   20073 /* Attempt to bulk-copy a NULL value into Server column %d, which does not accept NULL values. */
 
+#define SYBEBCNT   20064 /* Attempt to use Bulk Copy with a non-existent Server table. */
 
+#define SYBEBCOR   20074 /* Attempt to bulk-copy an oversized row to the SQL Server. */
 
+#define SYBEBCPB   20078 /* bcp_bind(), bcp_moretext() and bcp_sendrow() may NOT be used after bcp_init() has been passed a non-NULL input file name. */
 
+#define SYBEBCPCTYP   20233 /* bcp_colfmt(): If table_colnum is 0, host_type cannot be 0. */
 
+#define SYBEBCPI   20076 /* bcp_init() must be called before any other bcp routines. */
 
+#define SYBEBCPN   20077 /* bcp_bind(), bcp_collen(), bcp_colptr(), bcp_moretext() and bcp_sendrow() may be used only after bcp_init() has been called with the copy direction set to DB_IN. */
 
+#define SYBEBCPOPT   20294 /* The option cannot be called while a bulk copy operation is progress. */
 
+#define SYBEBCPREC   20229 /* Column %1!: Illegal precision value encountered. */
 
+#define SYBEBCPREF   20237 /* Illegal prefix length. Legal values are -1, 0, 1, 2 or 4. */
 
+#define SYBEBCRE   20070 /* I/O error while reading bcp data-file. */
 
+#define SYBEBCRO   20111 /* The BCP hostfile '%s' contains only %ld rows. It was impossible to read the requested %ld rows. */
 
+#define SYBEBCSA   20108 /* The BCP hostfile '%s' contains only %ld rows. Skipping all of these rows is not allowed. */
 
+#define SYBEBCSET   20221 /* Unknown character-set encountered." */
 
+#define SYBEBCSI   20106 /* Host-file columns may be skipped only when copying INto the Server. */
 
+#define SYBEBCSNDROW   20240 /* bcp_sendrow() may NOT be called unless all text data for the previous row has been sent using bcp_moretext(). */
 
+#define SYBEBCSNTYP   20232 /* column number %1!: if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
 
+#define SYBEBCUC   20085 /* Bcp: Unable to close host data-file. */
 
+#define SYBEBCUO   20084 /* Bcp: Unable to open host data-file. */
 
+#define SYBEBCVH   20083 /* bcp_exec() may be called only after bcp_init() has been passed a valid host file. */
 
+#define SYBEBCVLEN   20234 /* varlen should be greater than or equal to -1. */
 
+#define SYBEBCWE   20072 /* I/O error while writing bcp data-file. */
 
+#define SYBEBDIO   20063 /* Bad bulk-copy direction. Must be either IN or OUT. */
 
+#define SYBEBEOF   20104 /* Unexpected EOF encountered in BCP data-file. */
 
+#define SYBEBIHC   20103 /* Incorrect host-column number found in bcp format-file. */
 
+#define SYBEBIVI   20080 /* bcp_columns(), bcp_colfmt() and bcp_colfmt_ps() may be used only after bcp_init() has been passed a valid input file. */
 
+#define SYBEBNCR   20024 /* Attempt to bind user variable to a non-existent compute row. */
 
+#define SYBEBNUM   20214 /* Bad numbytes parameter passed to dbstrcpy() */
 
+#define SYBEBOOL   20293 /* Boolean parameters must be TRUE or FALSE. */
 
+#define SYBEBPKS   20193 /* In DBSETLPACKET(), the packet size parameter must be between 0 and 999999. */
 
+#define SYBEBPREC   20216 /* Illegal precision specified */
 
+#define SYBEBPROBADDEF   20249 /* bcp protocol error: illegal default column id received. */
 
+#define SYBEBPROBADLEN   20251 /* bcp protocol error: illegal datatype length received. */
 
+#define SYBEBPROBADPREC   20252 /* bcp protocol error: illegal precision value received. */
 
+#define SYBEBPROBADSCL   20253 /* bcp protocol error: illegal scale value received. */
 
+#define SYBEBPROBADTYP   20250 /* bcp protocol error: unknown column datatype. */
 
+#define SYBEBPROCOL   20241 /* bcp protocol error: returned column count differs from the actual number of columns received. */
 
+#define SYBEBPRODEF   20242 /* bcp protocol error: expected default information and got none. */
 
+#define SYBEBPRODEFID   20244 /* bcp protocol error: default column id and actual column id are not same */
 
+#define SYBEBPRODEFTYP   20246 /* bcp protocol error: default value datatype differs from column datatype. */
 
+#define SYBEBPROEXTDEF   20247 /* bcp protocol error: more than one row of default information received. */
 
+#define SYBEBPROEXTRES   20248 /* bcp protocol error: unexpected set of results received. */
 
+#define SYBEBPRONODEF   20245 /* bcp protocol error: default value received for column that does not have default. */
 
+#define SYBEBPRONUMDEF   20243 /* bcp protocol error: expected number of defaults differs from the actual number of defaults received. */
 
+#define SYBEBRFF   20100 /* I/O error while reading bcp format-file. */
 
+#define SYBEBSCALE   20217 /* Illegal scale specified */
 
+#define SYBEBTMT   20095 /* Attempt to send too much TEXT data via the bcp_moretext() call. */
 
+#define SYBEBTOK   20020 /* Bad token from SQL Server: Data-stream processing out of sync. */
 
+#define SYBEBTYP   20023 /* Unknown bind type passed to DB-LIBRARY function. */
 
+#define SYBEBTYPSRV   20220 /* Datatype is not supported by the server. */
 
+#define SYBEBUCE   20087 /* Bcp: Unable to close error-file. */
 
+#define SYBEBUCF   20099 /* Bcp: Unable to close format-file. */
 
+#define SYBEBUDF   20102 /* Bcp: Unrecognized datatype found in format-file. */
 
+#define SYBEBUFF   20147 /* Bcp: Unable to create format-file. */
 
+#define SYBEBUFL   20005 /* DB-LIBRARY internal error - send buffer length corrupted. */
 
+#define SYBEBULKINSERT   20599 /* cannot build bulk insert statement */
 
+#define SYBEBUOE   20086 /* Bcp: Unable to open error-file. */
 
+#define SYBEBUOF   20098 /* Bcp: Unable to open format-file. */
 
+#define SYBEBWEF   20088 /* I/O error while writing bcp error-file. */
 
+#define SYBEBWFF   20101 /* I/O error while writing bcp format-file. */
 
+#define SYBECAP   20203 /* DB-Library capabilities not accepted by the Server. */
 
+#define SYBECAPTYP   20213 /* Unexpected capability type in CAPABILITY datastream. */
 
+#define SYBECDNS   20031 /* Datastream indicates that a compute column is derived from a non-existent select-list member. */
 
+#define SYBECDOMAIN   20218 /* Source field value is not within the domain of legal values. */
 
+#define SYBECINTERNAL   20219 /* Internal Conversion error. */
 
+#define SYBECLOS   20056 /* Error in closing network connection. */
 
+#define SYBECLOSEIN   20292 /* Unable to close interface file. */
 
+#define SYBECLPR   20051 /* Data-conversion resulted in loss of precision. */
 
+#define SYBECNOR   20026 /* Column number out of range. */
 
+#define SYBECNOV   20052 /* Attempt to set variable to NULL resulted in overflow. */
 
+#define SYBECOFL   20049 /* Data-conversion resulted in overflow. */
 
+#define SYBECOLSIZE   22000 /* Invalid column information structure size */
 
+#define SYBECONN   20009 /* Unable to connect socket -- SQL Server is unavailable or does not exist. */
 
+#define SYBECRNC   20116 /* The current row is not a result of compute clause %d, so it is illegal to attempt to extract that data from this row. */
 
+#define SYBECRSAGR   20263 /* Aggregate functions are not allowed in a cursor statement. */
 
+#define SYBECRSBROL   20266 /* Backward scrolling cannot be used in a forward scrolling cursor. */
 
+#define SYBECRSBSKEY   20268 /* Keyset cannot be scrolled backward in mixed cursors with a previous fetch type. */
 
+#define SYBECRSBUFR   20260 /* Row buffering should not be turned on when using cursor APIs. */
 
+#define SYBECRSDIS   20262 /* Cursor statement contains one of the disallowed phrases 'compute', 'union', 'for browse', or 'select into'. */
 
+#define SYBECRSFLAST   20265 /* Fetch type LAST requires fully keyset driven cursors. */
 
+#define SYBECRSFRAND   20264 /* Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors. */
 
+#define SYBECRSFROWN   20267 /* Row number to be fetched is outside valid range. */
 
+#define SYBECRSFTYPE   20280 /* Unknown fetch type. */
 
+#define SYBECRSINV   20277 /* Invalid cursor statement. */
 
+#define SYBECRSINVALID   20281 /* The cursor handle is invalid. */
 
+#define SYBECRSMROWS   20282 /* Multiple rows are returned, only one is expected. */
 
+#define SYBECRSNOBIND   20279 /* Cursor bind must be called prior to updating cursor */
 
+#define SYBECRSNOCOUNT   20270 /* The DBNOCOUNT option should not be turned on when doing updates or deletes with dbcursor(). */
 
+#define SYBECRSNOFREE   20261 /* The DBNOAUTOFREE option should not be turned on when using cursor APIs. */
 
+#define SYBECRSNOIND   20256 /* One of the tables involved in the cursor statement does not have a unique index. */
 
+#define SYBECRSNOKEYS   20278 /* The entire keyset must be defined for KEYSET cursors. */
 
+#define SYBECRSNOLEN   20284 /* No unique index found. */
 
+#define SYBECRSNOPTCC   20285 /* No OPTCC was found. */
 
+#define SYBECRSNORDER   20286 /* The order of clauses must be from, where, and order by. */
 
+#define SYBECRSNORES   20255 /* Cursor statement generated no results. */
 
+#define SYBECRSNOTABLE   20287 /* Table name is NULL. */
 
+#define SYBECRSNOUPD   20276 /* Update or delete operation did not affect any rows. */
 
+#define SYBECRSNOWHERE   20273 /* A WHERE clause is not allowed in a cursor update or insert. */
 
+#define SYBECRSNROWS   20283 /* No rows returned, at least one is expected. */
 
+#define SYBECRSNUNIQUE   20288 /* No unique keys associated with this view. */
 
+#define SYBECRSORD   20259 /* Only fully keyset driven cursors can have 'order by', ' group by', or 'having' phrases. */
 
+#define SYBECRSRO   20269 /* Data locking or modifications cannot be made in a READONLY cursor. */
 
+#define SYBECRSSET   20274 /* A SET clause is required for a cursor update or insert. */
 
+#define SYBECRSTAB   20271 /* Table name must be determined in operations involving data locking or modifications. */
 
+#define SYBECRSUPDNB   20272 /* Update or insert operations cannot use bind variables when binding type is NOBIND. */
 
+#define SYBECRSUPDTAB   20275 /* Update or insert operations using bind variables require single table cursors. */
 
+#define SYBECRSVAR   20289 /* There is no valid address associated with this bind. */
 
+#define SYBECRSVIEW   20257 /* A view cannot be joined with another table or a view in a cursor statement. */
 
+#define SYBECRSVIIND   20258 /* The view used in the cursor statement does not include all the unique index columns of the underlying tables. */
 
+#define SYBECS   20299 /* -004- cs context Error */
 
+#define SYBECSYN   20050 /* Attempt to convert data stopped by syntax error in source field. */
 
+#define SYBECUFL   20048 /* Data-conversion resulted in underflow. */
 
+#define SYBECWLL   20123 /* Attempt to set column width less than 1. */
 
+#define SYBEDBPS   20011 /* Maximum number of DBPROCESSes already allocated. */
 
+#define SYBEDCL   20298 /* -004- DCL Error */
 
+#define SYBEDDNE   20047 /* DBPROCESS is dead or not enabled. */
 
+#define SYBEDIVZ   20196 /* Attempt to divide by $0.00 in function %1!. */
 
+#define SYBEDNTI   20094 /* Attempt to use dbtxtsput() to put a new text-timestamp into a column whose datatype is neither SYBTEXT nor SYBIMAGE. */
 
+#define SYBEDPOR   20149 /* Out-of-range datepart constant. */
 
+#define SYBEDVOR   20152 /* Day values must be between 1 and 7. */
 
+#define SYBEECAN   20184 /* Attempted to cancel unrequested event notification. */
 
+#define SYBEECRT   20183 /* Must call dbregdefine() before dbregcreate(). */
 
+#define SYBEEINI   20182 /* Must call dbreginit() before dbregraise(). */
 
+#define SYBEEQVA   20059 /* Error in queueing VMS AST routine. */
 
+#define SYBEERRLABEL   20295 /* An illegal value was returned from the security label handler. */
 
+#define SYBEESSL   20172 /* Login security level entered does not agree with operating system level */
 
+#define SYBEETD   20164 /* Failure to send the expected amount of TEXT or IMAGE data via dbmoretext(). */
 
+#define SYBEEUNR   20185 /* Unsolicited event notification received. */
 
+#define SYBEEVOP   20178 /* Called dbregwatch() with a bad options parameter. */
 
+#define SYBEEVST   20181 /* Must initiate a transaction before calling dbregparam(). */
 
+#define SYBEFCON   20002 /* SQL Server connection failed. */
 
+#define SYBEFENC   20222 /* Password Encryption failed." */
 
+#define SYBEFGTL   20122 /* Bcp: Row number of the first row to be copied cannot be greater than the row number for the last row to be copied. */
 
+#define SYBEFMODE   20167 /* Read/Write/Append mode denied on file. */
 
+#define SYBEFRES   20223 /* Challenge-Response function failed.", */
 
+#define SYBEFSHD   20132 /* Error in attempting to find the Sybase home directory. */
 
+#define SYBEFUNC   20204 /* Functionality not supported at the specified version level. */
 
+#define SYBEGENOS   20161 /* General Operating System Error. */
 
+#define SYBEICN   20038 /* Invalid computeid or compute column number. */
 
+#define SYBEICONV2BIG   2404 /* Buffer overflow converting characters from client into server's character set.*/
 
+#define SYBEICONVAVAIL   2401 /* Character set conversion is not available between client character set '%.*s' and server character set '%.*s'.*/
 
+#define SYBEICONVI   2403 /* Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').*/
 
+#define SYBEICONVIU   2400 /* Some character(s) could not be converted into client's character set. */
 
+#define SYBEICONVO   2402 /* Error converting characters into server's character set. Some character(s) could not be converted.*/
 
+#define SYBEIDCL   20143 /* Illegal datetime column length returned by DataServer. Legal datetime lengths are 4 and 8 bytes. */
 
+#define SYBEIDECCL   20227 /* Invalid decimal column length returned by the server. */
 
+#define SYBEIFCL   20145 /* Illegal floating-point column length returned by DataServer. Legal floating-point lengths are 4 and 8 bytes. */
 
+#define SYBEIFNB   20065 /* Illegal field number passed to bcp_control(). */
 
+#define SYBEIICL   20025 /* Illegal integer column length returned by SQL Server. Legal integer lengths are 1, 2, and 4 bytes. */
 
+#define SYBEIMCL   20144 /* Illegal money column length returned by DataServer. Legal money lengths are 4 and 8 bytes. */
 
+#define SYBEINLN   20016 /* Interface file: unexpected end-of-line. */
 
+#define SYBEINTF   20012 /* Server name not found in interface file */
 
+#define SYBEINUMCL   20226 /* Invalid numeric column length returned by the server. */
 
+#define SYBEIPV   20194 /* %1! is an illegal value for the %2! parameter of %3!. */
 
+#define SYBEISOI   20142 /* Invalid sort-order information found. */
 
+#define SYBEISRVPREC   20224 /* Illegal precision value returned by the server. */
 
+#define SYBEISRVSCL   20225 /* Illegal scale value returned by the server. */
 
+#define SYBEITIM   20021 /* Illegal timeout value specified. */
 
+#define SYBEIVERS   20206 /* Illegal version level specified. */
 
+#define SYBEKBCI   20069 /* Bcp: 1000 rows sent to SQL Server. */
 
+#define SYBEKBCO   20067 /* 1000 rows successfully bulk-copied to host-file. */
 
+#define SYBELBLEN   20211 /* Security labels should be less than 256 characters long. */
 
+#define SYBEMEM   20010 /* Unable to allocate sufficient memory */
 
+#define SYBEMOV   20195 /* Money arithmetic resulted in overflow in function %1!. */
 
+#define SYBEMPLL   20112 /* Attempt to set maximum number of DBPROCESSes lower than 1. */
 
+#define SYBEMVOR   20151 /* Month values must be between 1 and 12. */
 
+#define SYBENBUF   20175 /* called dbsendpassthru() with a NULL buf pointer. */
 
+#define SYBENBVP   20153 /* Cannot pass dbsetnull() a NULL bindval pointer. */
 
+#define SYBENDC   20150 /* Cannot have negative component in date in numeric form. */
 
+#define SYBENDTP   20155 /* Called dbdatecrack() with a NULL datetime parameter. */
 
+#define SYBENEG   20210 /* Negotiated login attempt failed. */
 
+#define SYBENEHA   20179 /* Called dbreghandle() with a NULL handler parameter. */
 
+#define SYBENHAN   20174 /* called dbrecvpassthru() with a NULL handler parameter. */
 
+#define SYBENLNL   20173 /* Program not linked with specified network library. */
 
+#define SYBENMOB   20039 /* No such member of 'order by' clause. */
 
+#define SYBENOEV   20200 /* dbpoll() cannot be called if registered procedure notifications have been disabled. */
 
+#define SYBENOTI   20177 /* No event handler installed. */
 
+#define SYBENOVALUE   20290 /* Security labels require both a name and a value */
 
+#define SYBENPRM   20027 /* NULL parameter not allowed for this dboption. */
 
+#define SYBENSIP   20045 /* Negative starting index passed to dbstrcpy(). */
 
+#define SYBENTLL   20042 /* Name too long for loginrec field. */
 
+#define SYBENTST   20170 /* The file being opened must be a stream_lf. */
 
+#define SYBENTTN   20093 /* Attempt to use dbtxtsput() to put a new text-timestamp into a non-existent data row. */
 
+#define SYBENULL   20109 /* NULL DBPROCESS pointer passed to DB-Library. */
 
+#define SYBENULP   20176 /* Called %s with a NULL %s parameter. */
 
+#define SYBENUM   20159 /* Incorrect number of arguments given to DB-Library. */
 
+#define SYBENXID   20036 /* The Server did not grant us a distributed-transaction ID. */
 
+#define SYBEONCE   20207 /* Function can be called only once. */
 
+#define SYBEOOB   20022 /* Error in sending out-of-band data to SQL Server. */
 
+#define SYBEOPIN   20015 /* Could not open interface file. */
 
+#define SYBEOPNA   20121 /* The text/image facility is available only when using a SQL Server whose version number is 4.0 or greater. */
 
+#define SYBEOPTNO   20163 /* Option is not allowed or is unreconized */
 
+#define SYBEOREN   20141 /* Warning: an out-of-range error-number was encountered in dblib.loc. The maximum permissible error-number is defined as DBERRCOUNT in sybdb.h. */
 
+#define SYBEORPF   20096 /* Attempt to set remote password would overflow the login-record's remote-password field. */
 
+#define SYBEOSSL   20171 /* Operating system login level not in range of Secure SQL Server */
 
+#define SYBEPAGE   20162 /* wrong resource type or length given for dbpage() operation. */
 
+#define SYBEPOLL   20199 /* Only one dbpoll() can be active at a time. */
 
+#define SYBEPORT   2500 /* Both port and instance specified */
 
+#define SYBEPRTF   20191 /* dbtracestring() may only be called from a printfunc(). */
 
+#define SYBEPWD   20014 /* Incorrect password. */
 
+#define SYBERDCN   20053 /* Requested data-conversion does not exist. */
 
+#define SYBERDNR   20044 /* Attempt to retrieve data from a non-existent row. */
 
+#define SYBEREAD   20004 /* Read from SQL Server failed. */
 
+#define SYBERESP   20205 /* Response function address passed to dbresponse() must be non-NULL. */
 
+#define SYBERFILE   20166 /* "Can not open resource file." */
 
+#define SYBERPCS   20186 /* Must call dbrpcinit() before dbrpcparam(). */
 
+#define SYBERPIL   20113 /* It is illegal to pass -1 to dbrpcparam() for the datalen of parameters which are of type SYBCHAR, SYBVARCHAR, SYBBINARY, or SYBVARBINARY. */
 
+#define SYBERPNA   20120 /* The RPC facility is available only when using a SQL Server whose version number is 4.0 or greater. */
 
+#define SYBERPND   20019 /* Attempt to initiate a new SQL Server operation with results pending. */
 
+#define SYBERPNULL   20208 /* value parameter for dbprcparam() can be NULL, only if the datalen parameter is 0 */
 
+#define SYBERPTXTIM   20209 /* RPC parameters cannot be of type Text/Image. */
 
+#define SYBERPUL   20114 /* When passing a SYBINTN, SYBDATETIMN, SYBMONEYN, or SYBFLTN parameter via dbrpcparam(), it's necessary to specify the parameter's maximum or actual length, so that DB-Library can recognize it as a SYBINT1, SYBINT2, SYBINT4, SYBMONEY, or SYBMONEY4, etc. */
 
+#define SYBERTCC   20117 /* dbreadtext() may not be used to receive the results of a query which contains a COMPUTE clause. */
 
+#define SYBERTSC   20118 /* dbreadtext() may only be used to receive the results of a query which contains a single result column. */
 
+#define SYBERTYPE   20165 /* Invalid resource type given to DB-Library. */
 
+#define SYBERXID   20037 /* The Server did not recognize our distributed-transaction ID. */
 
+#define SYBESECURE   20202 /* Secure Server function not supported in this version. */
 
+#define SYBESEFA   20198 /* DBSETNOTIFS cannot be called if connections are present. */
 
+#define SYBESEOF   20017 /* Unexpected EOF from SQL Server. */
 
+#define SYBESFOV   20054 /* dbsafestr() overflowed its destination buffer. */
 
+#define SYBESLCT   20168 /* Could not select or copy field specified */
 
+#define SYBESMSG   20018 /* General SQL Server error: Check messages from the SQL Server. */
 
+#define SYBESOCK   20008 /* Unable to open socket */
 
+#define SYBESPID   20154 /* Called dbspid() with a NULL dbproc. */
 
+#define SYBESYNC   20001 /* Read attempted while out of synchronization with SQL Server. */
 
+#define SYBETDSVER   2410 /* Cannot bcp with TDSVER < 5.0 */
 
+#define SYBETEXS   20188 /* Called dbmoretext() with a bad size parameter. */
 
+#define SYBETIME   20003 /* SQL Server connection timed out. */
 
+#define SYBETMCF   20126 /* Attempt to install too many custom formats via dbfmtinstall(). */
 
+#define SYBETMTD   20092 /* Attempt to send too much TEXT data via the dbmoretext() call. */
 
+#define SYBETPAR   20187 /* No SYBTEXT or SYBIMAGE parameters were defined. */
 
+#define SYBETPTN   20071 /* Syntax error: only two periods are permitted in table names. */
 
+#define SYBETRAC   20189 /* Attempted to turn off a trace flag that was not on. */
 
+#define SYBETRAN   20180 /* DBPROCESS is being used for another transaction. */
 
+#define SYBETRAS   20190 /* DB-Library internal error - trace structure not found. */
 
+#define SYBETRSN   20192 /* Bad numbytes parameter passed to dbtracestring(). */
 
+#define SYBETSIT   20061 /* Attempt to call dbtsput() with an invalid timestamp. */
 
+#define SYBETTS   20066 /* The table which bulk-copy is attempting to copy to a host-file is shorter than the number of rows which bulk-copy was instructed to skip. */
 
+#define SYBETYPE   20160 /* Invalid argument type given to DB-Library. */
 
+#define SYBEUACS   20090 /* VMS: Unable to assign channel to sys$command. */
 
+#define SYBEUAVE   20057 /* Unable to allocate VMS event flag. */
 
+#define SYBEUCPT   20125 /* Unrecognized custom-format parameter-type encountered in dbstrbuild(). */
 
+#define SYBEUCRR   20119 /* Internal software error: Unknown connection result reported by * dbpasswd(). */
 
+#define SYBEUDTY   20060 /* Unknown datatype encountered. */
 
+#define SYBEUFDS   20124 /* Unrecognized format encountered in dbstrbuild(). */
 
+#define SYBEUFDT   20029 /* Unknown fixed-length datatype encountered. */
 
+#define SYBEUHST   20013 /* Unknown host machine name */
 
+#define SYBEUMSG   20212 /* Unknown message-id in MSG datastream. */
 
+#define SYBEUNAM   20110 /* Unable to get current username from operating system. */
 
+#define SYBEUNOP   20115 /* Unknown option passed to dbsetopt(). */
 
+#define SYBEUNT   20055 /* Unknown network type found in interface file. */
 
+#define SYBEURCI   20135 /* Unable to read copyright information from the dblib localization file. */
 
+#define SYBEUREI   20140 /* Unable to read error information from the dblib localization file. */
 
+#define SYBEUREM   20138 /* Unable to read error mnemonic from the dblib localization file. */
 
+#define SYBEURES   20139 /* Unable to read error string from the dblib localization file. */
 
+#define SYBEURMI   20137 /* Unable to read money-format information from the dblib localization file. */
 
+#define SYBEUSCT   20058 /* Unable to set communications timer. */
 
+#define SYBEUTDS   20146 /* Unrecognized TDS version received from SQL Server. */
 
+#define SYBEUVBF   20097 /* Attempt to read an unknown version of BCP format-file. */
 
+#define SYBEUVDT   20028 /* Unknown variable-length datatype encountered. */
 
+#define SYBEVDPT   20079 /* For bulk copy, all variable-length data must have either a length-prefix or a terminator specified. */
 
+#define SYBEVERDOWN   100 /* TDS version downgraded . */
 
+#define SYBEVMS   20007 /* Sendflush: VMS I/O error. */
 
+#define SYBEVOIDRET   20291 /* Parameter of type SYBVOID cannot be a return parameter. */
 
+#define SYBEWAID   20030 /* DB-LIBRARY internal error: ALTFMT following ALTNAME has wrong id. */
 
+#define SYBEWRIT   20006 /* Write to SQL Server failed. */
 
+#define SYBEXOCI   20131 /* A character-set translation overflowed its destination buffer while using bcp to copy data from a host-file to the SQL Server. */
 
+#define SYBEXTDN   20157 /* Warning: the xlt_todisp parameter to dbfree_xlate() was NULL. The space associated with the xlt_tosrv parameter has been freed. */
 
+#define SYBEXTN   20156 /* The xlt_todisp and xlt_tosrv parameters to dbfree_xlate() were NULL. */
 
+#define SYBEXTSN   20158 /* Warning: the xlt_tosrv parameter to dbfree_xlate() was NULL. The space associated with the xlt_todisp parameter has been freed. */
 
+#define SYBEZTXT   20169 /* Attempt to send zero length TEXT or IMAGE to dataserver via dbwritetext(). */
 
+#define SYBFLT8   SYBFLT8
 
+#define SYBFLTN   SYBFLTN
 
+#define SYBIMAGE   SYBIMAGE
 
+#define SYBINT1   SYBINT1
 
+#define SYBINT2   SYBINT2
 
+#define SYBINT4   SYBINT4
 
+#define SYBINT8   SYBINT8
 
+#define SYBINTN   SYBINTN
 
+#define SYBMONEY   SYBMONEY
 
+#define SYBMONEY4   SYBMONEY4
 
+#define SYBMONEYN   SYBMONEYN
 
+#define SYBMSDATE   SYBMSDATE
 
+#define SYBMSDATETIME2   SYBMSDATETIME2
 
+#define SYBMSDATETIMEOFFSET   SYBMSDATETIMEOFFSET
 
+#define SYBMSTIME   SYBMSTIME
 
+#define SYBNTEXT   SYBNTEXT
 
+#define SYBNUMERIC   SYBNUMERIC
 
+#define SYBNVARCHAR   SYBNVARCHAR
 
+#define SYBREAL   SYBREAL
 
+#define SYBTEXT   SYBTEXT
 
+#define SYBTIME   SYBTIME
 
+#define SYBVARBINARY   SYBVARBINARY
 
+#define SYBVARCHAR   SYBVARCHAR
 
+#define SYBVOID   SYBVOID
 
+#define TDS_STATIC_CAST(type, a)   ((type)(a))
 
+#define TIMEBIND   22
 
+#define TINYBIND   6
 
+#define TRUE   1
 
+#define VARYBINBIND   4
 
+#define VARYCHARBIND   3
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef int BOOL
 
+typedef unsigned char BYTE
 
+typedef DBWAITFUNC(* DB_DBBUSY_FUNC) (void *dbproc)
 
+typedef int(* DB_DBCHKINTR_FUNC) (void *dbproc)
 
+typedef int(* DB_DBHNDLINTR_FUNC) (void *dbproc)
 
+typedef void(* DB_DBIDLE_FUNC) (DBWAITFUNC dfunc, void *dbproc)
 
+typedef int64_t DBBIGINT
 
+typedef unsigned char DBBINARY
 
+typedef unsigned char DBBIT
 
+typedef unsigned char DBBOOL
 
+typedef char DBCHAR
 
+typedef void DBCURSOR
 
+typedef struct tds_sybase_dbdaterec DBDATEREC
 
+typedef struct tds_sybase_dbdaterec2 DBDATEREC2
 
+typedef DBNUMERIC DBDECIMAL
 
+typedef tds_sysdep_real64_type DBFLT8
 
+typedef int32_t DBINT
 
+typedef void DBLOGINFO
 
+typedef void(* DBPIVOT_FUNC) (struct col_t *output, const struct col_t *input)
 
+typedef struct tds_dblib_dbprocess DBPROCESS
 
+typedef tds_sysdep_real32_type DBREAL
 
+typedef int16_t DBSMALLINT
 
+typedef void DBSORTORDER
 
+typedef struct dbstring DBSTRING
 
+typedef unsigned char DBTINYINT
 
+typedef struct dbtypeinfo DBTYPEINFO
 
+typedef uint64_t DBUBIGINT
 
+typedef uint32_t DBUINT
 
+typedef uint16_t DBUSMALLINT
 
+typedef void * DBVOIDPTR
 
+typedef int(* DBWAITFUNC) (void)
 
+typedef void DBXLATE
 
+typedef int(* EHANDLEFUNC) (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
 
+typedef int(* INTFUNCPTR) (void *,...)
 
+typedef struct tds_dblib_loginrec LOGINREC
 
+typedef int(* MHANDLEFUNC) (DBPROCESS *dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname, char *proc, int line)
 
+typedef int RETCODE
 
+typedef short SHORT
 
+typedef int STATUS
 
+typedef unsigned short USHORT
 
+ + + + + + + +

+Enumerations

enum  {
+  SYBCHAR = 47, +SYBCHAR = 47, +SYBVARCHAR = 39, +SYBVARCHAR = 39, +
+  SYBINTN = 38, +SYBINTN = 38, +SYBINT1 = 48, +SYBINT1 = 48, +
+  SYBINT2 = 52, +SYBINT2 = 52, +SYBINT4 = 56, +SYBINT4 = 56, +
+  SYBINT8 = 127, +SYBINT8 = 127, +SYBFLT8 = 62, +SYBFLT8 = 62, +
+  SYBDATETIME = 61, +SYBDATETIME = 61, +SYBBIT = 50, +SYBBIT = 50, +
+  SYBBITN = 104, +SYBBITN = 104, +SYBTEXT = 35, +SYBTEXT = 35, +
+  SYBNTEXT = 99, +SYBNTEXT = 99, +SYBIMAGE = 34, +SYBIMAGE = 34, +
+  SYBMONEY4 = 122, +SYBMONEY4 = 122, +SYBMONEY = 60, +SYBMONEY = 60, +
+  SYBDATETIME4 = 58, +SYBDATETIME4 = 58, +SYBREAL = 59, +SYBREAL = 59, +
+  SYBBINARY = 45, +SYBBINARY = 45, +SYBVOID = 31, +SYBVOID = 31, +
+  SYBVARBINARY = 37, +SYBVARBINARY = 37, +SYBNUMERIC = 108, +SYBNUMERIC = 108, +
+  SYBDECIMAL = 106, +SYBDECIMAL = 106, +SYBFLTN = 109, +SYBFLTN = 109, +
+  SYBMONEYN = 110, +SYBMONEYN = 110, +SYBDATETIMN = 111, +SYBDATETIMN = 111, +
+  SYBNVARCHAR = 103, +SYBNVARCHAR = 103, +SYBDATE = 49, +SYBDATE = 49, +
+  SYBTIME = 51, +SYBTIME = 51, +SYBBIGDATETIME = 187, +SYBBIGDATETIME = 187, +
+  SYBBIGTIME = 188, +SYBBIGTIME = 188, +SYBMSDATE = 40, +SYBMSDATE = 40, +
+  SYBMSTIME = 41, +SYBMSTIME = 41, +SYBMSDATETIME2 = 42, +SYBMSDATETIME2 = 42, +
+  SYBMSDATETIMEOFFSET = 43, +SYBMSDATETIMEOFFSET = 43 +
+ }
 
enum  { MAXCOLNAMELEN = 512 + }
 
enum  CI_TYPE { CI_REGULAR =1, +CI_ALTERNATE =2, +CI_CURSOR =3 + }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

DBINT bcp_batch (DBPROCESS *dbproc)
 Commit a set of rows to the table. More...
 
RETCODE bcp_bind (DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int type, int table_column)
 Bind a program host variable to a database column. More...
 
RETCODE 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)
 Specify the format of a datafile prior to writing to a table. More...
 
RETCODE bcp_colfmt_ps (DBPROCESS *dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int colnum, DBTYPEINFO *typeinfo)
 Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. More...
 
RETCODE bcp_collen (DBPROCESS *dbproc, DBINT varlen, int table_column)
 Set the length of a host variable to be written to a table. More...
 
RETCODE bcp_colptr (DBPROCESS *dbproc, BYTE *colptr, int table_column)
 Override bcp_bind() by pointing to a different host variable. More...
 
RETCODE bcp_columns (DBPROCESS *dbproc, int host_colcount)
 Indicate how many columns are to be found in the datafile. More...
 
RETCODE bcp_control (DBPROCESS *dbproc, int field, DBINT value)
 Set BCP options for uploading a datafile. More...
 
DBINT bcp_done (DBPROCESS *dbproc)
 Conclude the transfer of data from program variables. More...
 
RETCODE bcp_exec (DBPROCESS *dbproc, DBINT *rows_copied)
 Write a datafile to a table. More...
 
+int bcp_getbatchsize (DBPROCESS *dbproc)
 
DBBOOL bcp_getl (LOGINREC *login)
 See if BCP_SETL() was used to set the LOGINREC for BCP work.
+ More...
 
RETCODE bcp_init (DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
 Prepare for bulk copy operation on a table. More...
 
RETCODE bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
 Set "hints" for uploading a file. A FreeTDS-only function.
+ More...
 
RETCODE bcp_readfmt (DBPROCESS *dbproc, const char filename[])
 Read a format definition file. More...
 
RETCODE bcp_sendrow (DBPROCESS *dbproc)
 Write data in host variables to the table.
+ More...
 
const char * dbacolname (DBPROCESS *dbproc, int computeid, int column)
 Return name of a computed result column. More...
 
BYTE * dbadata (DBPROCESS *dbproc, int computeid, int column)
 Get address of compute column data.
+ More...
 
DBINT dbadlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in a compute column. More...
 
RETCODE dbaltbind (DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Bind a compute column to a program variable. More...
 
+RETCODE dbaltbind_ps (DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr, DBTYPEINFO *typeinfo)
 
int dbaltcolid (DBPROCESS *dbproc, int computeid, int column)
 Get column ID of a compute column. More...
 
DBINT dbaltlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in compute column. More...
 
int dbaltop (DBPROCESS *dbproc, int computeid, int column)
 Get aggregation operator for a compute column. More...
 
int dbalttype (DBPROCESS *dbproc, int computeid, int column)
 Get datatype for a compute column. More...
 
DBINT dbaltutype (DBPROCESS *dbproc, int computeid, int column)
 Get user-defined datatype of a compute column. More...
 
RETCODE dbanullbind (DBPROCESS *dbprocess, int computeid, int column, DBINT *indicator)
 Tie a null-indicator to a compute result column. More...
 
RETCODE dbanydatecrack (DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
 Break any kind of date or time value into useful pieces. More...
 
RETCODE dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Tie a host variable to a resultset column. More...
 
+RETCODE dbbind_ps (DBPROCESS *dbprocess, int column, int vartype, DBINT varlen, BYTE *varaddr, DBTYPEINFO *typeinfo)
 
+int dbbufsize (DBPROCESS *dbprocess)
 
BYTE * dbbylist (DBPROCESS *dbproc, int computeid, int *size)
 Get bylist for a compute row. More...
 
RETCODE dbcancel (DBPROCESS *dbproc)
 Cancel the current command batch. More...
 
RETCODE dbcanquery (DBPROCESS *dbproc)
 Cancel the query currently being retrieved, discarding all pending rows.
+ More...
 
char * dbchange (DBPROCESS *dbprocess)
 See if a command caused the current database to change. More...
 
+DBBOOL dbcharsetconv (DBPROCESS *dbprocess)
 
void dbclose (DBPROCESS *dbproc)
 Close a connection to the server and free associated resources.
+ More...
 
void dbclrbuf (DBPROCESS *dbproc, DBINT n)
 Clear n rows from the row buffer. More...
 
RETCODE dbclropt (DBPROCESS *dbproc, int option, const char param[])
 Reset an option. More...
 
RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
 Append SQL to the command buffer.
+ More...
 
RETCODE dbcmdrow (DBPROCESS *dbproc)
 See if the current command can return rows. More...
 
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). More...
 
DBINT dbcollen (DBPROCESS *dbproc, int column)
 Get size of a regular result column. More...
 
char * dbcolname (DBPROCESS *dbproc, int column)
 Return name of a regular result column. More...
 
char * dbcolsource (DBPROCESS *dbproc, int colnum)
 Get base database column name for a result set column.
+ More...
 
int dbcoltype (DBPROCESS *dbproc, int column)
 Get the datatype of a regular result set column. More...
 
DBTYPEINFOdbcoltypeinfo (DBPROCESS *dbproc, int column)
 Get precision and scale information for a regular result column. More...
 
DBINT dbcolutype (DBPROCESS *dbprocess, int column)
 Get user-defined datatype of a regular result column. More...
 
DBINT dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
 cf. dbconvert_ps(), above More...
 
DBINT dbconvert_ps (DBPROCESS *dbprocess, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
 Convert one datatype to another. More...
 
DBINT dbcount (DBPROCESS *dbproc)
 Get count of rows processed. More...
 
int dbcurcmd (DBPROCESS *dbproc)
 Get number of the row just returned. More...
 
DBINT dbcurrow (DBPROCESS *dbproc)
 Get number of the row currently being read. More...
 
BYTE * dbdata (DBPROCESS *dbproc, int column)
 Get address of data in a regular result column. More...
 
int dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
 Compare DBDATETIME values, similar to strcmp(3). More...
 
RETCODE dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *dt)
 Break a DBDATETIME value into useful pieces. More...
 
DBINT dbdatlen (DBPROCESS *dbproc, int column)
 Get size of current row's data in a regular result column.
+ More...
 
DBBOOL dbdead (DBPROCESS *dbproc)
 Check if dbproc is an ex-parrot.
+ More...
 
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
 Set an error handler, for messages from db-lib. More...
 
void dbexit (void)
 Close server connections and free all related structures.
+ More...
 
RETCODE dbfcmd (DBPROCESS *dbproc, const char *fmt,...)
 printf-like way to form SQL to send to the server.
+ More...
 
DBINT dbfirstrow (DBPROCESS *dbproc)
 See if a server response has arrived. More...
 
void dbfreebuf (DBPROCESS *dbproc)
 Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt(). More...
 
char * dbgetchar (DBPROCESS *dbprocess, int n)
 Get address of a position in the command buffer. More...
 
+char * dbgetcharset (DBPROCESS *dbprocess)
 
+int dbgetlusername (LOGINREC *login, BYTE *name_buffer, int buffer_len)
 
int dbgetmaxprocs (void)
 get maximum simultaneous connections db-lib will open to the server. More...
 
+char * dbgetnatlanf (DBPROCESS *dbprocess)
 
int dbgetpacket (DBPROCESS *dbproc)
 Get TDS packet size for the connection. More...
 
RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
 Read a row from the row buffer. More...
 
int dbgettime (void)
 Get maximum seconds db-lib waits for a server response to query.
+ More...
 
BYTE * dbgetuserdata (DBPROCESS *dbproc)
 Get address of user-allocated data from a DBPROCESS.
+ More...
 
DBBOOL dbhasretstat (DBPROCESS *dbproc)
 Determine if query generated a return status number. More...
 
RETCODE dbinit (void)
 Initialize db-lib.
+ More...
 
int dbiordesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!) More...
 
int dbiowdesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!) More...
 
+DBBOOL dbisavail (DBPROCESS *dbprocess)
 
BOOL dbiscount (DBPROCESS *dbproc)
 Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature). More...
 
DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
 Get value of an option. More...
 
DBINT dblastrow (DBPROCESS *dbproc)
 Get number of the last row in the row buffer. More...
 
LOGINRECdblogin (void)
 Allocate a LOGINREC structure.
+ More...
 
+void dbloginfree (LOGINREC *login)
 free the LOGINREC
 
RETCODE dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
 Add two DBMONEY4 values. More...
 
int dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
 Compare two DBMONEY4 values. More...
 
RETCODE dbmny4copy (DBPROCESS *dbprocess, DBMONEY4 *m1, DBMONEY4 *m2)
 Copy a DBMONEY4 value. More...
 
RETCODE dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Negate a DBMONEY4 value. More...
 
RETCODE dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
 Subtract two DBMONEY4 values. More...
 
RETCODE dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest)
 Zero a DBMONEY4 value. More...
 
int dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
 Compare two DBMONEY values. More...
 
RETCODE dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Copy a DBMONEY value. More...
 
RETCODE dbmnydec (DBPROCESS *dbproc, DBMONEY *mnyptr)
 Subtract $0.0001 from a DBMONEY value. More...
 
RETCODE dbmnyinc (DBPROCESS *dbproc, DBMONEY *mnyptr)
 Add $0.0001 to a DBMONEY value. More...
 
RETCODE dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *dest)
 Get maximum negative DBMONEY value supported. More...
 
RETCODE dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *dest)
 Get maximum positive DBMONEY value supported. More...
 
RETCODE dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Negate a DBMONEY value. More...
 
+RETCODE dbmnysub (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *diff)
 
RETCODE dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest)
 Set a DBMONEY value to zero. More...
 
const char * dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
 Get name of a month, in some human language. More...
 
RETCODE dbmorecmds (DBPROCESS *dbproc)
 See if more commands are to be processed. More...
 
RETCODE dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
 Send chunk of a text/image value to the server. More...
 
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
 Set a message handler, for messages from the server. More...
 
char * dbname (DBPROCESS *dbproc)
 Get name of current database. More...
 
+STATUS dbnextrow (DBPROCESS *dbproc)
 
+STATUS dbnextrow_pivoted (DBPROCESS *dbproc, struct pivot_t *pp)
 
RETCODE dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
 Tie a null-indicator to a regular result column. More...
 
int dbnumalts (DBPROCESS *dbproc, int computeid)
 Get count of columns in a compute row. More...
 
int dbnumcols (DBPROCESS *dbproc)
 Return number of regular columns in a result set.
+ More...
 
int dbnumcompute (DBPROCESS *dbprocess)
 Get count of COMPUTE clauses for a result set. More...
 
int dbnumrets (DBPROCESS *dbproc)
 Get count of output parameters filled by a stored procedure. More...
 
DBPROCESSdbopen (LOGINREC *login, const char *server)
 Normally not used. More...
 
RETCODE dbpivot (DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val)
 Pivot the rows, creating a new resultset. More...
 
+void dbpivot_count (struct col_t *output, const struct col_t *input)
 
+DBPIVOT_FUNC dbpivot_lookup_name (const char name[])
 
+void dbpivot_max (struct col_t *output, const struct col_t *input)
 
+void dbpivot_min (struct col_t *output, const struct col_t *input)
 
+void dbpivot_sum (struct col_t *output, const struct col_t *input)
 
DBINT dbprcollen (DBPROCESS *dbproc, int column)
 Get size of a result column needed to print column. More...
 
void dbprhead (DBPROCESS *dbproc)
 Print result set headings to stdout. More...
 
RETCODE dbprrow (DBPROCESS *dbproc)
 Print a result set to stdout. More...
 
const char * dbprtype (int token)
 Print a token value's name to a buffer. More...
 
STATUS dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize)
 Fetch part of a text or image value from the server. More...
 
void dbrecftos (const char filename[])
 Record to a file all SQL commands sent to the server. More...
 
RETCODE dbresults (DBPROCESS *dbproc)
 Set up query results.
+ More...
 
+RETCODE dbresults_r (DBPROCESS *dbproc, int recursive)
 
BYTE * dbretdata (DBPROCESS *dbproc, int retnum)
 Get value of an output parameter filled by a stored procedure. More...
 
int dbretlen (DBPROCESS *dbproc, int retnum)
 Get size of an output parameter filled by a stored procedure. More...
 
char * dbretname (DBPROCESS *dbproc, int retnum)
 Get name of an output parameter filled by a stored procedure. More...
 
DBINT dbretstatus (DBPROCESS *dbproc)
 Fetch status value returned by query or remote procedure call. More...
 
int dbrettype (DBPROCESS *dbproc, int retnum)
 Get datatype of a stored procedure's return parameter. More...
 
RETCODE dbrows (DBPROCESS *dbproc)
 Indicate whether a query returned rows. More...
 
+struct pivot_tdbrows_pivoted (DBPROCESS *dbproc)
 
STATUS dbrowtype (DBPROCESS *dbprocess)
 Get returned row's type. More...
 
RETCODE dbrpcinit (DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
 Initialize a remote procedure call. More...
 
RETCODE dbrpcparam (DBPROCESS *dbproc, const char paramname[], BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE *value)
 Add a parameter to a remote procedure call. More...
 
RETCODE dbrpcsend (DBPROCESS *dbproc)
 Execute the procedure and free associated memory. More...
 
RETCODE dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
 safely quotes character values in SQL text.
+ More...
 
+RETCODE * dbsechandle (DBINT type, INTFUNCPTR handler)
 
char * dbservcharset (DBPROCESS *dbprocess)
 Get syscharset name of the server character set. More...
 
void dbsetavail (DBPROCESS *dbprocess)
 Mark a DBPROCESS as "available". More...
 
+void dbsetbusy (DBPROCESS *dbprocess, DB_DBBUSY_FUNC busyfunc)
 
+RETCODE dbsetdefcharset (char *charset)
 
+void dbsetidle (DBPROCESS *dbprocess, DB_DBIDLE_FUNC idlefunc)
 
void dbsetifile (char *filename)
 set name and location of the interfaces file FreeTDS should use to look up a servername. More...
 
void dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
 Set interrupt handler for db-lib to use while blocked against a read from the server. More...
 
RETCODE dbsetlbool (LOGINREC *login, int value, int which)
 Set a boolean value in a LOGINREC structure.
+ More...
 
RETCODE dbsetllong (LOGINREC *login, long value, int which)
 Set an integer value in a LOGINREC structure.
+ More...
 
RETCODE dbsetlname (LOGINREC *login, const char *value, int which)
 Set the value of a string in a LOGINREC structure.
+ More...
 
RETCODE dbsetlogintime (int seconds)
 Set maximum seconds db-lib waits for a server response to a login attempt.
+ More...
 
+RETCODE dbsetlshort (LOGINREC *login, int value, int which)
 
+RETCODE dbsetlversion (LOGINREC *login, BYTE version)
 Set TDS version for future connections.
 
RETCODE dbsetmaxprocs (int maxprocs)
 Set maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbsetnull (DBPROCESS *dbprocess, int bindtype, int bindlen, BYTE *bindval)
 Define substitution values to be used when binding null values. More...
 
RETCODE dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
 Set db-lib or server option. More...
 
STATUS dbsetrow (DBPROCESS *dbprocess, DBINT row)
 Make a buffered row "current" without fetching it into bound variables.
+ More...
 
RETCODE dbsettime (int seconds)
 Set maximum seconds db-lib waits for a server response to query.
+ More...
 
void dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr)
 Associate client-allocated (and defined) data with a DBPROCESS.
+ More...
 
RETCODE dbsetversion (DBINT version)
 Specify a db-lib version level. More...
 
int dbspid (DBPROCESS *dbproc)
 Get server process ID for a DBPROCESS. More...
 
RETCODE dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print a regular result row to a buffer.
+ More...
 
DBINT dbspr1rowlen (DBPROCESS *dbproc)
 Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row(). More...
 
RETCODE dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print result set headings to a buffer. More...
 
RETCODE dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
 Get formatted string for underlining dbsprhead() column names.
+ More...
 
RETCODE dbsqlexec (DBPROCESS *dbproc)
 send the SQL command to the server and wait for an answer.
+ More...
 
RETCODE dbsqlok (DBPROCESS *dbproc)
 Wait for results of a query from the server.
+ More...
 
RETCODE dbsqlsend (DBPROCESS *dbproc)
 Transmit the command buffer to the server. Non-blocking, does not wait for a response. More...
 
int dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
 Build a printable string from text containing placeholders for variables. More...
 
RETCODE dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest)
 Get a copy of a chunk of the command buffer. More...
 
int dbstrlen (DBPROCESS *dbproc)
 Get size of the command buffer, in bytes. More...
 
RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
 describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) More...
 
int dbtds (DBPROCESS *dbprocess)
 Get the TDS version in use for dbproc.
+ More...
 
+DBINT dbtextsize (DBPROCESS *dbprocess)
 
DBBINARY * dbtxptr (DBPROCESS *dbproc, int column)
 Get text pointer for a column in the current row. More...
 
DBBINARY * dbtxtimestamp (DBPROCESS *dbproc, int column)
 Get text timestamp for a column in the current row. More...
 
+DBBINARY * dbtxtsnewval (DBPROCESS *dbprocess)
 
+RETCODE dbtxtsput (DBPROCESS *dbprocess, DBBINARY newtxts, int colnum)
 
RETCODE dbuse (DBPROCESS *dbproc, const char *name)
 Change current database. More...
 
DBINT dbvarylen (DBPROCESS *dbproc, int column)
 Determine whether a column can vary in size. More...
 
const char * dbversion (void)
 See which version of db-lib is in use. More...
 
DBBOOL dbwillconvert (int srctype, int desttype)
 Test whether or not a datatype can be converted to another datatype. More...
 
RETCODE dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
 Send text or image data to the server. More...
 
+DBBOOL DRBUF (DBPROCESS *dbprocess)
 
DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
 Form a connection with the server. More...
 
+

Detailed Description

+

Primary include file for db-lib applications.

+

Declares macros, functions, enumerated types, and defined tokens used by the db-lib API.

+

Macro Definition Documentation

+ +

◆ DBTDS_UNKNOWN

+ +
+
+ + + + +
#define DBTDS_UNKNOWN   0
+
+ +

DBTDS_xxx are returned by DBTDS() The integer values of the constants are poorly chosen.

+


+

+ +
+
+

Function Documentation

+ +

◆ dbcolinfo()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbcolinfo (DBPROCESSdbproc,
CI_TYPE type,
DBINT column,
DBINT computeid,
DBCOLpdbcol 
)
+
+ +

Get a bunch of column attributes with a single call (Microsoft-compatibility feature).

+


+

+
Parameters
+ + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
typemust be CI_REGULAR or CI_ALTERNATE (CI_CURSOR is defined by the vendor, but is not yet implemented).
columnNth in the result set, starting from 1.
computeid(ignored)
pdbcoladdress of structure to be populated by this function.
+
+
+
+
Returns
SUCCEED or FAIL.
+
See also
dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput().
+
Todo:
Support cursor rows.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbopen()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBPROCESS* dbopen (LOGINREClogin,
const char * server 
)
+
+ +

Normally not used.

+

The function is linked in only if the –enable-sybase-compat configure option is used.
+ Cf. sybdb.h dbopen() macros, and dbdatecrack().

+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbpivot()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbpivot (DBPROCESSdbproc,
int nkeys,
int * keys,
int ncols,
int * cols,
DBPIVOT_FUNC func,
int val 
)
+
+ +

Pivot the rows, creating a new resultset.

+

Call dbpivot() immediately after dbresults(). It calls dbnextrow() as long as it returns REG_ROW, transforming the results into a cross-tab report.
+ dbpivot() modifies the metadata such that DB-Library can be used tranparently: retrieve the rows as usual with dbnumcols(), dbnextrow(), etc.

+

@dbproc, our old friend @nkeys the number of left-edge columns to group by @keys an array of left-edge columns to group by @ncols the number of top-edge columns to group by @cols an array of top-edge columns to group by @func the aggregation function to use @val the number of the column to which @func is applied

+
Returns
the return code from the final call to dbnextrow().
+ Success is normally indicated by NO_MORE_ROWS.
+
+ +
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00503_source.html freetds-1.2.3/doc/reference/a00503_source.html --- freetds-1.1.6/doc/reference/a00503_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00503_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/sybfront.h Source File +FreeTDS API: include/sybdb.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
sybfront.h
+
sybdb.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 SYBFRONT_h
21 #define SYBFRONT_h
22 
23 #include "sybdb.h"
24 
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #if 0
29 }
30 #endif
31 #endif
32 
33 static const char rcsid_sybfront_h[] = "$Id: sybfront.h,v 1.3 2004-10-28 12:42:12 freddy77 Exp $";
34 static const void *const no_unused_sybfront_h_warn[] = { rcsid_sybfront_h, no_unused_sybfront_h_warn };
35 
36 
37 
38 #ifdef __cplusplus
39 #if 0
40 {
41 #endif
42 }
43 #endif
44 
45 
46 #endif
Primary include file for db-lib applications.
+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 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 
+
28 #ifndef _sybdb_h_
+
29 #define _sybdb_h_
+
30 
+
31 #include "tds_sysdep_public.h"
+
32 
+
33 #undef TDS_STATIC_CAST
+
34 #ifdef __cplusplus
+
35 #define TDS_STATIC_CAST(type, a) static_cast<type>(a)
+
36 extern "C"
+
37 {
+
38 #if 0
+
39 }
+
40 #endif
+
41 #else
+
42 #define TDS_STATIC_CAST(type, a) ((type)(a))
+
43 #endif
+
44 
+
45 #ifdef FALSE
+
46 #undef FALSE
+
47 #endif
+
48 #ifdef TRUE
+
49 #undef TRUE
+
50 #endif
+
51 #define FALSE 0
+
52 #define TRUE 1
+
53 
+
54 #define DBSAVE 1
+
55 #define DBNOSAVE 0
+
56 #define DBNOERR -1
+
57 
+
58 #define INT_EXIT 0
+
59 #define INT_CONTINUE 1
+
60 #define INT_CANCEL 2
+
61 #define INT_TIMEOUT 3
+
62 
+
63 #define DBMAXNUMLEN 33
+
64 /* https://msdn.microsoft.com/en-us/library/ms176061.aspx */
+
65 #define DBMAXNAME 128
+
66 
+
70 #define DBVERSION_UNKNOWN 0
+
71 #define DBVERSION_46 1
+
72 #define DBVERSION_100 2
+
73 #define DBVERSION_42 3
+
74 #define DBVERSION_70 4
+
75 #define DBVERSION_71 5
+
76 #define DBVERSION_72 6
+
77 #define DBVERSION_73 7
+
78 #define DBVERSION_74 8
+
79 
+
80 /* these two are defined by Microsoft for dbsetlversion() */
+
81 #define DBVER42 DBVERSION_42
+
82 #define DBVER60 DBVERSION_70 /* our best approximation */
+
83 
+
88 #define DBTDS_UNKNOWN 0
+
89 #define DBTDS_2_0 1 /* pre 4.0 SQL Server */
+
90 #define DBTDS_3_4 2 /* Microsoft SQL Server (3.0) */
+
91 #define DBTDS_4_0 3 /* 4.0 SQL Server */
+
92 #define DBTDS_4_2 4 /* 4.2 SQL Server */
+
93 #define DBTDS_4_6 5 /* 2.0 OpenServer and 4.6 SQL Server. */
+
94 #define DBTDS_4_9_5 6 /* 4.9.5 (NCR) SQL Server */
+
95 #define DBTDS_5_0 7 /* 5.0 SQL Server */
+
96 #define DBTDS_7_0 8 /* Microsoft SQL Server 7.0 */
+
97 #define DBTDS_8_0 9 /* Microsoft SQL Server 2000 */
+
98 #define DBTDS_9_0 10 /* Microsoft SQL Server 2005 */
+
99 #define DBTDS_7_1 9 /* Microsoft SQL Server 2000 */
+
100 #define DBTDS_7_2 10 /* Microsoft SQL Server 2005 */
+
101 #define DBTDS_7_3 11 /* Microsoft SQL Server 2008 */
+
102 #define DBTDS_7_4 12 /* Microsoft SQL Server 2012/2014 */
+
103 
+
104 #define DBTXPLEN 16
+
105 
+
106 #define BCPMAXERRS 1
+
107 #define BCPFIRST 2
+
108 #define BCPLAST 3
+
109 #define BCPBATCH 4
+
110 #define BCPKEEPIDENTITY 8
+
111 
+
112 #define BCPLABELED 5
+
113 #define BCPHINTS 6
+
114 
+
115 #define DBCMDNONE 0
+
116 #define DBCMDPEND 1
+
117 #define DBCMDSENT 2
+
118 
+
119 typedef int RETCODE;
+
120 
+
121 typedef void DBCURSOR;
+
122 typedef void DBXLATE;
+
123 typedef void DBSORTORDER;
+
124 typedef void DBLOGINFO;
+
125 typedef void *DBVOIDPTR;
+
126 typedef short SHORT;
+
127 typedef unsigned short USHORT;
+
128 typedef int (*INTFUNCPTR) (void *, ...);
+
129 typedef int (*DBWAITFUNC) (void);
+
130 typedef DBWAITFUNC(*DB_DBBUSY_FUNC) (void *dbproc);
+
131 typedef void (*DB_DBIDLE_FUNC) (DBWAITFUNC dfunc, void *dbproc);
+
132 typedef int (*DB_DBCHKINTR_FUNC) (void *dbproc);
+
133 typedef int (*DB_DBHNDLINTR_FUNC) (void *dbproc);
+
134 
+
135 #ifndef __INCvxWorksh
+
136 /* VxWorks already defines STATUS and BOOL. Compiler gets mad if you
+
137 ** redefine them. */
+
138 /* __INCvxWorksh will get #defined by std. include files included from tds.h
+
139 */
+
140 #ifdef STATUS
+
141 /* On DU4.0d we get a conflicting STATUS definition from arpa/nameser.h
+
142  when _REENTRANT is defined.
+
143 */
+
144 #undef STATUS
+
145 #endif
+
146 typedef int STATUS;
+
147 #if !defined(_WINDEF_) && !defined(_WINDEF_H) && !defined(DOS32X)
+
148 typedef int BOOL;
+
149 #endif
+
150 #endif
+
151 
+
152 #ifndef _tds_h_
+
153 /* copied from tds.h */
+
154 /* TODO find a best way... */
+
155 enum
+
156 {
+
157  SYBCHAR = 47, /* 0x2F */
+
158 #define SYBCHAR SYBCHAR
+
159  SYBVARCHAR = 39, /* 0x27 */
+
160 #define SYBVARCHAR SYBVARCHAR
+
161  SYBINTN = 38, /* 0x26 */
+
162 #define SYBINTN SYBINTN
+
163  SYBINT1 = 48, /* 0x30 */
+
164 #define SYBINT1 SYBINT1
+
165  SYBINT2 = 52, /* 0x34 */
+
166 #define SYBINT2 SYBINT2
+
167  SYBINT4 = 56, /* 0x38 */
+
168 #define SYBINT4 SYBINT4
+
169  SYBINT8 = 127, /* 0x7F */
+
170 #define SYBINT8 SYBINT8
+
171  SYBFLT8 = 62, /* 0x3E */
+
172 #define SYBFLT8 SYBFLT8
+
173  SYBDATETIME = 61, /* 0x3D */
+
174 #define SYBDATETIME SYBDATETIME
+
175  SYBBIT = 50, /* 0x32 */
+
176 #define SYBBIT SYBBIT
+
177  SYBBITN = 104, /* 0x68 */
+
178 #define SYBBITN SYBBITN
+
179  SYBTEXT = 35, /* 0x23 */
+
180 #define SYBTEXT SYBTEXT
+
181  SYBNTEXT = 99, /* 0x63 */
+
182 #define SYBNTEXT SYBNTEXT
+
183  SYBIMAGE = 34, /* 0x22 */
+
184 #define SYBIMAGE SYBIMAGE
+
185  SYBMONEY4 = 122, /* 0x7A */
+
186 #define SYBMONEY4 SYBMONEY4
+
187  SYBMONEY = 60, /* 0x3C */
+
188 #define SYBMONEY SYBMONEY
+
189  SYBDATETIME4 = 58, /* 0x3A */
+
190 #define SYBDATETIME4 SYBDATETIME4
+
191  SYBREAL = 59, /* 0x3B */
+
192 #define SYBREAL SYBREAL
+
193  SYBBINARY = 45, /* 0x2D */
+
194 #define SYBBINARY SYBBINARY
+
195  SYBVOID = 31, /* 0x1F */
+
196 #define SYBVOID SYBVOID
+
197  SYBVARBINARY = 37, /* 0x25 */
+
198 #define SYBVARBINARY SYBVARBINARY
+
199  SYBNUMERIC = 108, /* 0x6C */
+
200 #define SYBNUMERIC SYBNUMERIC
+
201  SYBDECIMAL = 106, /* 0x6A */
+
202 #define SYBDECIMAL SYBDECIMAL
+
203  SYBFLTN = 109, /* 0x6D */
+
204 #define SYBFLTN SYBFLTN
+
205  SYBMONEYN = 110, /* 0x6E */
+
206 #define SYBMONEYN SYBMONEYN
+
207  SYBDATETIMN = 111, /* 0x6F */
+
208 #define SYBDATETIMN SYBDATETIMN
+
209  SYBNVARCHAR = 103, /* 0x67 */
+
210 #define SYBNVARCHAR SYBNVARCHAR
+
211  SYBDATE = 49, /* 0x31 */
+
212 #define SYBDATE SYBDATE
+
213  SYBTIME = 51, /* 0x33 */
+
214 #define SYBTIME SYBTIME
+
215  SYBBIGDATETIME = 187, /* 0xBB */
+
216 #define SYBBIGDATETIME SYBBIGDATETIME
+
217  SYBBIGTIME = 188, /* 0xBC */
+
218 #define SYBBIGTIME SYBBIGTIME
+
219  SYBMSDATE = 40, /* 0x28 */
+
220 #define SYBMSDATE SYBMSDATE
+
221  SYBMSTIME = 41, /* 0x29 */
+
222 #define SYBMSTIME SYBMSTIME
+
223  SYBMSDATETIME2 = 42, /* 0x2A */
+
224 #define SYBMSDATETIME2 SYBMSDATETIME2
+
225  SYBMSDATETIMEOFFSET = 43, /* 0x2B */
+
226 #define SYBMSDATETIMEOFFSET SYBMSDATETIMEOFFSET
+
227 };
+
228 
+
229 #define SYBAOPCNT 0x4b
+
230 #define SYBAOPCNTU 0x4c
+
231 #define SYBAOPSUM 0x4d
+
232 #define SYBAOPSUMU 0x4e
+
233 #define SYBAOPAVG 0x4f
+
234 #define SYBAOPAVGU 0x50
+
235 #define SYBAOPMIN 0x51
+
236 #define SYBAOPMAX 0x52
+
237 
+
238 /* mssql2k compute operator */
+
239 #define SYBAOPCNT_BIG 0x09
+
240 #define SYBAOPSTDEV 0x30
+
241 #define SYBAOPSTDEVP 0x31
+
242 #define SYBAOPVAR 0x32
+
243 #define SYBAOPVARP 0x33
+
244 #define SYBAOPCHECKSUM_AGG 0x72
+
245 
+
246 #endif
+
247 
+
248 typedef unsigned char DBBOOL;
+
249 typedef char DBCHAR;
+
250 typedef unsigned char DBBIT;
+
251 typedef unsigned char DBTINYINT;
+
252 typedef int16_t DBSMALLINT;
+
253 typedef int32_t DBINT;
+
254 typedef int64_t DBBIGINT;
+
255 typedef unsigned char DBBINARY;
+
256 typedef tds_sysdep_real32_type DBREAL;
+
257 typedef tds_sysdep_real64_type DBFLT8;
+
258 typedef uint16_t DBUSMALLINT;
+
259 typedef uint32_t DBUINT;
+
260 typedef uint64_t DBUBIGINT;
+
261 
+
262 typedef struct
+
263 {
+
264  DBSMALLINT len;
+
265  char str[256];
+
266 } DBVARYCHAR;
+
267 
+
268 typedef struct
+
269 {
+
270  DBSMALLINT len;
+
271  unsigned char array[256];
+
272 } DBVARYBIN;
+
273 
+
274 typedef struct
+
275 {
+
276  unsigned char precision;
+
277  unsigned char scale;
+
278  unsigned char array[33];
+
279 } DBNUMERIC;
+
280 
+
281 typedef DBNUMERIC DBDECIMAL;
+
282 
+
283 typedef struct
+
284 {
+
285  DBINT mnyhigh;
+
286  DBUINT mnylow;
+
287 } DBMONEY;
+
288 
+
289 typedef struct
+
290 {
+
291  DBINT mny4;
+
292 } DBMONEY4;
+
293 
+
294 typedef struct
+
295 {
+
296  DBINT dtdays;
+
297  DBINT dttime;
+
298 } DBDATETIME;
+
299 
+
300 typedef struct
+
301 {
+
302  DBUSMALLINT days; /* days since Jan-1-1900 */
+
303  DBUSMALLINT minutes; /* minutes since midnight */
+
304 } DBDATETIME4;
+
305 
+
306 typedef struct
+
307 {
+
308  DBUBIGINT time;
+
309  DBINT date;
+
310  DBSMALLINT offset;
+
311  DBUSMALLINT time_prec:3;
+
312 // fix a problem with some public headers defining _res
+
313 #undef _res
+
314  DBUSMALLINT _res:10;
+
315  DBUSMALLINT has_time:1;
+
316  DBUSMALLINT has_date:1;
+
317  DBUSMALLINT has_offset:1;
+
318 } DBDATETIMEALL;
+
319 
+
320 #ifdef MSDBLIB
+
321 # define SQLCHAR SYBCHAR
+
322  typedef struct
+
323  {
+
324  DBUSMALLINT numdays;
+
325  DBUSMALLINT nummins;
+
326  } DBDATETIM4;
+
327 #endif
+
328 
+
329 typedef struct tds_dblib_loginrec LOGINREC;
+
330 
+
331 #ifndef DOS32X
+
332 typedef unsigned char BYTE;
+
333 #endif
+
334 
+
335 typedef struct dbtypeinfo
+
336 {
+
337  DBINT precision;
+
338  DBINT scale;
+
339 } DBTYPEINFO;
+
340 
+
341 struct dbstring
+
342 {
+
343  BYTE *strtext;
+
344  DBINT strtotlen;
+
345  struct dbstring *strnext;
+
346 };
+
347 typedef struct dbstring DBSTRING;
+
348 
+
349 /* Used by dbcolinfo */
+
350 enum
+
351 { MAXCOLNAMELEN = 512 }; /* duplicates TDS_SYSNAME_SIZE */
+
352 typedef enum { CI_REGULAR=1, CI_ALTERNATE=2, CI_CURSOR=3 } CI_TYPE;
+
353 
+
354 typedef struct
+
355 {
+
356  DBINT SizeOfStruct;
+
357  DBCHAR Name[MAXCOLNAMELEN+2];
+
358  DBCHAR ActualName[MAXCOLNAMELEN+2];
+
359  DBCHAR TableName[MAXCOLNAMELEN+2];
+
360  SHORT Type;
+
361  DBINT UserType;
+
362  DBINT MaxLength;
+
363  BYTE Precision;
+
364  BYTE Scale;
+
365  BOOL VarLength;
+
366  BYTE Null;
+
367  BYTE CaseSensitive;
+
368  BYTE Updatable;
+
369  BOOL Identity;
+
370 
+
371 } DBCOL;
+
372 
+
373 typedef struct
+
374 {
+
375  DBINT SizeOfStruct;
+
376  DBCHAR Name[MAXCOLNAMELEN+2];
+
377  DBCHAR ActualName[MAXCOLNAMELEN+2];
+
378  DBCHAR TableName[MAXCOLNAMELEN+2];
+
379  SHORT Type;
+
380  DBINT UserType;
+
381  DBINT MaxLength;
+
382  BYTE Precision;
+
383  BYTE Scale;
+
384  BOOL VarLength;
+
385  BYTE Null;
+
386  BYTE CaseSensitive;
+
387  BYTE Updatable;
+
388  BOOL Identity;
+
389  SHORT ServerType;
+
390  DBINT ServerMaxLength;
+
391  DBCHAR ServerTypeDeclaration[256];
+
392 } DBCOL2;
+
393 /* end dbcolinfo stuff */
+
394 
+
395 
+
396 
+
397 /* a large list of options, DBTEXTSIZE is needed by sybtcl */
+
398 #define DBPARSEONLY 0
+
399 #define DBESTIMATE 1
+
400 #define DBSHOWPLAN 2
+
401 #define DBNOEXEC 3
+
402 #define DBARITHIGNORE 4
+
403 #define DBNOCOUNT 5
+
404 #define DBARITHABORT 6
+
405 #define DBTEXTLIMIT 7
+
406 #define DBBROWSE 8
+
407 #define DBOFFSET 9
+
408 #define DBSTAT 10
+
409 #define DBERRLVL 11
+
410 #define DBCONFIRM 12
+
411 #define DBSTORPROCID 13
+
412 #define DBBUFFER 14
+
413 #define DBNOAUTOFREE 15
+
414 #define DBROWCOUNT 16
+
415 #define DBTEXTSIZE 17
+
416 #define DBNATLANG 18
+
417 #define DBDATEFORMAT 19
+
418 #define DBPRPAD 20
+
419 #define DBPRCOLSEP 21
+
420 #define DBPRLINELEN 22
+
421 #define DBPRLINESEP 23
+
422 #define DBLFCONVERT 24
+
423 #define DBDATEFIRST 25
+
424 #define DBCHAINXACTS 26
+
425 #define DBFIPSFLAG 27
+
426 #define DBISOLATION 28
+
427 #define DBAUTH 29
+
428 #define DBIDENTITY 30
+
429 #define DBNOIDCOL 31
+
430 #define DBDATESHORT 32
+
431 #define DBCLIENTCURSORS 33
+
432 #define DBSETTIME 34
+
433 #define DBQUOTEDIDENT 35
+
434 
+
435 #define DBNUMOPTIONS 36
+
436 
+
437 #define DBPADOFF 0
+
438 #define DBPADON 1
+
439 
+
440 #define OFF 0
+
441 #define ON 1
+
442 
+
443 #define NOSUCHOPTION 2
+
444 
+
445 #define MAXOPTTEXT 32
+
446 
+
447 typedef struct tds_dblib_dbprocess DBPROCESS;
+
448 
+
449 /*
+
450  * Sybase & Microsoft use different names for the dbdaterec members.
+
451  * Keep these two structures physically identical in memory.
+
452  * dbdatecrack() casts one to the other for ease of implementation.
+
453  *
+
454  * Giving credit where credit is due, we can acknowledge that
+
455  * Microsoft chose the better names here, hands down. ("datedmonth"?!)
+
456  */
+ +
458 {
+
459  DBINT year; /* 1753 - 9999 */
+
460  DBINT quarter; /* 1 - 4 */
+
461  DBINT month; /* 1 - 12 */
+
462  DBINT day; /* 1 - 31 */
+
463  DBINT dayofyear; /* 1 - 366 */
+
464  DBINT week; /* 1 - 54 (for leap years) */
+
465  DBINT weekday; /* 1 - 7 (Mon. - Sun.) */
+
466  DBINT hour; /* 0 - 23 */
+
467  DBINT minute; /* 0 - 59 */
+
468  DBINT second; /* 0 - 59 */
+
469  DBINT millisecond; /* 0 - 999 */
+
470  DBINT tzone; /* -840 - 840 */
+
471 };
+
472 
+ +
474 {
+
475  DBINT dateyear; /* 1900 and counting */
+
476  DBINT quarter; /* 0 - 3 (Microsoft only) */
+
477  DBINT datemonth; /* 0 - 11 */
+
478  DBINT datedmonth; /* 1 - 31 */
+
479  DBINT datedyear; /* 1 - 366 */
+
480  DBINT week; /* 1 - 54 (Microsoft only) */
+
481  DBINT datedweek; /* 0 - 6 */
+
482  DBINT datehour; /* 0 - 23 */
+
483  DBINT dateminute; /* 0 - 59 */
+
484  DBINT datesecond; /* 0 - 59 */
+
485  DBINT datemsecond; /* 0 - 999 */
+
486  DBINT datetzone; /* -840 - 840 */
+
487 };
+
488 
+ +
490 {
+
491  DBINT year; /* 1753 - 9999 */
+
492  DBINT quarter; /* 1 - 4 */
+
493  DBINT month; /* 1 - 12 */
+
494  DBINT day; /* 1 - 31 */
+
495  DBINT dayofyear; /* 1 - 366 */
+
496  DBINT week; /* 1 - 54 (for leap years) */
+
497  DBINT weekday; /* 1 - 7 (Mon. - Sun.) */
+
498  DBINT hour; /* 0 - 23 */
+
499  DBINT minute; /* 0 - 59 */
+
500  DBINT second; /* 0 - 59 */
+
501  DBINT nanosecond; /* 0 - 999999999 */
+
502  DBINT tzone; /* 0 - 127 (Sybase only) */
+
503 };
+
504 
+ +
506 {
+
507  DBINT dateyear; /* 1900 and counting */
+
508  DBINT quarter; /* 0 - 3 (Microsoft only) */
+
509  DBINT datemonth; /* 0 - 11 */
+
510  DBINT datedmonth; /* 1 - 31 */
+
511  DBINT datedyear; /* 1 - 366 */
+
512  DBINT week; /* 1 - 54 (Microsoft only) */
+
513  DBINT datedweek; /* 0 - 6 */
+
514  DBINT datehour; /* 0 - 23 */
+
515  DBINT dateminute; /* 0 - 59 */
+
516  DBINT datesecond; /* 0 - 59 */
+
517  DBINT datensecond; /* 0 - 999999999 */
+
518  DBINT datetzone; /* 0 - 127 */
+
519 };
+
520 
+
521 
+
522 #ifdef MSDBLIB
+
523 typedef struct tds_microsoft_dbdaterec DBDATEREC;
+
524 typedef struct tds_microsoft_dbdaterec2 DBDATEREC2;
+
525 #else
+
526 typedef struct tds_sybase_dbdaterec DBDATEREC;
+
527 typedef struct tds_sybase_dbdaterec2 DBDATEREC2;
+
528 #endif
+
529 
+
530 typedef int (*EHANDLEFUNC) (DBPROCESS * dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
+
531 
+
532 typedef int (*MHANDLEFUNC) (DBPROCESS * dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname,
+
533  char *proc, int line);
+
534 
+
535 /* dbpoll() result codes, sybtcl needs DBRESULT */
+
536 #define DBRESULT 1
+
537 #define DBNOTIFICATION 2
+
538 #define DBTIMEOUT 3
+
539 #define DBINTERRUPT 4
+
540 
+
541 /* more sybtcl needs: */
+
542 #define DBTXTSLEN 8
+
543 
+
544 /* bind types */
+
545 #define CHARBIND 0
+
546 #define STRINGBIND 1
+
547 #define NTBSTRINGBIND 2
+
548 #define VARYCHARBIND 3
+
549 #define VARYBINBIND 4
+
550 #define TINYBIND 6
+
551 #define SMALLBIND 7
+
552 #define INTBIND 8
+
553 #define FLT8BIND 9
+
554 #define REALBIND 10
+
555 #define DATETIMEBIND 11
+
556 #define SMALLDATETIMEBIND 12
+
557 #define MONEYBIND 13
+
558 #define SMALLMONEYBIND 14
+
559 #define BINARYBIND 15
+
560 #define BITBIND 16
+
561 #define NUMERICBIND 17
+
562 #define DECIMALBIND 18
+
563 #define SRCNUMERICBIND 19
+
564 #define SRCDECIMALBIND 20
+
565 #define DATEBIND 21
+
566 #define TIMEBIND 22
+
567 #define BIGDATETIMEBIND 23
+
568 #define BIGTIMEBIND 24
+
569 #define BIGINTBIND 30
+
570 #define DATETIME2BIND 31
+
571 #define MAXBINDTYPES 32 /* keep last */
+
572 
+
573 #define DBPRCOLSEP 21
+
574 #define DBPRLINELEN 22
+
575 #define DBRPCRETURN 1
+
576 #define DBRPCDEFAULT 2
+
577 
+
578 #define REG_ROW -1
+
579 #define MORE_ROWS -1
+
580 #define NO_MORE_ROWS -2
+
581 #define BUF_FULL -3
+
582 #define NO_MORE_RESULTS 2
+
583 #define SUCCEED 1
+
584 #define FAIL 0
+
585 
+
586 #define DB_IN 1
+
587 #define DB_OUT 2
+
588 #define DB_QUERYOUT 3
+
589 
+
590 #define DBSINGLE 0
+
591 #define DBDOUBLE 1
+
592 #define DBBOTH 2
+
593 
+
594 /* remote procedure call (rpc) options */
+
595 #define DBRPCRECOMPILE TDS_STATIC_CAST(DBSMALLINT, 0x0001)
+
596 #define DBRPCRESET TDS_STATIC_CAST(DBSMALLINT, 0x0002)
+
597 #define DBRPCCURSOR TDS_STATIC_CAST(DBSMALLINT, 0x0008)
+
598 
+
599 #if defined(DBLIB_UNIMPLEMENTED)
+
600 DBBOOL db12hour(DBPROCESS * dbprocess, const char language[]);
+
601 
+
602 DBBOOL dbcolbrowse(DBPROCESS * dbprocess, int colnum);
+
603 
+
604 RETCODE dbcursor(DBCURSOR * hc, DBINT optype, DBINT bufno, BYTE * table, BYTE * values);
+
605 RETCODE dbcursorbind(DBCURSOR * hc, int col, int vartype, DBINT varlen, DBINT * poutlen, BYTE * pvaraddr, DBTYPEINFO * typeinfo);
+
606 void dbcursorclose(DBCURSOR * hc);
+
607 RETCODE dbcursorcolinfo(DBCURSOR * hc, DBINT column, DBCHAR * colname, DBINT * coltype, DBINT * collen, DBINT * usertype);
+
608 RETCODE dbcursorfetch(DBCURSOR * hc, DBINT fetchtype, DBINT rownum);
+
609 RETCODE dbcursorinfo(DBCURSOR * hc, DBINT * ncols, DBINT * nrows);
+
610 DBCURSOR *dbcursoropen(DBPROCESS * dbprocess, BYTE * stmt, SHORT scollopt, SHORT concuropt, USHORT nrows, DBINT * pstatus);
+
611 
+
612 int dbdate4cmp(DBPROCESS * dbprocess, DBDATETIME4 * d1, DBDATETIME4 * d2);
+
613 RETCODE dbdate4zero(DBPROCESS * dbprocess, DBDATETIME4 * d1);
+
614 RETCODE dbdatechar(DBPROCESS * dbprocess, char *buf, int datepart, int value);
+
615 int dbdatename(DBPROCESS * dbprocess, char *buf, int date, DBDATETIME * datetime);
+
616 char *dateorder(DBPROCESS * dbprocess, char *language);
+
617 DBINT dbdatepart(DBPROCESS * dbprocess, int datepart, DBDATETIME * datetime);
+
618 RETCODE dbdatezero(DBPROCESS * dbprocess, DBDATETIME * d1);
+
619 char *dbdayname(DBPROCESS * dbprocess, char *language, int daynum);
+
620 
+
621 int dbgetoff(DBPROCESS * dbprocess, DBUSMALLINT offtype, int startfrom);
+
622 
+
623 char *dbqual(DBPROCESS * dbprocess, int tabnum, char *tabname);
+
624 void dbfreequal(char *qualptr);
+
625 
+
626 DBSORTORDER *dbloadsort(DBPROCESS * dbprocess);
+
627 RETCODE dbfreesort(DBPROCESS * dbprocess, DBSORTORDER * sortorder);
+
628 
+
629 RETCODE dbload_xlate(DBPROCESS * dbprocess, char *srv_charset, char *clt_name, DBXLATE ** xlt_tosrv, DBXLATE ** xlt_todisp);
+
630 
+
631 RETCODE dbmny4divide(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * quotient);
+
632 RETCODE dbmny4mul(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * prod);
+
633 RETCODE dbmnyadd(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * sum);
+
634 RETCODE dbmnydivide(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * quotient);
+
635 RETCODE dbmnydown(DBPROCESS * dbproc, DBMONEY * mnyptr, int divisor, int *remainder);
+
636 RETCODE dbmnyinit(DBPROCESS * dbproc, DBMONEY * mnyptr, int trim, DBBOOL * negative);
+
637 RETCODE dbmnyndigit(DBPROCESS * dbproc, DBMONEY * mnyptr, DBCHAR * value, DBBOOL * zero);
+
638 RETCODE dbmnymul(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * prod);
+
639 RETCODE dbmnydigit(DBPROCESS * dbprocess, DBMONEY * m1, DBCHAR * value, DBBOOL * zero);
+
640 RETCODE dbmnyscale(DBPROCESS * dbproc, DBMONEY * dest, int multiplier, int addend);
+
641 
+
642 
+
643 RETCODE dbnpcreate(DBPROCESS * dbprocess);
+
644 RETCODE dbnpdefine(DBPROCESS * dbprocess, DBCHAR * procedure_name, DBSMALLINT namelen);
+
645 
+
646 int DBNUMORDERS(DBPROCESS * dbprocess);
+
647 
+
648 RETCODE dbpoll(DBPROCESS * dbproc, long milliseconds, DBPROCESS ** ready_dbproc, int *return_reason);
+
649 int dbordercol(DBPROCESS * dbprocess, int order);
+
650 
+
651 RETCODE dbregdrop(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen);
+
652 RETCODE dbregexec(DBPROCESS * dbproc, DBUSMALLINT options);
+
653 RETCODE dbreghandle(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen, INTFUNCPTR handler);
+
654 RETCODE dbreginit(DBPROCESS * dbproc, DBCHAR * procedure_name, DBSMALLINT namelen);
+
655 RETCODE dbreglist(DBPROCESS * dbproc);
+
656 RETCODE dbregnowatch(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen);
+
657 RETCODE dbregparam(DBPROCESS * dbproc, char *param_name, int type, DBINT datalen, BYTE * data);
+
658 RETCODE dbregwatch(DBPROCESS * dbprocess, DBCHAR * procnm, DBSMALLINT namelen, DBUSMALLINT options);
+
659 RETCODE dbregwatchlist(DBPROCESS * dbprocess);
+
660 
+
661 void dbrpwclr(LOGINREC * login);
+
662 RETCODE dbrpwset(LOGINREC * login, char *srvname, char *password, int pwlen);
+
663 
+
664 DBINT dbreadpage(DBPROCESS * dbprocess, char *p_dbname, DBINT pageno, BYTE * buf);
+
665 RETCODE dbwritepage(DBPROCESS * dbprocess, char *p_dbname, DBINT pageno, DBINT size, BYTE * buf);
+
666 
+
667 RETCODE dbsetdeflang(char *language);
+
668 
+
669 int dbstrcmp(DBPROCESS * dbprocess, char *s1, int l1, char *s2, int l2, DBSORTORDER * sort);
+
670 int dbstrsort(DBPROCESS * dbprocess, char *s1, int l1, char *s2, int l2, DBSORTORDER * sort);
+
671 
+
672 DBBOOL dbtabbrowse(DBPROCESS * dbprocess, int tabnum);
+
673 int dbtabcount(DBPROCESS * dbprocess);
+
674 char *dbtabname(DBPROCESS * dbprocess, int tabnum);
+
675 char *dbtabsource(DBPROCESS * dbprocess, int colnum, int *tabnum);
+
676 
+
677 RETCODE dbsendpassthru(DBPROCESS * dbprocess, DBVOIDPTR bufp);
+
678 RETCODE dbrecvpassthru(DBPROCESS * dbprocess, DBVOIDPTR * bufp);
+
679 
+
680 RETCODE dbgetloginfo(DBPROCESS * dbprocess, DBLOGINFO ** loginfo);
+
681 RETCODE dbsetloginfo(LOGINREC * loginrec, DBLOGINFO * loginfo);
+
682 
+
683 int dbtsnewlen(DBPROCESS * dbprocess);
+
684 DBBINARY *dbtsnewval(DBPROCESS * dbprocess);
+
685 RETCODE dbtsput(DBPROCESS * dbprocess, DBBINARY * newts, int newtslen, int tabnum, char *tabname);
+
686 
+
687 RETCODE dbfree_xlate(DBPROCESS * dbprocess, DBXLATE * xlt_tosrv, DBXLATE * clt_todisp);
+
688 int dbxlate(DBPROCESS * dbprocess, char *src, int srclen, char *dest, int destlen, DBXLATE * xlt, int *srcbytes_used,
+
689  DBBOOL srcend, int status);
+
690 
+
691 RETCODE bcp_moretext(DBPROCESS * dbproc, DBINT size, BYTE * text);
+
692 RETCODE bcp_writefmt(DBPROCESS * dbproc, const char filename[]);
+
693 
+
694 void build_xact_string(char *xact_name, char *service_name, DBINT commid, char *result);
+
695 RETCODE remove_xact(DBPROCESS * connect, DBINT commid, int n);
+
696 RETCODE abort_xact(DBPROCESS * connect, DBINT commid);
+
697 void close_commit(DBPROCESS * connect);
+
698 RETCODE commit_xact(DBPROCESS * connect, DBINT commid);
+
699 DBPROCESS *open_commit(LOGINREC * login, char *servername);
+
700 RETCODE scan_xact(DBPROCESS * connect, DBINT commid);
+
701 DBINT start_xact(DBPROCESS * connect, char *application_name, char *xact_name, int site_count);
+
702 DBINT stat_xact(DBPROCESS * connect, DBINT commid);
+
703 
+
704 #endif /* define unimplemented */
+
705 
+
706 BYTE *dbadata(DBPROCESS * dbproc, int computeid, int column);
+
707 DBINT dbadlen(DBPROCESS * dbproc, int computeid, int column);
+
708 RETCODE dbaltbind(DBPROCESS * dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE * varaddr);
+
709 RETCODE dbaltbind_ps(DBPROCESS * dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE * varaddr,
+
710  DBTYPEINFO * typeinfo);
+
711 int dbaltcolid(DBPROCESS * dbproc, int computeid, int column);
+
712 DBINT dbaltlen(DBPROCESS * dbproc, int computeid, int column);
+
713 int dbaltop(DBPROCESS * dbproc, int computeid, int column);
+
714 int dbalttype(DBPROCESS * dbproc, int computeid, int column);
+
715 DBINT dbaltutype(DBPROCESS * dbproc, int computeid, int column);
+
716 RETCODE dbanullbind(DBPROCESS * dbprocess, int computeid, int column, DBINT * indicator);
+
717 RETCODE dbbind(DBPROCESS * dbproc, int column, int vartype, DBINT varlen, BYTE * varaddr);
+
718 RETCODE dbbind_ps(DBPROCESS * dbprocess, int column, int vartype, DBINT varlen, BYTE * varaddr, DBTYPEINFO * typeinfo);
+
719 int dbbufsize(DBPROCESS * dbprocess);
+
720 BYTE *dbbylist(DBPROCESS * dbproc, int computeid, int *size);
+
721 RETCODE dbcancel(DBPROCESS * dbproc);
+
722 RETCODE dbcanquery(DBPROCESS * dbproc);
+
723 char *dbchange(DBPROCESS * dbprocess);
+
724 DBBOOL dbcharsetconv(DBPROCESS * dbprocess);
+
725 void dbclose(DBPROCESS * dbproc);
+
726 void dbclrbuf(DBPROCESS * dbproc, DBINT n);
+
727 RETCODE dbclropt(DBPROCESS * dbproc, int option, const char param[]);
+
728 RETCODE dbcmd(DBPROCESS * dbproc, const char cmdstring[]);
+
729 RETCODE dbcmdrow(DBPROCESS * dbproc);
+
730 
+
731 #define DBCMDROW(x) dbcmdrow((x))
+
732 RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol );
+
733 RETCODE dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol);
+
734 DBINT dbcollen(DBPROCESS * dbproc, int column);
+
735 char *dbcolname(DBPROCESS * dbproc, int column);
+
736 const char *dbacolname(DBPROCESS * dbproc, int computeid, int column);
+
737 char *dbcolsource(DBPROCESS * dbproc, int colnum);
+
738 int dbcoltype(DBPROCESS * dbproc, int column);
+
739 DBTYPEINFO *dbcoltypeinfo(DBPROCESS * dbproc, int column);
+
740 DBINT dbcolutype(DBPROCESS * dbprocess, int column);
+
741 DBINT dbconvert(DBPROCESS * dbproc, int srctype, const BYTE * src, DBINT srclen, int desttype, BYTE * dest, DBINT destlen);
+
742 DBINT dbconvert_ps(DBPROCESS * dbprocess, int srctype, const BYTE * src, DBINT srclen, int desttype, BYTE * dest, DBINT destlen,
+
743  DBTYPEINFO * typeinfo);
+
744 BOOL dbiscount(DBPROCESS * dbproc);
+
745 DBINT dbcount(DBPROCESS * dbproc);
+
746 
+
747 #define DBCOUNT(x) dbcount((x))
+
748 int dbcurcmd(DBPROCESS * dbproc);
+
749 
+
750 #define DBCURCMD(x) dbcurcmd((x))
+
751 DBINT dbcurrow(DBPROCESS * dbproc);
+
752 
+
753 #define DBCURROW(x) dbcurrow((x))
+
754 BYTE *dbdata(DBPROCESS * dbproc, int column);
+
755 int dbdatecmp(DBPROCESS * dbproc, DBDATETIME * d1, DBDATETIME * d2);
+
756 RETCODE dbdatecrack(DBPROCESS * dbproc, DBDATEREC * di, DBDATETIME * dt);
+
757 RETCODE dbanydatecrack(DBPROCESS * dbproc, DBDATEREC2 * di, int type, const void *data);
+
758 DBINT dbdatlen(DBPROCESS * dbproc, int column);
+
759 DBBOOL dbdead(DBPROCESS * dbproc);
+
760 
+
761 #define DBDEAD(x) dbdead((x))
+
762 EHANDLEFUNC dberrhandle(EHANDLEFUNC handler);
+
763 void dbexit(void);
+
764 RETCODE dbfcmd(DBPROCESS * dbproc, const char *fmt, ...);
+
765 DBINT dbfirstrow(DBPROCESS * dbproc);
+
766 
+
767 #define DBFIRSTROW(x) dbfirstrow((x))
+
768 void dbfreebuf(DBPROCESS * dbproc);
+
769 char *dbgetchar(DBPROCESS * dbprocess, int n);
+
770 char *dbgetcharset(DBPROCESS * dbprocess);
+
771 int dbgetlusername(LOGINREC * login, BYTE * name_buffer, int buffer_len);
+
772 int dbgetmaxprocs(void);
+
773 char *dbgetnatlanf(DBPROCESS * dbprocess);
+
774 int dbgetpacket(DBPROCESS * dbproc);
+
775 RETCODE dbgetrow(DBPROCESS * dbproc, DBINT row);
+
776 int dbgettime(void);
+
777 #define DBGETTIME dbgettime
+
778 BYTE *dbgetuserdata(DBPROCESS * dbproc);
+
779 DBBOOL dbhasretstat(DBPROCESS * dbproc);
+
780 RETCODE dbinit(void);
+
781 int dbiordesc(DBPROCESS * dbproc);
+
782 
+
783 #define DBIORDESC(x) dbiordesc((x))
+
784 int dbiowdesc(DBPROCESS * dbproc);
+
785 
+
786 #define DBIOWDESC(x) dbiowdesc((x))
+
787 DBBOOL dbisavail(DBPROCESS * dbprocess);
+
788 
+
789 #define DBISAVAIL(x) dbisavail((x))
+
790 DBBOOL dbisopt(DBPROCESS * dbproc, int option, const char param[]);
+
791 DBINT dblastrow(DBPROCESS * dbproc);
+
792 
+
793 #define DBLASTROW(x) dblastrow((x))
+ +
795 void dbloginfree(LOGINREC * login);
+
796 
+
797 int dbmny4cmp(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2);
+
798 int dbmnycmp(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2);
+
799 
+
800 RETCODE dbmny4add(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * sum);
+
801 RETCODE dbmnydec(DBPROCESS * dbproc, DBMONEY * mnyptr);
+
802 RETCODE dbmnyinc(DBPROCESS * dbproc, DBMONEY * mnyptr);
+
803 RETCODE dbmnymaxpos(DBPROCESS * dbproc, DBMONEY * dest);
+
804 RETCODE dbmnymaxneg(DBPROCESS * dbproc, DBMONEY * dest);
+
805 RETCODE dbmny4minus(DBPROCESS * dbproc, DBMONEY4 * src, DBMONEY4 * dest);
+
806 RETCODE dbmnyminus(DBPROCESS * dbproc, DBMONEY * src, DBMONEY * dest);
+
807 RETCODE dbmny4sub(DBPROCESS * dbproc, DBMONEY4 * m1, DBMONEY4 * m2, DBMONEY4 * diff);
+
808 RETCODE dbmnysub(DBPROCESS * dbproc, DBMONEY * m1, DBMONEY * m2, DBMONEY * diff);
+
809 
+
810 RETCODE dbmny4copy(DBPROCESS * dbprocess, DBMONEY4 * m1, DBMONEY4 * m2);
+
811 RETCODE dbmnycopy(DBPROCESS * dbproc, DBMONEY * src, DBMONEY * dest);
+
812 
+
813 RETCODE dbmny4zero(DBPROCESS * dbproc, DBMONEY4 * dest);
+
814 RETCODE dbmnyzero(DBPROCESS * dbproc, DBMONEY * dest);
+
815 
+
816 const char *dbmonthname(DBPROCESS * dbproc, char *language, int monthnum, DBBOOL shortform);
+
817 RETCODE dbmorecmds(DBPROCESS * dbproc);
+
818 
+
819 #define DBMORECMDS(x) dbmorecmds((x))
+
820 RETCODE dbmoretext(DBPROCESS * dbproc, DBINT size, const BYTE text[]);
+
821 MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler);
+
822 char *dbname(DBPROCESS * dbproc);
+
823 STATUS dbnextrow(DBPROCESS * dbproc);
+
824 RETCODE dbnullbind(DBPROCESS * dbproc, int column, DBINT * indicator);
+
825 int dbnumalts(DBPROCESS * dbproc, int computeid);
+
826 int dbnumcols(DBPROCESS * dbproc);
+
827 int dbnumcompute(DBPROCESS * dbprocess);
+
828 int dbnumrets(DBPROCESS * dbproc);
+
829 DBPROCESS *tdsdbopen(LOGINREC * login, const char *server, int msdblib);
+
830 DBPROCESS *dbopen(LOGINREC * login, const char *server);
+
831 
+
832 /* pivot functions */
+
833 struct col_t;
+
834 void dbpivot_count (struct col_t *output, const struct col_t *input);
+
835 void dbpivot_sum (struct col_t *output, const struct col_t *input);
+
836 void dbpivot_min (struct col_t *output, const struct col_t *input);
+
837 void dbpivot_max (struct col_t *output, const struct col_t *input);
+
838 
+
839 struct pivot_t;
+
840 typedef void (*DBPIVOT_FUNC)(struct col_t *output, const struct col_t *input);
+
841 struct pivot_t * dbrows_pivoted(DBPROCESS *dbproc);
+
842 STATUS dbnextrow_pivoted(DBPROCESS *dbproc, struct pivot_t *pp);
+
843 RETCODE dbpivot(DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val);
+
844 
+
845 DBPIVOT_FUNC dbpivot_lookup_name( const char name[] );
+
846 
+
847 #ifdef MSDBLIB
+
848 #define dbopen(x,y) tdsdbopen((x),(y), 1)
+
849 #else
+
850 #define dbopen(x,y) tdsdbopen((x),(y), 0)
+
851 #endif
+
852 
+
853 /* fix PHP problem */
+
854 #ifdef PHP_SYBASE_DBOPEN
+
855 #undef PHP_SYBASE_DBOPEN
+
856 #define PHP_SYBASE_DBOPEN dbopen
+
857 #endif
+
858 
+
859 void dbprhead(DBPROCESS * dbproc);
+
860 DBINT dbprcollen(DBPROCESS * dbproc, int column);
+
861 RETCODE dbprrow(DBPROCESS * dbproc);
+
862 const char *dbprtype(int token);
+
863 DBBOOL DRBUF(DBPROCESS * dbprocess);
+
864 STATUS dbreadtext(DBPROCESS * dbproc, void *buf, DBINT bufsize);
+
865 void dbrecftos(const char filename[]);
+
866 RETCODE dbresults(DBPROCESS * dbproc);
+
867 RETCODE dbresults_r(DBPROCESS * dbproc, int recursive);
+
868 BYTE *dbretdata(DBPROCESS * dbproc, int retnum);
+
869 int dbretlen(DBPROCESS * dbproc, int retnum);
+
870 char *dbretname(DBPROCESS * dbproc, int retnum);
+
871 DBINT dbretstatus(DBPROCESS * dbproc);
+
872 int dbrettype(DBPROCESS * dbproc, int retnum);
+
873 RETCODE dbrows(DBPROCESS * dbproc);
+
874 
+
875 #define DBROWS(x) dbrows((x))
+
876 STATUS dbrowtype(DBPROCESS * dbprocess);
+
877 
+
878 #define DBROWTYPE(x) dbrowtype((x))
+
879 RETCODE dbrpcinit(DBPROCESS * dbproc, const char rpcname[], DBSMALLINT options);
+
880 RETCODE dbrpcparam(DBPROCESS * dbproc, const char paramname[], BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE * value);
+
881 RETCODE dbrpcsend(DBPROCESS * dbproc);
+
882 RETCODE dbsafestr(DBPROCESS * dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype);
+
883 RETCODE *dbsechandle(DBINT type, INTFUNCPTR handler);
+
884 char *dbservcharset(DBPROCESS * dbprocess);
+
885 void dbsetavail(DBPROCESS * dbprocess);
+
886 void dbsetbusy(DBPROCESS * dbprocess, DB_DBBUSY_FUNC busyfunc);
+
887 RETCODE dbsetdefcharset(char *charset);
+
888 void dbsetidle(DBPROCESS * dbprocess, DB_DBIDLE_FUNC idlefunc);
+
889 void dbsetifile(char *filename);
+
890 void dbsetinterrupt(DBPROCESS * dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr);
+
891 RETCODE dbsetlogintime(int seconds);
+
892 RETCODE dbsetmaxprocs(int maxprocs);
+
893 RETCODE dbsetnull(DBPROCESS * dbprocess, int bindtype, int bindlen, BYTE * bindval);
+
894 RETCODE dbsetopt(DBPROCESS * dbproc, int option, const char *char_param, int int_param);
+
895 STATUS dbsetrow(DBPROCESS * dbprocess, DBINT row);
+
896 RETCODE dbsettime(int seconds);
+
897 void dbsetuserdata(DBPROCESS * dbproc, BYTE * ptr);
+
898 RETCODE dbsetversion(DBINT version);
+
899 
+
900 int dbspid(DBPROCESS * dbproc);
+
901 RETCODE dbspr1row(DBPROCESS * dbproc, char *buffer, DBINT buf_len);
+
902 DBINT dbspr1rowlen(DBPROCESS * dbproc);
+
903 RETCODE dbsprhead(DBPROCESS * dbproc, char *buffer, DBINT buf_len);
+
904 RETCODE dbsprline(DBPROCESS * dbproc, char *buffer, DBINT buf_len, DBCHAR line_char);
+
905 RETCODE dbsqlexec(DBPROCESS * dbproc);
+
906 RETCODE dbsqlok(DBPROCESS * dbproc);
+
907 RETCODE dbsqlsend(DBPROCESS * dbproc);
+
908 int dbstrbuild(DBPROCESS * dbproc, char *charbuf, int bufsize, char *text, char *formats, ...);
+
909 RETCODE dbstrcpy(DBPROCESS * dbproc, int start, int numbytes, char *dest);
+
910 int dbstrlen(DBPROCESS * dbproc);
+
911 DBINT dbvarylen(DBPROCESS * dbproc, int column);
+
912 
+
913 #define SYBEVERDOWN 100 /* TDS version downgraded . */
+
914 #define SYBEICONVIU 2400 /* Some character(s) could not be converted into client's character set. */
+
915 #define SYBEICONVAVAIL 2401 /* Character set conversion is not available between client character set '%.*s' and server character set '%.*s'.*/
+
916 #define SYBEICONVO 2402 /* Error converting characters into server's character set. Some character(s) could not be converted.*/
+
917 #define SYBEICONVI 2403 /* Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').*/
+
918 #define SYBEICONV2BIG 2404 /* Buffer overflow converting characters from client into server's character set.*/
+
919  /* cf. doc/dblib_errors.txt for more iconv error values. */
+
920  /* Reserve a few slots for other iconv-related issues. */
+
921 #define SYBETDSVER 2410 /* Cannot bcp with TDSVER < 5.0 */
+
922 #define SYBEPORT 2500 /* Both port and instance specified */
+
923 #define SYBESYNC 20001 /* Read attempted while out of synchronization with SQL Server. */
+
924 #define SYBEFCON 20002 /* SQL Server connection failed. */
+
925 #define SYBETIME 20003 /* SQL Server connection timed out. */
+
926 #define SYBEREAD 20004 /* Read from SQL Server failed. */
+
927 #define SYBEBUFL 20005 /* DB-LIBRARY internal error - send buffer length corrupted. */
+
928 #define SYBEWRIT 20006 /* Write to SQL Server failed. */
+
929 #define SYBEVMS 20007 /* Sendflush: VMS I/O error. */
+
930 #define SYBESOCK 20008 /* Unable to open socket */
+
931 #define SYBECONN 20009 /* Unable to connect socket -- SQL Server is unavailable or does not exist. */
+
932 #define SYBEMEM 20010 /* Unable to allocate sufficient memory */
+
933 #define SYBEDBPS 20011 /* Maximum number of DBPROCESSes already allocated. */
+
934 #define SYBEINTF 20012 /* Server name not found in interface file */
+
935 #define SYBEUHST 20013 /* Unknown host machine name */
+
936 #define SYBEPWD 20014 /* Incorrect password. */
+
937 #define SYBEOPIN 20015 /* Could not open interface file. */
+
938 #define SYBEINLN 20016 /* Interface file: unexpected end-of-line. */
+
939 #define SYBESEOF 20017 /* Unexpected EOF from SQL Server. */
+
940 #define SYBESMSG 20018 /* General SQL Server error: Check messages from the SQL Server. */
+
941 #define SYBERPND 20019 /* Attempt to initiate a new SQL Server operation with results pending. */
+
942 #define SYBEBTOK 20020 /* Bad token from SQL Server: Data-stream processing out of sync. */
+
943 #define SYBEITIM 20021 /* Illegal timeout value specified. */
+
944 #define SYBEOOB 20022 /* Error in sending out-of-band data to SQL Server. */
+
945 #define SYBEBTYP 20023 /* Unknown bind type passed to DB-LIBRARY function. */
+
946 #define SYBEBNCR 20024 /* Attempt to bind user variable to a non-existent compute row. */
+
947 #define SYBEIICL 20025 /* Illegal integer column length returned by SQL Server. Legal integer lengths are 1, 2, and 4 bytes. */
+
948 #define SYBECNOR 20026 /* Column number out of range. */
+
949 #define SYBENPRM 20027 /* NULL parameter not allowed for this dboption. */
+
950 #define SYBEUVDT 20028 /* Unknown variable-length datatype encountered. */
+
951 #define SYBEUFDT 20029 /* Unknown fixed-length datatype encountered. */
+
952 #define SYBEWAID 20030 /* DB-LIBRARY internal error: ALTFMT following ALTNAME has wrong id. */
+
953 #define SYBECDNS 20031 /* Datastream indicates that a compute column is derived from a non-existent select-list member. */
+
954 #define SYBEABNC 20032 /* Attempt to bind to a non-existent column. */
+
955 #define SYBEABMT 20033 /* User attempted a dbbind() with mismatched column and variable types. */
+
956 #define SYBEABNP 20034 /* Attempt to bind using NULL pointers. */
+
957 #define SYBEAAMT 20035 /* User attempted a dbaltbind() with mismatched column and variable types. */
+
958 #define SYBENXID 20036 /* The Server did not grant us a distributed-transaction ID. */
+
959 #define SYBERXID 20037 /* The Server did not recognize our distributed-transaction ID. */
+
960 #define SYBEICN 20038 /* Invalid computeid or compute column number. */
+
961 #define SYBENMOB 20039 /* No such member of 'order by' clause. */
+
962 #define SYBEAPUT 20040 /* Attempt to print unknown token. */
+
963 #define SYBEASNL 20041 /* Attempt to set fields in a null loginrec. */
+
964 #define SYBENTLL 20042 /* Name too long for loginrec field. */
+
965 #define SYBEASUL 20043 /* Attempt to set unknown loginrec field. */
+
966 #define SYBERDNR 20044 /* Attempt to retrieve data from a non-existent row. */
+
967 #define SYBENSIP 20045 /* Negative starting index passed to dbstrcpy(). */
+
968 #define SYBEABNV 20046 /* Attempt to bind to a NULL program variable. */
+
969 #define SYBEDDNE 20047 /* DBPROCESS is dead or not enabled. */
+
970 #define SYBECUFL 20048 /* Data-conversion resulted in underflow. */
+
971 #define SYBECOFL 20049 /* Data-conversion resulted in overflow. */
+
972 #define SYBECSYN 20050 /* Attempt to convert data stopped by syntax error in source field. */
+
973 #define SYBECLPR 20051 /* Data-conversion resulted in loss of precision. */
+
974 #define SYBECNOV 20052 /* Attempt to set variable to NULL resulted in overflow. */
+
975 #define SYBERDCN 20053 /* Requested data-conversion does not exist. */
+
976 #define SYBESFOV 20054 /* dbsafestr() overflowed its destination buffer. */
+
977 #define SYBEUNT 20055 /* Unknown network type found in interface file. */
+
978 #define SYBECLOS 20056 /* Error in closing network connection. */
+
979 #define SYBEUAVE 20057 /* Unable to allocate VMS event flag. */
+
980 #define SYBEUSCT 20058 /* Unable to set communications timer. */
+
981 #define SYBEEQVA 20059 /* Error in queueing VMS AST routine. */
+
982 #define SYBEUDTY 20060 /* Unknown datatype encountered. */
+
983 #define SYBETSIT 20061 /* Attempt to call dbtsput() with an invalid timestamp. */
+
984 #define SYBEAUTN 20062 /* Attempt to update the timestamp of a table which has no timestamp column. */
+
985 #define SYBEBDIO 20063 /* Bad bulk-copy direction. Must be either IN or OUT. */
+
986 #define SYBEBCNT 20064 /* Attempt to use Bulk Copy with a non-existent Server table. */
+
987 #define SYBEIFNB 20065 /* Illegal field number passed to bcp_control(). */
+
988 #define SYBETTS 20066 /* The table which bulk-copy is attempting to copy to a host-file is shorter than the number of rows which bulk-copy was instructed to skip. */
+
989 #define SYBEKBCO 20067 /* 1000 rows successfully bulk-copied to host-file. */
+
990 #define SYBEBBCI 20068 /* Batch successfully bulk-copied to SQL Server. */
+
991 #define SYBEKBCI 20069 /* Bcp: 1000 rows sent to SQL Server. */
+
992 #define SYBEBCRE 20070 /* I/O error while reading bcp data-file. */
+
993 #define SYBETPTN 20071 /* Syntax error: only two periods are permitted in table names. */
+
994 #define SYBEBCWE 20072 /* I/O error while writing bcp data-file. */
+
995 #define SYBEBCNN 20073 /* Attempt to bulk-copy a NULL value into Server column %d, which does not accept NULL values. */
+
996 #define SYBEBCOR 20074 /* Attempt to bulk-copy an oversized row to the SQL Server. */
+
997 #define SYBEBCIS 20075 /* Attempt to bulk-copy an illegally-sized column value to the SQL Server. */
+
998 #define SYBEBCPI 20076 /* bcp_init() must be called before any other bcp routines. */
+
999 #define SYBEBCPN 20077 /* bcp_bind(), bcp_collen(), bcp_colptr(), bcp_moretext() and bcp_sendrow() may be used only after bcp_init() has been called with the copy direction set to DB_IN. */
+
1000 #define SYBEBCPB 20078 /* bcp_bind(), bcp_moretext() and bcp_sendrow() may NOT be used after bcp_init() has been passed a non-NULL input file name. */
+
1001 #define SYBEVDPT 20079 /* For bulk copy, all variable-length data must have either a length-prefix or a terminator specified. */
+
1002 #define SYBEBIVI 20080 /* bcp_columns(), bcp_colfmt() and bcp_colfmt_ps() may be used only after bcp_init() has been passed a valid input file. */
+
1003 #define SYBEBCBC 20081 /* bcp_columns() must be called before bcp_colfmt() and bcp_colfmt_ps(). */
+
1004 #define SYBEBCFO 20082 /* Bcp host-files must contain at least one column. */
+
1005 #define SYBEBCVH 20083 /* bcp_exec() may be called only after bcp_init() has been passed a valid host file. */
+
1006 #define SYBEBCUO 20084 /* Bcp: Unable to open host data-file. */
+
1007 #define SYBEBCUC 20085 /* Bcp: Unable to close host data-file. */
+
1008 #define SYBEBUOE 20086 /* Bcp: Unable to open error-file. */
+
1009 #define SYBEBUCE 20087 /* Bcp: Unable to close error-file. */
+
1010 #define SYBEBWEF 20088 /* I/O error while writing bcp error-file. */
+
1011 #define SYBEASTF 20089 /* VMS: Unable to setmode for control_c ast. */
+
1012 #define SYBEUACS 20090 /* VMS: Unable to assign channel to sys$command. */
+
1013 #define SYBEASEC 20091 /* Attempt to send an empty command buffer to the SQL Server. */
+
1014 #define SYBETMTD 20092 /* Attempt to send too much TEXT data via the dbmoretext() call. */
+
1015 #define SYBENTTN 20093 /* Attempt to use dbtxtsput() to put a new text-timestamp into a non-existent data row. */
+
1016 #define SYBEDNTI 20094 /* Attempt to use dbtxtsput() to put a new text-timestamp into a column whose datatype is neither SYBTEXT nor SYBIMAGE. */
+
1017 #define SYBEBTMT 20095 /* Attempt to send too much TEXT data via the bcp_moretext() call. */
+
1018 #define SYBEORPF 20096 /* Attempt to set remote password would overflow the login-record's remote-password field. */
+
1019 #define SYBEUVBF 20097 /* Attempt to read an unknown version of BCP format-file. */
+
1020 #define SYBEBUOF 20098 /* Bcp: Unable to open format-file. */
+
1021 #define SYBEBUCF 20099 /* Bcp: Unable to close format-file. */
+
1022 #define SYBEBRFF 20100 /* I/O error while reading bcp format-file. */
+
1023 #define SYBEBWFF 20101 /* I/O error while writing bcp format-file. */
+
1024 #define SYBEBUDF 20102 /* Bcp: Unrecognized datatype found in format-file. */
+
1025 #define SYBEBIHC 20103 /* Incorrect host-column number found in bcp format-file. */
+
1026 #define SYBEBEOF 20104 /* Unexpected EOF encountered in BCP data-file. */
+
1027 #define SYBEBCNL 20105 /* Negative length-prefix found in BCP data-file. */
+
1028 #define SYBEBCSI 20106 /* Host-file columns may be skipped only when copying INto the Server. */
+
1029 #define SYBEBCIT 20107 /* It's illegal to use BCP terminators with program variables other than SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE. */
+
1030 #define SYBEBCSA 20108 /* The BCP hostfile '%s' contains only %ld rows. Skipping all of these rows is not allowed. */
+
1031 #define SYBENULL 20109 /* NULL DBPROCESS pointer passed to DB-Library. */
+
1032 #define SYBEUNAM 20110 /* Unable to get current username from operating system. */
+
1033 #define SYBEBCRO 20111 /* The BCP hostfile '%s' contains only %ld rows. It was impossible to read the requested %ld rows. */
+
1034 #define SYBEMPLL 20112 /* Attempt to set maximum number of DBPROCESSes lower than 1. */
+
1035 #define SYBERPIL 20113 /* It is illegal to pass -1 to dbrpcparam() for the datalen of parameters which are of type SYBCHAR, SYBVARCHAR, SYBBINARY, or SYBVARBINARY. */
+
1036 #define SYBERPUL 20114 /* When passing a SYBINTN, SYBDATETIMN, SYBMONEYN, or SYBFLTN parameter via dbrpcparam(), it's necessary to specify the parameter's maximum or actual length, so that DB-Library can recognize it as a SYBINT1, SYBINT2, SYBINT4, SYBMONEY, or SYBMONEY4, etc. */
+
1037 #define SYBEUNOP 20115 /* Unknown option passed to dbsetopt(). */
+
1038 #define SYBECRNC 20116 /* The current row is not a result of compute clause %d, so it is illegal to attempt to extract that data from this row. */
+
1039 #define SYBERTCC 20117 /* dbreadtext() may not be used to receive the results of a query which contains a COMPUTE clause. */
+
1040 #define SYBERTSC 20118 /* dbreadtext() may only be used to receive the results of a query which contains a single result column. */
+
1041 #define SYBEUCRR 20119 /* Internal software error: Unknown connection result reported by * dbpasswd(). */
+
1042 #define SYBERPNA 20120 /* The RPC facility is available only when using a SQL Server whose version number is 4.0 or greater. */
+
1043 #define SYBEOPNA 20121 /* The text/image facility is available only when using a SQL Server whose version number is 4.0 or greater. */
+
1044 #define SYBEFGTL 20122 /* Bcp: Row number of the first row to be copied cannot be greater than the row number for the last row to be copied. */
+
1045 #define SYBECWLL 20123 /* Attempt to set column width less than 1. */
+
1046 #define SYBEUFDS 20124 /* Unrecognized format encountered in dbstrbuild(). */
+
1047 #define SYBEUCPT 20125 /* Unrecognized custom-format parameter-type encountered in dbstrbuild(). */
+
1048 #define SYBETMCF 20126 /* Attempt to install too many custom formats via dbfmtinstall(). */
+
1049 #define SYBEAICF 20127 /* Error in attempting to install custom format. */
+
1050 #define SYBEADST 20128 /* Error in attempting to determine the size of a pair of translation tables. */
+
1051 #define SYBEALTT 20129 /* Error in attempting to load a pair of translation tables. */
+
1052 #define SYBEAPCT 20130 /* Error in attempting to perform a character-set translation. */
+
1053 #define SYBEXOCI 20131 /* A character-set translation overflowed its destination buffer while using bcp to copy data from a host-file to the SQL Server. */
+
1054 #define SYBEFSHD 20132 /* Error in attempting to find the Sybase home directory. */
+
1055 #define SYBEAOLF 20133 /* Error in attempting to open a localization file. */
+
1056 #define SYBEARDI 20134 /* Error in attempting to read datetime information from a localization file. */
+
1057 #define SYBEURCI 20135 /* Unable to read copyright information from the dblib localization file. */
+
1058 #define SYBEARDL 20136 /* Error in attempting to read the dblib.loc localization file. */
+
1059 #define SYBEURMI 20137 /* Unable to read money-format information from the dblib localization file. */
+
1060 #define SYBEUREM 20138 /* Unable to read error mnemonic from the dblib localization file. */
+
1061 #define SYBEURES 20139 /* Unable to read error string from the dblib localization file. */
+
1062 #define SYBEUREI 20140 /* Unable to read error information from the dblib localization file. */
+
1063 #define SYBEOREN 20141 /* Warning: an out-of-range error-number was encountered in dblib.loc. The maximum permissible error-number is defined as DBERRCOUNT in sybdb.h. */
+
1064 #define SYBEISOI 20142 /* Invalid sort-order information found. */
+
1065 #define SYBEIDCL 20143 /* Illegal datetime column length returned by DataServer. Legal datetime lengths are 4 and 8 bytes. */
+
1066 #define SYBEIMCL 20144 /* Illegal money column length returned by DataServer. Legal money lengths are 4 and 8 bytes. */
+
1067 #define SYBEIFCL 20145 /* Illegal floating-point column length returned by DataServer. Legal floating-point lengths are 4 and 8 bytes. */
+
1068 #define SYBEUTDS 20146 /* Unrecognized TDS version received from SQL Server. */
+
1069 #define SYBEBUFF 20147 /* Bcp: Unable to create format-file. */
+
1070 #define SYBEACNV 20148 /* Attemp to do conversion with NULL destination variable. */
+
1071 #define SYBEDPOR 20149 /* Out-of-range datepart constant. */
+
1072 #define SYBENDC 20150 /* Cannot have negative component in date in numeric form. */
+
1073 #define SYBEMVOR 20151 /* Month values must be between 1 and 12. */
+
1074 #define SYBEDVOR 20152 /* Day values must be between 1 and 7. */
+
1075 #define SYBENBVP 20153 /* Cannot pass dbsetnull() a NULL bindval pointer. */
+
1076 #define SYBESPID 20154 /* Called dbspid() with a NULL dbproc. */
+
1077 #define SYBENDTP 20155 /* Called dbdatecrack() with a NULL datetime parameter. */
+
1078 #define SYBEXTN 20156 /* The xlt_todisp and xlt_tosrv parameters to dbfree_xlate() were NULL. */
+
1079 #define SYBEXTDN 20157 /* Warning: the xlt_todisp parameter to dbfree_xlate() was NULL. The space associated with the xlt_tosrv parameter has been freed. */
+
1080 #define SYBEXTSN 20158 /* Warning: the xlt_tosrv parameter to dbfree_xlate() was NULL. The space associated with the xlt_todisp parameter has been freed. */
+
1081 #define SYBENUM 20159 /* Incorrect number of arguments given to DB-Library. */
+
1082 #define SYBETYPE 20160 /* Invalid argument type given to DB-Library. */
+
1083 #define SYBEGENOS 20161 /* General Operating System Error. */
+
1084 #define SYBEPAGE 20162 /* wrong resource type or length given for dbpage() operation. */
+
1085 #define SYBEOPTNO 20163 /* Option is not allowed or is unreconized */
+
1086 #define SYBEETD 20164 /* Failure to send the expected amount of TEXT or IMAGE data via dbmoretext(). */
+
1087 #define SYBERTYPE 20165 /* Invalid resource type given to DB-Library. */
+
1088 #define SYBERFILE 20166 /* "Can not open resource file." */
+
1089 #define SYBEFMODE 20167 /* Read/Write/Append mode denied on file. */
+
1090 #define SYBESLCT 20168 /* Could not select or copy field specified */
+
1091 #define SYBEZTXT 20169 /* Attempt to send zero length TEXT or IMAGE to dataserver via dbwritetext(). */
+
1092 #define SYBENTST 20170 /* The file being opened must be a stream_lf. */
+
1093 #define SYBEOSSL 20171 /* Operating system login level not in range of Secure SQL Server */
+
1094 #define SYBEESSL 20172 /* Login security level entered does not agree with operating system level */
+
1095 #define SYBENLNL 20173 /* Program not linked with specified network library. */
+
1096 #define SYBENHAN 20174 /* called dbrecvpassthru() with a NULL handler parameter. */
+
1097 #define SYBENBUF 20175 /* called dbsendpassthru() with a NULL buf pointer. */
+
1098 #define SYBENULP 20176 /* Called %s with a NULL %s parameter. */
+
1099 #define SYBENOTI 20177 /* No event handler installed. */
+
1100 #define SYBEEVOP 20178 /* Called dbregwatch() with a bad options parameter. */
+
1101 #define SYBENEHA 20179 /* Called dbreghandle() with a NULL handler parameter. */
+
1102 #define SYBETRAN 20180 /* DBPROCESS is being used for another transaction. */
+
1103 #define SYBEEVST 20181 /* Must initiate a transaction before calling dbregparam(). */
+
1104 #define SYBEEINI 20182 /* Must call dbreginit() before dbregraise(). */
+
1105 #define SYBEECRT 20183 /* Must call dbregdefine() before dbregcreate(). */
+
1106 #define SYBEECAN 20184 /* Attempted to cancel unrequested event notification. */
+
1107 #define SYBEEUNR 20185 /* Unsolicited event notification received. */
+
1108 #define SYBERPCS 20186 /* Must call dbrpcinit() before dbrpcparam(). */
+
1109 #define SYBETPAR 20187 /* No SYBTEXT or SYBIMAGE parameters were defined. */
+
1110 #define SYBETEXS 20188 /* Called dbmoretext() with a bad size parameter. */
+
1111 #define SYBETRAC 20189 /* Attempted to turn off a trace flag that was not on. */
+
1112 #define SYBETRAS 20190 /* DB-Library internal error - trace structure not found. */
+
1113 #define SYBEPRTF 20191 /* dbtracestring() may only be called from a printfunc(). */
+
1114 #define SYBETRSN 20192 /* Bad numbytes parameter passed to dbtracestring(). */
+
1115 #define SYBEBPKS 20193 /* In DBSETLPACKET(), the packet size parameter must be between 0 and 999999. */
+
1116 #define SYBEIPV 20194 /* %1! is an illegal value for the %2! parameter of %3!. */
+
1117 #define SYBEMOV 20195 /* Money arithmetic resulted in overflow in function %1!. */
+
1118 #define SYBEDIVZ 20196 /* Attempt to divide by $0.00 in function %1!. */
+
1119 #define SYBEASTL 20197 /* Synchronous I/O attempted at AST level. */
+
1120 #define SYBESEFA 20198 /* DBSETNOTIFS cannot be called if connections are present. */
+
1121 #define SYBEPOLL 20199 /* Only one dbpoll() can be active at a time. */
+
1122 #define SYBENOEV 20200 /* dbpoll() cannot be called if registered procedure notifications have been disabled. */
+
1123 #define SYBEBADPK 20201 /* Packet size of %1! not supported. -- size of %2! used instead. */
+
1124 #define SYBESECURE 20202 /* Secure Server function not supported in this version. */
+
1125 #define SYBECAP 20203 /* DB-Library capabilities not accepted by the Server. */
+
1126 #define SYBEFUNC 20204 /* Functionality not supported at the specified version level. */
+
1127 #define SYBERESP 20205 /* Response function address passed to dbresponse() must be non-NULL. */
+
1128 #define SYBEIVERS 20206 /* Illegal version level specified. */
+
1129 #define SYBEONCE 20207 /* Function can be called only once. */
+
1130 #define SYBERPNULL 20208 /* value parameter for dbprcparam() can be NULL, only if the datalen parameter is 0 */
+
1131 #define SYBERPTXTIM 20209 /* RPC parameters cannot be of type Text/Image. */
+
1132 #define SYBENEG 20210 /* Negotiated login attempt failed. */
+
1133 #define SYBELBLEN 20211 /* Security labels should be less than 256 characters long. */
+
1134 #define SYBEUMSG 20212 /* Unknown message-id in MSG datastream. */
+
1135 #define SYBECAPTYP 20213 /* Unexpected capability type in CAPABILITY datastream. */
+
1136 #define SYBEBNUM 20214 /* Bad numbytes parameter passed to dbstrcpy() */
+
1137 #define SYBEBBL 20215 /* Bad bindlen parameter passed to dbsetnull() */
+
1138 #define SYBEBPREC 20216 /* Illegal precision specified */
+
1139 #define SYBEBSCALE 20217 /* Illegal scale specified */
+
1140 #define SYBECDOMAIN 20218 /* Source field value is not within the domain of legal values. */
+
1141 #define SYBECINTERNAL 20219 /* Internal Conversion error. */
+
1142 #define SYBEBTYPSRV 20220 /* Datatype is not supported by the server. */
+
1143 #define SYBEBCSET 20221 /* Unknown character-set encountered." */
+
1144 #define SYBEFENC 20222 /* Password Encryption failed." */
+
1145 #define SYBEFRES 20223 /* Challenge-Response function failed.", */
+
1146 #define SYBEISRVPREC 20224 /* Illegal precision value returned by the server. */
+
1147 #define SYBEISRVSCL 20225 /* Illegal scale value returned by the server. */
+
1148 #define SYBEINUMCL 20226 /* Invalid numeric column length returned by the server. */
+
1149 #define SYBEIDECCL 20227 /* Invalid decimal column length returned by the server. */
+
1150 #define SYBEBCMTXT 20228 /* bcp_moretext() may be used only when there is at least one text or image column in the server table. */
+
1151 #define SYBEBCPREC 20229 /* Column %1!: Illegal precision value encountered. */
+
1152 #define SYBEBCBNPR 20230 /* bcp_bind(): if varaddr is NULL, prefixlen must be 0 and no terminator should be specified. */
+
1153 #define SYBEBCBNTYP 20231 /* bcp_bind(): if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
+
1154 #define SYBEBCSNTYP 20232 /* column number %1!: if varaddr is NULL and varlen greater than 0, the table column type must be SYBTEXT or SYBIMAGE and the program variable type must be SYBTEXT, SYBCHAR, SYBIMAGE or SYBBINARY. */
+
1155 #define SYBEBCPCTYP 20233 /* bcp_colfmt(): If table_colnum is 0, host_type cannot be 0. */
+
1156 #define SYBEBCVLEN 20234 /* varlen should be greater than or equal to -1. */
+
1157 #define SYBEBCHLEN 20235 /* host_collen should be greater than or equal to -1. */
+
1158 #define SYBEBCBPREF 20236 /* Illegal prefix length. Legal values are 0, 1, 2 or 4. */
+
1159 #define SYBEBCPREF 20237 /* Illegal prefix length. Legal values are -1, 0, 1, 2 or 4. */
+
1160 #define SYBEBCITBNM 20238 /* bcp_init(): tblname parameter cannot be NULL. */
+
1161 #define SYBEBCITBLEN 20239 /* bcp_init(): tblname parameter is too long. */
+
1162 #define SYBEBCSNDROW 20240 /* bcp_sendrow() may NOT be called unless all text data for the previous row has been sent using bcp_moretext(). */
+
1163 #define SYBEBPROCOL 20241 /* bcp protocol error: returned column count differs from the actual number of columns received. */
+
1164 #define SYBEBPRODEF 20242 /* bcp protocol error: expected default information and got none. */
+
1165 #define SYBEBPRONUMDEF 20243 /* bcp protocol error: expected number of defaults differs from the actual number of defaults received. */
+
1166 #define SYBEBPRODEFID 20244 /* bcp protocol error: default column id and actual column id are not same */
+
1167 #define SYBEBPRONODEF 20245 /* bcp protocol error: default value received for column that does not have default. */
+
1168 #define SYBEBPRODEFTYP 20246 /* bcp protocol error: default value datatype differs from column datatype. */
+
1169 #define SYBEBPROEXTDEF 20247 /* bcp protocol error: more than one row of default information received. */
+
1170 #define SYBEBPROEXTRES 20248 /* bcp protocol error: unexpected set of results received. */
+
1171 #define SYBEBPROBADDEF 20249 /* bcp protocol error: illegal default column id received. */
+
1172 #define SYBEBPROBADTYP 20250 /* bcp protocol error: unknown column datatype. */
+
1173 #define SYBEBPROBADLEN 20251 /* bcp protocol error: illegal datatype length received. */
+
1174 #define SYBEBPROBADPREC 20252 /* bcp protocol error: illegal precision value received. */
+
1175 #define SYBEBPROBADSCL 20253 /* bcp protocol error: illegal scale value received. */
+
1176 #define SYBEBADTYPE 20254 /* Illegal value for type parameter given to %1!. */
+
1177 #define SYBECRSNORES 20255 /* Cursor statement generated no results. */
+
1178 #define SYBECRSNOIND 20256 /* One of the tables involved in the cursor statement does not have a unique index. */
+
1179 #define SYBECRSVIEW 20257 /* A view cannot be joined with another table or a view in a cursor statement. */
+
1180 #define SYBECRSVIIND 20258 /* The view used in the cursor statement does not include all the unique index columns of the underlying tables. */
+
1181 #define SYBECRSORD 20259 /* Only fully keyset driven cursors can have 'order by', ' group by', or 'having' phrases. */
+
1182 #define SYBECRSBUFR 20260 /* Row buffering should not be turned on when using cursor APIs. */
+
1183 #define SYBECRSNOFREE 20261 /* The DBNOAUTOFREE option should not be turned on when using cursor APIs. */
+
1184 #define SYBECRSDIS 20262 /* Cursor statement contains one of the disallowed phrases 'compute', 'union', 'for browse', or 'select into'. */
+
1185 #define SYBECRSAGR 20263 /* Aggregate functions are not allowed in a cursor statement. */
+
1186 #define SYBECRSFRAND 20264 /* Fetch types RANDOM and RELATIVE can only be used within the keyset of keyset driven cursors. */
+
1187 #define SYBECRSFLAST 20265 /* Fetch type LAST requires fully keyset driven cursors. */
+
1188 #define SYBECRSBROL 20266 /* Backward scrolling cannot be used in a forward scrolling cursor. */
+
1189 #define SYBECRSFROWN 20267 /* Row number to be fetched is outside valid range. */
+
1190 #define SYBECRSBSKEY 20268 /* Keyset cannot be scrolled backward in mixed cursors with a previous fetch type. */
+
1191 #define SYBECRSRO 20269 /* Data locking or modifications cannot be made in a READONLY cursor. */
+
1192 #define SYBECRSNOCOUNT 20270 /* The DBNOCOUNT option should not be turned on when doing updates or deletes with dbcursor(). */
+
1193 #define SYBECRSTAB 20271 /* Table name must be determined in operations involving data locking or modifications. */
+
1194 #define SYBECRSUPDNB 20272 /* Update or insert operations cannot use bind variables when binding type is NOBIND. */
+
1195 #define SYBECRSNOWHERE 20273 /* A WHERE clause is not allowed in a cursor update or insert. */
+
1196 #define SYBECRSSET 20274 /* A SET clause is required for a cursor update or insert. */
+
1197 #define SYBECRSUPDTAB 20275 /* Update or insert operations using bind variables require single table cursors. */
+
1198 #define SYBECRSNOUPD 20276 /* Update or delete operation did not affect any rows. */
+
1199 #define SYBECRSINV 20277 /* Invalid cursor statement. */
+
1200 #define SYBECRSNOKEYS 20278 /* The entire keyset must be defined for KEYSET cursors. */
+
1201 #define SYBECRSNOBIND 20279 /* Cursor bind must be called prior to updating cursor */
+
1202 #define SYBECRSFTYPE 20280 /* Unknown fetch type. */
+
1203 #define SYBECRSINVALID 20281 /* The cursor handle is invalid. */
+
1204 #define SYBECRSMROWS 20282 /* Multiple rows are returned, only one is expected. */
+
1205 #define SYBECRSNROWS 20283 /* No rows returned, at least one is expected. */
+
1206 #define SYBECRSNOLEN 20284 /* No unique index found. */
+
1207 #define SYBECRSNOPTCC 20285 /* No OPTCC was found. */
+
1208 #define SYBECRSNORDER 20286 /* The order of clauses must be from, where, and order by. */
+
1209 #define SYBECRSNOTABLE 20287 /* Table name is NULL. */
+
1210 #define SYBECRSNUNIQUE 20288 /* No unique keys associated with this view. */
+
1211 #define SYBECRSVAR 20289 /* There is no valid address associated with this bind. */
+
1212 #define SYBENOVALUE 20290 /* Security labels require both a name and a value */
+
1213 #define SYBEVOIDRET 20291 /* Parameter of type SYBVOID cannot be a return parameter. */
+
1214 #define SYBECLOSEIN 20292 /* Unable to close interface file. */
+
1215 #define SYBEBOOL 20293 /* Boolean parameters must be TRUE or FALSE. */
+
1216 #define SYBEBCPOPT 20294 /* The option cannot be called while a bulk copy operation is progress. */
+
1217 #define SYBEERRLABEL 20295 /* An illegal value was returned from the security label handler. */
+
1218 #define SYBEATTNACK 20296 /* Timed out waiting for server to acknowledge attention." */
+
1219 #define SYBEBBFL 20297 /* -001- Batch failed in bulk-copy to SQL Server */
+
1220 #define SYBEDCL 20298 /* -004- DCL Error */
+
1221 #define SYBECS 20299 /* -004- cs context Error */
+
1222 #define SYBEBULKINSERT 20599 /* cannot build bulk insert statement */
+
1223 #define SYBECOLSIZE 22000 /* Invalid column information structure size */
+
1224 
+
1225 int dbtds(DBPROCESS * dbprocess);
+
1226 
+
1227 #define DBTDS(a) dbtds(a)
+
1228 DBINT dbtextsize(DBPROCESS * dbprocess);
+
1229 DBBINARY *dbtxptr(DBPROCESS * dbproc, int column);
+
1230 DBBINARY *dbtxtimestamp(DBPROCESS * dbproc, int column);
+
1231 DBBINARY *dbtxtsnewval(DBPROCESS * dbprocess);
+
1232 RETCODE dbtxtsput(DBPROCESS * dbprocess, DBBINARY newtxts, int colnum);
+
1233 RETCODE dbuse(DBPROCESS * dbproc, const char *name);
+
1234 const char *dbversion(void);
+
1235 DBBOOL dbwillconvert(int srctype, int desttype);
+
1236 RETCODE dbwritetext(DBPROCESS * dbproc, char *objname, DBBINARY * textptr, DBTINYINT textptrlen, DBBINARY * timestamp,
+
1237  DBBOOL log, DBINT size, BYTE * text);
+
1238 
+
1239 /* LOGINREC manipulation */
+
1240 RETCODE dbsetlname(LOGINREC * login, const char *value, int which);
+
1241 RETCODE dbsetlbool(LOGINREC * login, int value, int which);
+
1242 RETCODE dbsetlshort(LOGINREC * login, int value, int which);
+
1243 RETCODE dbsetllong(LOGINREC * login, long value, int which);
+
1244 RETCODE dbsetlversion (LOGINREC * login, BYTE version);
+
1245 
+
1246 #define DBSETHOST 1
+
1247 #define DBSETLHOST(x,y) dbsetlname((x), (y), DBSETHOST)
+
1248 #define dbsetlhost(x,y) dbsetlname((x), (y), DBSETHOST)
+
1249 #define DBSETUSER 2
+
1250 #define DBSETLUSER(x,y) dbsetlname((x), (y), DBSETUSER)
+
1251 #define dbsetluser(x,y) dbsetlname((x), (y), DBSETUSER)
+
1252 #define DBSETPWD 3
+
1253 #define DBSETLPWD(x,y) dbsetlname((x), (y), DBSETPWD)
+
1254 #define dbsetlpwd(x,y) dbsetlname((x), (y), DBSETPWD)
+
1255 #if defined(DBLIB_UNIMPLEMENTED)
+
1256 # define DBSETHID 4 /* not implemented */
+
1257 # define DBSETLHID(x,y) dbsetlname((x), (y), DBSETHID)
+
1258 #endif
+
1259 #define DBSETAPP 5
+
1260 #define DBSETLAPP(x,y) dbsetlname((x), (y), DBSETAPP)
+
1261 #define dbsetlapp(x,y) dbsetlname((x), (y), DBSETAPP)
+
1262 #define DBSETBCP 6
+
1263 #define BCP_SETL(x,y) dbsetlbool((x), (y), DBSETBCP)
+
1264 #define DBSETLSECURE(x) dbsetlbool((x), (1), DBSETBCP)
+
1265 #define DBSETNATLANG 7
+
1266 #define DBSETLNATLANG(x,y) dbsetlname((x), (y), DBSETNATLANG)
+
1267 #define dbsetlnatlang(x,y) dbsetlname((x), (y), DBSETNATLANG)
+
1268 #if defined(DBLIB_UNIMPLEMENTED)
+
1269 # define DBSETNOSHORT 8 /* not implemented */
+
1270 # define DBSETLNOSHORT(x,y) dbsetlbool((x), (y), DBSETNOSHORT)
+
1271 # define DBSETHIER 9 /* not implemented */
+
1272 # define DBSETLHIER(x,y) dbsetlshort((x), (y), DBSETHIER)
+
1273 #endif
+
1274 #define DBSETCHARSET 10
+
1275 #define DBSETLCHARSET(x,y) dbsetlname((x), (y), DBSETCHARSET)
+
1276 #define DBSETPACKET 11
+
1277 #define DBSETLPACKET(x,y) dbsetllong((x), (y), DBSETPACKET)
+
1278 #define dbsetlpacket(x,y) dbsetllong((x), (y), DBSETPACKET)
+
1279 #define DBSETENCRYPT 12
+
1280 #define DBSETLENCRYPT(x,y) dbsetlbool((x), (y), DBSETENCRYPT)
+
1281 #define DBSETLABELED 13
+
1282 #define DBSETLLABELED(x,y) dbsetlbool((x), (y), DBSETLABELED)
+
1283 #define BCP_SETLABELED(x,y) dbsetlbool((x), (y), DBSETLABELED)
+
1284 #define DBSETDBNAME 14
+
1285 #define DBSETLDBNAME(x,y) dbsetlname((x), (y), DBSETDBNAME)
+
1286 #define DBSETLVERSION(login, version) dbsetlversion((login), (version))
+
1287 #define DBSETNETWORKAUTH 101
+
1288 #define DBSETLNETWORKAUTH(x, y) dbsetlbool((x), (y), DBSETNETWORKAUTH)
+
1289 #define DBSETMUTUALAUTH 102
+
1290 #define DBSETLMUTUALAUTH(x, y) dbsetlbool((x), (y), DBSETMUTUALAUTH)
+
1291 #define DBSETSERVERPRINCIPAL 103
+
1292 #define DBSETLSERVERPRINCIPAL(x,y) dbsetlname((x), (y), DBSETSERVERPRINCIPAL)
+
1293 /* settings from here are purely FreeTDS extensions */
+
1294 #define DBSETUTF16 1001
+
1295 #define DBSETLUTF16(x,y) dbsetlbool((x), (y), DBSETUTF16)
+
1296 #define DBSETNTLMV2 1002
+
1297 #define DBSETLNTLMV2(x,y) dbsetlbool((x), (y), DBSETNTLMV2)
+
1298 #define DBSETREADONLY 1003
+
1299 #define DBSETLREADONLY(x,y) dbsetlbool((x), (y), DBSETREADONLY)
+
1300 #define DBSETDELEGATION 1004
+
1301 #define DBSETLDELEGATION(x, y) dbsetlbool((x), (y), DBSETDELEGATION)
+
1302 
+
1303 RETCODE bcp_init(DBPROCESS * dbproc, const char *tblname, const char *hfile, const char *errfile, int direction);
+
1304 DBINT bcp_done(DBPROCESS * dbproc);
+
1305 
+
1306 DBINT bcp_batch(DBPROCESS * dbproc);
+
1307 RETCODE bcp_bind(DBPROCESS * dbproc, BYTE * varaddr, int prefixlen, DBINT varlen, BYTE * terminator, int termlen, int type,
+
1308  int table_column);
+
1309 RETCODE bcp_collen(DBPROCESS * dbproc, DBINT varlen, int table_column);
+
1310 RETCODE bcp_columns(DBPROCESS * dbproc, int host_colcount);
+
1311 RETCODE bcp_colfmt(DBPROCESS * dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen,
+
1312  const BYTE * host_term, int host_termlen, int colnum);
+
1313 RETCODE bcp_colfmt_ps(DBPROCESS * dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen,
+
1314  BYTE * host_term, int host_termlen, int colnum, DBTYPEINFO * typeinfo);
+
1315 RETCODE bcp_colptr(DBPROCESS * dbproc, BYTE * colptr, int table_column);
+
1316 RETCODE bcp_control(DBPROCESS * dbproc, int field, DBINT value);
+
1317 int bcp_getbatchsize(DBPROCESS * dbproc); /* FreeTDS only */
+
1318 RETCODE bcp_exec(DBPROCESS * dbproc, DBINT * rows_copied);
+
1319 DBBOOL bcp_getl(LOGINREC * login);
+
1320 RETCODE bcp_options(DBPROCESS * dbproc, int option, BYTE * value, int valuelen);
+
1321 RETCODE bcp_readfmt(DBPROCESS * dbproc, const char filename[]);
+
1322 RETCODE bcp_sendrow(DBPROCESS * dbproc);
+
1323 
+
1324 #ifdef __cplusplus
+
1325 #if 0
+
1326 {
+
1327 #endif
+
1328 }
+
1329 #endif
+
1330 
+
1331 #endif
+
RETCODE dbsqlexec(DBPROCESS *dbproc)
send the SQL command to the server and wait for an answer.
Definition: dblib.c:1424
+
DBINT dbcurrow(DBPROCESS *dbproc)
Get number of the row currently being read.
Definition: dblib.c:6190
+
Definition: sybdb.h:506
+
DBPROCESS * tdsdbopen(LOGINREC *login, const char *server, int msdblib)
Form a connection with the server.
Definition: dblib.c:1184
+
RETCODE dbmorecmds(DBPROCESS *dbproc)
See if more commands are to be processed.
Definition: dblib.c:6241
+
Definition: sybdb.h:458
+
BYTE * dbretdata(DBPROCESS *dbproc, int retnum)
Get value of an output parameter filled by a stored procedure.
Definition: dblib.c:4757
+
BOOL dbiscount(DBPROCESS *dbproc)
Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature).
Definition: dblib.c:2808
+
RETCODE dbspr1row(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print a regular result row to a buffer.
Definition: dblib.c:3461
+
DBBOOL dbdead(DBPROCESS *dbproc)
Check if dbproc is an ex-parrot.
Definition: dblib.c:5062
+
RETCODE dbrpcparam(DBPROCESS *dbproc, const char paramname[], BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE *value)
Add a parameter to a remote procedure call.
Definition: rpc.c:155
+
DBBOOL dbhasretstat(DBPROCESS *dbproc)
Determine if query generated a return status number.
Definition: dblib.c:4654
+
int dbrettype(DBPROCESS *dbproc, int retnum)
Get datatype of a stored procedure's return parameter.
Definition: dblib.c:6270
+
DBINT dbprcollen(DBPROCESS *dbproc, int column)
Get size of a result column needed to print column.
Definition: dblib.c:3196
+
RETCODE dbmnyinc(DBPROCESS *dbproc, DBMONEY *mnyptr)
Add $0.0001 to a DBMONEY value.
Definition: dblib.c:5467
+
RETCODE dbmnyminus(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
Negate a DBMONEY value.
Definition: dblib.c:5523
+
DBINT dbcount(DBPROCESS *dbproc)
Get count of rows processed.
Definition: dblib.c:2828
+
int dbalttype(DBPROCESS *dbproc, int computeid, int column)
Get datatype for a compute column.
Definition: dblib.c:4344
+
RETCODE dbsprline(DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
Get formatted string for underlining dbsprhead() column names.
Definition: dblib.c:3841
+
Definition: dblib.h:44
+
char * dbchange(DBPROCESS *dbprocess)
See if a command caused the current database to change.
Definition: dblib.c:6991
+
int dbnumcols(DBPROCESS *dbproc)
Return number of regular columns in a result set.
Definition: dblib.c:1852
+
RETCODE dbpivot(DBPROCESS *dbproc, int nkeys, int *keys, int ncols, int *cols, DBPIVOT_FUNC func, int val)
Pivot the rows, creating a new resultset.
Definition: dbpivot.c:908
+
void dbrecftos(const char filename[])
Record to a file all SQL commands sent to the server.
Definition: dblib.c:6771
+
Definition: sybdb.h:269
+
Definition: sybdb.h:355
+
RETCODE dbcmd(DBPROCESS *dbproc, const char cmdstring[])
Append SQL to the command buffer.
Definition: dblib.c:1378
+
DBINT dbvarylen(DBPROCESS *dbproc, int column)
Determine whether a column can vary in size.
Definition: dblib.c:3222
+
char * dbcolname(DBPROCESS *dbproc, int column)
Return name of a regular result column.
Definition: dblib.c:1876
+
RETCODE dbanydatecrack(DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
Break any kind of date or time value into useful pieces.
Definition: dblib.c:5872
+
RETCODE bcp_colfmt_ps(DBPROCESS *dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int colnum, DBTYPEINFO *typeinfo)
Specify the format of a host file for bulk copy purposes, with precision and scale support for numeri...
Definition: bcp.c:508
+
STATUS dbsetrow(DBPROCESS *dbprocess, DBINT row)
Make a buffered row "current" without fetching it into bound variables.
Definition: dblib.c:2049
+
Definition: sybdb.h:307
+
RETCODE dbcancel(DBPROCESS *dbproc)
Cancel the current command batch.
Definition: dblib.c:3398
+
RETCODE dbsprhead(DBPROCESS *dbproc, char *buffer, DBINT buf_len)
Print result set headings to a buffer.
Definition: dblib.c:3899
+
const char * dbmonthname(DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
Get name of a month, in some human language.
Definition: dblib.c:6962
+
Definition: sybdb.h:490
+
void dbclrbuf(DBPROCESS *dbproc, DBINT n)
Clear n rows from the row buffer.
Definition: dblib.c:2848
+
RETCODE dbsetlname(LOGINREC *login, const char *value, int which)
Set the value of a string in a LOGINREC structure.
Definition: dblib.c:764
+
void dbfreebuf(DBPROCESS *dbproc)
Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().
Definition: dblib.c:6064
+
DBINT dbconvert(DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
cf. dbconvert_ps(), above
Definition: dblib.c:2597
+
DBPROCESS * dbopen(LOGINREC *login, const char *server)
Normally not used.
Definition: dbopen.c:36
+
int dbgetpacket(DBPROCESS *dbproc)
Get TDS packet size for the connection.
Definition: dblib.c:4079
+
void dbsetinterrupt(DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
Set interrupt handler for db-lib to use while blocked against a read from the server.
Definition: dblib.c:4635
+
DBBINARY * dbtxptr(DBPROCESS *dbproc, int column)
Get text pointer for a column in the current row.
Definition: dblib.c:6561
+
int dbretlen(DBPROCESS *dbproc, int retnum)
Get size of an output parameter filled by a stored procedure.
Definition: dblib.c:4783
+
int dbaltop(DBPROCESS *dbproc, int computeid, int column)
Get aggregation operator for a compute column.
Definition: dblib.c:4448
+
Definition: sybdb.h:295
+
DBINT dbcolutype(DBPROCESS *dbprocess, int column)
Get user-defined datatype of a regular result column.
Definition: dblib.c:2997
+
void dbsetavail(DBPROCESS *dbprocess)
Mark a DBPROCESS as "available".
Definition: dblib.c:7279
+
int dbgetmaxprocs(void)
get maximum simultaneous connections db-lib will open to the server.
Definition: dblib.c:4175
+
const char * dbprtype(int token)
Print a token value's name to a buffer.
Definition: dblib.c:6451
+
Definition: sybdb.h:342
+
RETCODE dbrpcsend(DBPROCESS *dbproc)
Execute the procedure and free associated memory.
Definition: rpc.c:281
+
RETCODE dbsettime(int seconds)
Set maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4196
+
RETCODE dbanullbind(DBPROCESS *dbprocess, int computeid, int column, DBINT *indicator)
Tie a null-indicator to a compute result column.
Definition: dblib.c:2780
+
RETCODE bcp_options(DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
Set "hints" for uploading a file. A FreeTDS-only function.
Definition: bcp.c:621
+
DBINT dbspr1rowlen(DBPROCESS *dbproc)
Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(),...
Definition: dblib.c:3423
+
DBINT dbcollen(DBPROCESS *dbproc, int column)
Get size of a regular result column.
Definition: dblib.c:3173
+
MHANDLEFUNC dbmsghandle(MHANDLEFUNC handler)
Set a message handler, for messages from the server.
Definition: dblib.c:5144
+
RETCODE dbstrcpy(DBPROCESS *dbproc, int start, int numbytes, char *dest)
Get a copy of a chunk of the command buffer.
Definition: dblib.c:6346
+
DBINT dblastrow(DBPROCESS *dbproc)
Get number of the last row in the row buffer.
Definition: dblib.c:7211
+
RETCODE bcp_init(DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
Prepare for bulk copy operation on a table.
Definition: bcp.c:166
+
char * dbservcharset(DBPROCESS *dbprocess)
Get syscharset name of the server character set.
Definition: dblib.c:7027
+
int dbstrbuild(DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
Build a printable string from text containing placeholders for variables.
Definition: dblib.c:7304
+
RETCODE dbsetversion(DBINT version)
Specify a db-lib version level.
Definition: dblib.c:5980
+
DBINT dbdatlen(DBPROCESS *dbproc, int column)
Get size of current row's data in a regular result column.
Definition: dblib.c:3328
+
Definition: sybdb.h:290
+
RETCODE dbrows(DBPROCESS *dbproc)
Indicate whether a query returned rows.
Definition: dblib.c:4038
+
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition: bcp.c:669
+
BYTE * dbbylist(DBPROCESS *dbproc, int computeid, int *size)
Get bylist for a compute row.
Definition: dblib.c:5003
+
void dbsetifile(char *filename)
set name and location of the interfaces file FreeTDS should use to look up a servername.
Definition: dblib.c:2715
+
const char * dbversion(void)
See which version of db-lib is in use.
Definition: dblib.c:6844
+
RETCODE dbsafestr(DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
safely quotes character values in SQL text.
Definition: dblib.c:6390
+
void dbexit(void)
Close server connections and free all related structures.
Definition: dblib.c:1557
+
RETCODE dbinit(void)
Initialize db-lib.
Definition: dblib.c:665
+
void dbclose(DBPROCESS *dbproc)
Close a connection to the server and free associated resources.
Definition: dblib.c:1490
+
DBINT date
date, 0 = 1900-01-01
Definition: sybdb.h:309
+
BYTE * dbadata(DBPROCESS *dbproc, int computeid, int column)
Get address of compute column data.
Definition: dblib.c:4419
+
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition: bcp.c:2007
+
char * dbname(DBPROCESS *dbproc)
Get name of current database.
Definition: dblib.c:7011
+
RETCODE 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)
Specify the format of a datafile prior to writing to a table.
Definition: bcp.c:376
+
DBBINARY * dbtxtimestamp(DBPROCESS *dbproc, int column)
Get text timestamp for a column in the current row.
Definition: dblib.c:6531
+
RETCODE dbnullbind(DBPROCESS *dbproc, int column, DBINT *indicator)
Tie a null-indicator to a regular result column.
Definition: dblib.c:2744
+
char * dbcolsource(DBPROCESS *dbproc, int colnum)
Get base database column name for a result set column.
Definition: dblib.c:3148
+
RETCODE dbsetlbool(LOGINREC *login, int value, int which)
Set a boolean value in a LOGINREC structure.
Definition: dblib.c:901
+
int dbmny4cmp(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
Compare two DBMONEY4 values.
Definition: dblib.c:5716
+
RETCODE dbmny4minus(DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
Negate a DBMONEY4 value.
Definition: dblib.c:5550
+
RETCODE dbclropt(DBPROCESS *dbproc, int option, const char param[])
Reset an option.
Definition: dblib.c:6099
+
int dbaltcolid(DBPROCESS *dbproc, int computeid, int column)
Get column ID of a compute column.
Definition: dblib.c:4288
+
DBINT dbaltlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in compute column.
Definition: dblib.c:7141
+
BYTE * dbdata(DBPROCESS *dbproc, int column)
Get address of data in a regular result column.
Definition: dblib.c:3356
+
Definition: sybdb.h:275
+
DBSMALLINT offset
time offset
Definition: sybdb.h:310
+
RETCODE dbprrow(DBPROCESS *dbproc)
Print a result set to stdout.
Definition: dblib.c:3544
+
int dbstrlen(DBPROCESS *dbproc)
Get size of the command buffer, in bytes.
Definition: dblib.c:6295
+
STATUS dbrowtype(DBPROCESS *dbprocess)
Get returned row's type.
Definition: dblib.c:6207
+
RETCODE dbmnyzero(DBPROCESS *dbproc, DBMONEY *dest)
Set a DBMONEY value to zero.
Definition: dblib.c:5328
+
void dbloginfree(LOGINREC *login)
free the LOGINREC
Definition: dblib.c:742
+
int dbmnycmp(DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
Compare two DBMONEY values.
Definition: dblib.c:5270
+
int dbiordesc(DBPROCESS *dbproc)
Get file descriptor of the socket used by a DBPROCESS to read data coming from the server....
Definition: dblib.c:7235
+
RETCODE dbmny4sub(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
Subtract two DBMONEY4 values.
Definition: dblib.c:5628
+
RETCODE dbsetlversion(LOGINREC *login, BYTE version)
Set TDS version for future connections.
Definition: dblib.c:952
+
DBINT dbadlen(DBPROCESS *dbproc, int computeid, int column)
Get size of data in a compute column.
Definition: dblib.c:4314
+
DBBOOL dbisopt(DBPROCESS *dbproc, int option, const char param[])
Get value of an option.
Definition: dblib.c:6167
+
int dbdatecmp(DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
Compare DBDATETIME values, similar to strcmp(3).
Definition: dblib.c:5769
+
RETCODE dbcanquery(DBPROCESS *dbproc)
Cancel the query currently being retrieved, discarding all pending rows.
Definition: dblib.c:6035
+
Definition: sybdb.h:263
+
EHANDLEFUNC dberrhandle(EHANDLEFUNC handler)
Set an error handler, for messages from db-lib.
Definition: dblib.c:5125
+
int dbtds(DBPROCESS *dbprocess)
Get the TDS version in use for dbproc.
Definition: dblib.c:6805
+
RETCODE dbsetnull(DBPROCESS *dbprocess, int bindtype, int bindlen, BYTE *bindval)
Define substitution values to be used when binding null values.
Definition: dblib.c:1966
+
Definition: sybdb.h:374
+
Definition: dblib.h:123
+
DBBOOL dbwillconvert(int srctype, int desttype)
Test whether or not a datatype can be converted to another datatype.
Definition: dblib.c:2878
+
RETCODE dbsetlogintime(int seconds)
Set maximum seconds db-lib waits for a server response to a login attempt.
Definition: dblib.c:4243
+
RETCODE dbgetrow(DBPROCESS *dbproc, DBINT row)
Read a row from the row buffer.
Definition: dblib.c:1934
+
DBUBIGINT time
time, 7 digit precision
Definition: sybdb.h:308
+
RETCODE dbresults(DBPROCESS *dbproc)
Set up query results.
Definition: dblib.c:1698
+
RETCODE dbmny4copy(DBPROCESS *dbprocess, DBMONEY4 *m1, DBMONEY4 *m2)
Copy a DBMONEY4 value.
Definition: dblib.c:5744
+
RETCODE bcp_collen(DBPROCESS *dbproc, DBINT varlen, int table_column)
Set the length of a host variable to be written to a table.
Definition: bcp.c:265
+
RETCODE dbmnycopy(DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
Copy a DBMONEY value.
Definition: dblib.c:6014
+
RETCODE dbsetopt(DBPROCESS *dbproc, int option, const char *char_param, int int_param)
Set db-lib or server option.
Definition: dblib.c:4475
+
const char * dbacolname(DBPROCESS *dbproc, int computeid, int column)
Return name of a computed result column.
Definition: dblib.c:1902
+
int dbnumrets(DBPROCESS *dbproc)
Get count of output parameters filled by a stored procedure.
Definition: dblib.c:4696
+
LOGINREC * dblogin(void)
Allocate a LOGINREC structure.
Definition: dblib.c:710
+
char * dbretname(DBPROCESS *dbproc, int retnum)
Get name of an output parameter filled by a stored procedure.
Definition: dblib.c:4728
+
Definition: dbpivot.c:76
+
RETCODE dbwritetext(DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
Send text or image data to the server.
Definition: dblib.c:6598
+
Definition: sybdb.h:301
+
RETCODE bcp_readfmt(DBPROCESS *dbproc, const char filename[])
Read a format definition file.
Definition: bcp.c:1675
+
RETCODE dbrpcinit(DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
Initialize a remote procedure call.
Definition: rpc.c:72
+
void dbsetuserdata(DBPROCESS *dbproc, BYTE *ptr)
Associate client-allocated (and defined) data with a DBPROCESS.
Definition: dblib.c:5944
+
void dbprhead(DBPROCESS *dbproc)
Print result set headings to stdout.
Definition: dblib.c:3963
+
int dbnumcompute(DBPROCESS *dbprocess)
Get count of COMPUTE clauses for a result set.
Definition: dblib.c:4977
+
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).
Definition: dblib.c:3049
+
Definition: sybdb.h:474
+
RETCODE dbmoretext(DBPROCESS *dbproc, DBINT size, const BYTE text[])
Send chunk of a text/image value to the server.
Definition: dblib.c:6736
+
RETCODE dbbind(DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
Tie a host variable to a resultset column.
Definition: dblib.c:2638
+
DBTYPEINFO * dbcoltypeinfo(DBPROCESS *dbproc, int column)
Get precision and scale information for a regular result column.
Definition: dblib.c:3020
+
RETCODE dbsqlok(DBPROCESS *dbproc)
Wait for results of a query from the server.
Definition: dblib.c:4818
+
int dbgettime(void)
Get maximum seconds db-lib waits for a server response to query.
Definition: dblib.c:4227
+
RETCODE dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
Add two DBMONEY4 values.
Definition: dblib.c:5597
+
RETCODE dbdatecrack(DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *dt)
Break a DBDATETIME value into useful pieces.
Definition: dblib.c:5851
+
RETCODE dbcmdrow(DBPROCESS *dbproc)
See if the current command can return rows.
Definition: dblib.c:4264
+
RETCODE dbmnydec(DBPROCESS *dbproc, DBMONEY *mnyptr)
Subtract $0.0001 from a DBMONEY value.
Definition: dblib.c:5495
+
RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int type, int table_column)
Bind a program host variable to a database column.
Definition: bcp.c:2076
+
RETCODE dbmnymaxneg(DBPROCESS *dbproc, DBMONEY *dest)
Get maximum negative DBMONEY value supported.
Definition: dblib.c:5370
+
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition: bcp.c:543
+
int dbcoltype(DBPROCESS *dbproc, int column)
Get the datatype of a regular result set column.
Definition: dblib.c:2974
+
DBINT dbfirstrow(DBPROCESS *dbproc)
See if a server response has arrived.
Definition: dblib.c:7196
+
RETCODE bcp_exec(DBPROCESS *dbproc, DBINT *rows_copied)
Write a datafile to a table.
Definition: bcp.c:1614
+
char * dbgetchar(DBPROCESS *dbprocess, int n)
Get address of a position in the command buffer.
Definition: dblib.c:6314
+
Definition: sybdb.h:336
+
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition: bcp.c:2034
+
RETCODE bcp_columns(DBPROCESS *dbproc, int host_colcount)
Indicate how many columns are to be found in the datafile.
Definition: bcp.c:300
+
int dbcurcmd(DBPROCESS *dbproc)
Get number of the row just returned.
Definition: dblib.c:6224
+
int dbspid(DBPROCESS *dbproc)
Get server process ID for a DBPROCESS.
Definition: dblib.c:5924
+
BYTE * dbgetuserdata(DBPROCESS *dbproc)
Get address of user-allocated data from a DBPROCESS.
Definition: dblib.c:5962
+
RETCODE dbsetllong(LOGINREC *login, long value, int which)
Set an integer value in a LOGINREC structure.
Definition: dblib.c:830
+
DBINT dbaltutype(DBPROCESS *dbproc, int computeid, int column)
Get user-defined datatype of a compute column.
Definition: dblib.c:7118
+
RETCODE dbaltbind(DBPROCESS *dbprocess, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
Bind a compute column to a program variable.
Definition: dblib.c:4373
+
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition: bcp.c:1380
+
RETCODE dbsetmaxprocs(int maxprocs)
Set maximum simultaneous connections db-lib will open to the server.
Definition: dblib.c:4103
+
DBINT dbconvert_ps(DBPROCESS *dbprocess, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
Convert one datatype to another.
Definition: dblib.c:2304
+
RETCODE dbmny4zero(DBPROCESS *dbproc, DBMONEY4 *dest)
Zero a DBMONEY4 value.
Definition: dblib.c:5574
+
Definition: dbpivot.c:766
+
DBBOOL bcp_getl(LOGINREC *login)
See if BCP_SETL() was used to set the LOGINREC for BCP work.
Definition: bcp.c:705
+
RETCODE dbfcmd(DBPROCESS *dbproc, const char *fmt,...)
printf-like way to form SQL to send to the server.
Definition: dblib.c:1339
+
Definition: sybdb.h:284
+
int dbnumalts(DBPROCESS *dbproc, int computeid)
Get count of columns in a compute row.
Definition: dblib.c:4944
+
STATUS dbreadtext(DBPROCESS *dbproc, void *buf, DBINT bufsize)
Fetch part of a text or image value from the server.
Definition: dblib.c:6667
+
int dbiowdesc(DBPROCESS *dbproc)
Get file descriptor of the socket used by a DBPROCESS to write data coming to the server....
Definition: dblib.c:7251
+
DBINT dbretstatus(DBPROCESS *dbproc)
Fetch status value returned by query or remote procedure call.
Definition: dblib.c:4678
+
RETCODE dbtablecolinfo(DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo)
Definition: dblib.c:6468
+
RETCODE dbuse(DBPROCESS *dbproc, const char *name)
Change current database.
Definition: dblib.c:1450
+
RETCODE dbsqlsend(DBPROCESS *dbproc)
Transmit the command buffer to the server. Non-blocking, does not wait for a response.
Definition: dblib.c:7047
+
RETCODE dbmnymaxpos(DBPROCESS *dbproc, DBMONEY *dest)
Get maximum positive DBMONEY value supported.
Definition: dblib.c:5349
+
Definition: bsqlodbc.c:100
diff -Nru freetds-1.1.6/doc/reference/a00504.map freetds-1.2.3/doc/reference/a00504.map --- freetds-1.1.6/doc/reference/a00504.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00504.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00504.md5 freetds-1.2.3/doc/reference/a00504.md5 --- freetds-1.1.6/doc/reference/a00504.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00504.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +02c6737a17d56cfafb3e3a6f60f25e1d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00504.svg freetds-1.2.3/doc/reference/a00504.svg --- freetds-1.1.6/doc/reference/a00504.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00504.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +include/sybdb.h + + + +Node1 + + +include/sybdb.h + + + + + +Node2 + + +tds_sysdep_public.h + + + + + +Node1->Node2 + + + + + +Node3 + + +float.h + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00505.map freetds-1.2.3/doc/reference/a00505.map --- freetds-1.1.6/doc/reference/a00505.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00505.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00505.md5 freetds-1.2.3/doc/reference/a00505.md5 --- freetds-1.1.6/doc/reference/a00505.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00505.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6f630649a90b653a3795d76b2f279cc4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00505.svg freetds-1.2.3/doc/reference/a00505.svg --- freetds-1.1.6/doc/reference/a00505.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00505.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,109 @@ + + + + + + +include/sybdb.h + + + +Node1 + + +include/sybdb.h + + + + + +Node2 + + +src/dblib/bcp.c + + + + + +Node1->Node2 + + + + + +Node3 + + +src/dblib/dblib.c + + + + + +Node1->Node3 + + + + + +Node4 + + +include/sqldb.h + + + + + +Node1->Node4 + + + + + +Node5 + + +include/sybfront.h + + + + + +Node1->Node5 + + + + + +Node5->Node2 + + + + + +Node5->Node3 + + + + + +Node6 + + +include/sqlfront.h + + + + + +Node5->Node6 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00506_source.html freetds-1.2.3/doc/reference/a00506_source.html --- freetds-1.1.6/doc/reference/a00506_source.html 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00506_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: include/tds_sysdep_public.h Source File +FreeTDS API: include/syberror.h Source File @@ -29,18 +29,21 @@
- + +/* @license-end */
-
tds_sysdep_public.h
+
syberror.h
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
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,
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_sysdep_public_h_
21 #define _tds_sysdep_public_h_
22 
23 /*
24  * This file is publicly installed.
25  * MUST not include config.h
26  */
27 
28 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
29 # include <stdint.h>
30 #else
31 typedef signed char int8_t; /* 8-bit int */
32 typedef unsigned char uint8_t; /* 8-bit int */
33 /*
34  * This is where platform-specific changes need to be made.
35  */
36 # if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
37 # include <winsock2.h>
38 # include <ws2tcpip.h>
39 # include <windows.h>
40  typedef signed short int16_t; /* 16-bit int */
41  typedef unsigned short uint16_t; /* 16-bit int */
42  typedef signed int int32_t; /* 32-bit int */
43  typedef unsigned int uint32_t; /* 32-bit int */
44  typedef signed __int64 int64_t; /* 64-bit int */
45  typedef unsigned __int64 uint64_t; /* 64-bit int */
46 # if !defined(WIN64) && !defined(_WIN64)
47  typedef signed int intptr_t; /* 32-bit int */
48  typedef unsigned int uintptr_t; /* 32-bit int */
49 # else
50  typedef signed __int64 intptr_t; /* 64-bit int */
51  typedef unsigned __int64 uintptr_t; /* 64-bit int */
52 # endif
53 # else /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */
54  typedef signed short int16_t; /* 16-bit int */
55  typedef unsigned short uint16_t; /* 16-bit int */
56  typedef signed int int32_t; /* 32-bit int */
57  typedef unsigned int uint32_t; /* 32-bit int */
58  typedef signed long int64_t; /* 64-bit int */
59  typedef unsigned long uint64_t; /* 64-bit int */
60  typedef signed long intptr_t;
61  typedef unsigned long uintptr_t;
62 # endif
63 #endif
64 
65 #include <float.h>
66 
67 /* try to understand float sizes using float.h constants */
68 #if FLT_RADIX == 2
69 # if FLT_MANT_DIG == 24 && FLT_MAX_EXP == 128
70 # define tds_sysdep_real32_type float /* 32-bit real */
71 # elif DBL_MANT_DIG == 24 && DBL_MAX_EXP == 128
72 # define tds_sysdep_real32_type double /* 32-bit real */
73 # elif LDBL_MANT_DIG == 24 && LDBL_MAX_EXP == 128
74 # define tds_sysdep_real32_type long double /* 32-bit real */
75 # endif
76 # if FLT_MANT_DIG == 53 && FLT_MAX_EXP == 1024
77 # define tds_sysdep_real64_type float /* 64-bit real */
78 # elif DBL_MANT_DIG == 53 && DBL_MAX_EXP == 1024
79 # define tds_sysdep_real64_type double /* 64-bit real */
80 # elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
81 # define tds_sysdep_real64_type long double /* 64-bit real */
82 # endif
83 # if !defined(tds_sysdep_real32_type) || !defined(tds_sysdep_real64_type)
84 # error Some float type was not found!
85 # endif
86 #else
87 # if FLT_DIG == 6 && FLT_MAX_10_EXP == 38
88 # define tds_sysdep_real32_type float /* 32-bit real */
89 # elif DBL_DIG == 6 && DBL_MAX_10_EXP == 38
90 # define tds_sysdep_real32_type double /* 32-bit real */
91 # elif LDBL_DIG == 6 && LDBL_MAX_10_EXP == 38
92 # define tds_sysdep_real32_type long double /* 32-bit real */
93 # endif
94 # if FLT_DIG == 15 && FLT_MAX_10_EXP == 308
95 # define tds_sysdep_real64_type float /* 64-bit real */
96 # elif DBL_DIG == 15 && DBL_MAX_10_EXP == 308
97 # define tds_sysdep_real64_type double /* 64-bit real */
98 # elif LDBL_DIG == 15 && LDBL_MAX_10_EXP == 308
99 # define tds_sysdep_real64_type long double /* 64-bit real */
100 # endif
101 #endif
102 
103 /* fall back to configure.ac types */
104 #ifndef tds_sysdep_real32_type
105 #define tds_sysdep_real32_type float /* 32-bit real */
106 #endif /* !tds_sysdep_real32_type */
107 
108 #ifndef tds_sysdep_real64_type
109 #define tds_sysdep_real64_type double /* 64-bit real */
110 #endif /* !tds_sysdep_real64_type */
111 
112 #if !defined(MSDBLIB) && !defined(SYBDBLIB)
113 #define SYBDBLIB 1
114 #endif
115 #if defined(MSDBLIB) && defined(SYBDBLIB)
116 #error MSDBLIB and SYBDBLIB cannot both be defined
117 #endif
118 
119 #endif /* _tds_sysdep_public_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
+
24 extern "C"
+
25 {
+
26 #if 0
+
27 }
+
28 #endif
+
29 #endif
+
30 
+
31 static const char rcsid_syberror_h[] = "$Id: syberror.h,v 1.4 2004-10-28 12:42:12 freddy77 Exp $";
+
32 static 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
+
diff -Nru freetds-1.1.6/doc/reference/a00509_source.html freetds-1.2.3/doc/reference/a00509_source.html --- freetds-1.1.6/doc/reference/a00509_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00509_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: win32/freetds/sysconfdir.h Source File +FreeTDS API: include/sybfront.h Source File @@ -29,18 +29,21 @@ - + +/* @license-end */
-
sysconfdir.h
+
sybfront.h
-
1 #define FREETDS_SYSCONFDIR "c:"
+
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 SYBFRONT_h
+
21 #define SYBFRONT_h
+
22 
+
23 #include "sybdb.h"
+
24 
+
25 #ifdef __cplusplus
+
26 extern "C"
+
27 {
+
28 #if 0
+
29 }
+
30 #endif
+
31 #endif
+
32 
+
33 static const char rcsid_sybfront_h[] = "$Id: sybfront.h,v 1.3 2004-10-28 12:42:12 freddy77 Exp $";
+
34 static const void *const no_unused_sybfront_h_warn[] = { rcsid_sybfront_h, no_unused_sybfront_h_warn };
+
35 
+
36 
+
37 
+
38 #ifdef __cplusplus
+
39 #if 0
+
40 {
+
41 #endif
+
42 }
+
43 #endif
+
44 
+
45 
+
46 #endif
+
+
Primary include file for db-lib applications.
diff -Nru freetds-1.1.6/doc/reference/a00512_source.html freetds-1.2.3/doc/reference/a00512_source.html --- freetds-1.1.6/doc/reference/a00512_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00512_source.html 2020-07-09 09:01:53.000000000 +0000 @@ -0,0 +1,201 @@ + + + + + + + +FreeTDS API: include/tds_sysdep_public.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
tds_sysdep_public.h
+
+
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
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,
+
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_sysdep_public_h_
+
21 #define _tds_sysdep_public_h_
+
22 
+
23 /*
+
24  * This file is publicly installed.
+
25  * MUST not include config.h
+
26  */
+
27 
+
28 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
29 # include <stdint.h>
+
30 #elif defined(__sun) && defined(__SVR4)
+
31 # include <inttypes.h>
+
32 #else
+
33 typedef signed char int8_t; /* 8-bit int */
+
34 typedef unsigned char uint8_t; /* 8-bit int */
+
35 /*
+
36  * This is where platform-specific changes need to be made.
+
37  */
+
38 # if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
+
39 # include <winsock2.h>
+
40 # include <ws2tcpip.h>
+
41 # include <windows.h>
+
42  typedef signed short int16_t; /* 16-bit int */
+
43  typedef unsigned short uint16_t; /* 16-bit int */
+
44  typedef signed int int32_t; /* 32-bit int */
+
45  typedef unsigned int uint32_t; /* 32-bit int */
+
46  typedef signed __int64 int64_t; /* 64-bit int */
+
47  typedef unsigned __int64 uint64_t; /* 64-bit int */
+
48 # if !defined(WIN64) && !defined(_WIN64)
+
49  typedef signed int intptr_t; /* 32-bit int */
+
50  typedef unsigned int uintptr_t; /* 32-bit int */
+
51 # else
+
52  typedef signed __int64 intptr_t; /* 64-bit int */
+
53  typedef unsigned __int64 uintptr_t; /* 64-bit int */
+
54 # endif
+
55 # else /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */
+
56  typedef signed short int16_t; /* 16-bit int */
+
57  typedef unsigned short uint16_t; /* 16-bit int */
+
58  typedef signed int int32_t; /* 32-bit int */
+
59  typedef unsigned int uint32_t; /* 32-bit int */
+
60  typedef signed long int64_t; /* 64-bit int */
+
61  typedef unsigned long uint64_t; /* 64-bit int */
+
62  typedef signed long intptr_t;
+
63  typedef unsigned long uintptr_t;
+
64 # endif
+
65 #endif
+
66 
+
67 #include <float.h>
+
68 
+
69 /* try to understand float sizes using float.h constants */
+
70 #if FLT_RADIX == 2
+
71 # if FLT_MANT_DIG == 24 && FLT_MAX_EXP == 128
+
72 # define tds_sysdep_real32_type float /* 32-bit real */
+
73 # elif DBL_MANT_DIG == 24 && DBL_MAX_EXP == 128
+
74 # define tds_sysdep_real32_type double /* 32-bit real */
+
75 # elif LDBL_MANT_DIG == 24 && LDBL_MAX_EXP == 128
+
76 # define tds_sysdep_real32_type long double /* 32-bit real */
+
77 # endif
+
78 # if FLT_MANT_DIG == 53 && FLT_MAX_EXP == 1024
+
79 # define tds_sysdep_real64_type float /* 64-bit real */
+
80 # elif DBL_MANT_DIG == 53 && DBL_MAX_EXP == 1024
+
81 # define tds_sysdep_real64_type double /* 64-bit real */
+
82 # elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+
83 # define tds_sysdep_real64_type long double /* 64-bit real */
+
84 # endif
+
85 # if !defined(tds_sysdep_real32_type) || !defined(tds_sysdep_real64_type)
+
86 # error Some float type was not found!
+
87 # endif
+
88 #else
+
89 # if FLT_DIG == 6 && FLT_MAX_10_EXP == 38
+
90 # define tds_sysdep_real32_type float /* 32-bit real */
+
91 # elif DBL_DIG == 6 && DBL_MAX_10_EXP == 38
+
92 # define tds_sysdep_real32_type double /* 32-bit real */
+
93 # elif LDBL_DIG == 6 && LDBL_MAX_10_EXP == 38
+
94 # define tds_sysdep_real32_type long double /* 32-bit real */
+
95 # endif
+
96 # if FLT_DIG == 15 && FLT_MAX_10_EXP == 308
+
97 # define tds_sysdep_real64_type float /* 64-bit real */
+
98 # elif DBL_DIG == 15 && DBL_MAX_10_EXP == 308
+
99 # define tds_sysdep_real64_type double /* 64-bit real */
+
100 # elif LDBL_DIG == 15 && LDBL_MAX_10_EXP == 308
+
101 # define tds_sysdep_real64_type long double /* 64-bit real */
+
102 # endif
+
103 #endif
+
104 
+
105 /* fall back to configure.ac types */
+
106 #ifndef tds_sysdep_real32_type
+
107 #define tds_sysdep_real32_type float /* 32-bit real */
+
108 #endif /* !tds_sysdep_real32_type */
+
109 
+
110 #ifndef tds_sysdep_real64_type
+
111 #define tds_sysdep_real64_type double /* 64-bit real */
+
112 #endif /* !tds_sysdep_real64_type */
+
113 
+
114 #if !defined(MSDBLIB) && !defined(SYBDBLIB)
+
115 #define SYBDBLIB 1
+
116 #endif
+
117 #if defined(MSDBLIB) && defined(SYBDBLIB)
+
118 #error MSDBLIB and SYBDBLIB cannot both be defined
+
119 #endif
+
120 
+
121 #endif /* _tds_sysdep_public_h_ */
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00515_source.html freetds-1.2.3/doc/reference/a00515_source.html --- freetds-1.1.6/doc/reference/a00515_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00515_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: win32/freetds/sysconfdir.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
sysconfdir.h
+
+
+
1 #define FREETDS_SYSCONFDIR "c:"
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00518_source.html freetds-1.2.3/doc/reference/a00518_source.html --- freetds-1.1.6/doc/reference/a00518_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00518_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: vms/stdint.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
stdint.h
-
-
-
1 #include <inttypes.h>
- - - - diff -Nru freetds-1.1.6/doc/reference/a00521_source.html freetds-1.2.3/doc/reference/a00521_source.html --- freetds-1.1.6/doc/reference/a00521_source.html 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00521_source.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: vms/vargdefs.h Source File - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
vargdefs.h
-
-
-
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
2  * Copyright (C) 2010 Craig A. Berry craigberry@mac.com
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  * Definitions used by the VMSARG parsing and mapping routines.
21  *
22  * Based on VMSARG Version 2.0 by Tom Wade <t.wade@vms.eurokom.ei>
23  *
24  * Extensively revised for inclusion in FreeTDS by Craig A. Berry.
25  *
26  * From the VMSARG 2.0 documentation:
27  *
28  * The product is aimed at . . . people who are porting a package from
29  * Unix to VMS. This software is made freely available for inclusion in
30  * such products, whether they are freeware, public domain or commercial.
31  * No licensing is required.
32  */
33 
34 #if __CRTL_VER >= 70302000 && !defined(__VAX)
35 #define QUAL_LENGTH (4000+1)
36 #define S_LENGTH (4096+1)
37 #else
38 #define QUAL_LENGTH (255+1)
39 #define S_LENGTH (1024+1)
40 #endif
41 
42 #define MAX_ARGS 255
43 
44 /* bit fields for arg flags.
45 */
46 
47 #define VARG_M_AFFIRM 1
48 #define VARG_M_NEGATIVE 2
49 #define VARG_M_KEYWORDS 4
50 #define VARG_M_SEPARATOR 8
51 #define VARG_M_DATE 16
52 #define VARG_M_APPEND 32
53 #define VARG_M_HELP 64
54 
55 /* bit fields for action flags.
56 */
57 
58 #define VARGACT_M_UPPER 1
59 #define VARGACT_M_LOWER 2
60 #define VARGACT_M_SPECIAL 4
61 #define VARGACT_M_ESCAPE 8
62 #define VARGACT_M_DOUBLE 16
63 #define VARGACT_M_IMAGE 32
64 #define VARGACT_M_SYMBOL 64
65 #define VARGACT_M_COMMAND 128
66 #define VARGACT_M_RETURN 256
67 #define VARGACT_M_PROTECT 512
68 #define VARGACT_M_UNIXARG 1024
69 
70 #define VARGACT_M_PROTMASK 1+2+4+8+16
- - - - diff -Nru freetds-1.1.6/doc/reference/a00524_source.html freetds-1.2.3/doc/reference/a00524_source.html --- freetds-1.1.6/doc/reference/a00524_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00524_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,256 @@ + + + + + + + +FreeTDS API: vms/stdint.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
stdint.h
+
+
+
1 #include <inttypes.h>
+
+
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition: read.c:100
+
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
+
Definition: des.h:16
+
static TDSRET tds_process_compute(TDSSOCKET *tds)
tds_process_compute() processes compute rows and places them in the row buffer.
Definition: token.c:1899
+
static TDSRET tds_process_nbcrow(TDSSOCKET *tds)
tds_process_nbcrow() processes rows and places them in the row buffer.
Definition: token.c:1962
+
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server
Definition: tds.h:1108
+
bool has_status
true is ret_status is valid
Definition: tds.h:1246
+
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition: mem.c:524
+
static TDSDYNAMIC * tds_process_dynamic(TDSSOCKET *tds)
tds_process_dynamic() finds the element of the dyns array for the id
Definition: token.c:2603
+
Definition: thread.h:250
+
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition: mem.c:320
+
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition: query.c:1797
+
bool bulk_query
true is query sent was a bulk query so we need to switch state to QUERYING
Definition: tds.h:1245
+
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition: query.c:2171
+
@ TDS_DONE_MORE_RESULTS
more results follow
Definition: tds.h:253
+
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition: tds.h:994
+
static TDSRET tds_process_col_fmt(TDSSOCKET *tds)
tds_process_col_fmt() is the other half of result set processing under TDS 4.2.
Definition: token.c:1048
+
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition: tdsstring.c:165
+
static TDSRET tds5_process_optioncmd(TDSSOCKET *tds)
Process option cmd results.
Definition: token.c:2968
+
DSTR cafile
certificate authorities file
Definition: tds.h:531
+
void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
Initialize a data output stream.
Definition: stream.c:244
+
DSTR server_name
server name (in freetds.conf)
Definition: tds.h:519
+
void tds_dstr_free(DSTR *s)
free string
Definition: tdsstring.c:62
+
@ TDS_IDLE
no data expected
Definition: tds.h:791
+
unsigned char * in_buf
Input buffer.
Definition: tds.h:1178
+
TDSCURSOR * cur_cursor
cursor in use
Definition: tds.h:1244
+
void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Set current dynamic.
Definition: query.c:192
+
input stream to read data from a static buffer
Definition: stream.h:81
+
TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id)
Finds a dynamic given string id.
Definition: token.c:2583
+
static TDSRET tds_process_tabname(TDSSOCKET *tds)
Process list of table from network.
Definition: token.c:1184
+ +
#define TDS_SYB_VER(maj, min, x)
Calc a version number for Sybase.
Definition: tds.h:1724
+
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
+
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition: packet.c:527
+
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
+
char * database
database name
Definition: tds.h:971
+
static TDSRET tds5_process_result(TDSSOCKET *tds)
tds5_process_result() is the TDS 5.0 result set processing routine.
Definition: token.c:1730
+
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition: tds.h:1255
+
TDSLOGIN * login
config for login stuff.
Definition: tds.h:1259
+
TDS_TINYINT column_prec
precision for decimal/numeric
Definition: tds.h:704
+
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition: tdsstring.c:107
+
bool defer_close
true if dynamic was marker to be closed when connection is idle
Definition: tds.h:998
+
char * name
string name
Definition: token.c:912
+
Hold information for any results.
Definition: tds.h:770
+
Definition: iconv.h:92
+
unsigned char * out_buf
Output buffer.
Definition: tds.h:1186
+
@ TDS_SENDING
client would send data
Definition: tds.h:793
+
Definition: tds.h:1048
+
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition: tds.h:1094
+
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition: tds.h:942
+
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.
Definition: log.c:256
+
TDSENV env
environment is shared between all sessions
Definition: tds.h:1102
+
Information for a server connection.
Definition: tds.h:1164
+
Definition: tds.h:505
+
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition: mem.c:284
+
DSTR crlfile
certificate revocation file
Definition: tds.h:532
+
static TDSRET tds_process_auth(TDSSOCKET *tds)
Process authentication token.
Definition: token.c:456
+
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:877
+
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition: read.c:127
+
unsigned char canonic
internal numeric index into array of all encodings
Definition: tds.h:625
+
static const char * tds_pr_op(int op)
Returns string representation for a given operation.
Definition: token.c:3019
+
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server
Definition: tds.h:1113
+
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition: tdsstring.c:55
+
Definition: dlist.h:23
+
Information relevant to libiconv.
Definition: tds.h:619
+
bool in_row
true if we are getting rows
Definition: tds.h:1247
+
static TDSRET tds_process_cursor_tokens(TDSSOCKET *tds)
Reads cursor command results.
Definition: token.c:2925
+
static TDSRET tds_process_row(TDSSOCKET *tds)
tds_process_row() processes rows and places them in the row buffer.
Definition: token.c:1938
+
Definition: poll.h:52
+
const char * tds_prtype(int type)
Returns string representation of the given type.
Definition: token.c:3052
+
char * charset
character set encoding
Definition: tds.h:969
+
TDSRET tds_process_login_tokens(TDSSOCKET *tds)
tds_process_login_tokens() is called after sending the login packet to the server.
Definition: token.c:410
+
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition: tdsstring.c:77
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:940
+
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition: tds.h:1257
+
int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen)
Loops until we have received some characters return -1 on failure.
Definition: net.c:916
+
Definition: ptw32_MCS_lock.c:98
+
TDSRESULTINFO * current_results
Current query information.
Definition: tds.h:1239
+
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition: read.c:72
+
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition: string.h:60
+
Definition: md4.h:9
+
static TDSRET tds_process_compute_result(TDSSOCKET *tds)
tds_process_compute_result() processes compute result sets.
Definition: token.c:1410
+
int determine_adjusted_size(const TDSICONV *char_conv, int size)
Allow for maximum possible size of converted data, while being careful about integer division truncat...
Definition: token.c:3280
+
static TDSRET tds7_process_compute_result(TDSSOCKET *tds)
tds7_process_compute_result() processes compute result sets for TDS 7/8.
Definition: token.c:2833
+
int tds_put_string(TDSSOCKET *tds, const char *s, int len)
Output a string to wire automatic translate string to unicode if needed.
Definition: write.c:97
+
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t need)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition: read.c:230
+
static TDSRET tds_process_compute_names(TDSSOCKET *tds)
tds_process_compute_names() processes compute result sets.
Definition: token.c:2773
+
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:756
+
struct tds_cursor * next
next in linked list, keep first
Definition: tds.h:939
+
void tdsdump_log(const char *file, unsigned int level_line, const char *fmt,...)
Write a message to the debug log.
Definition: log.c:354
+
static TDSRET tds_process_param_result_tokens(TDSSOCKET *tds)
Process parameters from networks.
Definition: token.c:1354
+
TDS_INT column_size
maximun size of data.
Definition: tds.h:695
+
static TDSRET tds_process_param_result(TDSSOCKET *tds, TDSPARAMINFO **info)
process output parameters of a stored procedure.
Definition: token.c:1298
+
static TDSRET tds_process_params_result_token(TDSSOCKET *tds)
tds_process_params_result_token() processes params on TDS5.
Definition: token.c:1384
+
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
+
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition: net.c:548
+
Holds information for a dynamic (also called prepared) query.
Definition: tds.h:978
+
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition: string.h:78
+
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:1249
+
static int tds_alloc_get_string(TDSSOCKET *tds, char **string, size_t len)
Reads a string from wire in a new allocated buffer.
Definition: token.c:2523
+
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
+
bool defer_close
true if cursor was marker to be closed when connection is idle
Definition: tds.h:947
+
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition: token.c:530
+
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:2750
+
const char * name
name of the encoding (ie UTF-8)
Definition: tds.h:621
+
static void tds_free_namelist(struct namelist *head)
Frees list of names.
Definition: token.c:922
+
@ TDS_DONE_CANCELLED
acknowledging an attention command (usually a cancel)
Definition: tds.h:258
+
TDS_TINYINT column_scale
scale for decimal/numeric
Definition: tds.h:705
+
@ TDS_DONE_ERROR
error occurred
Definition: tds.h:254
+
output stream to write data to tds protocol
Definition: stream.h:72
+
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition: util.c:58
+
static TDSRET tds7_get_data_info(TDSSOCKET *tds, TDSCOLUMN *curcol)
Reads data information from wire.
Definition: token.c:1510
+
Holds informations about a cursor.
Definition: tds.h:938
+
unsigned char out_flag
output buffer type
Definition: tds.h:1197
+
Holds list of names.
Definition: token.c:910
+
struct namelist * next
next element in the list
Definition: token.c:914
+
static const char * tds_token_name(unsigned char marker)
Returns string representation for a given token type.
Definition: token.c:3126
+
Definition: tds.h:877
+
static int tds71_read_table_names(TDSSOCKET *tds, int remainder, struct namelist **p_head)
Reads table names for TDS 7.1+.
Definition: token.c:1101
+
static void adjust_character_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Adjust column size according to client's encoding.
Definition: token.c:3222
+
unsigned out_pos
current position in out_buf
Definition: tds.h:1194
+
TDS_INT num_id
numeric id for mssql7+
Definition: tds.h:982
+
unsigned int pending_close
true is connection has pending closing (cursors or dynamic)
Definition: tds.h:1124
+
static TDSRET tds_process_colinfo(TDSSOCKET *tds, char **names, int num_names)
Reads column information.
Definition: token.c:1233
+
static void tds_process_pending_closes(TDSSOCKET *tds)
Attempt to close all deferred closes (dynamics and cursors).
Definition: token.c:2014
+
TDSPARAMINFO * res_info
query results
Definition: tds.h:1000
+
static TDSRET tds_process_info(TDSSOCKET *tds, int marker)
tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's me...
Definition: token.c:2328
+
char id[30]
id of dynamic.
Definition: tds.h:988
+
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition: tds.h:737
+
Structure to hold a string.
Definition: string.h:36
+
TDSICONV * char_conv
refers to previously allocated iconv information
Definition: tds.h:713
+
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition: tds.h:702
+
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
+
static TDSRET tds5_process_result2(TDSSOCKET *tds)
tds5_process_result2() is the new TDS 5.0 result set processing routine.
Definition: token.c:1777
+
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition: log.c:58
+
static TDSRET tds_process_dyn_result(TDSSOCKET *tds)
Process results from dynamic.
Definition: token.c:2639
+
static int tds_read_namelist(TDSSOCKET *tds, int remainder, struct namelist **p_head, int large)
Reads list of names (usually table names)
Definition: token.c:942
+
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition: tds.h:980
+
unsigned in_len
input buffer length
Definition: tds.h:1195
+
Definition: thread.h:278
+
struct tds_dynamic * next
next in linked list, keep first
Definition: tds.h:979
+
TDS_INT ret_status
return status from store procedure
Definition: tds.h:1251
+
const struct tds_dstr tds_str_empty
Internal representation for an empty string.
Definition: tdsstring.c:45
+
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition: read.c:113
+
@ TDS_DONE_COUNT
count field in packet is valid
Definition: tds.h:257
+
void tds_release_dynamic(TDSDYNAMIC **pdyn)
Frees dynamic statement.
Definition: mem.c:253
+
void tdsdump_col(const TDSCOLUMN *col)
Write a column value to the debug log.
Definition: log.c:408
+
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition: tdsstring.c:134
+
@ TDS_PENDING
cilent is waiting for data
Definition: tds.h:794
+
Provide poll call where missing.
+
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition: tds.h:1192
+
int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
Definition: net.c:987
+
static TDSRET tds7_process_result(TDSSOCKET *tds)
tds7_process_result() is the TDS 7.0 result set processing routine.
Definition: token.c:1567
+
Definition: md5.h:8
+
Metadata about columns in regular and compute rows.
Definition: tds.h:690
+
static TDSRET tds_get_data_info(TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
Reads data metadata from wire.
Definition: token.c:1642
+
static TDSRET tds5_process_dyn_result2(TDSSOCKET *tds)
Process new TDS 5.0 token for describing output parameters.
Definition: token.c:2681
+
@ TDS_DEAD
no connection
Definition: tds.h:796
+
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition: write.c:224
+
Definition: tds.h:1092
+
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition: token.c:2550
+
#define TDS_IS_MSSQL(x)
Check if product is Microsft SQL Server.
Definition: tds.h:1715
+
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition: tds.h:697
+
static TDSRET tds_process_col_name(TDSSOCKET *tds)
tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names,...
Definition: token.c:1000
+
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 ot...
Definition: token.c:121
+
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition: tdsstring.c:145
+
static TDSRET tds_process_end(TDSSOCKET *tds, int marker, int *flags_parm)
tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens.
Definition: token.c:2078
+
TDS_CURSOR_STATUS status
cursor parameter
Definition: tds.h:954
+
static TDSRET tds_process_env_chg(TDSSOCKET *tds)
tds_process_env_chg() when ever certain things change on the server, such as database,...
Definition: token.c:2191
+
unsigned in_pos
current position in in_buf
Definition: tds.h:1193
+
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition: mem.c:364
+
@ TDS_READING
client is reading data
Definition: tds.h:795
+
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition: query.c:3006
+
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition: tdsstring.c:122
+
Definition: vstrbuild.c:37
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00527_source.html freetds-1.2.3/doc/reference/a00527_source.html --- freetds-1.1.6/doc/reference/a00527_source.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00527_source.html 2020-07-09 09:01:56.000000000 +0000 @@ -0,0 +1,150 @@ + + + + + + + +FreeTDS API: vms/vargdefs.h Source File + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vargdefs.h
+
+
+
1 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
+
2  * Copyright (C) 2010 Craig A. Berry craigberry@mac.com
+
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  * Definitions used by the VMSARG parsing and mapping routines.
+
21  *
+
22  * Based on VMSARG Version 2.0 by Tom Wade <t.wade@vms.eurokom.ei>
+
23  *
+
24  * Extensively revised for inclusion in FreeTDS by Craig A. Berry.
+
25  *
+
26  * From the VMSARG 2.0 documentation:
+
27  *
+
28  * The product is aimed at . . . people who are porting a package from
+
29  * Unix to VMS. This software is made freely available for inclusion in
+
30  * such products, whether they are freeware, public domain or commercial.
+
31  * No licensing is required.
+
32  */
+
33 
+
34 #if __CRTL_VER >= 70302000 && !defined(__VAX)
+
35 #define QUAL_LENGTH (4000+1)
+
36 #define S_LENGTH (4096+1)
+
37 #else
+
38 #define QUAL_LENGTH (255+1)
+
39 #define S_LENGTH (1024+1)
+
40 #endif
+
41 
+
42 #define MAX_ARGS 255
+
43 
+
44 /* bit fields for arg flags.
+
45 */
+
46 
+
47 #define VARG_M_AFFIRM 1
+
48 #define VARG_M_NEGATIVE 2
+
49 #define VARG_M_KEYWORDS 4
+
50 #define VARG_M_SEPARATOR 8
+
51 #define VARG_M_DATE 16
+
52 #define VARG_M_APPEND 32
+
53 #define VARG_M_HELP 64
+
54 
+
55 /* bit fields for action flags.
+
56 */
+
57 
+
58 #define VARGACT_M_UPPER 1
+
59 #define VARGACT_M_LOWER 2
+
60 #define VARGACT_M_SPECIAL 4
+
61 #define VARGACT_M_ESCAPE 8
+
62 #define VARGACT_M_DOUBLE 16
+
63 #define VARGACT_M_IMAGE 32
+
64 #define VARGACT_M_SYMBOL 64
+
65 #define VARGACT_M_COMMAND 128
+
66 #define VARGACT_M_RETURN 256
+
67 #define VARGACT_M_PROTECT 512
+
68 #define VARGACT_M_UNIXARG 1024
+
69 
+
70 #define VARGACT_M_PROTMASK 1+2+4+8+16
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/a00536.html freetds-1.2.3/doc/reference/a00536.html --- freetds-1.1.6/doc/reference/a00536.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00536.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,121 +0,0 @@ - - - - - - - -FreeTDS API: Todo List - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Todo List
-
-
-
-
Member bcp_colfmt_ps (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)
-
Not implemented.
-
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)
-
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.

-
-
Member dbcurcmd (DBPROCESS *dbproc)
-
Unimplemented.
-
Member dbcurrow (DBPROCESS *dbproc)
-
Unimplemented.
-
Member dbexit ()
-
breaks if ctlib/dblib used in same process.
-
Member dbfirstrow (DBPROCESS *dbproc)
-
Unimplemented.
-
Member dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
-
Check return value of called functions and return FAIL if appropriate.
-
Member dbretdata (DBPROCESS *dbproc, int retnum)
-
Handle blobs.
-
Member dbsetlbool (LOGINREC *login, int value, int which)
-
DBSETNOSHORT, DBSETENCRYPT, DBSETLABELED
-
Member DBSETLENCRYPT (x, y)
-
Unimplemented.
-
Member dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
-
Implement more options.
-
Member tds_iconv (TDSSOCKET *tds, TDSICONV *conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
-

Check for variable multibyte non-UTF-8 input character set.

-

Use more robust error message generation.

-

For reads, cope with outbuf encodings that don't have the equivalent of an ASCII '?'.

-

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
-
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.

-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00537.html freetds-1.2.3/doc/reference/a00537.html --- freetds-1.1.6/doc/reference/a00537.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00537.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Bug List - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Bug List
-
-
-
-
Member dbcolname (DBPROCESS *dbproc, int column)
-
Relies on ASCII column names, post iconv conversion. Will not work as described for UTF-8 or UCS-2 clients. But maybe it shouldn't.
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00538.html freetds-1.2.3/doc/reference/a00538.html --- freetds-1.1.6/doc/reference/a00538.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00538.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,288 +0,0 @@ - - - - - - - -FreeTDS API: The db-lib API - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
- -
-
The db-lib API
-
-
- -

Functions callable by db-lib client programs. -More...

-
-Collaboration diagram for The db-lib API:
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 Primary functions
 Core functions needed by most db-lib programs.
 
 Remote Procedure functions
 Functions used with stored procedures.
 
 Bulk copy functions
 Functions to bulk-copy (a/k/a bcp) data to/from the database.
 
 Money functions
 Functions to manipulate the MONEY datatype.
 
 Datetime functions
 Functions to manipulate DBDATETIME structures.
 
 Internals
 Functions called within db-lib for self-help.
 
 Unimplemented
 Functions thus far not implemented in the FreeTDS db-lib implementation.
 
- - - - - - - - - - - - - - - - -

-Macros

#define BCP_SETL(x, y)   dbsetlbool((x), (y), DBSETBCP)
 Enable (or prevent) bcp operations for connections made with a login. More...
 
#define DBSETLAPP(x, y)   dbsetlname((x), (y), DBSETAPP)
 Set the (client) application name in the login packet. More...
 
#define DBSETLHOST(x, y)   dbsetlname((x), (y), DBSETHOST)
 Set the (client) host name in the login packet. More...
 
#define DBSETLPWD(x, y)   dbsetlname((x), (y), DBSETPWD)
 Set the password in the login packet. More...
 
#define DBSETLUSER(x, y)   dbsetlname((x), (y), DBSETUSER)
 Set the username in the login packet. More...
 
-

Detailed Description

-

Functions callable by db-lib client programs.

-

The db_lib interface is implemented by both Sybase and Microsoft. FreeTDS seeks to implement first the intersection of the functions defined by the vendors.

-

Macro Definition Documentation

- -

§ BCP_SETL

- -
-
- - - - - - - - - - - - - - - - - - -
BCP_SETL( x,
 
)   dbsetlbool((x), (y), DBSETBCP)
-
- -

Enable (or prevent) bcp operations for connections made with a login.

-
See also
bcp_setl()
- -
-
- -

§ DBSETLAPP

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLAPP( x,
 
)   dbsetlname((x), (y), DBSETAPP)
-
- -

Set the (client) application name in the login packet.

-
See also
dbsetlapp()
- -
-
- -

§ DBSETLHOST

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLHOST( x,
 
)   dbsetlname((x), (y), DBSETHOST)
-
- -

Set the (client) host name in the login packet.

-
See also
dbsetlhost()
- -
-
- -

§ DBSETLPWD

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLPWD( x,
 
)   dbsetlname((x), (y), DBSETPWD)
-
- -

Set the password in the login packet.

-
See also
dbsetlpwd()
- -
-
- -

§ DBSETLUSER

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLUSER( x,
 
)   dbsetlname((x), (y), DBSETUSER)
-
- -

Set the username in the login packet.

-
See also
dbsetluser()
- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00538.map freetds-1.2.3/doc/reference/a00538.map --- freetds-1.1.6/doc/reference/a00538.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00538.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00538.md5 freetds-1.2.3/doc/reference/a00538.md5 --- freetds-1.1.6/doc/reference/a00538.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00538.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f83b8f5bba62a5df1e087f6168dbec94 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00538.svg freetds-1.2.3/doc/reference/a00538.svg --- freetds-1.1.6/doc/reference/a00538.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00538.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,109 +0,0 @@ - - - - - - -The db-lib API - - -Node0 - -The db-lib API - - -Node2 - - -Remote Procedure functions - - - - -Node0->Node2 - - - - -Node4 - - -Money functions - - - - -Node0->Node4 - - - - -Node6 - - -Internals - - - - -Node0->Node6 - - - - -Node1 - - -Primary functions - - - - -Node0->Node1 - - - - -Node5 - - -Datetime functions - - - - -Node0->Node5 - - - - -Node7 - - -Unimplemented - - - - -Node0->Node7 - - - - -Node3 - - -Bulk copy functions - - - - -Node0->Node3 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map freetds-1.2.3/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ad51bd38724f7d715640dce0ab4c1385 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbclrbuf - - -Node54 - -dbclrbuf - - -Node55 - - -tdsdump_log - - - - -Node54->Node55 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map freetds-1.2.3/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fa036c1736f13584706b03189adafe06 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dblogin - - -Node134 - -dblogin - - -Node135 - - -tdsdump_log - - - - -Node134->Node135 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map freetds-1.2.3/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c2d05a10ea7317994a3bf220887349e8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbfreebuf - - -Node106 - -dbfreebuf - - -Node107 - - -tdsdump_log - - - - -Node106->Node107 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map freetds-1.2.3/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0671d907e7469eed986263fe8ae588da \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbstrlen - - -Node250 - -dbstrlen - - -Node251 - - -tdsdump_log - - - - -Node250->Node251 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.map freetds-1.2.3/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5263e82a0c1289cba166f5c7e2d4639c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbspid - - -Node222 - -dbspid - - -Node223 - - -tdsdump_log - - - - -Node222->Node223 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.map freetds-1.2.3/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -35e06aa6c357679bebfbc6b818381c4f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga308918c13a5b1644269c1654fbea96ac_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbspr1rowlen - - -Node228 - -dbspr1rowlen - - -Node229 - - -tdsdump_log - - - - -Node228->Node229 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map freetds-1.2.3/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f268c922792f5c21544d954f6df525ba \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbconvert - - -Node81 - -dbconvert - - -Node82 - - -tdsdump_log - - - - -Node81->Node82 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.map freetds-1.2.3/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -72cfce6c191881ea64fff89bf8c8bf0e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3340e21db274b272ec11c037cb147222_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbadlen - - -Node10 - -dbadlen - - -Node11 - - -tdsdump_log - - - - -Node10->Node11 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map freetds-1.2.3/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8b6275ac40a333ee066a7568fd7681e0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbservcharset - - -Node187 - -dbservcharset - - -Node188 - - -tdsdump_log - - - - -Node187->Node188 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map freetds-1.2.3/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -7447449eaa842bad7a36bed287c95d0a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetnull - - -Node204 - -dbsetnull - - -Node205 - - -tdsdump_log - - - - -Node204->Node205 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map freetds-1.2.3/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c603bbcad497f12dfd492359f9d19975 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcolsource - - -Node69 - -dbcolsource - - -Node70 - - -tdsdump_log - - - - -Node69->Node70 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map freetds-1.2.3/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -75a1374842e1d19a43ddd63f67146ec2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcoltypeinfo - - -Node75 - -dbcoltypeinfo - - -Node76 - - -tdsdump_log - - - - -Node75->Node76 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.map freetds-1.2.3/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ae25a391bd201c4a2b43ebf1512750b0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga43727b10d4cbb7708b374811abe6eadb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbfcmd - - -Node103 - -dbfcmd - - -Node104 - - -tdsdump_log - - - - -Node103->Node104 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.map freetds-1.2.3/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f2d6cad14be1b73776bf93bf4294413a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbacolname - - -Node4 - -dbacolname - - -Node5 - - -tdsdump_log - - - - -Node4->Node5 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map freetds-1.2.3/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -178734e27292705fc644e360e6cec067 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ - - - - - - -dbresults - - -Node181 - -dbresults - - -Node182 - - -_dbresults - - - - -Node181->Node182 - - - - -Node183 - - -tdsdump_log - - - - -Node181->Node183 - - - - -Node182->Node183 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map freetds-1.2.3/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ad2e8578a396b39d9921ec5b1a575991 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbwritetext - - -Node274 - -dbwritetext - - -Node275 - - -tdsdump_log - - - - -Node274->Node275 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map freetds-1.2.3/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0ce17d54eb33f9d61a8107000152bd3e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcanquery - - -Node45 - -dbcanquery - - -Node46 - - -tdsdump_log - - - - -Node45->Node46 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map freetds-1.2.3/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5c8bfc1740452017b29f1f58d93dbbd1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbvarylen - - -Node265 - -dbvarylen - - -Node266 - - -tdsdump_log - - - - -Node265->Node266 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map freetds-1.2.3/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -73abd0a0f3ff5496334d73f12a2f0bda \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbtxptr - - -Node256 - -dbtxptr - - -Node257 - - -tdsdump_log - - - - -Node256->Node257 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map freetds-1.2.3/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -93e9dc3d2503e21c580919ce18c995c4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcancel - - -Node42 - -dbcancel - - -Node43 - - -tdsdump_log - - - - -Node42->Node43 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map freetds-1.2.3/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d2704af4d9afbf4755bb7fc802d03120 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetlogintime - - -Node195 - -dbsetlogintime - - -Node196 - - -tdsdump_log - - - - -Node195->Node196 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map freetds-1.2.3/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -089fb4087fa2a3346c0428a0f994d23b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcoltype - - -Node72 - -dbcoltype - - -Node73 - - -tdsdump_log - - - - -Node72->Node73 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.map freetds-1.2.3/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b8a684857ea8c7f7948536daa4dcf5bb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga663350909fec3a1d152316c45a65e708_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetifile - - -Node190 - -dbsetifile - - -Node191 - - -tdsdump_log - - - - -Node190->Node191 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.map freetds-1.2.3/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -22d53f5a731546e73b9aa70df1cdf1f4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbversion - - -Node268 - -dbversion - - -Node269 - - -tdsdump_log - - - - -Node268->Node269 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map freetds-1.2.3/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c7a6e8bb0eb368c0088e939a0f51f554 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbuse - - -Node262 - -dbuse - - -Node263 - - -tdsdump_log - - - - -Node262->Node263 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.map freetds-1.2.3/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5b16741721318c83ff4517a816881993 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbnumalts - - -Node154 - -dbnumalts - - -Node155 - - -tdsdump_log - - - - -Node154->Node155 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map freetds-1.2.3/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6b5fcdbb586cdb971a6f0793a404f37f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbiscount - - -Node128 - -dbiscount - - -Node129 - - -tdsdump_log - - - - -Node128->Node129 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map freetds-1.2.3/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -56d935c8cfac0732d4e40d8224f04cf0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbgettime - - -Node120 - -dbgettime - - -Node121 - - -tdsdump_log - - - - -Node120->Node121 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map freetds-1.2.3/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3716537e342ef6a795b60745a87c34b0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmoretext - - -Node143 - -dbmoretext - - -Node144 - - -tdsdump_log - - - - -Node143->Node144 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map freetds-1.2.3/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fd6e2fe35deba5daecc0056a5f102cdd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbnullbind - - -Node151 - -dbnullbind - - -Node152 - - -tdsdump_log - - - - -Node151->Node152 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.map freetds-1.2.3/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1938e19955c7b2390cc085b3d538dc39 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga873bc0f4663165e711655ade1dfae795_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbbind - - -Node36 - -dbbind - - -Node37 - - -tdsdump_log - - - - -Node36->Node37 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map freetds-1.2.3/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3438c6056388014de1159af7e8b79f77 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcmd - - -Node60 - -dbcmd - - -Node61 - - -tdsdump_log - - - - -Node60->Node61 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map freetds-1.2.3/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b68e28de2b5cf78b7ff5f821efe21069 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcollen - - -Node63 - -dbcollen - - -Node64 - - -tdsdump_log - - - - -Node63->Node64 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.map freetds-1.2.3/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -72778e9f20f0b05cfe3fb235e5b8eeca \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbconvert_ps - - -Node84 - -dbconvert_ps - - -Node85 - - -tdsdump_log - - - - -Node84->Node85 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.map freetds-1.2.3/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f5cede1660383164912ed168e4ed3f7c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbchange - - -Node48 - -dbchange - - -Node49 - - -tdsdump_log - - - - -Node48->Node49 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map freetds-1.2.3/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ba8ce4567e5afd9b0fc68bd595e1e7af \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbanullbind - - -Node31 - -dbanullbind - - -Node32 - - -tdsdump_log - - - - -Node31->Node32 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map freetds-1.2.3/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b302cf015a7ee6a055d21aeef2d98f2e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbclropt - - -Node57 - -dbclropt - - -Node58 - - -tdsdump_log - - - - -Node57->Node58 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.map freetds-1.2.3/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f42ad9b6e0d31d4ae5d848b327076701 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9433bc200c0978569964354451d9b64e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcount - - -Node87 - -dbcount - - -Node88 - - -tdsdump_log - - - - -Node87->Node88 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.map freetds-1.2.3/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5fc672b00361109c0c55810dbaff923b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga947837a5c8fd99898c043435945b668c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbaltop - - -Node22 - -dbaltop - - -Node23 - - -tdsdump_log - - - - -Node22->Node23 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map freetds-1.2.3/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -638e4617199ab601ca6991f35ba54727 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbtablecolinfo - - -Node253 - -dbtablecolinfo - - -Node254 - - -tdsdump_log - - - - -Node253->Node254 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map freetds-1.2.3/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0a3c586a7cdbe8758588b4ba9357e331 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbaltlen - - -Node19 - -dbaltlen - - -Node20 - - -tdsdump_log - - - - -Node19->Node20 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map freetds-1.2.3/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -27c640bb7b276b5af24edbee515b4f8a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetopt - - -Node207 - -dbsetopt - - -Node208 - - -tdsdump_log - - - - -Node207->Node208 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.map freetds-1.2.3/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.map --- freetds-1.1.6/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.md5 freetds-1.2.3/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6906c34770e69fc8b58ad61469bcf4cb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.svg freetds-1.2.3/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbprhead - - -Node166 - -dbprhead - - -Node167 - - -tdsdump_log - - - - -Node166->Node167 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.map freetds-1.2.3/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cb76d7f9435a84859207a930c2977527 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa22dce1ee0eb83059699c34c47d07c14_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetlversion - - -Node198 - -dbsetlversion - - -Node199 - - -tdsdump_log - - - - -Node198->Node199 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.map freetds-1.2.3/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -46db5d9aa2055596ee935a6ee26d4bb4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa30be3414a97aac6139af2e928db91ca_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbprrow - - -Node169 - -dbprrow - - -Node170 - - -tdsdump_log - - - - -Node169->Node170 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map freetds-1.2.3/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8ccd97c0ba8eb49bb06f5f2119726ea6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbgetuserdata - - -Node123 - -dbgetuserdata - - -Node124 - - -tdsdump_log - - - - -Node123->Node124 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map freetds-1.2.3/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -7cd4a94840dc899b86ad019a8dc5febb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbalttype - - -Node25 - -dbalttype - - -Node26 - - -tdsdump_log - - - - -Node25->Node26 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map freetds-1.2.3/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d4c6b5694f9829acf5593af1869d8179 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsprhead - - -Node231 - -dbsprhead - - -Node232 - - -tdsdump_log - - - - -Node231->Node232 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.map freetds-1.2.3/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2fe03013cafd8af22ff0b062aea91d00 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbwillconvert - - -Node271 - -dbwillconvert - - -Node272 - - -tdsdump_log - - - - -Node271->Node272 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map freetds-1.2.3/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b11ae16094538dd24d063557b632b220 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg freetds-1.2.3/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbname - - -Node148 - -dbname - - -Node149 - - -tdsdump_log - - - - -Node148->Node149 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map freetds-1.2.3/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8ad884fb5ed292277e369157b5345195 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg freetds-1.2.3/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcolutype - - -Node78 - -dbcolutype - - -Node79 - - -tdsdump_log - - - - -Node78->Node79 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map freetds-1.2.3/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -39eb1fb176d26c7d7d03b1f55184a892 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg freetds-1.2.3/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbstrbuild - - -Node244 - -dbstrbuild - - -Node245 - - -tdsdump_log - - - - -Node244->Node245 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map freetds-1.2.3/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -832189e183b580ff7ceeb4d2534572c4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg freetds-1.2.3/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetversion - - -Node219 - -dbsetversion - - -Node220 - - -tdsdump_log - - - - -Node219->Node220 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map freetds-1.2.3/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1610dace6d2436dca4c6cc32669ee918 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg freetds-1.2.3/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbgetpacket - - -Node115 - -dbgetpacket - - -Node116 - - -tdsdump_log - - - - -Node115->Node116 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map freetds-1.2.3/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -bf193ebc110ffb831d53fd1a99cee16b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg freetds-1.2.3/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrecftos - - -Node178 - -dbrecftos - - -Node179 - - -tdsdump_log - - - - -Node178->Node179 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map freetds-1.2.3/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -11c74fe3264bdd0132b6e5b6edf311f6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg freetds-1.2.3/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbadata - - -Node7 - -dbadata - - -Node8 - - -tdsdump_log - - - - -Node7->Node8 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map freetds-1.2.3/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3137b5d167232d31c6485dc262e5dade \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg freetds-1.2.3/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetuserdata - - -Node216 - -dbsetuserdata - - -Node217 - - -tdsdump_log - - - - -Node216->Node217 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map freetds-1.2.3/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -00e55cf405ced04e38aada0a438a9442 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbprcollen - - -Node163 - -dbprcollen - - -Node164 - - -tdsdump_log - - - - -Node163->Node164 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.map freetds-1.2.3/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b2f6cd1754f03604cf3c3d45d8674e50 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac1bdb1766b791153f37dceae8ff64ad6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbloginfree - - -Node137 - -dbloginfree - - -Node138 - - -tdsdump_log - - - - -Node137->Node138 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map freetds-1.2.3/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2ee7e3e3de19e120b488e37a4e67830b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbprtype - - -Node172 - -dbprtype - - -Node173 - - -tdsdump_log - - - - -Node172->Node173 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map freetds-1.2.3/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5dc788a780c3fc4c5679e18eb6b93229 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmorecmds - - -Node140 - -dbmorecmds - - -Node141 - - -tdsdump_log - - - - -Node140->Node141 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map freetds-1.2.3/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -664d1cfb00f096c93541bcfb4ef4306c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbisopt - - -Node131 - -dbisopt - - -Node132 - - -tdsdump_log - - - - -Node131->Node132 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map freetds-1.2.3/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -37cdf20d60a2d4cd51cf4da3054000b4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbtxtimestamp - - -Node259 - -dbtxtimestamp - - -Node260 - - -tdsdump_log - - - - -Node259->Node260 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map freetds-1.2.3/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4205d738cd4b35592260200fe96f7efc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbnumcompute - - -Node160 - -dbnumcompute - - -Node161 - - -tdsdump_log - - - - -Node160->Node161 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.map freetds-1.2.3/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -510c385f8b67f308627f06dc2b576f71 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.svg freetds-1.2.3/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gac980139b9cea03cf93e373d425991481_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsqlsend - - -Node241 - -dbsqlsend - - -Node242 - - -tdsdump_log - - - - -Node241->Node242 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.map freetds-1.2.3/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dc2c58647c1e875b8df226dd408305fb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.svg freetds-1.2.3/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gacfaf9feb29c87cfb660886162f643152_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsprline - - -Node234 - -dbsprline - - -Node235 - - -tdsdump_log - - - - -Node234->Node235 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.map freetds-1.2.3/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -350855d3209eddd6b5a0944d1f10189e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg freetds-1.2.3/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbexit - - -Node100 - -dbexit - - -Node101 - - -tdsdump_log - - - - -Node100->Node101 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.map freetds-1.2.3/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cceb547a2fa7c21348b9849572167151 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.svg freetds-1.2.3/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad06f5deddac18604dfa858b2580e232f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcolname - - -Node66 - -dbcolname - - -Node67 - - -tdsdump_log - - - - -Node66->Node67 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map freetds-1.2.3/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -22d9490a0f8a6cd097fd2591e7ba828b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg freetds-1.2.3/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbaltcolid - - -Node16 - -dbaltcolid - - -Node17 - - -tdsdump_log - - - - -Node16->Node17 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map freetds-1.2.3/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -894aba18f0a34f0dbe1f0b51e500113d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg freetds-1.2.3/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsettime - - -Node213 - -dbsettime - - -Node214 - - -tdsdump_log - - - - -Node213->Node214 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.map freetds-1.2.3/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d77620437d580dcf1ea9d96af83d37c8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg freetds-1.2.3/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbnumcols - - -Node157 - -dbnumcols - - -Node158 - - -tdsdump_log - - - - -Node157->Node158 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map freetds-1.2.3/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d0f36bdd3b656f32ce7cc24602f7edcc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg freetds-1.2.3/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbgetmaxprocs - - -Node112 - -dbgetmaxprocs - - -Node113 - - -tdsdump_log - - - - -Node112->Node113 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map freetds-1.2.3/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -24bad9efba42d77d4118b4eff0e41748 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg freetds-1.2.3/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbreadtext - - -Node175 - -dbreadtext - - -Node176 - - -tdsdump_log - - - - -Node175->Node176 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map freetds-1.2.3/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ca6403a15d1feb6c75d28eb914c54f91 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg freetds-1.2.3/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbbylist - - -Node39 - -dbbylist - - -Node40 - - -tdsdump_log - - - - -Node39->Node40 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.map freetds-1.2.3/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -95e47753d9febfa63c64e1dbd58687a6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.svg freetds-1.2.3/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gae666d141533126babb0235af21bdca0f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbdatlen - - -Node95 - -dbdatlen - - -Node96 - - -tdsdump_log - - - - -Node95->Node96 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map freetds-1.2.3/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e0cc2f230ebe556cf014b2672fb0687d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetrow - - -Node210 - -dbsetrow - - -Node211 - - -tdsdump_log - - - - -Node210->Node211 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.map freetds-1.2.3/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ec0e7efebb0431c1b9b23d9a42717080 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbdata - - -Node90 - -dbdata - - -Node91 - - -tdsdump_log - - - - -Node90->Node91 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.map freetds-1.2.3/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -081daf2607eb554b0379eb3e32b7b9bf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbclose - - -Node51 - -dbclose - - -Node52 - - -tdsdump_log - - - - -Node51->Node52 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map freetds-1.2.3/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -76ce74932b0ad3d7a683ffe2c5a47c4c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbstrcpy - - -Node247 - -dbstrcpy - - -Node248 - - -tdsdump_log - - - - -Node247->Node248 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.map freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -84f44b39bb6a0696fa1262eb015a897a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_dbresults - - -Node0 - -_dbresults - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.map freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -421b446c559874dc79c66234594c83c0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.svg freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1879b85e8238c015b9648d077665285_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_dbresults - - -Node2 - -_dbresults - - -Node3 - - -dbresults - - - - -Node2->Node3 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map freetds-1.2.3/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4821fc72d5b7791ee96f61d801c60a13 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbaltutype - - -Node28 - -dbaltutype - - -Node29 - - -tdsdump_log - - - - -Node28->Node29 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map freetds-1.2.3/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2585f14b8f3929591533ff06eb58a1d2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetmaxprocs - - -Node201 - -dbsetmaxprocs - - -Node202 - - -tdsdump_log - - - - -Node201->Node202 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.map freetds-1.2.3/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b92d409435cef7102ef256908644d5cf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbspr1row - - -Node225 - -dbspr1row - - -Node226 - - -tdsdump_log - - - - -Node225->Node226 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map freetds-1.2.3/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f7ab5214d54297f71ddb6b521ffd0ba4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg freetds-1.2.3/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbgetchar - - -Node109 - -dbgetchar - - -Node110 - - -tdsdump_log - - - - -Node109->Node110 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.map freetds-1.2.3/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.map --- freetds-1.1.6/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 freetds-1.2.3/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fa23f9b6f0ff049aa581e0a7ab37f51b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.svg freetds-1.2.3/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.svg --- freetds-1.1.6/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539_gafefd17e15b22adda84366c817178dd7d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbaltbind - - -Node13 - -dbaltbind - - -Node14 - - -tdsdump_log - - - - -Node13->Node14 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00539.html freetds-1.2.3/doc/reference/a00539.html --- freetds-1.1.6/doc/reference/a00539.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,5437 +0,0 @@ - - - - - - - -FreeTDS API: Primary functions - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
- -
-
Primary functions
-
-
- -

Core functions needed by most db-lib programs. -More...

-
-Collaboration diagram for Primary functions:
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

#define DBCMDROW(x)   dbcmdrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBCOUNT(x)   dbcount((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBCURCMD(x)   dbcurcmd((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBCURROW(x)   dbcurrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBDEAD(x)   dbdead((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBFIRSTROW(x)   dbfirstrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBIORDESC(x)   dbiordesc((x))
 Sybase macro, maps to the internal (lower-case) function. More...
 
#define DBIOWDESC(x)   dbiowdesc((x))
 Sybase macro, maps to the internal (lower-case) function. More...
 
#define DBISAVAIL(x)   dbisavail((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBLASTROW(x)   dblastrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBMORECMDS(x)   dbmorecmds((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBROWS(x)   dbrows((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBROWTYPE(x)   dbrowtype((x))
 Sybase macro mapping to the Microsoft (lower-case) function. More...
 
#define DBSETLCHARSET(x, y)   dbsetlname((x), (y), DBSETCHARSET)
 Set the client character set in the login packet. More...
 
#define DBSETLENCRYPT(x, y)   dbsetlbool((x), (y), DBSETENCRYPT)
 Enable (or not) network password encryption for Sybase servers version 10.0 or above. More...
 
#define DBSETLNATLANG(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages. More...
 
#define dbsetlnatlang(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages. More...
 
#define DBSETLPACKET(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections. More...
 
#define dbsetlpacket(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections. More...
 
#define DBTDS(a)   dbtds(a)
 Sybase macro, maps to the internal (lower-case) function. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

static RETCODE _dbresults (DBPROCESS *dbproc)
 
const char * dbacolname (DBPROCESS *dbproc, int computeid, int column)
 Return name of a computed result column. More...
 
BYTE * dbadata (DBPROCESS *dbproc, int computeid, int column)
 Get address of compute column data. More...
 
DBINT dbadlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in a compute column. More...
 
RETCODE dbaltbind (DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Bind a compute column to a program variable. More...
 
int dbaltcolid (DBPROCESS *dbproc, int computeid, int column)
 Get column ID of a compute column. More...
 
DBINT dbaltlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in compute column. More...
 
int dbaltop (DBPROCESS *dbproc, int computeid, int column)
 Get aggregation operator for a compute column. More...
 
int dbalttype (DBPROCESS *dbproc, int computeid, int column)
 Get datatype for a compute column. More...
 
DBINT dbaltutype (DBPROCESS *dbproc, int computeid, int column)
 Get user-defined datatype of a compute column. More...
 
RETCODE dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
 Tie a null-indicator to a compute result column. More...
 
RETCODE dbanydatecrack (DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
 Break any kind of date or time value into useful pieces. More...
 
RETCODE dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Tie a host variable to a resultset column. More...
 
BYTE * dbbylist (DBPROCESS *dbproc, int computeid, int *size)
 Get bylist for a compute row. More...
 
RETCODE dbcancel (DBPROCESS *dbproc)
 Cancel the current command batch. More...
 
RETCODE dbcanquery (DBPROCESS *dbproc)
 Cancel the query currently being retrieved, discarding all pending rows. More...
 
char * dbchange (DBPROCESS *dbproc)
 See if a command caused the current database to change. More...
 
void dbclose (DBPROCESS *dbproc)
 Close a connection to the server and free associated resources. More...
 
void dbclrbuf (DBPROCESS *dbproc, DBINT n)
 Clear n rows from the row buffer. More...
 
RETCODE dbclropt (DBPROCESS *dbproc, int option, const char param[])
 Reset an option. More...
 
RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
 Append SQL to the command buffer. More...
 
DBINT dbcollen (DBPROCESS *dbproc, int column)
 Get size of a regular result column. More...
 
char * dbcolname (DBPROCESS *dbproc, int column)
 Return name of a regular result column. More...
 
char * dbcolsource (DBPROCESS *dbproc, int column)
 Get base database column name for a result set column. More...
 
int dbcoltype (DBPROCESS *dbproc, int column)
 Get the datatype of a regular result set column. More...
 
DBTYPEINFOdbcoltypeinfo (DBPROCESS *dbproc, int column)
 Get precision and scale information for a regular result column. More...
 
int dbcolutype (DBPROCESS *dbproc, int column)
 Get user-defined datatype of a regular result column. More...
 
DBINT dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
 cf. More...
 
DBINT dbconvert_ps (DBPROCESS *dbproc, int db_srctype, const BYTE *src, DBINT srclen, int db_desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
 Convert one datatype to another. More...
 
DBINT dbcount (DBPROCESS *dbproc)
 Get count of rows processed. More...
 
BYTE * dbdata (DBPROCESS *dbproc, int column)
 Get address of data in a regular result column. More...
 
RETCODE dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime)
 Break a DBDATETIME value into useful pieces. More...
 
DBINT dbdatlen (DBPROCESS *dbproc, int column)
 Get size of current row's data in a regular result column. More...
 
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
 Set an error handler, for messages from db-lib. More...
 
void dbexit ()
 Close server connections and free all related structures. More...
 
RETCODE dbfcmd (DBPROCESS *dbproc, const char *fmt,...)
 printf-like way to form SQL to send to the server. More...
 
void dbfreebuf (DBPROCESS *dbproc)
 Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt(). More...
 
char * dbgetchar (DBPROCESS *dbproc, int pos)
 Get address of a position in the command buffer. More...
 
int dbgetmaxprocs (void)
 get maximum simultaneous connections db-lib will open to the server. More...
 
int dbgetpacket (DBPROCESS *dbproc)
 Get TDS packet size for the connection. More...
 
RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
 Read a row from the row buffer. More...
 
int dbgettime (void)
 Get maximum seconds db-lib waits for a server response to query. More...
 
BYTE * dbgetuserdata (DBPROCESS *dbproc)
 Get address of user-allocated data from a DBPROCESS. More...
 
RETCODE dbinit (void)
 Initialize db-lib. More...
 
BOOL dbiscount (DBPROCESS *dbproc)
 Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature). More...
 
DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
 Get value of an option. More...
 
LOGINRECdblogin (void)
 Allocate a LOGINREC structure. More...
 
void dbloginfree (LOGINREC *login)
 free the LOGINREC More...
 
RETCODE dbmorecmds (DBPROCESS *dbproc)
 See if more commands are to be processed. More...
 
RETCODE dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
 Send chunk of a text/image value to the server. More...
 
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
 Set a message handler, for messages from the server. More...
 
char * dbname (DBPROCESS *dbproc)
 Get name of current database. More...
 
RETCODE dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
 Tie a null-indicator to a regular result column. More...
 
int dbnumalts (DBPROCESS *dbproc, int computeid)
 Get count of columns in a compute row. More...
 
int dbnumcols (DBPROCESS *dbproc)
 Return number of regular columns in a result set. More...
 
int dbnumcompute (DBPROCESS *dbproc)
 Get count of COMPUTE clauses for a result set. More...
 
DBINT dbprcollen (DBPROCESS *dbproc, int column)
 Get size of a result column needed to print column. More...
 
void dbprhead (DBPROCESS *dbproc)
 Print result set headings to stdout. More...
 
RETCODE dbprrow (DBPROCESS *dbproc)
 Print a result set to stdout. More...
 
const char * dbprtype (int token)
 Print a token value's name to a buffer. More...
 
STATUS dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize)
 Fetch part of a text or image value from the server. More...
 
void dbrecftos (const char filename[])
 Record to a file all SQL commands sent to the server. More...
 
RETCODE dbresults (DBPROCESS *dbproc)
 Set up query results. More...
 
RETCODE dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
 safely quotes character values in SQL text. More...
 
char * dbservcharset (DBPROCESS *dbproc)
 Get syscharset name of the server character set. More...
 
void dbsetifile (char *filename)
 set name and location of the interfaces file FreeTDS should use to look up a servername. More...
 
void dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
 Set interrupt handler for db-lib to use while blocked against a read from the server. More...
 
RETCODE dbsetlogintime (int seconds)
 Set maximum seconds db-lib waits for a server response to a login attempt. More...
 
RETCODE dbsetlversion (LOGINREC *login, BYTE version)
 Set TDS version for future connections. More...
 
RETCODE dbsetmaxprocs (int maxprocs)
 Set maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbsetnull (DBPROCESS *dbproc, int bindtype, int bindlen, BYTE *bindval)
 Define substitution values to be used when binding null values. More...
 
RETCODE dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
 Set db-lib or server option. More...
 
STATUS dbsetrow (DBPROCESS *dbproc, DBINT row)
 Make a buffered row "current" without fetching it into bound variables. More...
 
RETCODE dbsettime (int seconds)
 Set maximum seconds db-lib waits for a server response to query. More...
 
void dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr)
 Associate client-allocated (and defined) data with a DBPROCESS. More...
 
RETCODE dbsetversion (DBINT version)
 Specify a db-lib version level. More...
 
int dbspid (DBPROCESS *dbproc)
 Get server process ID for a DBPROCESS. More...
 
RETCODE dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print a regular result row to a buffer. More...
 
DBINT dbspr1rowlen (DBPROCESS *dbproc)
 Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row(). More...
 
RETCODE dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print result set headings to a buffer. More...
 
RETCODE dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
 Get formatted string for underlining dbsprhead() column names. More...
 
RETCODE dbsqlexec (DBPROCESS *dbproc)
 send the SQL command to the server and wait for an answer. More...
 
RETCODE dbsqlok (DBPROCESS *dbproc)
 Wait for results of a query from the server. More...
 
RETCODE dbsqlsend (DBPROCESS *dbproc)
 Transmit the command buffer to the server. More...
 
RETCODE dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
 Build a printable string from text containing placeholders for variables. More...
 
RETCODE dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest)
 Get a copy of a chunk of the command buffer. More...
 
int dbstrlen (DBPROCESS *dbproc)
 Get size of the command buffer, in bytes. More...
 
RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
 describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) More...
 
DBBINARY * dbtxptr (DBPROCESS *dbproc, int column)
 Get text pointer for a column in the current row. More...
 
DBBINARY * dbtxtimestamp (DBPROCESS *dbproc, int column)
 Get text timestamp for a column in the current row. More...
 
RETCODE dbuse (DBPROCESS *dbproc, const char *name)
 Change current database. More...
 
DBINT dbvarylen (DBPROCESS *dbproc, int column)
 Determine whether a column can vary in size. More...
 
const char * dbversion ()
 See which version of db-lib is in use. More...
 
DBBOOL dbwillconvert (int srctype, int desttype)
 Test whether or not a datatype can be converted to another datatype. More...
 
RETCODE dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
 Send text or image data to the server. More...
 
-

Detailed Description

-

Core functions needed by most db-lib programs.

-

Macro Definition Documentation

- -

§ DBCMDROW

- -
-
- - - - - - - - -
DBCMDROW( x)   dbcmdrow((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbcmdrow()
- -
-
- -

§ DBCOUNT

- -
-
- - - - - - - - -
DBCOUNT( x)   dbcount((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbcount()
- -
-
- -

§ DBCURCMD

- -
-
- - - - - - - - -
DBCURCMD( x)   dbcurcmd((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbcurcmd()
- -
-
- -

§ DBCURROW

- -
-
- - - - - - - - -
DBCURROW( x)   dbcurrow((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbcurrow()
- -
-
- -

§ DBDEAD

- -
-
- - - - - - - - -
DBDEAD( x)   dbdead((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbdead()
- -
-
- -

§ DBFIRSTROW

- -
-
- - - - - - - - -
DBFIRSTROW( x)   dbfirstrow((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbfirstrow()
- -
-
- -

§ DBIORDESC

- -
-
- - - - - - - - -
DBIORDESC( x)   dbiordesc((x))
-
- -

Sybase macro, maps to the internal (lower-case) function.

-
See also
dbiordesc()
- -
-
- -

§ DBIOWDESC

- -
-
- - - - - - - - -
DBIOWDESC( x)   dbiowdesc((x))
-
- -

Sybase macro, maps to the internal (lower-case) function.

-
See also
dbiowdesc()
- -
-
- -

§ DBISAVAIL

- -
-
- - - - - - - - -
DBISAVAIL( x)   dbisavail((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbisavail()
- -
-
- -

§ DBLASTROW

- -
-
- - - - - - - - -
DBLASTROW( x)   dblastrow((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dblastrow(), DBFIRSTROW()
- -
-
- -

§ DBMORECMDS

- -
-
- - - - - - - - -
DBMORECMDS( x)   dbmorecmds((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbmorecmds()
- -
-
- -

§ DBROWS

- -
-
- - - - - - - - -
DBROWS( x)   dbrows((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbrows()
- -
-
- -

§ DBROWTYPE

- -
-
- - - - - - - - -
DBROWTYPE( x)   dbrowtype((x))
-
- -

Sybase macro mapping to the Microsoft (lower-case) function.

-
See also
dbrowtype()
- -
-
- -

§ DBSETLCHARSET

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLCHARSET( x,
 
)   dbsetlname((x), (y), DBSETCHARSET)
-
- -

Set the client character set in the login packet.

-
Remarks
Has no effect on TDS 7.0+ connections.
- -
-
- -

§ DBSETLENCRYPT

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLENCRYPT( x,
 
)   dbsetlbool((x), (y), DBSETENCRYPT)
-
- -

Enable (or not) network password encryption for Sybase servers version 10.0 or above.

-
Todo:
Unimplemented.
-
See also
dbsetlencrypt()
- -
-
- -

§ DBSETLNATLANG

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLNATLANG( x,
 
)   dbsetlname((x), (y), DBSETNATLANG)
-
- -

Set the language the server should use for messages.

-
See also
dbsetlnatlang(), dbsetlname()
- -
-
- -

§ dbsetlnatlang

- -
-
- - - - - - - - - - - - - - - - - - -
dbsetlnatlang( x,
 
)   dbsetlname((x), (y), DBSETNATLANG)
-
- -

Set the language the server should use for messages.

-
See also
DBSETLNATLANG(), dbsetlname()
- -
-
- -

§ DBSETLPACKET

- -
-
- - - - - - - - - - - - - - - - - - -
DBSETLPACKET( x,
 
)   dbsetllong((x), (y), DBSETPACKET)
-
- -

Set the packet size in the login packet for new connections.

-
See also
dbsetlpacket(), dbsetllong()
- -
-
- -

§ dbsetlpacket

- -
-
- - - - - - - - - - - - - - - - - - -
dbsetlpacket( x,
 
)   dbsetllong((x), (y), DBSETPACKET)
-
- -

Set the packet size in the login packet for new connections.

-
See also
DBSETLPACKET(), dbsetllong()
- -
-
- -

§ DBTDS

- -
-
- - - - - - - - -
DBTDS( a)   dbtds(a)
-
- -

Sybase macro, maps to the internal (lower-case) function.

-
See also
dbtds()
- -
-
-

Function Documentation

- -

§ _dbresults()

- -
-
- - - - - -
- - - - - - - - -
static RETCODE _dbresults (DBPROCESSdbproc)
-
-static
-
-
Remarks
Either SYBDBLIB or MSDBLIB (not both) must be defined. This affects how certain application-addressable strucures are defined.
-
-Here is the call graph for this function:
-
-
-
-
-
-Here is the caller graph for this function:
-
-
-
-
- -
-
- -

§ dbacolname()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
const char* dbacolname (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Return name of a computed result column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeididentifies which one of potientially many compute rows is meant. The first compute clause has computeid == 1.
columnNth in the result set, starting with 1.
-
-
-
Returns
pointer to ASCII null-terminated string, the name of the column.
-
Return values
- - -
NULLcolumn is not in range.
-
-
-
See also
dbcollen(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbadata()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
BYTE* dbadata (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get address of compute column data.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
Returns
pointer to columns's data buffer.
-
Return values
- - -
NULLno such computeid or column.
-
-
-
See also
dbadlen(), dbaltbind(), dbaltlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumalts().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbadlen()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
DBINT dbadlen (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get size of data in a compute column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
Returns
size of the data, in bytes.
-
Return values
- - - -
-1no such column or computeid.
0data are NULL.
-
-
-
See also
dbadata(), dbaltlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumalts().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbaltbind()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbaltbind (DBPROCESSdbproc,
int computeid,
int column,
int vartype,
DBINT varlen,
BYTE * varaddr 
)
-
- -

Bind a compute column to a program variable.

-
Parameters
- - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
vartypedatatype of the host variable that will receive the data
varlensize of host variable pointed to varaddr
varaddraddress of host variable
-
-
-
Return values
- - - -
SUCCEEDeverything worked.
FAILno such computeid or column, or no such conversion possible, or target buffer too small.
-
-
-
See also
dbadata(), dbaltbind_ps(), dbanullbind(), dbbind(), dbbind_ps(), dbconvert(), dbconvert_ps(), dbnullbind(), dbsetnull(), dbsetversion(), dbwillconvert().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbaltcolid()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int dbaltcolid (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get column ID of a compute column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
Returns
Nth column in the base result set, on which column was computed.
-
See also
dbadata(), dbadlen(), dbaltlen(), dbgetrow(), dbnextrow(), dbnumalts(), dbprtype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbaltlen()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
DBINT dbaltlen (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get size of data in compute column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
See also
dbadata(), dbadlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumalts().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbaltop()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int dbaltop (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get aggregation operator for a compute column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
Returns
token value for the type of the compute column's aggregation operator.
-
Return values
- - -
-1no such computeid or column.
-
-
-
See also
dbadata(), dbadlen(), dbaltlen(), dbnextrow(), dbnumalts(), dbprtype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbalttype()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int dbalttype (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get datatype for a compute column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
Returns
SYB* dataype token.
-
Return values
- - -
-1no such column or computeid.
-
-
-
See also
dbadata(), dbadlen(), dbaltlen(), dbnextrow(), dbnumalts(), dbprtype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbaltutype()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
DBINT dbaltutype (DBPROCESSdbproc,
int computeid,
int column 
)
-
- -

Get user-defined datatype of a compute column.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
-
-
-
Returns
user-defined datatype of compute column, else -1.
-
See also
dbalttype(), dbcolutype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbanullbind()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbanullbind (DBPROCESSdbproc,
int computeid,
int column,
DBINT * indicator 
)
-
- -

Tie a null-indicator to a compute result column.

-

When a row is fetched, the indicator variable tells the state of the column's data.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeididentifies which one of potientially many compute rows is meant. The first compute clause has computeid == 1.
columnNth column in the result set, starting with 1.
indicatoraddress of host variable.
-
-
-
Return values
- - - -
SUCCEEDvariable accepted.
FAILindicator is NULL or column is out of range.
-
-
-
Remarks
Contents of indicator are set with dbnextrow(). Possible values are:
    -
  • 0 column bound successfully
  • -
  • -1 column is NULL.
  • -
  • >0 true length of data, had column not been truncated due to insufficient space in the columns bound host variable .
  • -
-
-
See also
dbadata(), dbadlen(), dbaltbind(), dbnextrow(), dbnullbind().
-
Todo:
Never fails, but only because failure conditions aren't checked.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbanydatecrack()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbanydatecrack (DBPROCESSdbproc,
DBDATEREC2di,
int type,
const void * data 
)
-
- -

Break any kind of date or time value into useful pieces.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
dioutput: structure to contain the exploded parts of datetime.
typeinput: type of date/time value returned by dbcoltype().
datainput: date/time value to be converted.
-
-
-
Return values
- - -
SUCCEEDalways.
-
-
-
Remarks
The members of di have different names, depending on whether –with-msdblib was configured.
-

This is an extension to dbdatecrack(), see it for more information.

-
See also
dbdatecrack(), dbconvert(), dbdata(), dbdatechar(), dbdatename(), dbdatepart(), tdsdbopen().
- -
-
- -

§ dbbind()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbbind (DBPROCESSdbproc,
int column,
int vartype,
DBINT varlen,
BYTE * varaddr 
)
-
- -

Tie a host variable to a resultset column.

-
Parameters
- - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth column, starting at 1.
vartypedatatype of the host variable that will receive the data
varlensize of host variable pointed to varaddr
varaddraddress of host variable
-
-
-
Return values
- - - -
SUCCEEDeverything worked.
FAILno such column or no such conversion possible, or target buffer too small.
-
-
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbbylist()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
BYTE* dbbylist (DBPROCESSdbproc,
int computeid,
int * size 
)
-
- -

Get bylist for a compute row.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
sizeoutput: size of bylist buffer whose address is returned, possibly zero.
-
-
-
Returns
address of bylist for computeid.
-
Return values
- - -
NULLno such computeid.
-
-
-
Remarks
Do not free returned pointer.
-
See also
dbadata(), dbadlen(), dbaltlen(), dbalttype(), dbcolname(), dbgetrow(), dbnextrow().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcancel()

- -
-
- - - - - - - - -
RETCODE dbcancel (DBPROCESSdbproc)
-
- -

Cancel the current command batch.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - -
SUCCEEDalways.
-
-
-
See also
dbcanquery(), dbnextrow(), dbresults(), dbsetinterrupt(), dbsqlexec(), dbsqlok(), dbsqlsend().
-
Todo:
Check for failure and return accordingly.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcanquery()

- -
-
- - - - - - - - -
RETCODE dbcanquery (DBPROCESSdbproc)
-
- -

Cancel the query currently being retrieved, discarding all pending rows.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbchange()

- -
-
- - - - - - - - -
char* dbchange (DBPROCESSdbproc)
-
- -

See if a command caused the current database to change.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
name of new database, if changed, as a null-terminated ASCII string, else NULL.
-
See also
dbname(), dbresults(), dbsqlexec(), dbsqlsend(), dbuse().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbclose()

- -
-
- - - - - - - - -
void dbclose (DBPROCESSdbproc)
-
- -

Close a connection to the server and free associated resources.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
dbexit(), dbopen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbclrbuf()

- -
-
- - - - - - - - - - - - - - - - - - -
void dbclrbuf (DBPROCESSdbproc,
DBINT n 
)
-
- -

Clear n rows from the row buffer.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
nnumber of rows to remove, >= 0.
-
-
-
See also
dbgetrow(), dbnextrow(), dbsetopt().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbclropt()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbclropt (DBPROCESSdbproc,
int option,
const char param[] 
)
-
- -

Reset an option.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
optionto be turned off.
paramclearing some options requires a parameter, believe it or not.
-
-
-
Return values
- - - -
SUCCEEDoption and parameter seem sane.
FAILno such option.
-
-
-
Remarks
Only the following options are recognized:
    -
  • DBARITHABORT
  • -
  • DBARITHIGNORE
  • -
  • DBCHAINXACTS
  • -
  • DBFIPSFLAG
  • -
  • DBISOLATION
  • -
  • DBNOCOUNT
  • -
  • DBNOEXEC
  • -
  • DBPARSEONLY
  • -
  • DBSHOWPLAN
  • -
  • DBSTORPROCID
  • -
  • DBQUOTEDIDENT
  • -
  • DBSETTIME
  • -
-
-
See also
dbisopt(), dbsetopt().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcmd()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbcmd (DBPROCESSdbproc,
const char cmdstring[] 
)
-
- -

Append SQL to the command buffer.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
cmdstringSQL to append to the command buffer.
-
-
-
Return values
- - - -
SUCCEEDsuccess.
FAILinsufficient memory.
-
-
-
Remarks
set command state to DBCMDPEND unless the command state is DBCMDSENT, in which case it frees the command buffer. This latter may or may not be the Right Thing to do.
-
See also
dbfcmd(), dbfreebuf(), dbgetchar(), dbopen(), dbstrcpy(), dbstrlen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcollen()

- -
-
- - - - - - - - - - - - - - - - - - -
DBINT dbcollen (DBPROCESSdbproc,
int column 
)
-
- -

Get size of a regular result column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
size of the column (not of data in any particular row). On error, -1.
-
See also
dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcolname()

- -
-
- - - - - - - - - - - - - - - - - - -
char* dbcolname (DBPROCESSdbproc,
int column 
)
-
- -

Return name of a regular result column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting with 1.
-
-
-
Returns
pointer to ASCII null-terminated string, the name of the column.
-
Return values
- - -
NULLcolumn is not in range.
-
-
-
See also
dbcollen(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
-
Bug:
Relies on ASCII column names, post iconv conversion. Will not work as described for UTF-8 or UCS-2 clients. But maybe it shouldn't.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcolsource()

- -
-
- - - - - - - - - - - - - - - - - - -
char* dbcolsource (DBPROCESSdbproc,
int column 
)
-
- -

Get base database column name for a result set column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
pointer to ASCII null-terminated string, the name of the column. On error, NULL.
-
See also
dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcoltype()

- -
-
- - - - - - - - - - - - - - - - - - -
int dbcoltype (DBPROCESSdbproc,
int column 
)
-
- -

Get the datatype of a regular result set column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
SYB* datetype token value, or zero if column out of range
-
See also
dbcollen(), dbcolname(), dbdata(), dbdatlen(), dbnumcols(), dbprtype(), dbvarylen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcoltypeinfo()

- -
-
- - - - - - - - - - - - - - - - - - -
DBTYPEINFO* dbcoltypeinfo (DBPROCESSdbproc,
int column 
)
-
- -

Get precision and scale information for a regular result column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
Pointer to a DBTYPEINFO structure . NULL column is out of range.
-
See also
dbcollen(), dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols(), dbprtype(), dbvarylen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcolutype()

- -
-
- - - - - - - - - - - - - - - - - - -
int dbcolutype (DBPROCESSdbproc,
int column 
)
-
- -

Get user-defined datatype of a regular result column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
SYB* datetype token value, or -1 if column out of range
-
See also
dbaltutype(), dbcoltype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbconvert()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DBINT dbconvert (DBPROCESSdbproc,
int srctype,
const BYTE * src,
DBINT srclen,
int desttype,
BYTE * dest,
DBINT destlen 
)
-
- -

cf.

-

dbconvert_ps(), above

-

Sybase: Convert numeric types.

Parameters
- - - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srctypedatatype of the data to convert.
srcbuffer to convert
srclenlength of src
desttypetarget datatype
destoutput buffer
destlensize of dest
typeinfoaddress of a DBTYPEINFO structure that governs the precision & scale of the output, may be NULL.
-
-
-
See also
dbaltbind(), dbaltbind_ps(), dbbind(), dbbind_ps(), dbconvert_ps(), dberrhandle(), dbsetnull(), dbsetversion(), dbwillconvert().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbconvert_ps()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DBINT dbconvert_ps (DBPROCESSdbproc,
int db_srctype,
const BYTE * src,
DBINT srclen,
int db_desttype,
BYTE * dest,
DBINT destlen,
DBTYPEINFOtypeinfo 
)
-
- -

Convert one datatype to another.

-
Parameters
- - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srctypedatatype of the data to convert.
srcbuffer to convert
srclenlength of src
desttypetarget datatype
destoutput buffer
destlensize of dest
-
-
-
Returns
On success, the count of output bytes in dest, else -1. On failure, it will call any user-supplied error handler.
-
Remarks
Causes of failure:
    -
  • No such conversion unavailable.
  • -
  • Character data output was truncated, or numerical data overflowed or lost precision.
  • -
  • In converting character data to one of the numeric types, the string could not be interpreted as a number.
  • -
-
-

Conversion functions are handled in the TDS layer.

-

The main reason for this is that ct-lib and ODBC (and presumably DBI) need to be able to do conversions between datatypes. This is possible because the format of complex data (dates, money, numeric, decimal) is defined by its representation on the wire; thus what we call DBMONEY is exactly its format on the wire. CLIs that need a different representation (ODBC?) need to convert from this format anyway, so the code would already be in place.

-

Each datatype is also defined by its Server-type so all CLIs should be able to map native types to server types as well.

-

tds_convert() copies from src to dest and returns the output data length, period. All padding and termination is the responsibility of the API library and is done post-conversion. The peculiar rule in dbconvert() is that a destlen of -1 and a desttype of SYBCHAR means the output buffer should be null-terminated.

-
See also
dbaltbind(), dbaltbind_ps(), dbbind(), dbbind_ps(), dbconvert_ps(), dberrhandle(), dbsetnull(), dbsetversion(), dbwillconvert().
-
Todo:

What happens if client does not reset values?

-

Microsoft and Sybase define this function differently.

-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbcount()

- -
-
- - - - - - - - -
DBINT dbcount (DBPROCESSdbproc)
-
- -

Get count of rows processed.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
    -
  • for insert/update/delete, count of rows affected.
  • -
  • for select, count of rows returned, after all rows have been fetched.
  • -
-
-
See also
DBCOUNT(), dbnextrow(), dbresults().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbdata()

- -
-
- - - - - - - - - - - - - - - - - - -
BYTE* dbdata (DBPROCESSdbproc,
int column 
)
-
- -

Get address of data in a regular result column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
pointer the data, or NULL if data are NULL, or if column is out of range.
-
See also
dbbind(), dbcollen(), dbcolname(), dbcoltype(), dbdatlen(), dbnumcols().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbdatecrack()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbdatecrack (DBPROCESSdbproc,
DBDATERECdi,
DBDATETIMEdatetime 
)
-
- -

Break a DBDATETIME value into useful pieces.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
dioutput: structure to contain the exploded parts of datetime.
datetimeinput: DBDATETIME to be converted.
-
-
-
Return values
- - -
SUCCEEDalways.
-
-
-
Remarks
The members of di have different names, depending on whether –with-msdblib was configured.
-

If DBPROCESS is NULL, dbdatecrack() uses the compiled in default value of MSDBLIB as of when libsybdb was compiled, irrespective of its value when the application is compiled. This can lead to incorrect results because Sybase and Microsoft use different ranges – [0,11] vs. [1,12] – for the month.

-
See also
dbconvert(), dbdata(), dbdatechar(), dbdatename(), dbdatepart(), tdsdbopen().
- -
-
- -

§ dbdatlen()

- -
-
- - - - - - - - - - - - - - - - - - -
DBINT dbdatlen (DBPROCESSdbproc,
int column 
)
-
- -

Get size of current row's data in a regular result column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
size of the data, in bytes.
-
See also
dbcollen(), dbcolname(), dbcoltype(), dbdata(), dbnumcols().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dberrhandle()

- -
-
- - - - - - - - -
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
-
- -

Set an error handler, for messages from db-lib.

-
Parameters
- - -
handlerpointer to callback function that will handle errors. Pass NULL to restore the default handler.
-
-
-
Returns
address of prior handler, or NULL if none was previously installed.
-
See also
DBDEAD(), dbmsghandle().
- -
-
- -

§ dbexit()

- -
-
- - - - - - - - -
void dbexit (void )
-
- -

Close server connections and free all related structures.

-
See also
dbclose(), dbinit(), dbopen().
-
Todo:
breaks if ctlib/dblib used in same process.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbfcmd()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbfcmd (DBPROCESSdbproc,
const char * fmt,
 ... 
)
-
- -

printf-like way to form SQL to send to the server.

-

Forms a command string and writes to the command buffer with dbcmd().

Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
fmt man vasprintf for details.
-
-
-
Return values
- - - -
SUCCEEDsuccess.
FAILinsufficient memory, or dbcmd() failed.
-
-
-
See also
dbcmd(), dbfreebuf(), dbgetchar(), dbopen(), dbstrcpy(), dbstrlen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbfreebuf()

- -
-
- - - - - - - - -
void dbfreebuf (DBPROCESSdbproc)
-
- -

Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
dbcmd(), dbfcmd(), dbgetchar(), dbsqlexec(), dbsqlsend(), dbsetopt(), dbstrcpy(), dbstrlen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbgetchar()

- -
-
- - - - - - - - - - - - - - - - - - -
char* dbgetchar (DBPROCESSdbproc,
int pos 
)
-
- -

Get address of a position in the command buffer.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
posoffset within the command buffer, starting at 0.
-
-
-
Remarks
A bit overspecialized, this one.
-
See also
dbcmd(), dbfcmd(), dbfreebuf(), dbstrcpy(), dbstrlen(),
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbgetmaxprocs()

- -
-
- - - - - - - - -
int dbgetmaxprocs (void )
-
- -

get maximum simultaneous connections db-lib will open to the server.

-
Returns
Current maximum.
-
See also
dbsetmaxprocs(), dbopen()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbgetpacket()

- -
-
- - - - - - - - -
int dbgetpacket (DBPROCESSdbproc)
-
- -

Get TDS packet size for the connection.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
TDS packet size, in bytes.
-
See also
DBSETLPACKET()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbgetrow()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbgetrow (DBPROCESSdbproc,
DBINT row 
)
-
- -

Read a row from the row buffer.

-

When row buffering is enabled (DBBUFFER option is on), the client can use dbgetrow() to re-read a row previously fetched with dbnextrow(). The effect is to move the row pointer – analogous to fseek() – back to row. Calls to dbnextrow() read from row + 1 until the buffer is exhausted, at which point it resumes its normal behavior, except that as each row is fetched from the server, it is added to the row buffer (in addition to being returned to the client). When the buffer is filled, dbnextrow() returns FAIL until the buffer is at least partially emptied with dbclrbuf().

Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
rowNth row to read, starting with 1.
-
-
-
Return values
- - -
REG_ROWreturned row is a regular row.
-
-
-
Returns
computeid when returned row is a compute row.
-
Return values
- - - -
NO_MORE_ROWSno such row in the row buffer. Current row is unchanged.
FAILunsuccessful; row buffer may be full.
-
-
-
See also
dbaltbind(), dbbind(), dbclrbuf(), DBCURROW(), DBFIRSTROW(), DBLASTROW(), dbnextrow(), dbsetrow().
- -
-
- -

§ dbgettime()

- -
-
- - - - - - - - -
int dbgettime (void )
-
- -

Get maximum seconds db-lib waits for a server response to query.

-
Return values
- - -
querytimeout limit, in seconds
-
-
-
See also
dberrhandle(), DBSETTIME(), dbsetlogintime(), dbsqlexec(), dbsqlok(), dbsqlsend().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbgetuserdata()

- -
-
- - - - - - - - -
BYTE* dbgetuserdata (DBPROCESSdbproc)
-
- -

Get address of user-allocated data from a DBPROCESS.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
address of user-defined data that db-lib associated with dbproc when the client called dbsetuserdata().
-
Return values
- - -
undefined(probably NULL) dbsetuserdata() was not previously called.
-
-
-
See also
dbsetuserdata().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbinit()

- -
-
- - - - - - - - -
RETCODE dbinit (void )
-
- -

Initialize db-lib.

-
Remarks
Call this function before trying to use db-lib in any way. Allocates various internal structures and reads locales.conf (if any) to determine the default date format.
-
Return values
- - - -
SUCCEEDnormal.
FAILcannot allocate an array of TDS_MAX_CONN TDSSOCKET pointers.
-
-
- -
-
- -

§ dbiscount()

- -
-
- - - - - - - - -
BOOL dbiscount (DBPROCESSdbproc)
-
- -

Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature).

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
TRUE if the count returned by dbcount is real or FALSE if the count returned by dbcount is not real.
-
See also
DBCOUNT(), dbcount().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbisopt()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
DBBOOL dbisopt (DBPROCESSdbproc,
int option,
const char param[] 
)
-
- -

Get value of an option.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
optionthe option
parama parameter to option.
-
-
-
See also
dbclropt(), dbsetopt().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dblogin()

- -
-
- - - - - - - - -
LOGINREC* dblogin (void )
-
- -

Allocate a LOGINREC structure.

-
Remarks
A LOGINREC structure is passed to dbopen() to create a connection to the database. Does not communicate to the server; interacts strictly with library.
-
Return values
- - - -
NULLthe LOGINREC cannot be allocated.
LOGINREC*to valid memory, otherwise.
-
-
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbloginfree()

- -
-
- - - - - - - - -
void dbloginfree (LOGINREClogin)
-
- -

free the LOGINREC

-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmorecmds()

- -
-
- - - - - - - - -
RETCODE dbmorecmds (DBPROCESSdbproc)
-
- -

See if more commands are to be processed.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
DBMORECMDS(). DBCMDROW(), dbresults(), DBROWS(), DBROWTYPE().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmoretext()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmoretext (DBPROCESSdbproc,
DBINT size,
const BYTE text[] 
)
-
- -

Send chunk of a text/image value to the server.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
sizecount of bytes to send.
texttextpointer, obtained from dbtxptr.
-
-
-
Return values
- - -
SUCCEEDalways.
-
-
-
See also
dbtxptr(), dbtxtimestamp(), dbwritetext().
-
Todo:
Check return value of called functions and return FAIL if appropriate.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmsghandle()

- -
-
- - - - - - - - -
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
-
- -

Set a message handler, for messages from the server.

-
Parameters
- - -
handleraddress of the function that will process the messages.
-
-
-
See also
DBDEAD(), dberrhandle().
- -
-
- -

§ dbname()

- -
-
- - - - - - - - -
char* dbname (DBPROCESSdbproc)
-
- -

Get name of current database.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
current database name, as null-terminated ASCII string.
-
See also
dbchange(), dbuse().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbnullbind()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbnullbind (DBPROCESSdbproc,
int column,
DBINT * indicator 
)
-
- -

Tie a null-indicator to a regular result column.

-

When a row is fetched, the indicator variable tells the state of the column's data.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth column in the result set, starting with 1.
indicatoraddress of host variable.
-
-
-
Return values
- - - -
SUCCEEDvariable accepted.
FAILindicator is NULL or column is out of range.
-
-
-
Remarks
Contents of indicator are set with dbnextrow(). Possible values are:
    -
  • 0 column bound successfully
  • -
  • -1 column is NULL.
  • -
  • >0 true length of data, had column not been truncated due to insufficient space in the columns bound host variable .
  • -
-
-
See also
dbanullbind(), dbbind(), dbdata(), dbdatlen(), dbnextrow().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbnumalts()

- -
-
- - - - - - - - - - - - - - - - - - -
int dbnumalts (DBPROCESSdbproc,
int computeid 
)
-
- -

Get count of columns in a compute row.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
-
-
-
Returns
number of columns, else -1 if no such computeid.
-
See also
dbadata(), dbadlen(), dbaltlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumcols().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbnumcols()

- -
-
- - - - - - - - -
int dbnumcols (DBPROCESSdbproc)
-
- -

Return number of regular columns in a result set.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
dbcollen(), dbcolname(), dbnumalts().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbnumcompute()

- -
-
- - - - - - - - -
int dbnumcompute (DBPROCESSdbproc)
-
- -

Get count of COMPUTE clauses for a result set.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
number of compute clauses for the current query, possibly zero.
-
See also
dbnumalts(), dbresults().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbprcollen()

- -
-
- - - - - - - - - - - - - - - - - - -
DBINT dbprcollen (DBPROCESSdbproc,
int column 
)
-
- -

Get size of a result column needed to print column.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Returns
size of the column in characters (not of data in any particular row). On error, -1.
-
See also
dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbprhead()

- -
-
- - - - - - - - -
void dbprhead (DBPROCESSdbproc)
-
- -

Print result set headings to stdout.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbprrow()

- -
-
- - - - - - - - -
RETCODE dbprrow (DBPROCESSdbproc)
-
- -

Print a result set to stdout.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
dbbind(), dbnextrow(), dbprhead(), dbresults(), dbspr1row(), dbsprhead(), dbsprline().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbprtype()

- -
-
- - - - - - - - -
const char* dbprtype (int token)
-
- -

Print a token value's name to a buffer.

-
Parameters
- - -
tokenserver SYB* value, e.g. SYBINT.
-
-
-
Returns
ASCII null-terminated string.
-
See also
dbaltop(), dbalttype(), dbcoltype(), dbrettype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbreadtext()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
STATUS dbreadtext (DBPROCESSdbproc,
void * buf,
DBINT bufsize 
)
-
- -

Fetch part of a text or image value from the server.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
bufoutput: buffer into which text will be placed.
bufsizesize of buf, in bytes.
-
-
-
Returns
    -
  • >0 count of bytes placed in buf.
  • -
  • 0 end of row.
  • -
  • -1 error, no result set ready for dbproc.
  • -
  • NO_MORE_ROWS all rows read, no further data.
  • -
-
-
See also
dbmoretext(), dbnextrow(), dbwritetext().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbrecftos()

- -
-
- - - - - - - - -
void dbrecftos (const char filename[])
-
- -

Record to a file all SQL commands sent to the server.

-
Parameters
- - -
filenamename of file to write to.
-
-
-
Remarks
Files are named filename.n, where n is an integer, starting with 0, and incremented with each callto dbopen().
-
See also
dbopen(), TDSDUMP environment variable().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbresults()

- -
-
- - - - - - - - -
RETCODE dbresults (DBPROCESSdbproc)
-
- -

Set up query results.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - - -
SUCCEEDSome results are available.
FAILquery was not processed successfully by the server
NO_MORE_RESULTSquery produced no results.
-
-
-
Remarks
Call dbresults() after calling dbsqlexec() or dbsqlok(), or dbrpcsend() returns SUCCEED. Unless one of them fails, dbresults will return either SUCCEED or NO_MORE_RESULTS.
-

The meaning of results is very specific and not very intuitive. Results are created by either

    -
  • a SELECT statement

      -
    • a stored procedure
    • -
    -

    When dbresults returns SUCCEED, therefore, it indicates the server processed the query successfully and that one or more of these is present:

    -
  • -
  • metadata – dbnumcols() returns 1 or more
  • -
  • data – dbnextrow() returns SUCCEED
  • -
  • return status – dbhasretstat() returns TRUE
  • -
  • output parameters – dbnumrets() returns 1 or more
  • -
-

If none of the above are present, dbresults() returns NO_MORE_RESULTS.

-

SUCCEED does not imply that DBROWS() will return TRUE or even that dbnumcols() will return nonzero. A general algorithm for reading results will call dbresults() until it return NO_MORE_RESULTS (or FAIL). An application should check for all the above kinds of results within the dbresults() loop.

-
See also
dbsqlexec(), dbsqlok(), dbrpcsend(), dbcancel(), DBROWS(), dbnextrow(), dbnumcols(), dbhasretstat(), dbretstatus(), dbnumrets()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsafestr()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbsafestr (DBPROCESSdbproc,
const char * src,
DBINT srclen,
char * dest,
DBINT destlen,
int quotetype 
)
-
- -

safely quotes character values in SQL text.

-
Parameters
- - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srcinput string.
srclenlength of src in bytes, or -1 to indicate it's null-terminated.
destoutput: client-provided output buffer.
destlensize of dest in bytes, or -1 to indicate it's "big enough" and the data should be null-terminated.
quotetype
    -
  • DBSINGLE Doubles all single quotes (').
  • -
  • DBDOUBLE Doubles all double quotes (").
  • -
  • DBBOTH Doubles all single and double quotes.
  • -
-
-
-
-
Return values
- - - -
SUCCEEDeverything worked.
FAILno such quotetype, or insufficient room in dest.
-
-
-
See also
dbcmd(), dbfcmd().
- -
-
- -

§ dbservcharset()

- -
-
- - - - - - - - -
char* dbservcharset (DBPROCESSdbproc)
-
- -

Get syscharset name of the server character set.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
name of server's charset, as null-terminated ASCII string.
-
See also
dbcharsetconv(), dbgetcharset(), DBSETLCHARSET().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetifile()

- -
-
- - - - - - - - -
void dbsetifile (char * filename)
-
- -

set name and location of the interfaces file FreeTDS should use to look up a servername.

-

Does not affect lookups or location of freetds.conf.

Parameters
- - -
filenamename of interfaces
-
-
-
See also
dbopen()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetinterrupt()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void dbsetinterrupt (DBPROCESSdbproc,
DB_DBCHKINTR_FUNC chkintr,
DB_DBHNDLINTR_FUNC hndlintr 
)
-
- -

Set interrupt handler for db-lib to use while blocked against a read from the server.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
chkintr
hndlintr
-
-
-
See also
dbcancel(), dbgetuserdata(), dbsetuserdata(), dbsetbusy(), dbsetidle().
- -
-
- -

§ dbsetlogintime()

- -
-
- - - - - - - - -
RETCODE dbsetlogintime (int seconds)
-
- -

Set maximum seconds db-lib waits for a server response to a login attempt.

-
Parameters
- - -
secondsNew limit for application.
-
-
-
Return values
- - -
SUCCEEDAlways.
-
-
-
See also
dberrhandle(), dbsettime()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetlversion()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbsetlversion (LOGINREClogin,
BYTE version 
)
-
- -

Set TDS version for future connections.

-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetmaxprocs()

- -
-
- - - - - - - - -
RETCODE dbsetmaxprocs (int maxprocs)
-
- -

Set maximum simultaneous connections db-lib will open to the server.

-
Parameters
- - -
maxprocsLimit for process.
-
-
-
Return values
- - -
SUCCEEDAlways.
-
-
-
See also
dbgetmaxprocs(), dbopen()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetnull()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbsetnull (DBPROCESSdbproc,
int bindtype,
int bindlen,
BYTE * bindval 
)
-
- -

Define substitution values to be used when binding null values.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
bindtypetype of binding to which the substitute value will apply.
bindlensize of the substitute value you are supplying, in bytes. Ignored except for CHARBIND and BINARYBIND.
bindvalpointer to a buffer containing the substitute value.
-
-
-
Return values
- - - -
SUCCEEDquery was processed without errors.
FAILquery was not processed
-
-
-
See also
dbaltbind(), dbbind(), dbconvert(), dbnullbind().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetopt()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbsetopt (DBPROCESSdbproc,
int option,
const char * char_param,
int int_param 
)
-
- -

Set db-lib or server option.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
optionoption to set.
char_paramvalue to set option to, if it wants a null-teminated ASCII string.
int_paramvalue to set option to, if it wants an integer value.
-
-
-
Return values
- - - -
SUCCEEDeverything worked.
FAILno such option, or insufficient memory, or unimplemented.
-
-
-
Remarks
Many are unimplemented.
-
See also
dbclropt(), dbisopt().
-
Todo:
Implement more options.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetrow()

- -
-
- - - - - - - - - - - - - - - - - - -
STATUS dbsetrow (DBPROCESSdbproc,
DBINT row 
)
-
- -

Make a buffered row "current" without fetching it into bound variables.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - - -
MORE_ROWSrow found
NO_MORE_ROWSrow not found
FAILdbproc is dead or not enabled
-
-
-
See also
dbaltbind(), dbbind(), dbcanquery(), dbclrbuf(), dbgetrow(), dbnextrow(), dbprrow().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsettime()

- -
-
- - - - - - - - -
RETCODE dbsettime (int seconds)
-
- -

Set maximum seconds db-lib waits for a server response to query.

-
Parameters
- - -
secondsNew limit for application.
-
-
-
Return values
- - -
SUCCEEDAlways.
-
-
-
See also
dberrhandle(), DBGETTIME(), dbsetlogintime(), dbsqlexec(), dbsqlok(), dbsqlsend().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetuserdata()

- -
-
- - - - - - - - - - - - - - - - - - -
void dbsetuserdata (DBPROCESSdbproc,
BYTE * ptr 
)
-
- -

Associate client-allocated (and defined) data with a DBPROCESS.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
ptraddress of client-defined data.
-
-
-
Remarks
ptr is the location of user data that db-lib will associate with dbproc. The client allocates the buffer addressed by ptr. db-lib never examines or uses the information; it just stashes the pointer for later retrieval by the application with dbgetuserdata().
-
See also
dbgetuserdata().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsetversion()

- -
-
- - - - - - - - -
RETCODE dbsetversion (DBINT version)
-
- -

Specify a db-lib version level.

-
Parameters
- - -
versionanything, really.
-
-
-
Return values
- - -
SUCCEEDAlways.
-
-
-
Remarks
No effect on behavior of db-lib in FreeTDS.
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbspid()

- -
-
- - - - - - - - -
int dbspid (DBPROCESSdbproc)
-
- -

Get server process ID for a DBPROCESS.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
"spid", the server's process ID.
-
See also
dbopen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbspr1row()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbspr1row (DBPROCESSdbproc,
char * buffer,
DBINT buf_len 
)
-
- -

Print a regular result row to a buffer.

-

Fills a buffer with one data row, represented as a null-terminated ASCII string. Helpful for debugging.

Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
bufferoutput: Address of a buffer to hold ASCII null-terminated string.
buf_lensize of buffer, in bytes.
-
-
-
Return values
- - - -
SUCCEEDon success.
FAILtrouble encountered.
-
-
-
See also
dbclropt(), dbisopt(), dbprhead(), dbprrow(), dbspr1rowlen(), dbsprhead(), dbsprline().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbspr1rowlen()

- -
-
- - - - - - - - -
DBINT dbspr1rowlen (DBPROCESSdbproc)
-
- -

Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row().

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
size of buffer requirement, in bytes.
-
Remarks
An esoteric function.
-
See also
dbprhead(), dbprrow(), dbspr1row(), dbsprhead(), dbsprline().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsprhead()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbsprhead (DBPROCESSdbproc,
char * buffer,
DBINT buf_len 
)
-
- -

Print result set headings to a buffer.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
bufferoutput buffer
buf_lensize of buffer
-
-
-
Return values
- - - -
SUCCEEDbuffer filled.
FAILinsufficient space in buffer, usually.
-
-
-
See also
dbprhead(), dbprrow(), dbsetopt(), dbspr1row(), dbspr1rowlen(), dbsprline().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsprline()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbsprline (DBPROCESSdbproc,
char * buffer,
DBINT buf_len,
DBCHAR line_char 
)
-
- -

Get formatted string for underlining dbsprhead() column names.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
bufferoutput buffer
buf_lensize of buffer
line_charcharacter to use to represent underlining.
-
-
-
Return values
- - - -
SUCCEEDbuffer filled.
FAILinsufficient space in buffer, usually.
-
-
-
See also
dbprhead(), dbprrow(), dbspr1row(), dbspr1rowlen(), dbsprhead().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbsqlexec()

- -
-
- - - - - - - - -
RETCODE dbsqlexec (DBPROCESSdbproc)
-
- -

send the SQL command to the server and wait for an answer.

-

Please be patient. This function waits for the server to respond. dbsqlexec is equivalent to dbsqlsend() followed by dbsqlok().

Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - -
SUCCEEDquery was processed without errors.
FAILwas returned by dbsqlsend() or dbsqlok().
-
-
-
See also
dbcmd(), dbfcmd(), dbnextrow(), dbresults(), dbretstatus(), dbsettime(), dbsqlok(), dbsqlsend()
- -
-
- -

§ dbsqlok()

- -
-
- - - - - - - - -
RETCODE dbsqlok (DBPROCESSdbproc)
-
- -

Wait for results of a query from the server.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - -
SUCCEEDeverything worked, fetch results with dbnextresults().
FAILSQL syntax error, typically.
-
-
-
See also
dbcmd(), dbfcmd(), DBIORDESC(), DBIOWDESC(), dbmoretext(), dbnextrow(), dbpoll(), DBRBUF(), dbresults(), dbretstatus(), dbrpcsend(), dbsettime(), dbsqlexec(), dbsqlsend(), dbwritetext().
- -
-
- -

§ dbsqlsend()

- -
-
- - - - - - - - -
RETCODE dbsqlsend (DBPROCESSdbproc)
-
- -

Transmit the command buffer to the server.

-

Non-blocking, does not wait for a response.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - -
SUCCEEDSQL sent.
FAILprotocol problem, unless dbsqlsend() when it's not supposed to be (in which case a db-lib error message will be emitted).
-
-
-
See also
dbcmd(), dbfcmd(), DBIORDESC(), DBIOWDESC(), dbnextrow(), dbpoll(), dbresults(), dbsettime(), dbsqlexec(), dbsqlok().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbstrbuild()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbstrbuild (DBPROCESSdbproc,
char * charbuf,
int bufsize,
char * text,
char * formats,
 ... 
)
-
- -

Build a printable string from text containing placeholders for variables.

-
Parameters
- - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
charbufoutput: buffer that will contain the ASCII null-terminated string built by dbstrbuild().
bufsizesize of charbuf, in bytes.
textnull-terminated ASCII string, with placeholders for variables. A Placeholder is a three-byte string, made up of:
    -
  • '' a percent sign
  • -
  • 0-9 an integer (designates the argument number to use, starting with 1.)
  • -
  • '!' an exclamation point
  • -
-
formatsnull-terminated ASCII sprintf-style string. Has one format specifier for each placeholder in text.
-
-
-
Remarks
Following formats are the arguments, the values to substitute for the placeholders.
-
See also
dbconvert(), dbdatename(), dbdatepart().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbstrcpy()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbstrcpy (DBPROCESSdbproc,
int start,
int numbytes,
char * dest 
)
-
- -

Get a copy of a chunk of the command buffer.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
startposition in the command buffer to start copying from, starting from 0. If start is past the end of the command buffer, dbstrcpy() inserts a null terminator at dest[0].
numbytesnumber of bytes to copy.
    -
  • If -1, dbstrcpy() copies the whole command buffer.
  • -
  • If 0 dbstrcpy() writes a NULL to dest[0].
  • -
  • If the command buffer contains fewer than numbytes (taking start into account) dbstrcpy() copies the rest of it.
  • -
-
destoutput: the buffer to write to. Make sure it's big enough.
-
-
-
Return values
- - - -
SUCCEEDthe inputs were valid and dest was affected.
FAILstart < 0 or numbytes < -1.
-
-
-
See also
dbcmd(), dbfcmd(), dbfreebuf(), dbgetchar(), dbstrlen().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbstrlen()

- -
-
- - - - - - - - -
int dbstrlen (DBPROCESSdbproc)
-
- -

Get size of the command buffer, in bytes.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
dbcmd(), dbfcmd(), dbfreebuf(), dbgetchar(), dbstrcpy().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbtablecolinfo()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbtablecolinfo (DBPROCESSdbproc,
DBINT column,
DBCOLpdbcol 
)
-
- -

describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo)

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
pdbcoladdress of structure to be populated by this function.
-
-
-
Returns
SUCCEED or FAIL.
-
See also
dbcolinfo().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbtxptr()

- -
-
- - - - - - - - - - - - - - - - - - -
DBBINARY* dbtxptr (DBPROCESSdbproc,
int column 
)
-
- -

Get text pointer for a column in the current row.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnnumber of the column in the SELECT statement, starting at 1.
-
-
-
Returns
text pointer for column, may be NULL.
-
See also
dbtxtimestamp(), dbwritetext().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbtxtimestamp()

- -
-
- - - - - - - - - - - - - - - - - - -
DBBINARY* dbtxtimestamp (DBPROCESSdbproc,
int column 
)
-
- -

Get text timestamp for a column in the current row.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnnumber of the column in the SELECT statement, starting at 1.
-
-
-
Returns
timestamp for column, may be NULL.
-
See also
dbtxptr(), dbwritetext().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbuse()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbuse (DBPROCESSdbproc,
const char * name 
)
-
- -

Change current database.

-

Analagous to the unix command cd, dbuse() makes name the default database. Waits for an answer from the server.

Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
namedatabase to use.
-
-
-
Return values
- - - -
SUCCEEDquery was processed without errors.
FAILquery was not processed
-
-
-
See also
dbchange(), dbname().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbvarylen()

- -
-
- - - - - - - - - - - - - - - - - - -
DBINT dbvarylen (DBPROCESSdbproc,
int column 
)
-
- -

Determine whether a column can vary in size.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
-
-
-
Return values
- - - -
TRUEdatatype of column can vary in size, or is nullable.
FALSEdatatype of column is fixed and is not nullable.
-
-
-
See also
dbcollen(), dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols(), dbprtype().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbversion()

- -
-
- - - - - - - - -
const char* dbversion (void )
-
- -

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.
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbwillconvert()

- -
-
- - - - - - - - - - - - - - - - - - -
DBBOOL dbwillconvert (int srctype,
int desttype 
)
-
- -

Test whether or not a datatype can be converted to another datatype.

-
Parameters
- - - -
srctypetype converting from
desttypetype converting to
-
-
-
Remarks
dbwillconvert() lies sometimes. Some datatypes should be convertible but aren't yet in our implementation. Legal unimplemented conversions return TRUE.
-
Return values
- - - -
TRUEconvertible, or should be.
FAILnot convertible.
-
-
-
See also
dbaltbind(), dbbind(), dbconvert(), dbconvert_ps(), src/dblib/unittests/convert().c().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbwritetext()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbwritetext (DBPROCESSdbproc,
char * objname,
DBBINARY * textptr,
DBTINYINT textptrlen,
DBBINARY * timestamp,
DBBOOL log,
DBINT size,
BYTE * text 
)
-
- -

Send text or image data to the server.

-
Parameters
- - - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
objnametable name
textptrtext pointer to be modified, obtained from dbtxptr().
textptrlenIgnored. Supposed to be DBTXPLEN.
timestamptext timestamp to be modified, obtained from dbtxtimestamp() or dbtxtsnewval(), may be NULL.
logTRUE if the operation is to be recorded in the transaction log.
sizeoverall size of the data (in total, not just for this call), in bytes. A guideline, must not overstate the case.
textthe chunk of data to write.
-
-
-
Return values
- - - -
SUCCEEDeverything worked.
FAILnot sent, possibly because timestamp is invalid or was changed in the database since it was fetched.
-
-
-
See also
dbmoretext(), dbtxptr(), dbtxtimestamp(), dbwritetext(), dbtxtsput().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00539.map freetds-1.2.3/doc/reference/a00539.map --- freetds-1.1.6/doc/reference/a00539.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00539.md5 freetds-1.2.3/doc/reference/a00539.md5 --- freetds-1.1.6/doc/reference/a00539.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f53ec29d32e6c52ddca71d3ff6c14176 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00539.svg freetds-1.2.3/doc/reference/a00539.svg --- freetds-1.1.6/doc/reference/a00539.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00539.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -Primary functions - - -Node1 - - -The db-lib API - - - - -Node0 - -Primary functions - - -Node1->Node0 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map freetds-1.2.3/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map --- freetds-1.1.6/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 freetds-1.2.3/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b00d9d2c6562fa78f3923e22392609f9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg freetds-1.2.3/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbretname - - -Node12 - -dbretname - - -Node13 - - -tdsdump_log - - - - -Node12->Node13 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map freetds-1.2.3/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map --- freetds-1.1.6/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 freetds-1.2.3/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3a6167b1a65daa9fe59d078800e018e4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg freetds-1.2.3/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbretstatus - - -Node15 - -dbretstatus - - -Node16 - - -tdsdump_log - - - - -Node15->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map freetds-1.2.3/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map --- freetds-1.1.6/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 freetds-1.2.3/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2835b2f31ae807c1d0597a6ac17afaa7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg freetds-1.2.3/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbretdata - - -Node6 - -dbretdata - - -Node7 - - -tdsdump_log - - - - -Node6->Node7 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map freetds-1.2.3/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map --- freetds-1.1.6/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 freetds-1.2.3/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cd96f312367882edcfff4bbe938b6e67 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg freetds-1.2.3/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrpcinit - - -Node21 - -dbrpcinit - - -Node22 - - -tdsdump_log - - - - -Node21->Node22 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map freetds-1.2.3/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map --- freetds-1.1.6/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 freetds-1.2.3/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2e5d9f2827a0f6b52ec8545dc85f439b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg freetds-1.2.3/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbhasretstat - - -Node0 - -dbhasretstat - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.map freetds-1.2.3/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.map --- freetds-1.1.6/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 freetds-1.2.3/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -95d37927a17196f7c4665094a10a4346 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg freetds-1.2.3/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrettype - - -Node18 - -dbrettype - - -Node19 - - -tdsdump_log - - - - -Node18->Node19 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map freetds-1.2.3/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map --- freetds-1.1.6/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 freetds-1.2.3/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6bf5b7cf61db957c1cbe96e6711d61e3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg freetds-1.2.3/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbretlen - - -Node9 - -dbretlen - - -Node10 - - -tdsdump_log - - - - -Node9->Node10 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map freetds-1.2.3/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map --- freetds-1.1.6/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 freetds-1.2.3/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1aa83ff860affae0a236f27198527137 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg freetds-1.2.3/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrpcparam - - -Node24 - -dbrpcparam - - -Node25 - - -tdsdump_log - - - - -Node24->Node25 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map freetds-1.2.3/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map --- freetds-1.1.6/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 freetds-1.2.3/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -47bf5ea1af28b2c7e39e5baacb7ed7fb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg freetds-1.2.3/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrpcsend - - -Node27 - -dbrpcsend - - -Node28 - - -tdsdump_log - - - - -Node27->Node28 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map freetds-1.2.3/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map --- freetds-1.1.6/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 freetds-1.2.3/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c01ad1afec66cab79d442e8e07c4dddc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg freetds-1.2.3/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbnumrets - - -Node3 - -dbnumrets - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00540.html freetds-1.2.3/doc/reference/a00540.html --- freetds-1.1.6/doc/reference/a00540.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,598 +0,0 @@ - - - - - - - -FreeTDS API: Remote Procedure functions - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
- -
-
Remote Procedure functions
-
-
- -

Functions used with stored procedures. -More...

-
-Collaboration diagram for Remote Procedure functions:
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

DBBOOL dbhasretstat (DBPROCESS *dbproc)
 Determine if query generated a return status number. More...
 
int dbnumrets (DBPROCESS *dbproc)
 Get count of output parameters filled by a stored procedure. More...
 
BYTE * dbretdata (DBPROCESS *dbproc, int retnum)
 Get value of an output parameter filled by a stored procedure. More...
 
int dbretlen (DBPROCESS *dbproc, int retnum)
 Get size of an output parameter filled by a stored procedure. More...
 
char * dbretname (DBPROCESS *dbproc, int retnum)
 Get name of an output parameter filled by a stored procedure. More...
 
DBINT dbretstatus (DBPROCESS *dbproc)
 Fetch status value returned by query or remote procedure call. More...
 
int dbrettype (DBPROCESS *dbproc, int retnum)
 Get datatype of a stored procedure's return parameter. More...
 
RETCODE dbrpcinit (DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
 Initialize a remote procedure call. More...
 
RETCODE dbrpcparam (DBPROCESS *dbproc, const char paramname[], BYTE status, int db_type, DBINT maxlen, DBINT datalen, BYTE *value)
 Add a parameter to a remote procedure call. More...
 
RETCODE dbrpcsend (DBPROCESS *dbproc)
 Execute the procedure and free associated memory. More...
 
-

Detailed Description

-

Functions used with stored procedures.

-

Especially useful for OUTPUT parameters, because modern Microsoft servers do not return output parameter data to the client unless the procedure was invoked with dbrpcsend().

-

Function Documentation

- -

§ dbhasretstat()

- -
-
- - - - - - - - -
DBBOOL dbhasretstat (DBPROCESSdbproc)
-
- -

Determine if query generated a return status number.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - -
TRUEfetch return status with dbretstatus().
FALSEno return status.
-
-
-
See also
dbnextrow(), dbresults(), dbretdata(), dbretstatus(), dbrpcinit(), dbrpcparam(), dbrpcsend().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbnumrets()

- -
-
- - - - - - - - -
int dbnumrets (DBPROCESSdbproc)
-
- -

Get count of output parameters filled by a stored procedure.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
How many, possibly zero.
-
Remarks
This name sounds funny.
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbretdata()

- -
-
- - - - - - - - - - - - - - - - - - -
BYTE* dbretdata (DBPROCESSdbproc,
int retnum 
)
-
- -

Get value of an output parameter filled by a stored procedure.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth parameter between 1 and the return value from dbnumrets().
-
-
-
Returns
Address of a return parameter value, or NULL if no such retnum.
-
See also
dbnextrow(), dbnumrets(), dbresults(), dbretlen(), dbretname(), dbrettype(), dbrpcinit(), dbrpcparam().
-
Todo:
Handle blobs.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbretlen()

- -
-
- - - - - - - - - - - - - - - - - - -
int dbretlen (DBPROCESSdbproc,
int retnum 
)
-
- -

Get size of an output parameter filled by a stored procedure.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth parameter between 1 and the return value from dbnumrets().
-
-
-
Returns
Size of a return parameter value, or NULL if no such retnum.
-
See also
dbnextrow(), dbnumrets(), dbresults(), dbretdata(), dbretname(), dbrettype(), dbrpcinit(), dbrpcparam().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbretname()

- -
-
- - - - - - - - - - - - - - - - - - -
char* dbretname (DBPROCESSdbproc,
int retnum 
)
-
- -

Get name of an output parameter filled by a stored procedure.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth parameter between 1 and the return value from dbnumrets().
-
-
-
Returns
ASCII null-terminated string, NULL if no such retnum.
-
See also
dbnextrow(), dbnumrets(), dbresults(), dbretdata(), dbretlen(), dbrettype(), dbrpcinit(), dbrpcparam().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbretstatus()

- -
-
- - - - - - - - -
DBINT dbretstatus (DBPROCESSdbproc)
-
- -

Fetch status value returned by query or remote procedure call.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
return value
-
See also
dbhasretstat(), dbnextrow(), dbresults(), dbretdata(), dbrpcinit(), dbrpcparam(), dbrpcsend().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbrettype()

- -
-
- - - - - - - - - - - - - - - - - - -
int dbrettype (DBPROCESSdbproc,
int retnum 
)
-
- -

Get datatype of a stored procedure's return parameter.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth return parameter, between 1 and dbnumrets().
-
-
-
Returns
SYB* datatype token, or -1 if retnum is out of range.
-
See also
dbnextrow(), dbnumrets(), dbprtype(), dbresults(), dbretdata(), dbretlen(), dbretname(), dbrpcinit(), dbrpcparam().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbrpcinit()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbrpcinit (DBPROCESSdbproc,
const char rpcname[],
DBSMALLINT options 
)
-
- -

Initialize a remote procedure call.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
rpcnamename of the stored procedure to be run.
optionsOnly supported option would be DBRPCRECOMPILE, which causes the stored procedure to be recompiled before executing.
-
-
-
Remarks
The RPC functions are the only way to get back OUTPUT parameter data with db-lib from modern Microsoft servers.
-
Return values
- - - -
SUCCEEDnormal.
FAILon error
-
-
-
See also
dbrpcparam(), dbrpcsend()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbrpcparam()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbrpcparam (DBPROCESSdbproc,
const char paramname[],
BYTE status,
int db_type,
DBINT maxlen,
DBINT datalen,
BYTE * value 
)
-
- -

Add a parameter to a remote procedure call.

-

Call between dbrpcinit() and dbrpcsend()

Parameters
- - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
paramnameliteral name of the parameter, according to the stored procedure (starts with '@'). Optional. If not used, parameters will be passed in order instead of by name.
statusmust be DBRPCRETURN, if this parameter is a return parameter, else 0.
typedatatype of the value parameter e.g., SYBINT4, SYBCHAR.
maxlenMaximum output size of the parameter's value to be returned by the stored procedure, usually the size of your host variable. Fixed-length datatypes take -1 (NULL or not). Non-OUTPUT parameters also use -1. Use 0 to send a NULL value for a variable length datatype.
datalenFor variable-length datatypes, the byte size of the data to be sent, exclusive of any null terminator. For fixed-length datatypes use -1. To send a NULL value, use 0.
valueAddress of your host variable.
-
-
-
Return values
- - - -
SUCCEEDnormal.
FAILon error
-
-
-
See also
dbrpcinit(), dbrpcsend()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbrpcsend()

- -
-
- - - - - - - - -
RETCODE dbrpcsend (DBPROCESSdbproc)
-
- -

Execute the procedure and free associated memory.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Return values
- - - -
SUCCEEDnormal.
FAILon error
-
-
-
See also
dbrpcinit(), dbrpcparam()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00540.map freetds-1.2.3/doc/reference/a00540.map --- freetds-1.1.6/doc/reference/a00540.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00540.md5 freetds-1.2.3/doc/reference/a00540.md5 --- freetds-1.1.6/doc/reference/a00540.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -afa158677d0d660b82a612f7a2334882 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00540.svg freetds-1.2.3/doc/reference/a00540.svg --- freetds-1.1.6/doc/reference/a00540.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00540.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -Remote Procedure functions - - -Node1 - - -The db-lib API - - - - -Node0 - -Remote Procedure functions - - -Node1->Node0 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map freetds-1.2.3/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -211820d9d7c564eff0d861073c034a33 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_colfmt - - -Node6 - -bcp_colfmt - - -Node7 - - -tdsdump_log - - - - -Node6->Node7 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map freetds-1.2.3/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fdbfe3b35cf208e22cafe0a2740a551d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_getl - - -Node29 - -bcp_getl - - -Node30 - - -tdsdump_log - - - - -Node29->Node30 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.map freetds-1.2.3/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -63e02e1631290a44b8cdda925074bfcc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga244547855b41788fa3a67756956fbc81_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_control - - -Node21 - -bcp_control - - -Node22 - - -tdsdump_log - - - - -Node21->Node22 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map freetds-1.2.3/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d932f722415bdc6b43825e766ae6cc4e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_columns - - -Node18 - -bcp_columns - - -Node19 - - -tdsdump_log - - - - -Node18->Node19 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map freetds-1.2.3/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -10c1df16ec12182126a1b769ca2e0d2d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_colptr - - -Node15 - -bcp_colptr - - -Node16 - - -tdsdump_log - - - - -Node15->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map freetds-1.2.3/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5d9624b1998abf3b9370a74d89a83e75 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_bind - - -Node3 - -bcp_bind - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map freetds-1.2.3/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6cf0e1288d9e00a4e84b57de0d7b88bc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_done - - -Node24 - -bcp_done - - -Node25 - - -tdsdump_log - - - - -Node24->Node25 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map freetds-1.2.3/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map --- freetds-1.1.6/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 freetds-1.2.3/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f92b101a21b6f5bb852950311488f6b3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg freetds-1.2.3/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_readfmt - - -Node38 - -bcp_readfmt - - -Node39 - - -tdsdump_log - - - - -Node38->Node39 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map freetds-1.2.3/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map --- freetds-1.1.6/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 freetds-1.2.3/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f24679941def59d20024967b1c7b8389 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg freetds-1.2.3/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_batch - - -Node0 - -bcp_batch - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map freetds-1.2.3/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map --- freetds-1.1.6/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 freetds-1.2.3/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a294b96d99afcac8d5cbba71d1114278 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg freetds-1.2.3/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_init - - -Node32 - -bcp_init - - -Node33 - - -tdsdump_log - - - - -Node32->Node33 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.map freetds-1.2.3/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.map --- freetds-1.1.6/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.md5 freetds-1.2.3/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -53bede04b74c70674437fbf0488f5e1f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.svg freetds-1.2.3/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gae41d196a22c544d66212dacc5b555791_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_collen - - -Node12 - -bcp_collen - - -Node13 - - -tdsdump_log - - - - -Node12->Node13 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map freetds-1.2.3/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map --- freetds-1.1.6/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 freetds-1.2.3/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5630dd00867acd2df2266f7b59bc300d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg freetds-1.2.3/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_sendrow - - -Node41 - -bcp_sendrow - - -Node42 - - -tdsdump_log - - - - -Node41->Node42 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.map freetds-1.2.3/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.map --- freetds-1.1.6/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 freetds-1.2.3/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -353f08465ae6e1051fa6615453cc922c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg freetds-1.2.3/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_colfmt_ps - - -Node9 - -bcp_colfmt_ps - - -Node10 - - -tdsdump_log - - - - -Node9->Node10 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map freetds-1.2.3/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map --- freetds-1.1.6/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 freetds-1.2.3/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 --- freetds-1.1.6/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b5775e9f53818c59f2c1d9cce56cfb6c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg freetds-1.2.3/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg --- freetds-1.1.6/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -bcp_options - - -Node35 - -bcp_options - - -Node36 - - -tdsdump_log - - - - -Node35->Node36 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00541.html freetds-1.2.3/doc/reference/a00541.html --- freetds-1.1.6/doc/reference/a00541.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,1037 +0,0 @@ - - - - - - - -FreeTDS API: Bulk copy functions - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
- -
-
Bulk copy functions
-
-
- -

Functions to bulk-copy (a/k/a bcp) data to/from the database. -More...

-
-Collaboration diagram for Bulk copy functions:
-
-
-
-
-
- - - - - -

-Modules

 Internal bcp functions
 Static functions internal to the bcp library.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

DBINT bcp_batch (DBPROCESS *dbproc)
 Commit a set of rows to the table. More...
 
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. More...
 
RETCODE bcp_colfmt (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)
 Specify the format of a datafile prior to writing to a table. More...
 
RETCODE bcp_colfmt_ps (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)
 Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. More...
 
RETCODE bcp_collen (DBPROCESS *dbproc, DBINT varlen, int table_column)
 Set the length of a host variable to be written to a table. More...
 
RETCODE bcp_colptr (DBPROCESS *dbproc, BYTE *colptr, int table_column)
 Override bcp_bind() by pointing to a different host variable. More...
 
RETCODE bcp_columns (DBPROCESS *dbproc, int host_colcount)
 Indicate how many columns are to be found in the datafile. More...
 
RETCODE bcp_control (DBPROCESS *dbproc, int field, DBINT value)
 Set BCP options for uploading a datafile. More...
 
DBINT bcp_done (DBPROCESS *dbproc)
 Conclude the transfer of data from program variables. More...
 
RETCODE bcp_exec (DBPROCESS *dbproc, DBINT *rows_copied)
 Write a datafile to a table. More...
 
DBBOOL bcp_getl (LOGINREC *login)
 See if BCP_SETL() was used to set the LOGINREC for BCP work. More...
 
RETCODE bcp_init (DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
 Prepare for bulk copy operation on a table. More...
 
RETCODE bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
 Set "hints" for uploading a file. More...
 
RETCODE bcp_readfmt (DBPROCESS *dbproc, const char filename[])
 Read a format definition file. More...
 
RETCODE bcp_sendrow (DBPROCESS *dbproc)
 Write data in host variables to the table. More...
 
-

Detailed Description

-

Functions to bulk-copy (a/k/a bcp) data to/from the database.

-

Function Documentation

- -

§ bcp_batch()

- -
-
- - - - - - - - -
DBINT bcp_batch (DBPROCESSdbproc)
-
- -

Commit a set of rows to the table.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Remarks
If not called, bcp_done() will cause the rows to be saved.
-
Returns
Count of rows saved, or -1 on error.
-
See also
bcp_bind(), bcp_done(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_bind()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_bind (DBPROCESSdbproc,
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.

-
Parameters
- - - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
varaddraddress of host variable
prefixlenlength of any prefix found at the beginning of varaddr, in bytes. Use zero for fixed-length datatypes.
varlenbytes of data in varaddr. Zero for NULL, -1 for fixed-length datatypes.
terminatorbyte sequence that marks the end of the data in varaddr
termlenlength of terminator
vartypedatatype of the host variable
table_columnNth column, starting at 1, in the table.
-
-
-
Remarks
The order of operation is: -
-
Returns
SUCCEED or FAIL.
-
See also
bcp_batch(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_moretext(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_colfmt()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_colfmt (DBPROCESSdbproc,
int host_colnum,
int host_type,
int host_prefixlen,
DBINT host_collen,
const BYTE * host_term,
int host_termlen,
int table_colnum 
)
-
- -

Specify the format of a datafile prior to writing to a table.

-
Parameters
- - - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
host_colnumdatafile column number (starting with 1, not zero).
host_typedataype token describing the data type in host_colnum. E.g. SYBCHAR for character data.
host_prefixlensize of the prefix in the datafile column, if any. For delimited files: zero. May be 0, 1, 2, or 4 bytes. The prefix will be read as an integer (not a character string) from the data file, and will be interpreted the data size of that column, in bytes.
host_collenmaximum size of datafile column, exclusive of any prefix/terminator. Just the data, ma'am. Special values:
    -
  • 0 indicates NULL.
  • -
  • -1 for fixed-length non-null datatypes
  • -
  • -1 for variable-length datatypes (e.g. SYBCHAR) where the length is established by a prefix/terminator.
  • -
-
host_termthe sequence of characters that will serve as a column terminator (delimiter) in the datafile. Often a tab character, but can be any string of any length. Zero indicates no terminator. Special characters:
    -
  • '\0' terminator is an ASCII NUL.
  • -
  • '\t' terminator is an ASCII TAB.
  • -
  • '\n' terminator is an ASCII NL.
  • -
-
host_termlenthe length of host_term, in bytes.
table_colnumNth column, starting at 1, in the table that maps to host_colnum. If there is a column in the datafile that does not map to a table column, set table_colnum to zero.
-
-
-
Remarks
bcp_colfmt() is called once for each column in the datafile, as specified with bcp_columns(). In so doing, you describe to FreeTDS how to parse each line of your datafile, and where to send each field.
-

When a prefix or terminator is used with variable-length data, host_collen may have one of three values:

    -
  • positive indicating the maximum number of bytes to be used
  • -
  • 0 indicating NULL
  • -
  • -1 indicating no maximum; all data, as described by the prefix/terminator will be used.
  • -
-
Returns
SUCCEED or FAIL.
-
See also
bcp_batch(), bcp_bind(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_init(), bcp_sendrow
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_colfmt_ps()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_colfmt_ps (DBPROCESSdbproc,
int host_colnum,
int host_type,
int host_prefixlen,
DBINT host_collen,
BYTE * host_term,
int host_termlen,
int table_colnum,
DBTYPEINFOtypeinfo 
)
-
- -

Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns.

-
Parameters
- - - - - - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
host_colnumdatafile column number (starting with 1, not zero).
host_typedataype token describing the data type in host_colnum. E.g. SYBCHAR for character data.
host_prefixlensize of the prefix in the datafile column, if any. For delimited files: zero. May be 0, 1, 2, or 4 bytes. The prefix will be read as an integer (not a character string) from the data file, and will be interpreted the data size of that column, in bytes.
host_collenmaximum size of datafile column, exclusive of any prefix/terminator. Just the data, ma'am. Special values:
    -
  • 0 indicates NULL.
  • -
  • -1 for fixed-length non-null datatypes
  • -
  • -1 for variable-length datatypes (e.g. SYBCHAR) where the length is established by a prefix/terminator.
  • -
-
host_termthe sequence of characters that will serve as a column terminator (delimiter) in the datafile. Often a tab character, but can be any string of any length. Zero indicates no terminator. Special characters:
    -
  • '\0' terminator is an ASCII NUL.
  • -
  • '\t' terminator is an ASCII TAB.
  • -
  • '\n' terminator is an ASCII NL.
  • -
-
host_termlenthe length of host_term, in bytes.
table_colnumNth column, starting at 1, in the table that maps to host_colnum. If there is a column in the datafile that does not map to a table column, set table_colnum to zero.
typeinfosomething
-
-
-
Todo:
Not implemented.
-
Returns
SUCCEED or FAIL.
-
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_init(), bcp_sendrow
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_collen()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_collen (DBPROCESSdbproc,
DBINT varlen,
int table_column 
)
-
- -

Set the length of a host variable to be written to a table.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
varlensize of the variable, in bytes, or
    -
  • 0 indicating NULL
  • -
-
-
-
-
    -
  • -1 indicating size is determined by the prefix or terminator. (If both a prefix and a terminator are present, bcp is supposed to use the smaller of the two. This feature might or might not actually work.)
    Parameters
    - - -
    table_columnthe number of the column in the table (starting with 1, not zero).
    -
    -
    -
    Returns
    SUCCEED or FAIL.
    -
    See also
    bcp_bind(), bcp_colptr(), bcp_sendrow()
    -
  • -
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_colptr()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_colptr (DBPROCESSdbproc,
BYTE * colptr,
int table_column 
)
-
- -

Override bcp_bind() by pointing to a different host variable.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
colptrThe pointer, the address of your variable.
table_columnThe 1-based column ordinal in the table.
-
-
-
Remarks
Use between calls to bcp_sendrow(). After calling bcp_colptr(), subsequent calls to bcp_sendrow() will bind to the new address.
-
Returns
SUCCEED or FAIL.
-
See also
bcp_bind(), bcp_collen(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_columns()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE bcp_columns (DBPROCESSdbproc,
int host_colcount 
)
-
- -

Indicate how many columns are to be found in the datafile.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
host_colcountcount of columns in the datafile, irrespective of how many you intend to use.
-
-
-
Remarks
This function describes the file as it is, not how it will be used.
-
Returns
SUCCEED or FAIL. It's hard to see how it could fail.
-
See also
bcp_colfmt()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_control()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_control (DBPROCESSdbproc,
int field,
DBINT value 
)
-
- -

Set BCP options for uploading a datafile.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
fieldsymbolic constant indicating the option to be set, one of:
    -
  • BCPMAXERRS Maximum errors tolerated before quitting. The default is 10.
  • -
  • BCPFIRST The first row to read in the datafile. The default is 1.
  • -
  • BCPLAST The last row to read in the datafile. The default is to copy all rows. A value of -1 resets this field to its default?
  • -
  • BCPBATCH The number of rows per batch. Default is 0, meaning a single batch.
  • -
-
valueThe value for field.
-
-
-
Remarks
These options control the behavior of bcp_exec(). When writing to a table from application host memory variables, program logic controls error tolerance and batch size.
-
Returns
SUCCEED or FAIL.
-
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_done(), bcp_exec(), bcp_options()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_done()

- -
-
- - - - - - - - -
DBINT bcp_done (DBPROCESSdbproc)
-
- -

Conclude the transfer of data from program variables.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Remarks
Do not overlook this function. According to Sybase, failure to call bcp_done() "will result in unpredictable errors".
-
Returns
As with bcp_batch(), the count of rows saved, or -1 on error.
-
See also
bcp_batch(), bcp_bind(), bcp_moretext(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_exec()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE bcp_exec (DBPROCESSdbproc,
DBINT * rows_copied 
)
-
- -

Write a datafile to a table.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
rows_copiedbcp_exec will write the count of rows successfully written to this address. If rows_copied is NULL, it will be ignored by db-lib.
-
-
-
Returns
SUCCEED or FAIL.
-
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_init(), bcp_sendrow()
- -
-
- -

§ bcp_getl()

- -
-
- - - - - - - - -
DBBOOL bcp_getl (LOGINREClogin)
-
- -

See if BCP_SETL() was used to set the LOGINREC for BCP work.

-
Parameters
- - -
loginAddress of the LOGINREC variable to be passed to dbopen().
-
-
-
Returns
TRUE or FALSE.
-
See also
BCP_SETL(), bcp_init(), dblogin(), dbopen()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_init()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_init (DBPROCESSdbproc,
const char * tblname,
const char * hfile,
const char * errfile,
int direction 
)
-
- -

Prepare for bulk copy operation on a table.

-
Parameters
- - - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
tblnamethe name of the table receiving or providing the data.
hfilethe data file opposite the table, if any.
errfilethe "error file" captures messages and, if errors are encountered, copies of any rows that could not be written to the table.
directionone of
    -
  • DB_IN writing to the table
  • -
  • DB_OUT writing to the host file
  • -
-
-
-
-
Remarks
bcp_init() sets the host file data format and acquires the table metadata. It is called before the other bulk copy functions.
-

When writing to a table, bcp can use as its data source a data file (hfile), or program data in an application's variables. In the latter case, call bcp_bind() to associate your data with the appropriate table column.

Returns
SUCCEED or FAIL.
-
See also
BCP_SETL(), bcp_bind(), bcp_done(), bcp_exec()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_options()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE bcp_options (DBPROCESSdbproc,
int option,
BYTE * value,
int valuelen 
)
-
- -

Set "hints" for uploading a file.

-

A FreeTDS-only function.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
optionsymbolic constant indicating the option to be set, one of:
    -
  • BCPLABELED Not implemented.
  • -
  • BCPHINTS The hint to be passed when the bulk-copy begins.
  • -
-
valueThe string constant for option a/k/a the hint. One of:
    -
  • ORDER The data are ordered in accordance with the table's clustered index.
  • -
  • ROWS_PER_BATCH The batch size
  • -
  • KILOBYTES_PER_BATCH The approximate number of kilobytes to use for a batch size
  • -
  • TABLOCK Lock the table
  • -
  • CHECK_CONSTRAINTS Apply constraints
  • -
  • FIRE_TRIGGERS Fire any INSERT triggers on the target table
  • -
-
valuelenThe strlen of value.
-
-
-
Returns
SUCCEED or FAIL.
-
See also
bcp_control(), bcp_exec(),
-
Todo:
Simplify. Remove valuelen, and dbproc->bcpinfo->hint = strdup(hints[i])
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_readfmt()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE bcp_readfmt (DBPROCESSdbproc,
const char filename[] 
)
-
- -

Read a format definition file.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
filenameName that will be passed to fopen(3).
-
-
-
Remarks
Reads a format file and calls bcp_columns() and bcp_colfmt() as needed.
-
Returns
SUCCEED or FAIL.
-
See also
bcp_colfmt(), bcp_colfmt_ps(), bcp_columns(), bcp_writefmt()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ bcp_sendrow()

- -
-
- - - - - - - - -
RETCODE bcp_sendrow (DBPROCESSdbproc)
-
- -

Write data in host variables to the table.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Remarks
Call bcp_bind() first to describe the variables to be used. Use bcp_batch() to commit sets of rows. After sending the last row call bcp_done().
-
Returns
SUCCEED or FAIL.
-
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_init(), bcp_moretext(), bcp_options()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/a00541.map freetds-1.2.3/doc/reference/a00541.map --- freetds-1.1.6/doc/reference/a00541.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00541.md5 freetds-1.2.3/doc/reference/a00541.md5 --- freetds-1.1.6/doc/reference/a00541.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a948a5dc4d75b2b4bdbff5119fd6ab89 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00541.svg freetds-1.2.3/doc/reference/a00541.svg --- freetds-1.1.6/doc/reference/a00541.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00541.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -Bulk copy functions - - -Node1 - - -The db-lib API - - - - -Node0 - -Bulk copy functions - - -Node1->Node0 - - - - -Node2 - - -Internal bcp functions - - - - -Node0->Node2 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.map freetds-1.2.3/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.map --- freetds-1.1.6/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.md5 freetds-1.2.3/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4c338d9811ec2438314ed8f9c2a55a4a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.svg freetds-1.2.3/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga065757a7d0dce354660900de4aa79e2f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_read_hostfile - - -Node19 - -_bcp_read_hostfile - - -Node20 - - -tdsdump_log - - - - -Node19->Node20 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map freetds-1.2.3/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map --- freetds-1.1.6/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 freetds-1.2.3/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6dca40b2126ce06f2a7f00046651a575 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg freetds-1.2.3/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_get_col_data - - -Node14 - -_bcp_get_col_data - - -Node15 - - -tdsdump_log - - - - -Node14->Node15 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map freetds-1.2.3/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map --- freetds-1.1.6/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 freetds-1.2.3/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4113decb33f897c73cd99075a643165c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg freetds-1.2.3/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_exec_in - - -Node0 - -_bcp_exec_in - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map freetds-1.2.3/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map --- freetds-1.1.6/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 freetds-1.2.3/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f0a6404fd1eb168c428a07078ff2b6d1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg freetds-1.2.3/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_free_storage - - -Node11 - -_bcp_free_storage - - -Node12 - - -tdsdump_log - - - - -Node11->Node12 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map freetds-1.2.3/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map --- freetds-1.1.6/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 freetds-1.2.3/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5ebbdc36a497b736fa8abb29274c52f9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg freetds-1.2.3/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_free_columns - - -Node8 - -_bcp_free_columns - - -Node9 - - -tdsdump_log - - - - -Node8->Node9 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.map freetds-1.2.3/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.map --- freetds-1.1.6/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.md5 freetds-1.2.3/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a7ce19ef646bf87f260681c26993ab4f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.svg freetds-1.2.3/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gae67546338cb9542a4902aa914f57f314_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_exec_out - - -Node3 - -_bcp_exec_out - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map freetds-1.2.3/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map --- freetds-1.1.6/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 freetds-1.2.3/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a63b9d2945ab76d591b12b4f08f56235 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg freetds-1.2.3/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg --- freetds-1.1.6/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -_bcp_readfmt_colinfo - - -Node22 - -_bcp_readfmt_colinfo - - -Node23 - - -tdsdump_log - - - - -Node22->Node23 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00542.html freetds-1.2.3/doc/reference/a00542.html --- freetds-1.1.6/doc/reference/a00542.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Internal bcp functions +FreeTDS API: Todo List @@ -29,20 +29,22 @@ - + +/* @license-end */ -
-
- +
+
-
Internal bcp functions
+
Todo List
- -

Static functions internal to the bcp library. -More...

-
-Collaboration diagram for Internal bcp functions:
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

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 void _bcp_free_columns (DBPROCESS *dbproc)
 
static void _bcp_free_storage (DBPROCESS *dbproc)
 
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. More...
 
static int _bcp_get_term_var (BYTE *pdata, 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. More...
 
static STATUS _bcp_read_hostfile (DBPROCESS *dbproc, FILE *hostfile, int *row_error)
 
static int _bcp_readfmt_colinfo (DBPROCESS *dbproc, char *buf, BCP_HOSTCOLINFO *ci)
 
static int rtrim (char *str, int len)
 trim a string of trailing blanks More...
 
-

Detailed Description

-

Static functions internal to the bcp library.

-

Function Documentation

- -

§ _bcp_exec_in()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static RETCODE _bcp_exec_in (DBPROCESSdbproc,
DBINT * rows_copied 
)
-
-static
-
-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
rows_copied
-
-
-
Returns
SUCCEED or FAIL.
-
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ _bcp_exec_out()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static RETCODE _bcp_exec_out (DBPROCESSdbproc,
DBINT * rows_copied 
)
-
-static
-
-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
rows_copied
-
-
-
Returns
SUCCEED or FAIL.
-
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ _bcp_fgets()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static char* _bcp_fgets (char * buffer,
int size,
FILE * f 
)
-
-static
-
-
- -

§ _bcp_free_columns()

- -
-
- - - - - -
- - - - - - - - -
static void _bcp_free_columns (DBPROCESSdbproc)
-
-static
-
-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
+
+
Member dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
+
Implement more options.
+
+
Member DBSETLENCRYPT (x, y)
+
Unimplemented.
+
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
+
open the log file earlier, so these messages can be seen.
+
+
Member tds_iconv (TDSSOCKET *tds, TDSICONV *conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
+

Check for variable multibyte non-UTF-8 input character set.
+

+

Use more robust error message generation.
+

+

For reads, cope with outbuf encodings that don't have the equivalent of an ASCII '?'.
+

+

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

+
+
Member dbfirstrow (DBPROCESS *dbproc)
+
Unimplemented.
+
Member dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
+
Check return value of called functions and return FAIL if appropriate.
+
Member dbcurcmd (DBPROCESS *dbproc)
+
Unimplemented.
+
Member dbcurrow (DBPROCESS *dbproc)
+
Unimplemented.
+
Member dbretdata (DBPROCESS *dbproc, int retnum)
+
Handle blobs.
+
"
+
The error/message handlers are not robust enough. They should anticipate certain conditions and cause the application to retry the operation.
+
+
Member dbcancel (DBPROCESS *dbproc)
+
Check for failure and return accordingly.
+
Member dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol)
+
Support cursor rows.
+
Member dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
+
Never fails, but only because failure conditions aren't checked.
+
+
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.
+

+
+
Member dbexit ()
+
breaks if ctlib/dblib used in same process.
+
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.

+
+
Member dbsetlbool (LOGINREC *login, int value, int which)
+
DBSETNOSHORT, DBSETENCRYPT, DBSETLABELED
+
Member bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
+
Simplify. Remove valuelen, and dbproc->bcpinfo->hint = strdup(hints[i])
+
Member bcp_colfmt_ps (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)
+
Not implemented.
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ _bcp_free_storage()

- -
-
- - - - - -
- - - - - - - - -
static void _bcp_free_storage (DBPROCESSdbproc)
-
-static
-
-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
See also
bcp_done(), bcp_exec(), bcp_init()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ _bcp_get_col_data()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static TDSRET _bcp_get_col_data (TDSBCPINFObcpinfo,
TDSCOLUMNbindcol,
int offset 
)
-
-static
-
- -

For a bcp in from program variables, get the data from the host variable.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
bindcol
-
-
-
Returns
TDS_SUCCESS or TDS_FAIL.
-
See also
_bcp_add_fixed_columns, _bcp_add_variable_columns, _bcp_send_bcp_record
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ _bcp_get_term_var()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static int _bcp_get_term_var (BYTE * pdata,
BYTE * term,
int term_len 
)
-
-static
-
- -

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.

-

Call it correctly.

-
Parameters
- - - - -
pdata
term
term_len
-
-
-
Returns
data length.
- -
-
- -

§ _bcp_read_hostfile()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static STATUS _bcp_read_hostfile (DBPROCESSdbproc,
FILE * hostfile,
int * row_error 
)
-
-static
-
-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
hostfile
row_error
-
-
-
Returns
MORE_ROWS, NO_MORE_ROWS, or FAIL.
-
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ _bcp_readfmt_colinfo()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static int _bcp_readfmt_colinfo (DBPROCESSdbproc,
char * buf,
BCP_HOSTCOLINFOci 
)
-
-static
-
-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
buf
ci
-
-
-
Returns
SUCCEED or FAIL.
-
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ rtrim()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static int rtrim (char * str,
int len 
)
-
-static
-
- -

trim a string of trailing blanks

-

Replaces spaces at the end of a string with NULs

Parameters
- - - -
strpointer to a character buffer (not null-terminated)
lensize of the str in bytes
-
-
-
Returns
modified length
- -
-
-
+
+ diff -Nru freetds-1.1.6/doc/reference/a00542.map freetds-1.2.3/doc/reference/a00542.map --- freetds-1.1.6/doc/reference/a00542.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00542.md5 freetds-1.2.3/doc/reference/a00542.md5 --- freetds-1.1.6/doc/reference/a00542.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -069f21c18b9565787de5d0db6c1a3eca \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00542.svg freetds-1.2.3/doc/reference/a00542.svg --- freetds-1.1.6/doc/reference/a00542.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00542.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -Internal bcp functions - - -Node0 - -Internal bcp functions - - -Node1 - - -Bulk copy functions - - - - -Node1->Node0 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map freetds-1.2.3/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8ae2c42656af51b298b02898401f2958 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmny4zero - - -Node15 - -dbmny4zero - - -Node16 - - -tdsdump_log - - - - -Node15->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map freetds-1.2.3/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1ab6154da4b8832cff9cd9ff96a2d90f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmny4add - - -Node0 - -dbmny4add - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map freetds-1.2.3/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d1fc7c70afc2832768c943ff4ee1a42c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmny4cmp - - -Node3 - -dbmny4cmp - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map freetds-1.2.3/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f1f63e026ded3c0444556abff59f752e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnymaxpos - - -Node33 - -dbmnymaxpos - - -Node34 - - -tdsdump_log - - - - -Node33->Node34 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map freetds-1.2.3/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -deee279e4d42d7fd5f32e0775ed50932 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmny4minus - - -Node9 - -dbmny4minus - - -Node10 - - -tdsdump_log - - - - -Node9->Node10 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map freetds-1.2.3/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f995307619252fda7445b624aa5692b7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnyminus - - -Node36 - -dbmnyminus - - -Node37 - - -tdsdump_log - - - - -Node36->Node37 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map freetds-1.2.3/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a922e9b33ac950c0b2aca460dd5416c8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmny4sub - - -Node12 - -dbmny4sub - - -Node13 - - -tdsdump_log - - - - -Node12->Node13 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.map freetds-1.2.3/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -722c0411ae9ed6e0ecf5a23033ba2e4c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnyzero - - -Node39 - -dbmnyzero - - -Node40 - - -tdsdump_log - - - - -Node39->Node40 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map freetds-1.2.3/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map --- freetds-1.1.6/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 freetds-1.2.3/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -316a1fcd814837b304e55362744e61a6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg freetds-1.2.3/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnycopy - - -Node21 - -dbmnycopy - - -Node22 - - -tdsdump_log - - - - -Node21->Node22 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map freetds-1.2.3/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map --- freetds-1.1.6/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 freetds-1.2.3/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -aaac4f7c206b0bdefcb69b60e9ab1e17 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg freetds-1.2.3/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmny4copy - - -Node6 - -dbmny4copy - - -Node7 - - -tdsdump_log - - - - -Node6->Node7 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map freetds-1.2.3/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map --- freetds-1.1.6/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 freetds-1.2.3/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b6d2a51649e1938121d82d255c4b097e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg freetds-1.2.3/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnymaxneg - - -Node30 - -dbmnymaxneg - - -Node31 - - -tdsdump_log - - - - -Node30->Node31 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map freetds-1.2.3/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map --- freetds-1.1.6/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 freetds-1.2.3/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5099f87aaf28bba830a3c91ec002683a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg freetds-1.2.3/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnydec - - -Node24 - -dbmnydec - - -Node25 - - -tdsdump_log - - - - -Node24->Node25 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map freetds-1.2.3/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map --- freetds-1.1.6/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 freetds-1.2.3/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5dc5169ee39a0ddc4dbdf3f998d3e1b6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg freetds-1.2.3/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnyinc - - -Node27 - -dbmnyinc - - -Node28 - - -tdsdump_log - - - - -Node27->Node28 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.map freetds-1.2.3/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.map --- freetds-1.1.6/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 freetds-1.2.3/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 --- freetds-1.1.6/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -efa37ca7a4e7f1583050e35a3a782dcf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.svg freetds-1.2.3/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.svg --- freetds-1.1.6/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543_gadddacad5c3028aa8d3726246c3825651_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmnycmp - - -Node18 - -dbmnycmp - - -Node19 - - -tdsdump_log - - - - -Node18->Node19 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00543.html freetds-1.2.3/doc/reference/a00543.html --- freetds-1.1.6/doc/reference/a00543.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Money functions +FreeTDS API: Bug List @@ -29,20 +29,22 @@ - + +/* @license-end */ -
-
- +
+
-
Money functions
+
Bug List
- -

Functions to manipulate the MONEY datatype. -More...

-
-Collaboration diagram for Money functions:
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

RETCODE dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
 Add two DBMONEY4 values. More...
 
int dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
 Compare two DBMONEY4 values. More...
 
RETCODE dbmny4copy (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Copy a DBMONEY4 value. More...
 
RETCODE dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Negate a DBMONEY4 value. More...
 
RETCODE dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
 Subtract two DBMONEY4 values. More...
 
RETCODE dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest)
 Zero a DBMONEY4 value. More...
 
int dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
 Compare two DBMONEY values. More...
 
RETCODE dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Copy a DBMONEY value. More...
 
RETCODE dbmnydec (DBPROCESS *dbproc, DBMONEY *amount)
 Subtract $0.0001 from a DBMONEY value. More...
 
RETCODE dbmnyinc (DBPROCESS *dbproc, DBMONEY *amount)
 Add $0.0001 to a DBMONEY value. More...
 
RETCODE dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum negative DBMONEY value supported. More...
 
RETCODE dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum positive DBMONEY value supported. More...
 
RETCODE dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Negate a DBMONEY value. More...
 
RETCODE dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest)
 Set a DBMONEY value to zero. More...
 
-

Detailed Description

-

Functions to manipulate the MONEY datatype.

-

Function Documentation

- -

§ dbmny4add()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmny4add (DBPROCESSdbproc,
DBMONEY4m1,
DBMONEY4m2,
DBMONEY4sum 
)
-
- -

Add two DBMONEY4 values.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
m1first operand.
m2other operand.
sumoutput: result of computation.
-
-
-
Return values
- - - -
SUCCEEDusually.
FAILon overflow.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmny4cmp()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int dbmny4cmp (DBPROCESSdbproc,
DBMONEY4m1,
DBMONEY4m2 
)
-
- -

Compare two DBMONEY4 values.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
m1some money.
m2some other money.
-
-
-
Return values
- - - - -
0m1 == m2.
-1m1 < m2.
1m1 > m2.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmny4copy()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmny4copy (DBPROCESSdbproc,
DBMONEY4src,
DBMONEY4dest 
)
-
- -

Copy a DBMONEY4 value.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY4 structure.
destoutput: new money.
-
-
-
Return values
- - -
SUCCEEDor FAIL if src/dest NULL.
-
-
-
See also
dbmnycopy(), dbmnyminus(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmny4minus()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmny4minus (DBPROCESSdbproc,
DBMONEY4src,
DBMONEY4dest 
)
-
- -

Negate a DBMONEY4 value.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY4 structure.
destoutput: result of negation.
-
-
-
Return values
- - - -
SUCCEEDusually.
FAILon overflow.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmny4sub()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmny4sub (DBPROCESSdbproc,
DBMONEY4m1,
DBMONEY4m2,
DBMONEY4diff 
)
-
- -

Subtract two DBMONEY4 values.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
m1first operand.
m2other operand, subtracted from m1.
diffoutput: result of computation.
-
-
-
Return values
- - - -
SUCCEEDusually.
FAILon overflow.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmny4zero()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbmny4zero (DBPROCESSdbproc,
DBMONEY4dest 
)
-
- -

Zero a DBMONEY4 value.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
destaddress of a DBMONEY structure.
-
-
-
Return values
- - - -
SUCCEEDusually.
FAILdest is NULL.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnycmp()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int dbmnycmp (DBPROCESSdbproc,
DBMONEYm1,
DBMONEYm2 
)
-
- -

Compare two DBMONEY values.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
m1some money.
m2some other money.
-
-
-
Return values
- - - - -
0m1 == m2.
-1m1 < m2.
1m1 > m2.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnycopy()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmnycopy (DBPROCESSdbproc,
DBMONEYsrc,
DBMONEYdest 
)
-
- -

Copy a DBMONEY value.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY structure.
destoutput: new money.
-
-
-
Return values
- - -
SUCCEEDalways, unless src or dest is NULL.
-
-
-
See also
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnydec()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbmnydec (DBPROCESSdbproc,
DBMONEYamount 
)
-
- -

Subtract $0.0001 from a DBMONEY value.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
-
-
-
Return values
- - -
SUCCEEDor FAIL if overflow or amount NULL.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnyinc()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbmnyinc (DBPROCESSdbproc,
DBMONEYamount 
)
-
- -

Add $0.0001 to a DBMONEY value.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
-
-
-
Return values
- - -
SUCCEEDor FAIL if overflow or amount NULL.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnymaxneg()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbmnymaxneg (DBPROCESSdbproc,
DBMONEYamount 
)
-
- -

Get maximum negative DBMONEY value supported.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
-
+
+
Member dbcolname (DBPROCESS *dbproc, int column)
+
Relies on ASCII column names, post iconv conversion.
+ Will not work as described for UTF-8 or UCS-2 clients.
+ But maybe it shouldn't.
+
-
Return values
- - -
SUCCEEDAlways.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnymaxpos()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbmnymaxpos (DBPROCESSdbproc,
DBMONEYamount 
)
-
- -

Get maximum positive DBMONEY value supported.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
-
-
-
Return values
- - -
SUCCEEDAlways.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnyminus()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
RETCODE dbmnyminus (DBPROCESSdbproc,
DBMONEYsrc,
DBMONEYdest 
)
-
- -

Negate a DBMONEY value.

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY structure.
destoutput: result of negation.
-
-
-
Return values
- - -
SUCCEEDor FAIL if overflow or src/dest NULL.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ dbmnyzero()

- -
-
- - - - - - - - - - - - - - - - - - -
RETCODE dbmnyzero (DBPROCESSdbproc,
DBMONEYdest 
)
-
- -

Set a DBMONEY value to zero.

-
Parameters
- - - -
dbproccontains all information needed by db-lib to manage communications with the server.
destaddress of a DBMONEY structure.
-
-
-
Return values
- - -
SUCCEEDunless amount is NULL.
-
-
-
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
-
-Here is the call graph for this function:
-
-
-
-
- -
-
-
+
+ diff -Nru freetds-1.1.6/doc/reference/a00543.map freetds-1.2.3/doc/reference/a00543.map --- freetds-1.1.6/doc/reference/a00543.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00543.md5 freetds-1.2.3/doc/reference/a00543.md5 --- freetds-1.1.6/doc/reference/a00543.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -abae87442beb1ace53cef1abd309d6fb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00543.svg freetds-1.2.3/doc/reference/a00543.svg --- freetds-1.1.6/doc/reference/a00543.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00543.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -Money functions - - -Node1 - - -The db-lib API - - - - -Node0 - -Money functions - - -Node1->Node0 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map freetds-1.2.3/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map --- freetds-1.1.6/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 freetds-1.2.3/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -61e6b1f615b03f5cf91ac2f0c39857e2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg freetds-1.2.3/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg --- freetds-1.1.6/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbdatecmp - - -Node0 - -dbdatecmp - - -Node1 - - -tdsdump_log - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map freetds-1.2.3/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map --- freetds-1.1.6/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 freetds-1.2.3/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -43f2f8dad007d82d69515edc5afd40b6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg freetds-1.2.3/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg --- freetds-1.1.6/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbmonthname - - -Node3 - -dbmonthname - - -Node4 - - -tdsdump_log - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00544.html freetds-1.2.3/doc/reference/a00544.html --- freetds-1.1.6/doc/reference/a00544.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Datetime functions +FreeTDS API: The db-lib API @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -59,159 +62,243 @@
-
Datetime functions
+
The db-lib API
-

Functions to manipulate DBDATETIME structures. +

Functions callable by db-lib client programs. More...

-Collaboration diagram for Datetime functions:
+Collaboration diagram for The db-lib API:
-
+
-
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + +

-Functions

int dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
 Compare DBDATETIME values, similar to strcmp(3). More...
 
const char * dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
 Get name of a month, in some human language. More...
 

+Modules

 Primary functions
 Core functions needed by most db-lib programs.
+
 
 Remote Procedure functions
 Functions used with stored procedures.
+ Especially useful for OUTPUT parameters, because modern Microsoft servers do not return output parameter data to the client unless the procedure was invoked with dbrpcsend().
+
 
 Bulk copy functions
 Functions to bulk-copy (a/k/a bcp) data to/from the database.
+
 
 Money functions
 Functions to manipulate the MONEY datatype.
+
 
 Datetime functions
 Functions to manipulate DBDATETIME structures. Defined by Sybase only.
+ These are not implemented:
 
 Internals
 Functions called within db-lib for self-help.
+ These functions are of interest only to people hacking on the FreeTDS db-lib implementation.
+
 
 Unimplemented
 Functions thus far not implemented in the FreeTDS db-lib implementation.
+ While some of these are simply awaiting someone with time and skill (and inclination) it might be noted here that the old browse functions (e.g. dbcolbrowse()) are on the never-to-do list.
+ They were defined by Sybase and were superseded long ago, although they're still present in Microsoft's implementation.
+ They were never popular and today better alternatives are available.
+ For completeness, they are:
 
+ + + + + + + + + + + + + + + +

+Macros

#define BCP_SETL(x, y)   dbsetlbool((x), (y), DBSETBCP)
 Enable (or prevent) bcp operations for connections made with a login.
+ More...
 
#define DBSETLAPP(x, y)   dbsetlname((x), (y), DBSETAPP)
 Set the (client) application name in the login packet.
+ More...
 
#define DBSETLHOST(x, y)   dbsetlname((x), (y), DBSETHOST)
 Set the (client) host name in the login packet.
+ More...
 
#define DBSETLPWD(x, y)   dbsetlname((x), (y), DBSETPWD)
 Set the password in the login packet.
+ More...
 
#define DBSETLUSER(x, y)   dbsetlname((x), (y), DBSETUSER)
 Set the username in the login packet.
+ More...
 

Detailed Description

-

Functions to manipulate DBDATETIME structures.

-

Defined by Sybase only. These are not implemented:

    -
  • dbdate4cmp()
  • -
  • dbdate4zero()
  • -
  • dbdatechar()
  • -
  • dbdatename()
  • -
  • dbdateorder()
  • -
  • dbdatepart()
  • -
  • dbdatezero()
  • -
  • dbdayname()
  • -
-

Function Documentation

- -

§ dbdatecmp()

+

Functions callable by db-lib client programs.

+

The db_lib interface is implemented by both Sybase and Microsoft. FreeTDS seeks to implement first the intersection of the functions defined by the vendors.
+

+

Macro Definition Documentation

+ +

◆ BCP_SETL

- + - - + + - - + + + + + + + + +
int dbdatecmp BCP_SETL (DBPROCESSdbproc,  x,
DBDATETIMEd1,  
)   dbsetlbool((x), (y), DBSETBCP)
+
+ +

Enable (or prevent) bcp operations for connections made with a login.
+

+
See also
bcp_setl()
+ +
+
+ +

◆ DBSETLAPP

+ +
+
+ + + + + + - - + + - +
DBSETLAPP( x,
DBDATETIMEd2  
)   dbsetlname((x), (y), DBSETAPP)
-

Compare DBDATETIME values, similar to strcmp(3).

-
Parameters
- - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
d1a DBDATETIME structure address
d2another DBDATETIME structure address
-
-
-
Return values
- - - - -
0d1 = d2.
-1d1 < d2.
1d1 > d2.
-
-
-
See also
dbdate4cmp(), dbmnycmp(), dbmny4cmp().
-
-Here is the call graph for this function:
-
-
-
-
+

Set the (client) application name in the login packet.
+

+
See also
dbsetlapp()
- -

§ dbmonthname()

+ +

◆ DBSETLHOST

- + - - + + - - + + - - - + + + +
const char* dbmonthname DBSETLHOST (DBPROCESSdbproc,  x,
char * language,  
int monthnum, )   dbsetlname((x), (y), DBSETHOST)
+
+ +

Set the (client) host name in the login packet.
+

+
See also
dbsetlhost()
+ +
+
+ +

◆ DBSETLPWD

+ +
+
+ + + + + + - - + + - +
DBSETLPWD( x,
DBBOOL shortform  
)   dbsetlname((x), (y), DBSETPWD)
-

Get name of a month, in some human language.

-
Parameters
- - - - - -
dbproccontains all information needed by db-lib to manage communications with the server.
languageignored.
monthnumnumber of the month, starting with 1.
shortformset to TRUE for a three letter output ("Jan" - "Dec"), else zero.
-
-
-
Returns
address of null-terminated ASCII string, or NULL on error.
-
See also
db12hour(), dbdateorder(), dbdayname(), DBSETLNATLANG(), dbsetopt().
-
-Here is the call graph for this function:
-
-
+

Set the password in the login packet.
+

+
See also
dbsetlpwd()
+
+ +

◆ DBSETLUSER

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBSETLUSER( x,
 
)   dbsetlname((x), (y), DBSETUSER)
+
+ +

Set the username in the login packet.
+

+
See also
dbsetluser()
@@ -220,7 +307,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00544.map freetds-1.2.3/doc/reference/a00544.map --- freetds-1.1.6/doc/reference/a00544.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,10 @@ - - + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00544.md5 freetds-1.2.3/doc/reference/a00544.md5 --- freetds-1.1.6/doc/reference/a00544.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -a734821bee4ec36c7d7683db17cef6c3 \ No newline at end of file +c22fe87bb2534f0cc2649634b7d98e18 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00544.svg freetds-1.2.3/doc/reference/a00544.svg --- freetds-1.1.6/doc/reference/a00544.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00544.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,127 @@ - - - - -Datetime functions - + + + +The db-lib API + -Node1 - - -The db-lib API + +Node1 + + +The db-lib API - -Node0 - -Datetime functions - - -Node1->Node0 - - + + +Node3 + + +Remote Procedure functions + + + + + +Node1->Node3 + + + + + +Node5 + + +Money functions + + + + + +Node1->Node5 + + + + + +Node7 + + +Internals + + + + + +Node1->Node7 + + + + + +Node2 + + +Primary functions + + + + + +Node1->Node2 + + + + + +Node6 + + +Datetime functions + + + + + +Node1->Node6 + + + + + +Node8 + + +Unimplemented + + + + + +Node1->Node8 + + + + + +Node4 + + +Bulk copy functions + + + + + +Node1->Node4 + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map freetds-1.2.3/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +4be24d2965f1625f1008a98223dfaebe \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga01404b179a251c249aecfdae72ec6ca4_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbclrbuf + + + +Node1 + + +dbclrbuf + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map freetds-1.2.3/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cd0e5ae7a705969462bd6f076cb6235d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcurcmd - - -Node10 - -dbcurcmd - - -Node11 - - -tdsdump_log - - - - -Node10->Node11 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.map freetds-1.2.3/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a45df3d6243ca3c7d72d1ee26bf7ace6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetlbool - - -Node43 - -dbsetlbool - - -Node44 - - -tdsdump_log - - - - -Node43->Node44 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map freetds-1.2.3/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +b67df5122ec9fd2e41abad7d9e5c01fb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0984798bb806f7451a53bffa7e2c430f_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dblogin + + + +Node1 + + +dblogin + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map freetds-1.2.3/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -76f343b154f345929f89738e2db31438 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcolptr - - -Node7 - -dbcolptr - - -Node8 - - -dbperror - - - - -Node7->Node8 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map freetds-1.2.3/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +cdc2e43b16263bd3cf01df4092cec112 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga0fcfcf6846442dac9dd5584d270ec72a_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbfreebuf + + + +Node1 + + +dbfreebuf + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map freetds-1.2.3/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +51318966ed9782f31be31c26de512f71 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga13caa07ec45cd6f64e9197d29e3cfe5e_cgraph.svg 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbstrlen + + + +Node1 + + +dbstrlen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map freetds-1.2.3/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8924be3106833066ee4e01ec303249fd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dblastrow - - -Node28 - -dblastrow - - -Node29 - - -tdsdump_log - - - - -Node28->Node29 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map freetds-1.2.3/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d66a3a6d3a7fe2018526911fe096e0e2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcmdrow - - -Node4 - -dbcmdrow - - -Node5 - - -tdsdump_log - - - - -Node4->Node5 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.map freetds-1.2.3/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +d2d526cc15c8aab45f8938c52de6e30b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga223a6d333f95e726b0b42ec19a076731_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbspid + + + +Node1 + + +dbspid + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.map freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -793c9f0c8a383f7a6219f7ad87e31461 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tdsdbopen - - -Node58 - -tdsdbopen - - -Node59 - - -tdsdump_open - - - - -Node58->Node59 - - - - -Node60 - - -tdsdump_log - - - - -Node58->Node60 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.map freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.map --- freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -aa8ae11ab92c62f13efa7e40579d984b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.svg freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tdsdbopen - - -Node61 - -tdsdbopen - - -Node62 - - -dbopen - - - - -Node61->Node62 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map freetds-1.2.3/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map --- freetds-1.1.6/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 freetds-1.2.3/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b841aabb56e70ee9a5b034b11d02d5ad \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg freetds-1.2.3/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbperror - - -Node32 - -dbperror - - -Node33 - - -dbcolptr - - - - -Node32->Node33 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map freetds-1.2.3/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9a86d4b797004cb3e8c332b7ae1bf31b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbconvert + + + +Node1 + + +dbconvert + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map freetds-1.2.3/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +a8652b104300ec5ccb8eca1355b3f377 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga39302e8efbb476ba01cff109ffb3661e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbservcharset + + + +Node1 + + +dbservcharset + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map freetds-1.2.3/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +faba27a3bf42857704f43b9fd9344aa4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetnull + + + +Node1 + + +dbsetnull + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map freetds-1.2.3/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9369b777dc9505502080d0ac41748d5e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga3a96d0188e5e0eb9eea661b3685fdcc3_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcolsource + + + +Node1 + + +dbcolsource + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map freetds-1.2.3/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +f2271d5aca949f092b145bcae3b2cc68 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga3c33e72c41b40e08dbcfdfa0d16bc399_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcoltypeinfo + + + +Node1 + + +dbcoltypeinfo + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.map freetds-1.2.3/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +c3e1705044c18a8c20b1a7707e6ee354 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga466690ceda8682382223d98a6ffb63bd_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbacolname + + + +Node1 + + +dbacolname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map freetds-1.2.3/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c4df2c5a0364fdda651c8fd8c077776d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrows - - -Node34 - -dbrows - - -Node35 - - -tdsdump_log - - - - -Node34->Node35 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map freetds-1.2.3/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +e5245090b9dee9187e496bfd309bba62 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,58 @@ + + + + + + +dbresults + + + +Node1 + + +dbresults + + + + + +Node2 + + +_dbresults + + + + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node1->Node3 + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map freetds-1.2.3/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +5412ecfa996a1161d97e968296a99cd8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbwritetext + + + +Node1 + + +dbwritetext + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map freetds-1.2.3/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +dec97774e33544c770f741a99d00d4ef \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcanquery + + + +Node1 + + +dbcanquery + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map freetds-1.2.3/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +e508ef825ddaeef3af482635c5a4fa8d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbvarylen + + + +Node1 + + +dbvarylen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map freetds-1.2.3/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6cde92270f21b1a819f6f22a4d10bb77 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga57e4098b153a030f0be02bcd98e08ba2_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbtxptr + + + +Node1 + + +dbtxptr + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map freetds-1.2.3/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0e44f443ff963dcdaf1ede07c1cc903f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetavail - - -Node40 - -dbsetavail - - -Node41 - - -tdsdump_log - - - - -Node40->Node41 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map freetds-1.2.3/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +a56b3c7ed5aac853f0e8cbfb6bd80f68 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcancel + + + +Node1 + + +dbcancel + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map freetds-1.2.3/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +1af22c186ab21a53a68ec70ae6456277 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga5f1281c07dde5a6d28e60ef62c501d1d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetlogintime + + + +Node1 + + +dbsetlogintime + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map freetds-1.2.3/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +bb61478eb17a5be53c7af6843748ac51 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga636e6f1b64743f3cf22158a56eef371f_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcoltype + + + +Node1 + + +dbcoltype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.map freetds-1.2.3/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3275ae9cbdbbc811ee80d9557761e798 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga663350909fec3a1d152316c45a65e708_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetifile + + + +Node1 + + +dbsetifile + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.map freetds-1.2.3/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3bd737e00a2d218945fba4671bf19edf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga666726c86108342b1c1f27eecf68e13c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbversion + + + +Node1 + + +dbversion + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map freetds-1.2.3/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4b6651b08e943449128c0c415f27c2f4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbiowdesc - - -Node25 - -dbiowdesc - - -Node26 - - -tdsdump_log - - - - -Node25->Node26 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map freetds-1.2.3/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6dfa76fd32b724b02f0f29405e7fb3b9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga66ea891910f0a357cc78107d6ab7d962_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbuse + + + +Node1 + + +dbuse + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.map freetds-1.2.3/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6af450fb098391a42a2b2afbe456cfc9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga67934deac3bebbf8238eff8c0559389a_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbnumalts + + + +Node1 + + +dbnumalts + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map freetds-1.2.3/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9c09fb2465ac34f0b058f60061180faa \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6ba2a7f18cb76d24776e45fd71141494_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbiscount + + + +Node1 + + +dbiscount + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map freetds-1.2.3/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +183528fcdd4e1a161eff2692d9539c63 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6ccffbb3f0cfb10883ad349f1e47c50e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbgettime + + + +Node1 + + +dbgettime + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map freetds-1.2.3/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +c1ce41c10880cca72bfe7601bf6db04e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmoretext + + + +Node1 + + +dbmoretext + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map freetds-1.2.3/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +639baa740f0895c9181fcb17a5300944 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga85dcc40c3615f94be96b09b2ec043533_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbnullbind + + + +Node1 + + +dbnullbind + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.map freetds-1.2.3/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9c37d85d11057970a078a2547b15482d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga873bc0f4663165e711655ade1dfae795_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbbind + + + +Node1 + + +dbbind + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map freetds-1.2.3/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +c59c3e5d3b5a483e844c939497660ac6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga87b39d9863316b4ba85654b0885d53a0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcmd + + + +Node1 + + +dbcmd + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map freetds-1.2.3/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +1a2c9fe0a4fa5b9f2ef961f020980ed5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga89fc5589b4bf41932324d2cfc6ad6433_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcollen + + + +Node1 + + +dbcollen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.map freetds-1.2.3/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +2cad2a24a4d39285542a9a6310295cd6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga8cbc761b1266bd947783d843aeeec264_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbchange + + + +Node1 + + +dbchange + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map freetds-1.2.3/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5160d712e35551801b36269d728b57c6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbtds - - -Node52 - -dbtds - - -Node53 - - -tdsdump_log - - - - -Node52->Node53 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map freetds-1.2.3/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +18eb005339b4ec88733b3eb7fc88ea8d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga939c2a2e67b9992c787e2cec5b6cc1a7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbanullbind + + + +Node1 + + +dbanullbind + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map freetds-1.2.3/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +fa8c2c4b0e046f8c683b004687e3fa3b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga93ee3c8ca34a08588f88784898fd69e0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbclropt + + + +Node1 + + +dbclropt + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.map freetds-1.2.3/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +165ec402134fb7464504984626efa189 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9433bc200c0978569964354451d9b64e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcount + + + +Node1 + + +dbcount + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.map freetds-1.2.3/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +7364924201460ae8d0f4c405962778fb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga947837a5c8fd99898c043435945b668c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbaltop + + + +Node1 + + +dbaltop + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map freetds-1.2.3/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +0fef53661e74de0c233459d93c3dc9dd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbtablecolinfo + + + +Node1 + + +dbtablecolinfo + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map freetds-1.2.3/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +eb3152864f68a35287aa643107fe6006 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9a35c8d3cd0e35c10555baf8f6a01e93_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbaltlen + + + +Node1 + + +dbaltlen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map freetds-1.2.3/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +b5296e4aa57daa60bf6175d234e2a6ac \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetopt + + + +Node1 + + +dbsetopt + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map freetds-1.2.3/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map --- freetds-1.1.6/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 freetds-1.2.3/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cefb60d3319c9f581b6b01ec250c9a6c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg freetds-1.2.3/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbcurrow - - -Node13 - -dbcurrow - - -Node14 - - -tdsdump_log - - - - -Node13->Node14 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map freetds-1.2.3/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -60427ddd1908cfd82cc4b18f602ede83 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbrowtype - - -Node37 - -dbrowtype - - -Node38 - - -tdsdump_log - - - - -Node37->Node38 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map freetds-1.2.3/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +a795916f2bdc150f5608a16679d5e8b1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa5714a91d7c14365fa1e5b164bb2b0b6_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbgetuserdata + + + +Node1 + + +dbgetuserdata + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map freetds-1.2.3/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +77e7a6388752dd4bf995acf48493b099 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaa85171e020dc606f2bd3395ad1d3ab4f_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbalttype + + + +Node1 + + +dbalttype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map freetds-1.2.3/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +2bd560bcd9d056120eee3b2318336f2a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsprhead + + + +Node1 + + +dbsprhead + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.map freetds-1.2.3/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +088ea433c1699c527d636237969373af \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaaf8349999c16b3c36caf5947747a2915_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbwillconvert + + + +Node1 + + +dbwillconvert + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map freetds-1.2.3/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +e43f8a01aba6fc9611b768f55693c638 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg freetds-1.2.3/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab185982ffe0b85b8fd19747bd1f433fe_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbname + + + +Node1 + + +dbname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map freetds-1.2.3/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +c6bb54d0daf03e5f5c0bad4cd3d7e467 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg freetds-1.2.3/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcolutype + + + +Node1 + + +dbcolutype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map freetds-1.2.3/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +5a3e1373ed08290b6a4a6a7386f3e0be \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg freetds-1.2.3/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab5fe0cd5f24d4fd33670111035a4fbed_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbstrbuild + + + +Node1 + + +dbstrbuild + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.map freetds-1.2.3/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0b1e1914d1f5ad4476f8bbc27a41f1a2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.svg freetds-1.2.3/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbiordesc - - -Node22 - -dbiordesc - - -Node23 - - -tdsdump_log - - - - -Node22->Node23 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map freetds-1.2.3/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +f756db71b15ad7bdb7587b4bdd33a9c0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg freetds-1.2.3/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gab9aa181fb3081ffb314340cbd71e434d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetversion + + + +Node1 + + +dbsetversion + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map freetds-1.2.3/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +35241160dba93e51682ef6acc533ae8b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg freetds-1.2.3/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabaf9aa756f7cb8bbec80d1c7201c6238_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbgetpacket + + + +Node1 + + +dbgetpacket + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map freetds-1.2.3/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +a51a6471eacf40b0b9834a82ac373877 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg freetds-1.2.3/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabb14ad9f268b92a8d63fa506098b24dd_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrecftos + + + +Node1 + + +dbrecftos + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map freetds-1.2.3/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +ebb506f8b61fc3f9730e4964c0ebc6c3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg freetds-1.2.3/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabcc14a1ca58b65bc46cce6c81c45218c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbadata + + + +Node1 + + +dbadata + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map freetds-1.2.3/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f0a90410e0f014907fb0331b4a3b90f7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg freetds-1.2.3/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetllong - - -Node46 - -dbsetllong - - -Node47 - - -tdsdump_log - - - - -Node46->Node47 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map freetds-1.2.3/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +71e451afb364a3a9eb2f1085a522d4d2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg freetds-1.2.3/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gabea9c70d02bf3e46bbb1d759915cb91e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetuserdata + + + +Node1 + + +dbsetuserdata + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map freetds-1.2.3/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +7261b223759d64e7120d7cd491ac3823 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac0cb0584f6500d61a2ac95a891da73eb_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbprcollen + + + +Node1 + + +dbprcollen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map freetds-1.2.3/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +0b7bc98a242ad0e4b6d72149e742ec4e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac25ae21ca19777ffab1c013bd6049ebf_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbprtype + + + +Node1 + + +dbprtype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map freetds-1.2.3/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3bcdbb6b5be84a573ab84365902e7bbd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3ba9f53cc77e4dde8f48335ed94ac19_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmorecmds + + + +Node1 + + +dbmorecmds + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map freetds-1.2.3/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +f51271f45de59bf34492cb00634d2fde \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3eb8cb53f50998403ea9aebc6263df9_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbisopt + + + +Node1 + + +dbisopt + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map freetds-1.2.3/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6251adb87079fbc26c4dbdc0d64b2c40 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac3f11142ec7ff25b1f8972af10fe9454_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbtxtimestamp + + + +Node1 + + +dbtxtimestamp + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map freetds-1.2.3/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +b12d8d0b2e29ce8d8840fb0d6e6c2cc1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac554d2cb2da0c9f9fd3d4867998edcc4_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbnumcompute + + + +Node1 + + +dbnumcompute + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.map freetds-1.2.3/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +bbc83f236f7ba48fefff11e880f00d12 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.svg freetds-1.2.3/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gac980139b9cea03cf93e373d425991481_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsqlsend + + + +Node1 + + +dbsqlsend + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map freetds-1.2.3/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -32cd9c4dfe89e08bee58b2d11d202674 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -default_err_handler - - -Node55 - -default_err_handler - - -Node56 - - -tdsdump_log - - - - -Node55->Node56 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.map freetds-1.2.3/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3204e3d629bbce516e67220a2a863640 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg freetds-1.2.3/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad0044401c8c83205583f93a4764f2d8b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbexit + + + +Node1 + + +dbexit + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.map freetds-1.2.3/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +de2d25b8a50f0e5bc9c10c4626207b7e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.svg freetds-1.2.3/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad06f5deddac18604dfa858b2580e232f_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcolname + + + +Node1 + + +dbcolname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map freetds-1.2.3/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9e8b29975b855bcb55a15a5e4bae0eac \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg freetds-1.2.3/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gad10c9fd75a86c7a0ac375937df0e90a6_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbaltcolid + + + +Node1 + + +dbaltcolid + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map freetds-1.2.3/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +bb4d4078f3a8164fdb7da71dc8494035 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg freetds-1.2.3/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gada4b41f34542a87f0cd87e78e56d18bb_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsettime + + + +Node1 + + +dbsettime + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.map freetds-1.2.3/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +aa330cf4312cbe70f2984051823e054f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg freetds-1.2.3/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadaa9482a082aa3fe52231e17749c2993_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbnumcols + + + +Node1 + + +dbnumcols + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map freetds-1.2.3/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +3b6e13adf34289bded6f1d0eb86fc156 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg freetds-1.2.3/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadb34c5c2aae50ac9f2a26d8984136997_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbgetmaxprocs + + + +Node1 + + +dbgetmaxprocs + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map freetds-1.2.3/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +8d31d40565dbac21351375a50e50b7d6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg freetds-1.2.3/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gadd5685565c8c6c86079e17b8a73b324c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbreadtext + + + +Node1 + + +dbreadtext + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map freetds-1.2.3/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -90b820d22e1cae3184d8635739d96537 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg freetds-1.2.3/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbsetlname - - -Node49 - -dbsetlname - - -Node50 - - -tdsdump_log - - - - -Node49->Node50 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map freetds-1.2.3/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +9e9095edc3abcd34950f206413c0d489 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg freetds-1.2.3/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gae658a0cd5270f3bd6f22de17b2cb2e64_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbbylist + + + +Node1 + + +dbbylist + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map freetds-1.2.3/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +ea6ded03b8db8ed6ea690ee9319c9552 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaeb3d621e4f6846bb228b0a596d8758c0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetrow + + + +Node1 + + +dbsetrow + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map freetds-1.2.3/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4a07cd58fe52a6a412187ed81b78aaa0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbdead - - -Node16 - -dbdead - - -Node17 - - -tdsdump_log - - - - -Node16->Node17 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.map freetds-1.2.3/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +2962627f8b8515e0b6bb0edf2ac28107 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaee60c306a22383805a4b9caa647a1e16_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbdata + + + +Node1 + + +dbdata + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.map freetds-1.2.3/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +c0d4ad681cea29c8156c847bae9e4068 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaef740b394b44eb33925c2718f7b30d69_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbclose + + + +Node1 + + +dbclose + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map freetds-1.2.3/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +556c213a82d8b2412b394d98faa5d0ec \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbstrcpy + + + +Node1 + + +dbstrcpy + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.map freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +22bd2ba9d3cb1831f69fb89771d43d0b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_dbresults + + + +Node1 + + +_dbresults + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.map freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +ba253f449d090d88318781f659240157 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.svg freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1879b85e8238c015b9648d077665285_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_dbresults + + + +Node1 + + +_dbresults + + + + + +Node2 + + +dbresults + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map freetds-1.2.3/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +cd71a006a67046d97e26dc3e13b8ffe8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf1c00d83dfa88dc99a3fb449c49660ea_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbaltutype + + + +Node1 + + +dbaltutype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map freetds-1.2.3/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +d9f3e8dde73d83829ee1a87a07f61255 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetmaxprocs + + + +Node1 + + +dbsetmaxprocs + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map freetds-1.2.3/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6f50c5de71882267709efe30435ad5ff \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -dbfirstrow - - -Node19 - -dbfirstrow - - -Node20 - - -tdsdump_log - - - - -Node19->Node20 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map freetds-1.2.3/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +e60709fc0d8114c54cccb6c27b2425c7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg freetds-1.2.3/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gaf917cf746c954a5d1b718afe3c4d1940_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbgetchar + + + +Node1 + + +dbgetchar + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.map freetds-1.2.3/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.map --- freetds-1.1.6/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 freetds-1.2.3/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +6e61adb671350714547f4c33523a155a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.svg freetds-1.2.3/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.svg --- freetds-1.1.6/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545_gafefd17e15b22adda84366c817178dd7d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbaltbind + + + +Node1 + + +dbaltbind + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00545.html freetds-1.2.3/doc/reference/a00545.html --- freetds-1.1.6/doc/reference/a00545.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Internals +FreeTDS API: Primary functions @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -50,330 +53,4542 @@ onkeydown="return searchBox.OnSearchSelectKey(event)"> - -
- + +
+ +
+ +
+ +
+
Primary functions
+
+
+ +

Core functions needed by most db-lib programs.
+ +More...

+
+Collaboration diagram for Primary functions:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define DBCMDROW(x)   dbcmdrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBCOUNT(x)   dbcount((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBCURCMD(x)   dbcurcmd((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBCURROW(x)   dbcurrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBDEAD(x)   dbdead((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBFIRSTROW(x)   dbfirstrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBIORDESC(x)   dbiordesc((x))
 Sybase macro, maps to the internal (lower-case) function.
+ More...
 
#define DBIOWDESC(x)   dbiowdesc((x))
 Sybase macro, maps to the internal (lower-case) function.
+ More...
 
#define DBISAVAIL(x)   dbisavail((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBLASTROW(x)   dblastrow((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBMORECMDS(x)   dbmorecmds((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBROWS(x)   dbrows((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBROWTYPE(x)   dbrowtype((x))
 Sybase macro mapping to the Microsoft (lower-case) function.
+ More...
 
#define DBSETLCHARSET(x, y)   dbsetlname((x), (y), DBSETCHARSET)
 Set the client character set in the login packet. More...
 
#define DBSETLENCRYPT(x, y)   dbsetlbool((x), (y), DBSETENCRYPT)
 Enable (or not) network password encryption for Sybase servers version 10.0 or above. More...
 
#define DBSETLNATLANG(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages.
+ More...
 
#define dbsetlnatlang(x, y)   dbsetlname((x), (y), DBSETNATLANG)
 Set the language the server should use for messages.
+ More...
 
#define DBSETLPACKET(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections.
+ More...
 
#define dbsetlpacket(x, y)   dbsetllong((x), (y), DBSETPACKET)
 Set the packet size in the login packet for new connections.
+ More...
 
#define DBTDS(a)   dbtds(a)
 Sybase macro, maps to the internal (lower-case) function.
+ More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

static RETCODE _dbresults (DBPROCESS *dbproc)
 
const char * dbacolname (DBPROCESS *dbproc, int computeid, int column)
 Return name of a computed result column. More...
 
BYTE * dbadata (DBPROCESS *dbproc, int computeid, int column)
 Get address of compute column data.
+ More...
 
DBINT dbadlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in a compute column. More...
 
RETCODE dbaltbind (DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Bind a compute column to a program variable. More...
 
int dbaltcolid (DBPROCESS *dbproc, int computeid, int column)
 Get column ID of a compute column. More...
 
DBINT dbaltlen (DBPROCESS *dbproc, int computeid, int column)
 Get size of data in compute column. More...
 
int dbaltop (DBPROCESS *dbproc, int computeid, int column)
 Get aggregation operator for a compute column. More...
 
int dbalttype (DBPROCESS *dbproc, int computeid, int column)
 Get datatype for a compute column. More...
 
DBINT dbaltutype (DBPROCESS *dbproc, int computeid, int column)
 Get user-defined datatype of a compute column. More...
 
RETCODE dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
 Tie a null-indicator to a compute result column. More...
 
RETCODE dbanydatecrack (DBPROCESS *dbproc, DBDATEREC2 *di, int type, const void *data)
 Break any kind of date or time value into useful pieces. More...
 
RETCODE dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)
 Tie a host variable to a resultset column. More...
 
BYTE * dbbylist (DBPROCESS *dbproc, int computeid, int *size)
 Get bylist for a compute row. More...
 
RETCODE dbcancel (DBPROCESS *dbproc)
 Cancel the current command batch. More...
 
RETCODE dbcanquery (DBPROCESS *dbproc)
 Cancel the query currently being retrieved, discarding all pending rows.
+ More...
 
char * dbchange (DBPROCESS *dbproc)
 See if a command caused the current database to change. More...
 
void dbclose (DBPROCESS *dbproc)
 Close a connection to the server and free associated resources.
+ More...
 
void dbclrbuf (DBPROCESS *dbproc, DBINT n)
 Clear n rows from the row buffer. More...
 
RETCODE dbclropt (DBPROCESS *dbproc, int option, const char param[])
 Reset an option. More...
 
RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
 Append SQL to the command buffer.
+ More...
 
DBINT dbcollen (DBPROCESS *dbproc, int column)
 Get size of a regular result column. More...
 
char * dbcolname (DBPROCESS *dbproc, int column)
 Return name of a regular result column. More...
 
char * dbcolsource (DBPROCESS *dbproc, int column)
 Get base database column name for a result set column.
+ More...
 
int dbcoltype (DBPROCESS *dbproc, int column)
 Get the datatype of a regular result set column. More...
 
DBTYPEINFOdbcoltypeinfo (DBPROCESS *dbproc, int column)
 Get precision and scale information for a regular result column. More...
 
int dbcolutype (DBPROCESS *dbproc, int column)
 Get user-defined datatype of a regular result column. More...
 
DBINT dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
 cf. dbconvert_ps(), above More...
 
DBINT dbconvert_ps (DBPROCESS *dbproc, int db_srctype, const BYTE *src, DBINT srclen, int db_desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
 Convert one datatype to another. More...
 
DBINT dbcount (DBPROCESS *dbproc)
 Get count of rows processed. More...
 
BYTE * dbdata (DBPROCESS *dbproc, int column)
 Get address of data in a regular result column. More...
 
RETCODE dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime)
 Break a DBDATETIME value into useful pieces. More...
 
DBINT dbdatlen (DBPROCESS *dbproc, int column)
 Get size of current row's data in a regular result column.
+ More...
 
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
 Set an error handler, for messages from db-lib. More...
 
void dbexit ()
 Close server connections and free all related structures.
+ More...
 
RETCODE dbfcmd (DBPROCESS *dbproc, const char *fmt,...)
 printf-like way to form SQL to send to the server.
+ More...
 
void dbfreebuf (DBPROCESS *dbproc)
 Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt(). More...
 
char * dbgetchar (DBPROCESS *dbproc, int pos)
 Get address of a position in the command buffer. More...
 
int dbgetmaxprocs (void)
 get maximum simultaneous connections db-lib will open to the server. More...
 
int dbgetpacket (DBPROCESS *dbproc)
 Get TDS packet size for the connection. More...
 
RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
 Read a row from the row buffer. More...
 
int dbgettime (void)
 Get maximum seconds db-lib waits for a server response to query.
+ More...
 
BYTE * dbgetuserdata (DBPROCESS *dbproc)
 Get address of user-allocated data from a DBPROCESS.
+ More...
 
RETCODE dbinit (void)
 Initialize db-lib.
+ More...
 
BOOL dbiscount (DBPROCESS *dbproc)
 Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature). More...
 
DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
 Get value of an option. More...
 
LOGINRECdblogin (void)
 Allocate a LOGINREC structure.
+ More...
 
+void dbloginfree (LOGINREC *login)
 free the LOGINREC
 
RETCODE dbmorecmds (DBPROCESS *dbproc)
 See if more commands are to be processed. More...
 
RETCODE dbmoretext (DBPROCESS *dbproc, DBINT size, const BYTE text[])
 Send chunk of a text/image value to the server. More...
 
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
 Set a message handler, for messages from the server. More...
 
char * dbname (DBPROCESS *dbproc)
 Get name of current database. More...
 
RETCODE dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
 Tie a null-indicator to a regular result column. More...
 
int dbnumalts (DBPROCESS *dbproc, int computeid)
 Get count of columns in a compute row. More...
 
int dbnumcols (DBPROCESS *dbproc)
 Return number of regular columns in a result set.
+ More...
 
int dbnumcompute (DBPROCESS *dbproc)
 Get count of COMPUTE clauses for a result set. More...
 
DBINT dbprcollen (DBPROCESS *dbproc, int column)
 Get size of a result column needed to print column. More...
 
void dbprhead (DBPROCESS *dbproc)
 Print result set headings to stdout. More...
 
RETCODE dbprrow (DBPROCESS *dbproc)
 Print a result set to stdout. More...
 
const char * dbprtype (int token)
 Print a token value's name to a buffer. More...
 
STATUS dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize)
 Fetch part of a text or image value from the server. More...
 
void dbrecftos (const char filename[])
 Record to a file all SQL commands sent to the server. More...
 
RETCODE dbresults (DBPROCESS *dbproc)
 Set up query results.
+ More...
 
RETCODE dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)
 safely quotes character values in SQL text.
+ More...
 
char * dbservcharset (DBPROCESS *dbproc)
 Get syscharset name of the server character set. More...
 
void dbsetifile (char *filename)
 set name and location of the interfaces file FreeTDS should use to look up a servername. More...
 
void dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)
 Set interrupt handler for db-lib to use while blocked against a read from the server. More...
 
RETCODE dbsetlogintime (int seconds)
 Set maximum seconds db-lib waits for a server response to a login attempt.
+ More...
 
+RETCODE dbsetlversion (LOGINREC *login, BYTE version)
 Set TDS version for future connections.
 
RETCODE dbsetmaxprocs (int maxprocs)
 Set maximum simultaneous connections db-lib will open to the server. More...
 
RETCODE dbsetnull (DBPROCESS *dbproc, int bindtype, int bindlen, BYTE *bindval)
 Define substitution values to be used when binding null values. More...
 
RETCODE dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
 Set db-lib or server option. More...
 
STATUS dbsetrow (DBPROCESS *dbproc, DBINT row)
 Make a buffered row "current" without fetching it into bound variables.
+ More...
 
RETCODE dbsettime (int seconds)
 Set maximum seconds db-lib waits for a server response to query.
+ More...
 
void dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr)
 Associate client-allocated (and defined) data with a DBPROCESS.
+ More...
 
RETCODE dbsetversion (DBINT version)
 Specify a db-lib version level. More...
 
int dbspid (DBPROCESS *dbproc)
 Get server process ID for a DBPROCESS. More...
 
RETCODE dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print a regular result row to a buffer.
+ More...
 
DBINT dbspr1rowlen (DBPROCESS *dbproc)
 Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row(). More...
 
RETCODE dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len)
 Print result set headings to a buffer. More...
 
RETCODE dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)
 Get formatted string for underlining dbsprhead() column names.
+ More...
 
RETCODE dbsqlexec (DBPROCESS *dbproc)
 send the SQL command to the server and wait for an answer.
+ More...
 
RETCODE dbsqlok (DBPROCESS *dbproc)
 Wait for results of a query from the server.
+ More...
 
RETCODE dbsqlsend (DBPROCESS *dbproc)
 Transmit the command buffer to the server. Non-blocking, does not wait for a response. More...
 
RETCODE dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)
 Build a printable string from text containing placeholders for variables. More...
 
RETCODE dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest)
 Get a copy of a chunk of the command buffer. More...
 
int dbstrlen (DBPROCESS *dbproc)
 Get size of the command buffer, in bytes. More...
 
RETCODE dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)
 describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) More...
 
DBBINARY * dbtxptr (DBPROCESS *dbproc, int column)
 Get text pointer for a column in the current row. More...
 
DBBINARY * dbtxtimestamp (DBPROCESS *dbproc, int column)
 Get text timestamp for a column in the current row. More...
 
RETCODE dbuse (DBPROCESS *dbproc, const char *name)
 Change current database. More...
 
DBINT dbvarylen (DBPROCESS *dbproc, int column)
 Determine whether a column can vary in size. More...
 
const char * dbversion ()
 See which version of db-lib is in use. More...
 
DBBOOL dbwillconvert (int srctype, int desttype)
 Test whether or not a datatype can be converted to another datatype. More...
 
RETCODE dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)
 Send text or image data to the server. More...
 
+

Detailed Description

+

Core functions needed by most db-lib programs.
+

+

Macro Definition Documentation

+ +

◆ DBCMDROW

+ +
+
+ + + + + + + + +
DBCMDROW( x)   dbcmdrow((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbcmdrow()
+ +
+
+ +

◆ DBCOUNT

+ +
+
+ + + + + + + + +
DBCOUNT( x)   dbcount((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbcount()
+ +
+
+ +

◆ DBCURCMD

+ +
+
+ + + + + + + + +
DBCURCMD( x)   dbcurcmd((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbcurcmd()
+ +
+
+ +

◆ DBCURROW

+ +
+
+ + + + + + + + +
DBCURROW( x)   dbcurrow((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbcurrow()
+ +
+
+ +

◆ DBDEAD

+ +
+
+ + + + + + + + +
DBDEAD( x)   dbdead((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbdead()
+ +
+
+ +

◆ DBFIRSTROW

+ +
+
+ + + + + + + + +
DBFIRSTROW( x)   dbfirstrow((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbfirstrow()
+ +
+
+ +

◆ DBIORDESC

+ +
+
+ + + + + + + + +
DBIORDESC( x)   dbiordesc((x))
+
+ +

Sybase macro, maps to the internal (lower-case) function.
+

+
See also
dbiordesc()
+ +
+
+ +

◆ DBIOWDESC

+ +
+
+ + + + + + + + +
DBIOWDESC( x)   dbiowdesc((x))
+
+ +

Sybase macro, maps to the internal (lower-case) function.
+

+
See also
dbiowdesc()
+ +
+
+ +

◆ DBISAVAIL

+ +
+
+ + + + + + + + +
DBISAVAIL( x)   dbisavail((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbisavail()
+ +
+
+ +

◆ DBLASTROW

+ +
+
+ + + + + + + + +
DBLASTROW( x)   dblastrow((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dblastrow(), DBFIRSTROW()
+ +
+
+ +

◆ DBMORECMDS

+ +
+
+ + + + + + + + +
DBMORECMDS( x)   dbmorecmds((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbmorecmds()
+ +
+
+ +

◆ DBROWS

+ +
+
+ + + + + + + + +
DBROWS( x)   dbrows((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbrows()
+ +
+
+ +

◆ DBROWTYPE

+ +
+
+ + + + + + + + +
DBROWTYPE( x)   dbrowtype((x))
+
+ +

Sybase macro mapping to the Microsoft (lower-case) function.
+

+
See also
dbrowtype()
+ +
+
+ +

◆ DBSETLCHARSET

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBSETLCHARSET( x,
 
)   dbsetlname((x), (y), DBSETCHARSET)
+
+ +

Set the client character set in the login packet.

+
Remarks
Has no effect on TDS 7.0+ connections.
+
+ +
+
+ +

◆ DBSETLENCRYPT

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBSETLENCRYPT( x,
 
)   dbsetlbool((x), (y), DBSETENCRYPT)
+
+ +

Enable (or not) network password encryption for Sybase servers version 10.0 or above.

+
Todo:
Unimplemented.
+
See also
dbsetlencrypt()
+ +
+
+ +

◆ DBSETLNATLANG

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBSETLNATLANG( x,
 
)   dbsetlname((x), (y), DBSETNATLANG)
+
+ +

Set the language the server should use for messages.
+

+
See also
dbsetlnatlang(), dbsetlname()
+ +
+
+ +

◆ dbsetlnatlang

+ +
+
+ + + + + + + + + + + + + + + + + + +
dbsetlnatlang( x,
 
)   dbsetlname((x), (y), DBSETNATLANG)
+
+ +

Set the language the server should use for messages.
+

+
See also
DBSETLNATLANG(), dbsetlname()
+ +
+
+ +

◆ DBSETLPACKET

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBSETLPACKET( x,
 
)   dbsetllong((x), (y), DBSETPACKET)
+
+ +

Set the packet size in the login packet for new connections.
+

+
See also
dbsetlpacket(), dbsetllong()
+ +
+
+ +

◆ dbsetlpacket

+ +
+
+ + + + + + + + + + + + + + + + + + +
dbsetlpacket( x,
 
)   dbsetllong((x), (y), DBSETPACKET)
+
+ +

Set the packet size in the login packet for new connections.
+

+
See also
DBSETLPACKET(), dbsetllong()
+ +
+
+ +

◆ DBTDS

+ +
+
+ + + + + + + + +
DBTDS( a)   dbtds(a)
+
+ +

Sybase macro, maps to the internal (lower-case) function.
+

+
See also
dbtds()
+ +
+
+

Function Documentation

+ +

◆ _dbresults()

+ +
+
+ + + + + +
+ + + + + + + + +
static RETCODE _dbresults (DBPROCESSdbproc)
+
+static
+
+
Remarks
Either SYBDBLIB or MSDBLIB (not both) must be defined. This affects how certain application-addressable strucures are defined.
+
+
+Here is the call graph for this function:
+
+
+
+
+
+Here is the caller graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbacolname()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
const char* dbacolname (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Return name of a computed result column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeididentifies which one of potientially many compute rows is meant. The first compute clause has computeid == 1.
columnNth in the result set, starting with 1.
+
+
+
Returns
pointer to ASCII null-terminated string, the name of the column.
+
Return values
+ + +
NULLcolumn is not in range.
+
+
+
See also
dbcollen(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbadata()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
BYTE* dbadata (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get address of compute column data.
+

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
Returns
pointer to columns's data buffer.
+
+
Return values
+ + +
NULLno such computeid or column.
+
+
+
+
See also
dbadlen(), dbaltbind(), dbaltlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumalts().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbadlen()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DBINT dbadlen (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get size of data in a compute column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
Returns
size of the data, in bytes.
+
Return values
+ + + +
-1no such column or computeid.
0data are NULL.
+
+
+
See also
dbadata(), dbaltlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumalts().
+ +
+
+ +

◆ dbaltbind()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbaltbind (DBPROCESSdbproc,
int computeid,
int column,
int vartype,
DBINT varlen,
BYTE * varaddr 
)
+
+ +

Bind a compute column to a program variable.

+
Parameters
+ + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
vartypedatatype of the host variable that will receive the data
varlensize of host variable pointed to varaddr
varaddraddress of host variable
+
+
+
Return values
+ + + +
SUCCEEDeverything worked.
FAILno such computeid or column, or no such conversion possible, or target buffer too small.
+
+
+
See also
dbadata(), dbaltbind_ps(), dbanullbind(), dbbind(), dbbind_ps(), dbconvert(), dbconvert_ps(), dbnullbind(), dbsetnull(), dbsetversion(), dbwillconvert().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbaltcolid()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int dbaltcolid (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get column ID of a compute column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
Returns
Nth column in the base result set, on which column was computed.
+
+
See also
dbadata(), dbadlen(), dbaltlen(), dbgetrow(), dbnextrow(), dbnumalts(), dbprtype().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbaltlen()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DBINT dbaltlen (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get size of data in compute column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
See also
dbadata(), dbadlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumalts().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbaltop()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int dbaltop (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get aggregation operator for a compute column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
Returns
token value for the type of the compute column's aggregation operator.
+
Return values
+ + +
-1no such computeid or column.
+
+
+
+
See also
dbadata(), dbadlen(), dbaltlen(), dbnextrow(), dbnumalts(), dbprtype().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbalttype()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int dbalttype (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get datatype for a compute column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
Returns
SYB* dataype token.
+
Return values
+ + +
-1no such column or computeid.
+
+
+
See also
dbadata(), dbadlen(), dbaltlen(), dbnextrow(), dbnumalts(), dbprtype().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbaltutype()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DBINT dbaltutype (DBPROCESSdbproc,
int computeid,
int column 
)
+
+ +

Get user-defined datatype of a compute column.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
columnNth column in computeid, starting from 1.
+
+
+
Returns
user-defined datatype of compute column, else -1.
+
See also
dbalttype(), dbcolutype().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbanullbind()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbanullbind (DBPROCESSdbproc,
int computeid,
int column,
DBINT * indicator 
)
+
+ +

Tie a null-indicator to a compute result column.

+

When a row is fetched, the indicator variable tells the state of the column's data.
+

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeididentifies which one of potientially many compute rows is meant. The first compute clause has computeid == 1.
+
columnNth column in the result set, starting with 1.
indicatoraddress of host variable.
+
+
+
Return values
+ + + +
SUCCEEDvariable accepted.
FAILindicator is NULL or column is out of range.
+
+
+
Remarks
Contents of indicator are set with dbnextrow(). Possible values are:
    +
  • 0 column bound successfully
  • +
  • -1 column is NULL.
  • +
  • >0 true length of data, had column not been truncated due to insufficient space in the columns bound host variable .
    +
  • +
+
+
See also
dbadata(), dbadlen(), dbaltbind(), dbnextrow(), dbnullbind().
+
Todo:
Never fails, but only because failure conditions aren't checked.
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbanydatecrack()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbanydatecrack (DBPROCESSdbproc,
DBDATEREC2di,
int type,
const void * data 
)
+
+ +

Break any kind of date or time value into useful pieces.

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
dioutput: structure to contain the exploded parts of datetime.
typeinput: type of date/time value returned by dbcoltype().
datainput: date/time value to be converted.
+
+
+
Return values
+ + +
SUCCEEDalways.
+
+
+
Remarks
The members of di have different names, depending on whether –with-msdblib was configured.
+

This is an extension to dbdatecrack(), see it for more information.

+
See also
dbdatecrack(), dbconvert(), dbdata(), dbdatechar(), dbdatename(), dbdatepart(), tdsdbopen().
+ +
+
+ +

◆ dbbind()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbbind (DBPROCESSdbproc,
int column,
int vartype,
DBINT varlen,
BYTE * varaddr 
)
+
+ +

Tie a host variable to a resultset column.

+
Parameters
+ + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth column, starting at 1.
vartypedatatype of the host variable that will receive the data
varlensize of host variable pointed to varaddr
varaddraddress of host variable
+
+
+
Return values
+ + + +
SUCCEEDeverything worked.
FAILno such column or no such conversion possible, or target buffer too small.
+
+
+
See also
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbbylist()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
BYTE* dbbylist (DBPROCESSdbproc,
int computeid,
int * size 
)
+
+ +

Get bylist for a compute row.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
sizeoutput: size of bylist buffer whose address is returned, possibly zero.
+
+
+
+
Returns
address of bylist for computeid.
+
+
Return values
+ + +
NULLno such computeid.
+
+
+
Remarks
Do not free returned pointer.
+
+
See also
dbadata(), dbadlen(), dbaltlen(), dbalttype(), dbcolname(), dbgetrow(), dbnextrow().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcancel()

+ +
+
+ + + + + + + + +
RETCODE dbcancel (DBPROCESSdbproc)
+
+ +

Cancel the current command batch.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + +
SUCCEEDalways.
+
+
+
See also
dbcanquery(), dbnextrow(), dbresults(), dbsetinterrupt(), dbsqlexec(), dbsqlok(), dbsqlsend().
+
Todo:
Check for failure and return accordingly.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcanquery()

+ +
+
+ + + + + + + + +
RETCODE dbcanquery (DBPROCESSdbproc)
+
+ +

Cancel the query currently being retrieved, discarding all pending rows.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbchange()

+ +
+
+ + + + + + + + +
char* dbchange (DBPROCESSdbproc)
+
+ +

See if a command caused the current database to change.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
name of new database, if changed, as a null-terminated ASCII string, else NULL.
+
See also
dbname(), dbresults(), dbsqlexec(), dbsqlsend(), dbuse().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbclose()

+ +
+
+ + + + + + + + +
void dbclose (DBPROCESSdbproc)
+
+ +

Close a connection to the server and free associated resources.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
dbexit(), dbopen().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbclrbuf()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void dbclrbuf (DBPROCESSdbproc,
DBINT n 
)
+
+ +

Clear n rows from the row buffer.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
nnumber of rows to remove, >= 0.
+
+
+
See also
dbgetrow(), dbnextrow(), dbsetopt().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbclropt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbclropt (DBPROCESSdbproc,
int option,
const char param[] 
)
+
+ +

Reset an option.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
optionto be turned off.
paramclearing some options requires a parameter, believe it or not.
+
+
+
+
Return values
+ + + +
SUCCEEDoption and parameter seem sane.
FAILno such option.
+
+
+
Remarks
Only the following options are recognized:
    +
  • DBARITHABORT
  • +
  • DBARITHIGNORE
  • +
  • DBCHAINXACTS
  • +
  • DBFIPSFLAG
  • +
  • DBISOLATION
  • +
  • DBNOCOUNT
  • +
  • DBNOEXEC
  • +
  • DBPARSEONLY
  • +
  • DBSHOWPLAN
  • +
  • DBSTORPROCID
  • +
  • DBQUOTEDIDENT
  • +
  • DBSETTIME
  • +
+
+
See also
dbisopt(), dbsetopt().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcmd()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbcmd (DBPROCESSdbproc,
const char cmdstring[] 
)
+
+ +

Append SQL to the command buffer.
+

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
cmdstringSQL to append to the command buffer.
+
+
+
+
Return values
+ + + +
SUCCEEDsuccess.
FAILinsufficient memory.
+
+
+
+
Remarks
set command state to DBCMDPEND unless the command state is DBCMDSENT, in which case it frees the command buffer. This latter may or may not be the Right Thing to do.
+
+
See also
dbfcmd(), dbfreebuf(), dbgetchar(), dbopen(), dbstrcpy(), dbstrlen().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcollen()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBINT dbcollen (DBPROCESSdbproc,
int column 
)
+
+ +

Get size of a regular result column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
size of the column (not of data in any particular row). On error, -1.
+
See also
dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcolname()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char* dbcolname (DBPROCESSdbproc,
int column 
)
+
+ +

Return name of a regular result column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting with 1.
+
+
+
+
Returns
pointer to ASCII null-terminated string, the name of the column.
+
Return values
+ + +
NULLcolumn is not in range.
+
+
+
See also
dbcollen(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
+
Bug:
Relies on ASCII column names, post iconv conversion.
+ Will not work as described for UTF-8 or UCS-2 clients.
+ But maybe it shouldn't.
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcolsource()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char* dbcolsource (DBPROCESSdbproc,
int column 
)
+
+ +

Get base database column name for a result set column.
+

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
pointer to ASCII null-terminated string, the name of the column. On error, NULL.
+
See also
dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcoltype()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dbcoltype (DBPROCESSdbproc,
int column 
)
+
+ +

Get the datatype of a regular result set column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
SYB* datetype token value, or zero if column out of range
+
See also
dbcollen(), dbcolname(), dbdata(), dbdatlen(), dbnumcols(), dbprtype(), dbvarylen().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcoltypeinfo()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBTYPEINFO* dbcoltypeinfo (DBPROCESSdbproc,
int column 
)
+
+ +

Get precision and scale information for a regular result column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
Pointer to a DBTYPEINFO structure . NULL column is out of range.
+
See also
dbcollen(), dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols(), dbprtype(), dbvarylen().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbcolutype()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dbcolutype (DBPROCESSdbproc,
int column 
)
+
+ +

Get user-defined datatype of a regular result column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
SYB* datetype token value, or -1 if column out of range
+
See also
dbaltutype(), dbcoltype().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbconvert()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DBINT dbconvert (DBPROCESSdbproc,
int srctype,
const BYTE * src,
DBINT srclen,
int desttype,
BYTE * dest,
DBINT destlen 
)
+
+ +

cf. dbconvert_ps(), above

+

Sybase: Convert numeric types.

Parameters
+ + + + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
srctypedatatype of the data to convert.
srcbuffer to convert
srclenlength of src
desttypetarget datatype
destoutput buffer
destlensize of dest
typeinfoaddress of a DBTYPEINFO structure that governs the precision & scale of the output, may be NULL.
+
+
+
See also
dbaltbind(), dbaltbind_ps(), dbbind(), dbbind_ps(), dbconvert_ps(), dberrhandle(), dbsetnull(), dbsetversion(), dbwillconvert().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbconvert_ps()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DBINT dbconvert_ps (DBPROCESSdbproc,
int db_srctype,
const BYTE * src,
DBINT srclen,
int db_desttype,
BYTE * dest,
DBINT destlen,
DBTYPEINFOtypeinfo 
)
+
+ +

Convert one datatype to another.

+
Parameters
+ + + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
srctypedatatype of the data to convert.
srcbuffer to convert
srclenlength of src
desttypetarget datatype
destoutput buffer
destlensize of dest
+
+
+
Returns
On success, the count of output bytes in dest, else -1. On failure, it will call any user-supplied error handler.
+
Remarks
Causes of failure:
    +
  • No such conversion unavailable.
  • +
  • Character data output was truncated, or numerical data overflowed or lost precision.
  • +
  • In converting character data to one of the numeric types, the string could not be interpreted as a number.
    +
  • +
+
+

Conversion functions are handled in the TDS layer.

+

The main reason for this is that ct-lib and ODBC (and presumably DBI) need to be able to do conversions between datatypes. This is possible because the format of complex data (dates, money, numeric, decimal) is defined by its representation on the wire; thus what we call DBMONEY is exactly its format on the wire. CLIs that need a different representation (ODBC?) need to convert from this format anyway, so the code would already be in place.

+

Each datatype is also defined by its Server-type so all CLIs should be able to map native types to server types as well.

+

tds_convert() copies from src to dest and returns the output data length, period. All padding and termination is the responsibility of the API library and is done post-conversion. The peculiar rule in dbconvert() is that a destlen of -1 and a desttype of SYBCHAR means the output buffer should be null-terminated.

+
See also
dbaltbind(), dbaltbind_ps(), dbbind(), dbbind_ps(), dbconvert_ps(), dberrhandle(), dbsetnull(), dbsetversion(), dbwillconvert().
+
Todo:

What happens if client does not reset values?

+

Microsoft and Sybase define this function differently.
+

+
+ +
+
+ +

◆ dbcount()

+ +
+
+ + + + + + + + +
DBINT dbcount (DBPROCESSdbproc)
+
+ +

Get count of rows processed.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
    +
  • for insert/update/delete, count of rows affected.
  • +
  • for select, count of rows returned, after all rows have been fetched.
  • +
+
+
See also
DBCOUNT(), dbnextrow(), dbresults().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbdata()

+ +
+
+ + + + + + + + + + + + + + + + + + +
BYTE* dbdata (DBPROCESSdbproc,
int column 
)
+
+ +

Get address of data in a regular result column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
pointer the data, or NULL if data are NULL, or if column is out of range.
+
+
See also
dbbind(), dbcollen(), dbcolname(), dbcoltype(), dbdatlen(), dbnumcols().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbdatecrack()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbdatecrack (DBPROCESSdbproc,
DBDATERECdi,
DBDATETIMEdatetime 
)
+
+ +

Break a DBDATETIME value into useful pieces.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
dioutput: structure to contain the exploded parts of datetime.
datetimeinput: DBDATETIME to be converted.
+
+
+
Return values
+ + +
SUCCEEDalways.
+
+
+
Remarks
The members of di have different names, depending on whether –with-msdblib was configured.
+

If DBPROCESS is NULL, dbdatecrack() uses the compiled in default value of MSDBLIB as of when libsybdb was compiled, irrespective of its value when the application is compiled. This can lead to incorrect results because Sybase and Microsoft use different ranges – [0,11] vs. [1,12] – for the month.

+
See also
dbconvert(), dbdata(), dbdatechar(), dbdatename(), dbdatepart(), tdsdbopen().
+ +
+
+ +

◆ dbdatlen()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBINT dbdatlen (DBPROCESSdbproc,
int column 
)
+
+ +

Get size of current row's data in a regular result column.
+

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
size of the data, in bytes.
+
See also
dbcollen(), dbcolname(), dbcoltype(), dbdata(), dbnumcols().
+ +
+
+ +

◆ dberrhandle()

+ +
+
+ + + + + + + + +
EHANDLEFUNC dberrhandle (EHANDLEFUNC handler)
+
+ +

Set an error handler, for messages from db-lib.

+
Parameters
+ + +
handlerpointer to callback function that will handle errors. Pass NULL to restore the default handler.
+
+
+
+
Returns
address of prior handler, or NULL if none was previously installed.
+
See also
DBDEAD(), dbmsghandle().
+ +
+
+ +

◆ dbexit()

+ +
+
+ + + + + + + +
void dbexit ()
+
+ +

Close server connections and free all related structures.
+

+
See also
dbclose(), dbinit(), dbopen().
+
Todo:
breaks if ctlib/dblib used in same process.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbfcmd()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbfcmd (DBPROCESSdbproc,
const char * fmt,
 ... 
)
+
+ +

printf-like way to form SQL to send to the server.
+

+

Forms a command string and writes to the command buffer with dbcmd().
+

Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
fmt man vasprintf for details.
+
+
+
+
Return values
+ + + +
SUCCEEDsuccess.
FAILinsufficient memory, or dbcmd() failed.
+
+
+
See also
dbcmd(), dbfreebuf(), dbgetchar(), dbopen(), dbstrcpy(), dbstrlen().
+ +
+
+ +

◆ dbfreebuf()

+ +
+
+ + + + + + + + +
void dbfreebuf (DBPROCESSdbproc)
+
+ +

Erase the command buffer, in case DBNOAUTOFREE was set with dbsetopt().

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
dbcmd(), dbfcmd(), dbgetchar(), dbsqlexec(), dbsqlsend(), dbsetopt(), dbstrcpy(), dbstrlen().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbgetchar()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char* dbgetchar (DBPROCESSdbproc,
int pos 
)
+
+ +

Get address of a position in the command buffer.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
posoffset within the command buffer, starting at 0.
+
+
+
+
Remarks
A bit overspecialized, this one.
+
+
See also
dbcmd(), dbfcmd(), dbfreebuf(), dbstrcpy(), dbstrlen(),
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbgetmaxprocs()

+ +
+
+ + + + + + + + +
int dbgetmaxprocs (void )
+
+ +

get maximum simultaneous connections db-lib will open to the server.

+
Returns
Current maximum.
+
+
See also
dbsetmaxprocs(), dbopen()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbgetpacket()

+ +
+
+ + + + + + + + +
int dbgetpacket (DBPROCESSdbproc)
+
+ +

Get TDS packet size for the connection.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
TDS packet size, in bytes.
+
+
See also
DBSETLPACKET()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbgetrow()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbgetrow (DBPROCESSdbproc,
DBINT row 
)
+
+ +

Read a row from the row buffer.

+

When row buffering is enabled (DBBUFFER option is on), the client can use dbgetrow() to re-read a row previously fetched with dbnextrow(). The effect is to move the row pointer – analogous to fseek() – back to row.
+ Calls to dbnextrow() read from row + 1 until the buffer is exhausted, at which point it resumes its normal behavior, except that as each row is fetched from the server, it is added to the row buffer (in addition to being returned to the client). When the buffer is filled, dbnextrow() returns FAIL until the buffer is at least partially emptied with dbclrbuf().

Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
rowNth row to read, starting with 1.
+
+
+
Return values
+ + +
REG_ROWreturned row is a regular row.
+
+
+
Returns
computeid when returned row is a compute row.
+
Return values
+ + + +
NO_MORE_ROWSno such row in the row buffer. Current row is unchanged.
FAILunsuccessful; row buffer may be full.
+
+
+
+
See also
dbaltbind(), dbbind(), dbclrbuf(), DBCURROW(), DBFIRSTROW(), DBLASTROW(), dbnextrow(), dbsetrow().
+ +
+
+ +

◆ dbgettime()

+ +
+
+ + + + + + + + +
int dbgettime (void )
+
+ +

Get maximum seconds db-lib waits for a server response to query.
+

+
Return values
+ + +
querytimeout limit, in seconds
+
+
+
See also
dberrhandle(), DBSETTIME(), dbsetlogintime(), dbsqlexec(), dbsqlok(), dbsqlsend().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbgetuserdata()

+ +
+
+ + + + + + + + +
BYTE* dbgetuserdata (DBPROCESSdbproc)
+
+ +

Get address of user-allocated data from a DBPROCESS.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
address of user-defined data that db-lib associated with dbproc when the client called dbsetuserdata().
+
Return values
+ + +
undefined(probably NULL) dbsetuserdata() was not previously called.
+
+
+
+
See also
dbsetuserdata().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbinit()

+ +
+
+ + + + + + + + +
RETCODE dbinit (void )
+
+ +

Initialize db-lib.
+

+
Remarks
Call this function before trying to use db-lib in any way.
+ Allocates various internal structures and reads locales.conf (if any) to determine the default date format.
+
+
Return values
+ + + +
SUCCEEDnormal.
+
FAILcannot allocate an array of TDS_MAX_CONN TDSSOCKET pointers.
+
+
+
+ +
+
+ +

◆ dbiscount()

+ +
+
+ + + + + + + + +
BOOL dbiscount (DBPROCESSdbproc)
+
+ +

Indicates whether or not the count returned by dbcount is real (Microsoft-compatibility feature).

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
TRUE if the count returned by dbcount is real or FALSE if the count returned by dbcount is not real.
+
See also
DBCOUNT(), dbcount().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbisopt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DBBOOL dbisopt (DBPROCESSdbproc,
int option,
const char param[] 
)
+
+ +

Get value of an option.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
optionthe option
parama parameter to option.
+
+
+
See also
dbclropt(), dbsetopt().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dblogin()

+ +
+
+ + + + + + + + +
LOGINREC* dblogin (void )
+
+ +

Allocate a LOGINREC structure.
+

+
Remarks
A LOGINREC structure is passed to dbopen() to create a connection to the database. Does not communicate to the server; interacts strictly with library.
+
+
Return values
+ + + +
NULLthe LOGINREC cannot be allocated.
LOGINREC*to valid memory, otherwise.
+
+
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmorecmds()

+ +
+
+ + + + + + + + +
RETCODE dbmorecmds (DBPROCESSdbproc)
+
+ +

See if more commands are to be processed.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
DBMORECMDS(). DBCMDROW(), dbresults(), DBROWS(), DBROWTYPE().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmoretext()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbmoretext (DBPROCESSdbproc,
DBINT size,
const BYTE text[] 
)
+
+ +

Send chunk of a text/image value to the server.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
sizecount of bytes to send.
+
texttextpointer, obtained from dbtxptr.
+
+
+
Return values
+ + +
SUCCEEDalways.
+
+
+
See also
dbtxptr(), dbtxtimestamp(), dbwritetext().
+
Todo:
Check return value of called functions and return FAIL if appropriate.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmsghandle()

+ +
+
+ + + + + + + + +
MHANDLEFUNC dbmsghandle (MHANDLEFUNC handler)
+
+ +

Set a message handler, for messages from the server.

+
Parameters
+ + +
handleraddress of the function that will process the messages.
+
+
+
See also
DBDEAD(), dberrhandle().
+ +
+
+ +

◆ dbname()

+ +
+
+ + + + + + + + +
char* dbname (DBPROCESSdbproc)
+
+ +

Get name of current database.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
current database name, as null-terminated ASCII string.
+
See also
dbchange(), dbuse().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbnullbind()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbnullbind (DBPROCESSdbproc,
int column,
DBINT * indicator 
)
+
+ +

Tie a null-indicator to a regular result column.

+

When a row is fetched, the indicator variable tells the state of the column's data.
+

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth column in the result set, starting with 1.
indicatoraddress of host variable.
+
+
+
Return values
+ + + +
SUCCEEDvariable accepted.
FAILindicator is NULL or column is out of range.
+
+
+
Remarks
Contents of indicator are set with dbnextrow(). Possible values are:
    +
  • 0 column bound successfully
  • +
  • -1 column is NULL.
  • +
  • >0 true length of data, had column not been truncated due to insufficient space in the columns bound host variable .
    +
  • +
+
+
See also
dbanullbind(), dbbind(), dbdata(), dbdatlen(), dbnextrow().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbnumalts()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dbnumalts (DBPROCESSdbproc,
int computeid 
)
+
+ +

Get count of columns in a compute row.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
computeidof COMPUTE clause to which we're referring.
+
+
+
Returns
number of columns, else -1 if no such computeid.
+
+
See also
dbadata(), dbadlen(), dbaltlen(), dbalttype(), dbgetrow(), dbnextrow(), dbnumcols().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbnumcols()

+ +
+
+ + + + + + + + +
int dbnumcols (DBPROCESSdbproc)
+
+ +

Return number of regular columns in a result set.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
dbcollen(), dbcolname(), dbnumalts().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbnumcompute()

+ +
+
+ + + + + + + + +
int dbnumcompute (DBPROCESSdbproc)
+
+ +

Get count of COMPUTE clauses for a result set.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
number of compute clauses for the current query, possibly zero.
+
+
See also
dbnumalts(), dbresults().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbprcollen()

+ +
+
+ + + + + + + + + + + + + + + + + + +
DBINT dbprcollen (DBPROCESSdbproc,
int column 
)
+
+ +

Get size of a result column needed to print column.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
+
+
+
Returns
size of the column in characters (not of data in any particular row). On error, -1.
+
See also
dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbprhead()

+ +
+
+ + + + + + + + +
void dbprhead (DBPROCESSdbproc)
+
+ +

Print result set headings to stdout.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
+ +
+
+ +

◆ dbprrow()

+ +
+
+ + + + + + + + +
RETCODE dbprrow (DBPROCESSdbproc)
+
+ +

Print a result set to stdout.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
dbbind(), dbnextrow(), dbprhead(), dbresults(), dbspr1row(), dbsprhead(), dbsprline().
+ +
+
+ +

◆ dbprtype()

+ +
+
+ + + + + + + + +
const char* dbprtype (int token)
+
+ +

Print a token value's name to a buffer.

+
Parameters
+ + +
tokenserver SYB* value, e.g. SYBINT.
+
+
+
+
Returns
ASCII null-terminated string.
+
+
See also
dbaltop(), dbalttype(), dbcoltype(), dbrettype().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbreadtext()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
STATUS dbreadtext (DBPROCESSdbproc,
void * buf,
DBINT bufsize 
)
+
+ +

Fetch part of a text or image value from the server.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
bufoutput: buffer into which text will be placed.
bufsizesize of buf, in bytes.
+
+
+
Returns
    +
  • >0 count of bytes placed in buf.
  • +
  • 0 end of row.
    +
  • +
  • -1 error, no result set ready for dbproc.
  • +
  • NO_MORE_ROWS all rows read, no further data.
  • +
+
+
See also
dbmoretext(), dbnextrow(), dbwritetext().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbrecftos()

+ +
+
+ + + + + + + + +
void dbrecftos (const char filename[])
+
+ +

Record to a file all SQL commands sent to the server.

+
Parameters
+ + +
filenamename of file to write to.
+
+
+
Remarks
Files are named filename.n, where n is an integer, starting with 0, and incremented with each callto dbopen().
+
+
See also
dbopen(), TDSDUMP environment variable().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbresults()

+ +
+
+ + + + + + + + +
RETCODE dbresults (DBPROCESSdbproc)
+
+ +

Set up query results.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + + + +
SUCCEEDSome results are available.
FAILquery was not processed successfully by the server
NO_MORE_RESULTSquery produced no results.
+
+
+
Remarks
Call dbresults() after calling dbsqlexec() or dbsqlok(), or dbrpcsend() returns SUCCEED. Unless one of them fails, dbresults will return either SUCCEED or NO_MORE_RESULTS.
+
+

The meaning of results is very specific and not very intuitive. Results are created by either

    +
  • a SELECT statement

      +
    • a stored procedure
    • +
    +

    When dbresults returns SUCCEED, therefore, it indicates the server processed the query successfully and that one or more of these is present:

    +
  • +
  • metadata – dbnumcols() returns 1 or more
  • +
  • data – dbnextrow() returns SUCCEED
  • +
  • return status – dbhasretstat() returns TRUE
  • +
  • output parameters – dbnumrets() returns 1 or more
  • +
+

If none of the above are present, dbresults() returns NO_MORE_RESULTS.
+

+

SUCCEED does not imply that DBROWS() will return TRUE or even that dbnumcols() will return nonzero.
+ A general algorithm for reading results will call dbresults() until it return NO_MORE_RESULTS (or FAIL).
+ An application should check for all the above kinds of results within the dbresults() loop.
+

+
See also
dbsqlexec(), dbsqlok(), dbrpcsend(), dbcancel(), DBROWS(), dbnextrow(), dbnumcols(), dbhasretstat(), dbretstatus(), dbnumrets()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbsafestr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbsafestr (DBPROCESSdbproc,
const char * src,
DBINT srclen,
char * dest,
DBINT destlen,
int quotetype 
)
+
+ +

safely quotes character values in SQL text.
+

+
Parameters
+ + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
srcinput string.
srclenlength of src in bytes, or -1 to indicate it's null-terminated.
+
destoutput: client-provided output buffer.
destlensize of dest in bytes, or -1 to indicate it's "big enough" and the data should be null-terminated.
+
quotetype
    +
  • DBSINGLE Doubles all single quotes (').
  • +
  • DBDOUBLE Doubles all double quotes (").
  • +
  • DBBOTH Doubles all single and double quotes.
  • +
+
+
+
+
Return values
+ + + +
SUCCEEDeverything worked.
FAILno such quotetype, or insufficient room in dest.
+
+
+
See also
dbcmd(), dbfcmd().
+ +
+
+ +

◆ dbservcharset()

+ +
+
+ + + + + + + + +
char* dbservcharset (DBPROCESSdbproc)
+
+ +

Get syscharset name of the server character set.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
name of server's charset, as null-terminated ASCII string.
+
See also
dbcharsetconv(), dbgetcharset(), DBSETLCHARSET().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbsetifile()

+ +
+
+ + + + + + + + +
void dbsetifile (char * filename)
+
+ +

set name and location of the interfaces file FreeTDS should use to look up a servername.

+

Does not affect lookups or location of freetds.conf.
+

Parameters
+ + +
filenamename of interfaces
+
+
+
See also
dbopen()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbsetinterrupt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void dbsetinterrupt (DBPROCESSdbproc,
DB_DBCHKINTR_FUNC chkintr,
DB_DBHNDLINTR_FUNC hndlintr 
)
+
+ +

Set interrupt handler for db-lib to use while blocked against a read from the server.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
chkintr
hndlintr
+
+
+
See also
dbcancel(), dbgetuserdata(), dbsetuserdata(), dbsetbusy(), dbsetidle().
+ +
+
+ +

◆ dbsetlogintime()

+ +
+
+ + + + + + + + +
RETCODE dbsetlogintime (int seconds)
+
+ +

Set maximum seconds db-lib waits for a server response to a login attempt.
+

+
Parameters
+ + +
secondsNew limit for application.
+
+
+
+
Return values
+ + +
SUCCEEDAlways.
+
+
+
+
See also
dberrhandle(), dbsettime()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+ +

◆ dbsetmaxprocs()

-
- -
-
-
-
+
+
+ + + + + + + + +
RETCODE dbsetmaxprocs (int maxprocs)
+
-

Functions called within db-lib for self-help. -More...

+

Set maximum simultaneous connections db-lib will open to the server.

+
Parameters
+ + +
maxprocsLimit for process.
+
+
+
Return values
+ + +
SUCCEEDAlways.
+
+
+
+
See also
dbgetmaxprocs(), dbopen()
-Collaboration diagram for Internals:
+Here is the call graph for this function:
-
+
-
- - - - -

-Classes

struct  _dblib_error_message
 
- - - - - - - -

-Macros

#define DBSETLLABELED(x, y)   dbsetlbool((x), (y), DBSETLABELED)
 Alternative way to set login packet fields. More...
 
#define DBSETLVERSION(login, version)   dbsetlversion((login), (version))
 maps to the Microsoft (lower-case) function. More...
 
- - - -

-Typedefs

typedef struct _dblib_error_message DBLIB_ERROR_MESSAGE
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

static BYTE * _dbcoldata (TDSCOLUMN *colinfo)
 Return data from a column. More...
 
int _dblib_check_and_handle_interrupt (void *vdbproc)
 check interrupts for libtds. More...
 
RETCODE dbcmdrow (DBPROCESS *dbproc)
 See if the current command can return rows. More...
 
static TDSCOLUMNdbcolptr (DBPROCESS *dbproc, int column)
 Sanity checks for column-oriented functions. More...
 
int dbcurcmd (DBPROCESS *dbproc)
 Get number of the row just returned. More...
 
DBINT dbcurrow (DBPROCESS *dbproc)
 Get number of the row currently being read. More...
 
DBBOOL dbdead (DBPROCESS *dbproc)
 Check if dbproc is an ex-parrot. More...
 
DBINT dbfirstrow (DBPROCESS *dbproc)
 See if a server response has arrived. More...
 
int dbiordesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!) More...
 
int dbiowdesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!) More...
 
DBINT dblastrow (DBPROCESS *dbproc)
 Get number of the last row in the row buffer. More...
 
int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum,...)
 Call client-installed error handler. More...
 
RETCODE dbrows (DBPROCESS *dbproc)
 Indicate whether a query returned rows. More...
 
STATUS dbrowtype (DBPROCESS *dbproc)
 Get returned row's type. More...
 
void dbsetavail (DBPROCESS *dbproc)
 Mark a DBPROCESS as "available". More...
 
RETCODE dbsetlbool (LOGINREC *login, int value, int which)
 Set a boolean value in a LOGINREC structure. More...
 
RETCODE dbsetllong (LOGINREC *login, long value, int which)
 Set an integer value in a LOGINREC structure. More...
 
RETCODE dbsetlname (LOGINREC *login, const char *value, int which)
 Set the value of a string in a LOGINREC structure. More...
 
int dbtds (DBPROCESS *dbproc)
 Get the TDS version in use for dbproc. More...
 
static int default_err_handler (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
 default error handler for db-lib (handles library-generated errors) More...
 
DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
 Form a connection with the server. More...
 
-

Detailed Description

-

Functions called within db-lib for self-help.

-

These functions are of interest only to people hacking on the FreeTDS db-lib implementation.

-

Macro Definition Documentation

- -

§ DBSETLLABELED

+ +
+
+ +

◆ dbsetnull()

- + - - + + - - + + + + + + + + + + + + + + - +
DBSETLLABELEDRETCODE dbsetnull ( x, DBPROCESSdbproc,
 int bindtype,
int bindlen,
BYTE * bindval 
)   dbsetlbool((x), (y), DBSETLABELED)
-

Alternative way to set login packet fields.

-
See also
dbsetllabeled()
+

Define substitution values to be used when binding null values.

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
bindtypetype of binding to which the substitute value will apply.
bindlensize of the substitute value you are supplying, in bytes. Ignored except for CHARBIND and BINARYBIND.
bindvalpointer to a buffer containing the substitute value.
+
+
+
Return values
+ + + +
SUCCEEDquery was processed without errors.
FAILquery was not processed
+
+
+
See also
dbaltbind(), dbbind(), dbconvert(), dbnullbind().
+
+Here is the call graph for this function:
+
+
+
+
- -

§ DBSETLVERSION

+ +

◆ dbsetopt()

- + - - + + - - + + + + + + + + + + + + + + - +
DBSETLVERSIONRETCODE dbsetopt ( login, DBPROCESSdbproc,
 version int option,
const char * char_param,
int int_param 
)   dbsetlversion((login), (version))
-

maps to the Microsoft (lower-case) function.

-
See also
dbsetlversion()
+

Set db-lib or server option.

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
optionoption to set.
+
char_paramvalue to set option to, if it wants a null-teminated ASCII string.
+
int_paramvalue to set option to, if it wants an integer value.
+
+
+
+
Return values
+ + + +
SUCCEEDeverything worked.
FAILno such option, or insufficient memory, or unimplemented.
+
+
+
+
Remarks
Many are unimplemented.
+
See also
dbclropt(), dbisopt().
+
Todo:
Implement more options.
+
+
+Here is the call graph for this function:
+
+
+
+
-

Typedef Documentation

- -

§ DBLIB_ERROR_MESSAGE

+ +

◆ dbsetrow()

- + + + + + + + + + + + + + + +
typedef struct _dblib_error_message DBLIB_ERROR_MESSAGESTATUS dbsetrow (DBPROCESSdbproc,
DBINT row 
)
-
Remarks
member msgno Vendor-defined message number
-
-member severity Is passed to the error handler
-
-member msgtext Text of message
+ +

Make a buffered row "current" without fetching it into bound variables.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + + + +
MORE_ROWSrow found
NO_MORE_ROWSrow not found
FAILdbproc is dead or not enabled
+
+
+
See also
dbaltbind(), dbbind(), dbcanquery(), dbclrbuf(), dbgetrow(), dbnextrow(), dbprrow().
+
+Here is the call graph for this function:
+
+
+
+
-

Function Documentation

- -

§ _dbcoldata()

+ +

◆ dbsettime()

- - - - - -
- + - - + +
static BYTE * _dbcoldata RETCODE dbsettime (TDSCOLUMNcolinfo)int seconds)
-
-static
-

Return data from a column.

+

Set maximum seconds db-lib waits for a server response to query.
+

Parameters
- + +
colinfocontains information on a result column.
secondsNew limit for application.
+
+
+
+
Return values
+ +
SUCCEEDAlways.
+
-
Returns
pointer to the data, or NULL if data are NULL
-
See also
dbdata(), dbretdata()
+
See also
dberrhandle(), DBGETTIME(), dbsetlogintime(), dbsqlexec(), dbsqlok(), dbsqlsend().
+
+Here is the call graph for this function:
+
+
+
+
- -

§ _dblib_check_and_handle_interrupt()

+ +

◆ dbsetuserdata()

- + - - + + + + + + + + + + + +
int _dblib_check_and_handle_interrupt void dbsetuserdata (void * vdbproc)DBPROCESSdbproc,
BYTE * ptr 
)
-

check interrupts for libtds.

+

Associate client-allocated (and defined) data with a DBPROCESS.
+

Parameters
- + +
vdbproca DBPROCESS pointer, contains all information needed by db-lib to manage communications with the server.
dbproccontains all information needed by db-lib to manage communications with the server.
ptraddress of client-defined data.
-
See also
DBDEAD(), dbsetinterrupt().
+
Remarks
ptr is the location of user data that db-lib will associate with dbproc. The client allocates the buffer addressed by ptr. db-lib never examines or uses the information; it just stashes the pointer for later retrieval by the application with dbgetuserdata().
+
+
See also
dbgetuserdata().
+
+
+Here is the call graph for this function:
+
+
+
+
- -

§ dbcmdrow()

+ +

◆ dbsetversion()

- + - - + +
RETCODE dbcmdrow RETCODE dbsetversion (DBPROCESSdbproc)DBINT version)
-

See if the current command can return rows.

+

Specify a db-lib version level.

Parameters
- +
dbproccontains all information needed by db-lib to manage communications with the server.
versionanything, really.
Return values
- - +
SUCCEEDYes, it can.
FAILNo, it can't.
SUCCEEDAlways.
+
-
Remarks
Use DBCMDROW() macro instead.
-
See also
DBCMDROW(), dbnextrow(), dbresults(), DBROWS(), DBROWTYPE().
+
Remarks
No effect on behavior of db-lib in FreeTDS.
+
+
See also
Here is the call graph for this function:
-
+
- -

§ dbcolptr()

+ +

◆ dbspid()

+ +
+
+ + + + + + + + +
int dbspid (DBPROCESSdbproc)
+
+ +

Get server process ID for a DBPROCESS.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
"spid", the server's process ID.
+
+
See also
dbopen().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbspr1row()

- - - - - -
- + - + - - + + + + + + + + @@ -381,338 +4596,400 @@
static TDSCOLUMN* dbcolptr RETCODE dbspr1row (DBPROCESSDBPROCESS dbproc,
int column char * buffer,
DBINT buf_len 
-
-static
-

Sanity checks for column-oriented functions.

-
Parameters
+

Print a regular result row to a buffer.
+

+

Fills a buffer with one data row, represented as a null-terminated ASCII string. Helpful for debugging.
+

Parameters
- + +
dbproccontains all information needed by db-lib to manage communications with the server.
pcolinfoaddress of pointer to a TDSCOLUMN structure.
bufferoutput: Address of a buffer to hold ASCII null-terminated string.
buf_lensize of buffer, in bytes.
-
Remarks
Makes sure dbproc and the requested column are valid. Calls dbperror() if not.
-
Returns
appropriate error or SUCCEED
-
-Here is the call graph for this function:
-
-
-
-
+
Return values
+ + + +
SUCCEEDon success.
FAILtrouble encountered.
+
+
+
+
See also
dbclropt(), dbisopt(), dbprhead(), dbprrow(), dbspr1rowlen(), dbsprhead(), dbsprline().
- -

§ dbcurcmd()

+ +

◆ dbspr1rowlen()

- + - +
int dbcurcmd DBINT dbspr1rowlen (DBPROCESSDBPROCESS dbproc)
-

Get number of the row just returned.

+

Determine size buffer required to hold the results returned by dbsprhead(), dbsprline(), and dbspr1row().

Parameters
dbproccontains all information needed by db-lib to manage communications with the server.
-
See also
DBCURROW().
-
Todo:
Unimplemented.
-
-Here is the call graph for this function:
-
-
-
-
+
Returns
size of buffer requirement, in bytes.
+
+
Remarks
An esoteric function.
+
See also
dbprhead(), dbprrow(), dbspr1row(), dbsprhead(), dbsprline().
- -

§ dbcurrow()

+ +

◆ dbsprhead()

- - - - + + + + + + + + + + + + + + + + + + + +
DBINT dbcurrow (DBPROCESSdbproc)RETCODE dbsprhead (DBPROCESSdbproc,
char * buffer,
DBINT buf_len 
)
-

Get number of the row currently being read.

+

Print result set headings to a buffer.

Parameters
+ +
dbproccontains all information needed by db-lib to manage communications with the server.
bufferoutput buffer
buf_lensize of buffer
-
Returns
ostensibly the row number, or 0 if no rows have been read yet.
Return values
- + +
0Always.
SUCCEEDbuffer filled.
FAILinsufficient space in buffer, usually.
-
See also
DBCURROW(), dbclrbuf(), DBFIRSTROW(), dbgetrow(), DBLASTROW(), dbnextrow(), dbsetopt(),.
-
Todo:
Unimplemented.
+
See also
dbprhead(), dbprrow(), dbsetopt(), dbspr1row(), dbspr1rowlen(), dbsprline().
Here is the call graph for this function:
-
+
- -

§ dbdead()

+ +

◆ dbsprline()

- + - - + + + + + + + + + + + + + + + + + + + + + + + +
DBBOOL dbdead RETCODE dbsprline (DBPROCESSdbproc)DBPROCESSdbproc,
char * buffer,
DBINT buf_len,
DBCHAR line_char 
)
-

Check if dbproc is an ex-parrot.

+

Get formatted string for underlining dbsprhead() column names.
+

Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
bufferoutput buffer
buf_lensize of buffer
line_charcharacter to use to represent underlining.
Return values
- - + +
TRUEprocess has been marked dead.
FALSEprocess is OK.
SUCCEEDbuffer filled.
FAILinsufficient space in buffer, usually.
-
Remarks
dbdead() does not communicate with the server. Unless a previously db-lib marked dbproc dead, dbdead() returns FALSE.
-
See also
dberrhandle().
-
-Here is the call graph for this function:
-
-
-
-
+
See also
dbprhead(), dbprrow(), dbspr1row(), dbspr1rowlen(), dbsprhead().
- -

§ dbfirstrow()

+ +

◆ dbsqlexec()

- + - +
DBINT dbfirstrow RETCODE dbsqlexec (DBPROCESSDBPROCESS dbproc)
-

See if a server response has arrived.

-
Parameters
+

send the SQL command to the server and wait for an answer.
+

+

Please be patient. This function waits for the server to respond. dbsqlexec is equivalent to dbsqlsend() followed by dbsqlok().

Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
millisecondshow long to wait for the server before returning:
    -
  • 0 return immediately.
  • -
  • -1 do not return until the server responds or a system interrupt occurs.
  • -
-
ready_dbprocoutput: DBPROCESS for which a response arrived, of NULL.
return_reasonoutput:
    -
  • DBRESULT server responded.
  • -
  • DBNOTIFICATION registered procedure notification has arrived. dbpoll() the registered handler, if any, before it returns.
  • -
  • DBTIMEOUT milliseconds elapsed before the server responded.
  • -
  • DBINTERRUPT operating-system interrupt occurred before the server responded.
  • -
-
Return values
- - -
SUCCEEDeverything worked.
FAILa server connection died.
-
-
-
See also
DBIORDESC(), DBRBUF(), dbresults(), dbreghandle(), dbsqlok().
-
Todo:
Unimplemented.
-

Get number of the first row in the row buffer.

-
Parameters
- - + +
dbproccontains all information needed by db-lib to manage communications with the server.
SUCCEEDquery was processed without errors.
FAILwas returned by dbsqlsend() or dbsqlok().
-
See also
DBFIRSTROW(), dbclrbuf(), DBCURROW(), dbgetrow(), DBLASTROW(), dbnextrow(), dbsetopt().
-
-Here is the call graph for this function:
-
-
-
-
+
See also
dbcmd(), dbfcmd(), dbnextrow(), dbresults(), dbretstatus(), dbsettime(), dbsqlok(), dbsqlsend()
- -

§ dbiordesc()

+ +

◆ dbsqlok()

- + - +
int dbiordesc RETCODE dbsqlok (DBPROCESSDBPROCESS dbproc)
-

Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!)

+

Wait for results of a query from the server.
+

Parameters
dbproccontains all information needed by db-lib to manage communications with the server.
-
See also
dbcmd(), DBIORDESC(), DBIOWDESC(), dbnextrow(), dbpoll(), DBRBUF(), dbresults(), dbsqlok(), dbsqlsend().
-
-Here is the call graph for this function:
-
-
-
-
+
Return values
+ + + +
SUCCEEDeverything worked, fetch results with dbnextresults().
FAILSQL syntax error, typically.
+
+
+
+
See also
dbcmd(), dbfcmd(), DBIORDESC(), DBIOWDESC(), dbmoretext(), dbnextrow(), dbpoll(), DBRBUF(), dbresults(), dbretstatus(), dbrpcsend(), dbsettime(), dbsqlexec(), dbsqlsend(), dbwritetext().
- -

§ dbiowdesc()

+ +

◆ dbsqlsend()

- + - +
int dbiowdesc RETCODE dbsqlsend (DBPROCESSDBPROCESS dbproc)
-

Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!)

+

Transmit the command buffer to the server. Non-blocking, does not wait for a response.

Parameters
dbproccontains all information needed by db-lib to manage communications with the server.
-
See also
dbcmd(), DBIORDESC(), DBIOWDESC(), dbnextrow(), dbpoll(), DBRBUF(), dbresults(), dbsqlok(), dbsqlsend().
+
Return values
+ + + +
SUCCEEDSQL sent.
FAILprotocol problem, unless dbsqlsend() when it's not supposed to be (in which case a db-lib error message will be emitted).
+
+
+
+
See also
dbcmd(), dbfcmd(), DBIORDESC(), DBIOWDESC(), dbnextrow(), dbpoll(), dbresults(), dbsettime(), dbsqlexec(), dbsqlok().
+
Here is the call graph for this function:
-
+
- -

§ dblastrow()

+ +

◆ dbstrbuild()

- + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DBINT dblastrow RETCODE dbstrbuild (DBPROCESSdbproc)DBPROCESSdbproc,
char * charbuf,
int bufsize,
char * text,
char * formats,
 ... 
)
-

Get number of the last row in the row buffer.

+

Build a printable string from text containing placeholders for variables.

Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
charbufoutput: buffer that will contain the ASCII null-terminated string built by dbstrbuild().
bufsizesize of charbuf, in bytes.
textnull-terminated ASCII string, with placeholders for variables. A Placeholder is a three-byte string, made up of:
    +
  • '' a percent sign
  • +
  • 0-9 an integer (designates the argument number to use, starting with 1.)
  • +
  • '!' an exclamation point
  • +
+
formatsnull-terminated ASCII sprintf-style string. Has one format specifier for each placeholder in text.
-
See also
DBLASTROW(), dbclrbuf(), DBCURROW(), DBFIRSTROW(), dbgetrow(), dbnextrow(), dbsetopt().
+
Remarks
Following formats are the arguments, the values to substitute for the placeholders.
+
+
See also
dbconvert(), dbdatename(), dbdatepart().
+
Here is the call graph for this function:
-
+
- -

§ dbperror()

+ +

◆ dbstrcpy()

- + - + - - + + - - + + - - + + @@ -722,174 +4999,193 @@
int dbperror RETCODE dbstrcpy (DBPROCESSDBPROCESS dbproc,
DBINT msgno, int start,
long errnum, int numbytes,
 ... char * dest 
-

Call client-installed error handler.

+

Get a copy of a chunk of the command buffer.

Parameters
- - + + +
dbproccontains all information needed by db-lib to manage communications with the server.
msgnoidentifies the error message to be passed to the client's handler.
errnumidentifies the OS error (errno), if any. Use 0 if not applicable.
startposition in the command buffer to start copying from, starting from 0.
+ If start is past the end of the command buffer, dbstrcpy() inserts a null terminator at dest[0].
numbytesnumber of bytes to copy.
    +
  • If -1, dbstrcpy() copies the whole command buffer.
    +
  • +
  • If 0 dbstrcpy() writes a NULL to dest[0].
  • +
  • If the command buffer contains fewer than numbytes (taking start into account) dbstrcpy() copies the rest of it.
    +
  • +
+
destoutput: the buffer to write to. Make sure it's big enough.
+
-
Returns
the handler's return code, subject to correction and adjustment for vendor style:
    -
  • INT_CANCEL The db-lib function that encountered the error will return FAIL.
  • -
  • INT_TIMEOUT The db-lib function will cancel the operation and return FAIL. dbproc remains useable.
  • -
  • INT_CONTINUE The db-lib function will retry the operation.
  • -
-
-
Remarks
The client-installed handler may also return INT_EXIT. If Sybase semantics are used, this function notifies the user and calls exit(3). If Microsoft semantics are used, this function returns INT_CANCEL.
-

If the client-installed handler returns something other than these four INT_* values, or returns timeout-related value for anything but SYBETIME, it's treated here as INT_EXIT (see above).

-

Instead of sprinkling error text all over db-lib, we consolidate it here, where it can be translated (one day), and where it can be mapped to the TDS error number. The libraries don't use consistent error numbers or messages, so when libtds has to emit an error message, it can't include the text. It can pass its error number to a client-library function, which will interpret it, add the text, call the application's installed handler (if any) and return the handler's return code back to the caller.

-

The call stack may look something like this:

-
    -
  1. application
  2. -
  3. db-lib function (encounters error)
  4. -
  5. dbperror
  6. -
  7. error handler (installed by application)
  8. -
-

The error handling in this case is unambiguous: the caller invokes this function, the client's handler returns its instruction, which the caller receives. Quite often the caller will get INT_CANCEL, in which case it should put its house in order and return FAIL.

-

The call stack may otherwise look something like this:

-
    -
  1. application
  2. -
  3. db-lib function
  4. -
  5. libtds function (encounters error)
  6. -
  7. _dblib_handle_err_message
  8. -
  9. dbperror
  10. -
  11. error handler (installed by application)
  12. -
-

Because different client libraries specify their handler semantics differently, and because libtds doesn't know which client library is in charge of any given connection, it cannot interpret the raw return code from a db-lib error handler. For these reasons, libtds calls _dblib_handle_err_message, which translates between libtds and db-lib semantics.

See also
dberrhandle(), _dblib_handle_err_message().
+
Return values
+ + + +
SUCCEEDthe inputs were valid and dest was affected.
+
FAILstart < 0 or numbytes < -1.
+
+
+
+
See also
dbcmd(), dbfcmd(), dbfreebuf(), dbgetchar(), dbstrlen().
+
-Here is the caller graph for this function:
+Here is the call graph for this function:
-
+
- -

§ dbrows()

+ +

◆ dbstrlen()

- + - +
RETCODE dbrows int dbstrlen (DBPROCESSDBPROCESS dbproc)
-

Indicate whether a query returned rows.

+

Get size of the command buffer, in bytes.

Parameters
dbproccontains all information needed by db-lib to manage communications with the server.
-
See also
DBROWS(), DBCMDROW(), dbnextrow(), dbresults(), DBROWTYPE().
+
See also
dbcmd(), dbfcmd(), dbfreebuf(), dbgetchar(), dbstrcpy().
Here is the call graph for this function:
-
+
- -

§ dbrowtype()

+ +

◆ dbtablecolinfo()

- + - - + + + + + + + + + + + + + + + + + +
STATUS dbrowtype RETCODE dbtablecolinfo (DBPROCESSdbproc)DBPROCESSdbproc,
DBINT column,
DBCOLpdbcol 
)
-

Get returned row's type.

+

describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo)

Parameters
+ +
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
pdbcoladdress of structure to be populated by this function.
+
-
See also
DBROWTYPE().
+
Returns
SUCCEED or FAIL.
+
See also
dbcolinfo().
Here is the call graph for this function:
-
+
- -

§ dbsetavail()

+ +

◆ dbtxptr()

- + - - + + + + + + + + + + + +
void dbsetavail DBBINARY* dbtxptr (DBPROCESSdbproc)DBPROCESSdbproc,
int column 
)
-

Mark a DBPROCESS as "available".

+

Get text pointer for a column in the current row.

Parameters
+
dbproccontains all information needed by db-lib to manage communications with the server.
columnnumber of the column in the SELECT statement, starting at 1.
-
Remarks
Basically bogus. FreeTDS behaves the way Sybase's implementation does, but so what? Many db-lib functions set the DBPROCESS to "not available", but only dbsetavail() resets it to "available".
-
See also
DBISAVAIL(). DBSETAVAIL().
+
Returns
text pointer for column, may be NULL.
+
See also
dbtxtimestamp(), dbwritetext().
Here is the call graph for this function:
-
+
- -

§ dbsetlbool()

+ +

◆ dbtxtimestamp()

- + - - - - - - - - + + - + @@ -899,56 +5195,43 @@
RETCODE dbsetlbool DBBINARY* dbtxtimestamp (LOGINREClogin,
int value, DBPROCESSdbproc,
int which column 
-

Set a boolean value in a LOGINREC structure.

-

Called by various macros to populate login.

Parameters
+

Get text timestamp for a column in the current row.

+
Parameters
- - - -
loginthe LOGINREC* to modify.
valuethe value to set it to.
whichthe field to set.
-
-
-
Remarks
Only DBSETBCP is implemented.
-
Return values
- - - + +
SUCCEEDthe value was set.
FAILinvalid value passed for which.
dbproccontains all information needed by db-lib to manage communications with the server.
columnnumber of the column in the SELECT statement, starting at 1.
-
Todo:
DBSETNOSHORT, DBSETENCRYPT, DBSETLABELED
+
Returns
timestamp for column, may be NULL.
+
See also
dbtxptr(), dbwritetext().
+
Here is the call graph for this function:
-
+
- -

§ dbsetllong()

+ +

◆ dbuse()

- + - - - - - - - - + + - - + + @@ -958,54 +5241,49 @@
RETCODE dbsetllong RETCODE dbuse (LOGINREClogin,
long value, DBPROCESSdbproc,
int which const char * name 
-

Set an integer value in a LOGINREC structure.

-

Called by various macros to populate login.

Parameters
+

Change current database.

+

Analagous to the unix command cd, dbuse() makes name the default database. Waits for an answer from the server.
+

Parameters
- - - + +
loginthe LOGINREC* to modify.
valuethe value to set it to.
whichthe field to set.
dbproccontains all information needed by db-lib to manage communications with the server.
namedatabase to use.
Return values
- - + +
SUCCEEDthe value was set.
FAILanything other than DBSETPACKET was passed for which.
SUCCEEDquery was processed without errors.
FAILquery was not processed
+
See also
dbchange(), dbname().
Here is the call graph for this function:
-
+
- -

§ dbsetlname()

+ +

◆ dbvarylen()

- + - - - - - - - - + + - + @@ -1015,110 +5293,78 @@
RETCODE dbsetlname DBINT dbvarylen (LOGINREClogin,
const char * value, DBPROCESSdbproc,
int which column 
-

Set the value of a string in a LOGINREC structure.

-

Called by various macros to populate login.

Parameters
+

Determine whether a column can vary in size.

+
Parameters
- - - + +
loginthe LOGINREC* to modify.
valuethe value to set it to.
whichthe field to set.
dbproccontains all information needed by db-lib to manage communications with the server.
columnNth in the result set, starting from 1.
Return values
- - + +
SUCCEEDthe value was set.
FAILDBSETHID or other invalid which was tried.
TRUEdatatype of column can vary in size, or is nullable.
FALSEdatatype of column is fixed and is not nullable.
+
See also
dbcollen(), dbcolname(), dbcoltype(), dbdata(), dbdatlen(), dbnumcols(), dbprtype().
Here is the call graph for this function:
-
+
- -

§ dbtds()

+ +

◆ dbversion()

- + - - +
int dbtds const char* dbversion (DBPROCESSdbproc))
-

Get the TDS version in use for dbproc.

-
Parameters
- - -
dbproccontains all information needed by db-lib to manage communications with the server.
-
-
-
Returns
a DBTDS* token.
-
Remarks
The integer values of the constants are counterintuitive.
-
See also
DBTDS().
+

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.
+
+
See also
Here is the call graph for this function:
-
+
- -

§ default_err_handler()

+ +

◆ dbwillconvert()

- - - - - -
- + - - - - - - - + - - - - - - - - - - - - - - - - - - - + @@ -1126,48 +5372,90 @@
static int default_err_handler DBBOOL dbwillconvert (DBPROCESSdbproc,
int severity, srctype,
int dberr,
int oserr,
char * dberrstr,
char * oserrstr desttype 
-
-static
-

default error handler for db-lib (handles library-generated errors)

-

The default error handler doesn't print anything. If you want to see your messages printed, install an error handler. If you think that should be an optional compile- or run-time default, submit a patch. It could be done.

-
See also
DBDEAD(), dberrhandle().
+

Test whether or not a datatype can be converted to another datatype.

+
Parameters
+ + + +
srctypetype converting from
desttypetype converting to
+
+
+
Remarks
dbwillconvert() lies sometimes. Some datatypes should be convertible but aren't yet in our implementation.
+ Legal unimplemented conversions return TRUE.
+
+
Return values
+ + + +
TRUEconvertible, or should be.
FAILnot convertible.
+
+
+
+
See also
dbaltbind(), dbbind(), dbconvert(), dbconvert_ps(), src/dblib/unittests/convert().c().
Here is the call graph for this function:
-
+
- -

§ tdsdbopen()

+ +

◆ dbwritetext()

- + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1177,35 +5465,36 @@
DBPROCESS* tdsdbopen RETCODE dbwritetext (LOGINREClogin, DBPROCESSdbproc,
const char * server, char * objname,
int msdblib DBBINARY * textptr,
DBTINYINT textptrlen,
DBBINARY * timestamp,
DBBOOL log,
DBINT size,
BYTE * text 
-

Form a connection with the server.

-

Called by the dbopen() macro, normally. If FreeTDS was configured with –enable-msdblib, this function is called by (exported) dbopen() function. tdsdbopen is so-named to avoid namespace conflicts with other database libraries that use the same function name.

Parameters
+

Send text or image data to the server.

+
Parameters
- - + + + + + + + +
loginLOGINREC* carrying the account information.
servername of the dataserver to connect to.
dbproccontains all information needed by db-lib to manage communications with the server.
objnametable name
textptrtext pointer to be modified, obtained from dbtxptr().
textptrlenIgnored. Supposed to be DBTXPLEN.
timestamptext timestamp to be modified, obtained from dbtxtimestamp() or dbtxtsnewval(), may be NULL.
logTRUE if the operation is to be recorded in the transaction log.
sizeoverall size of the data (in total, not just for this call), in bytes. A guideline, must not overstate the case.
+
textthe chunk of data to write.
+
-
Returns
valid pointer on successful login.
Return values
- + +
NULLinsufficient memory, unable to connect for any reason.
SUCCEEDeverything worked.
FAILnot sent, possibly because timestamp is invalid or was changed in the database since it was fetched.
+
-
See also
dbopen()
-
Todo:

use asprintf() to avoid buffer overflow.

-

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

-
+
See also
dbmoretext(), dbtxptr(), dbtxtimestamp(), dbwritetext(), dbtxtsput().
+
Here is the call graph for this function:
-
-
-
-
-Here is the caller graph for this function:
-
-
+
@@ -1216,7 +5505,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00545.map freetds-1.2.3/doc/reference/a00545.map --- freetds-1.1.6/doc/reference/a00545.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00545.md5 freetds-1.2.3/doc/reference/a00545.md5 --- freetds-1.1.6/doc/reference/a00545.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -dec260c95088213c8bd96731b83124dc \ No newline at end of file +d8e5988647989bd3b1c517b68090b89a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00545.svg freetds-1.2.3/doc/reference/a00545.svg --- freetds-1.1.6/doc/reference/a00545.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00545.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Internals - + + + +Primary functions + + + +Node2 + + +The db-lib API + + + -Node1 - - -The db-lib API + +Node1 + + +Primary functions - -Node0 - -Internals - - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map freetds-1.2.3/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map --- freetds-1.1.6/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 freetds-1.2.3/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +7105d59b56681c520075c84e3c48dcbf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg freetds-1.2.3/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga0311328d63bae5d9bd5aea5ea4914223_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbretname + + + +Node1 + + +dbretname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map freetds-1.2.3/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map --- freetds-1.1.6/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 freetds-1.2.3/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +39d7a78c618ec6e559112d0ec9b2595b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg freetds-1.2.3/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga2306039d73fbc7045f257b0e750c37b4_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbretstatus + + + +Node1 + + +dbretstatus + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map freetds-1.2.3/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map --- freetds-1.1.6/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 freetds-1.2.3/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +a79a08362dbff7ef6949932937af1691 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg freetds-1.2.3/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga42e187003b74fec6e9ca92d410bfb9c0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbretdata + + + +Node1 + + +dbretdata + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map freetds-1.2.3/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map --- freetds-1.1.6/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 freetds-1.2.3/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +378ba6352a83b5d0b6a599c705bea120 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg freetds-1.2.3/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrpcinit + + + +Node1 + + +dbrpcinit + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map freetds-1.2.3/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map --- freetds-1.1.6/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 freetds-1.2.3/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1165c0ed50fe9b7d21d6860983a45659 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg freetds-1.2.3/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_ga7a5062dac92ccedc8459f6d4a530ffb7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbhasretstat + + + +Node1 + + +dbhasretstat + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.map freetds-1.2.3/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.map --- freetds-1.1.6/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 freetds-1.2.3/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.md5 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1 @@ +29f2f21a239c6977551f34254607089b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg freetds-1.2.3/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaa478c8b96923bca02d158d966172ec1b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrettype + + + +Node1 + + +dbrettype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map freetds-1.2.3/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map --- freetds-1.1.6/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.map 2020-07-09 09:01:58.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 freetds-1.2.3/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +3d1e0c9368c8d74a4170b7271dcb6461 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg freetds-1.2.3/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbretlen + + + +Node1 + + +dbretlen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map freetds-1.2.3/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map --- freetds-1.1.6/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 freetds-1.2.3/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d7f90627b006b04a258ae782ee9cfa34 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg freetds-1.2.3/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaf6b6b0a641180a5c28382df39cd7d346_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrpcparam + + + +Node1 + + +dbrpcparam + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map freetds-1.2.3/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map --- freetds-1.1.6/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 freetds-1.2.3/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +bdd5cd496a770f3af384d3e8096b5f72 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg freetds-1.2.3/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gafa4dfd181be21e49c397f7daaa9cf96c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrpcsend + + + +Node1 + + +dbrpcsend + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map freetds-1.2.3/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map --- freetds-1.1.6/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 freetds-1.2.3/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +21305c59cae03a586a9669bd01299982 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg freetds-1.2.3/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546_gaff09873008411a0573f6d1a9e6c7cf4b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbnumrets + + + +Node1 + + +dbnumrets + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00546.html freetds-1.2.3/doc/reference/a00546.html --- freetds-1.1.6/doc/reference/a00546.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Unimplemented +FreeTDS API: Remote Procedure functions @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -58,40 +61,559 @@
+
-
Unimplemented
+
Remote Procedure functions
-

Functions thus far not implemented in the FreeTDS db-lib implementation. +

Functions used with stored procedures.
+ Especially useful for OUTPUT parameters, because modern Microsoft servers do not return output parameter data to the client unless the procedure was invoked with dbrpcsend().
+ More...

-Collaboration diagram for Unimplemented:
+Collaboration diagram for Remote Procedure functions:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

DBBOOL dbhasretstat (DBPROCESS *dbproc)
 Determine if query generated a return status number. More...
 
int dbnumrets (DBPROCESS *dbproc)
 Get count of output parameters filled by a stored procedure. More...
 
BYTE * dbretdata (DBPROCESS *dbproc, int retnum)
 Get value of an output parameter filled by a stored procedure. More...
 
int dbretlen (DBPROCESS *dbproc, int retnum)
 Get size of an output parameter filled by a stored procedure. More...
 
char * dbretname (DBPROCESS *dbproc, int retnum)
 Get name of an output parameter filled by a stored procedure. More...
 
DBINT dbretstatus (DBPROCESS *dbproc)
 Fetch status value returned by query or remote procedure call. More...
 
int dbrettype (DBPROCESS *dbproc, int retnum)
 Get datatype of a stored procedure's return parameter. More...
 
RETCODE dbrpcinit (DBPROCESS *dbproc, const char rpcname[], DBSMALLINT options)
 Initialize a remote procedure call. More...
 
RETCODE dbrpcparam (DBPROCESS *dbproc, const char paramname[], BYTE status, int db_type, DBINT maxlen, DBINT datalen, BYTE *value)
 Add a parameter to a remote procedure call. More...
 
RETCODE dbrpcsend (DBPROCESS *dbproc)
 Execute the procedure and free associated memory. More...
 
+

Detailed Description

+

Functions used with stored procedures.
+ Especially useful for OUTPUT parameters, because modern Microsoft servers do not return output parameter data to the client unless the procedure was invoked with dbrpcsend().
+

+

Function Documentation

+ +

◆ dbhasretstat()

+ +
+
+ + + + + + + + +
DBBOOL dbhasretstat (DBPROCESSdbproc)
+
+ +

Determine if query generated a return status number.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + + +
TRUEfetch return status with dbretstatus().
+
FALSEno return status.
+
+
+
+
See also
dbnextrow(), dbresults(), dbretdata(), dbretstatus(), dbrpcinit(), dbrpcparam(), dbrpcsend().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbnumrets()

+ +
+
+ + + + + + + + +
int dbnumrets (DBPROCESSdbproc)
+
+ +

Get count of output parameters filled by a stored procedure.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
How many, possibly zero.
+
+
Remarks
This name sounds funny.
+
+
See also
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbretdata()

+ +
+
+ + + + + + + + + + + + + + + + + + +
BYTE* dbretdata (DBPROCESSdbproc,
int retnum 
)
+
+ +

Get value of an output parameter filled by a stored procedure.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth parameter between 1 and the return value from dbnumrets().
+
+
+
Returns
Address of a return parameter value, or NULL if no such retnum.
+
+
See also
dbnextrow(), dbnumrets(), dbresults(), dbretlen(), dbretname(), dbrettype(), dbrpcinit(), dbrpcparam().
+
Todo:
Handle blobs.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbretlen()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dbretlen (DBPROCESSdbproc,
int retnum 
)
+
+ +

Get size of an output parameter filled by a stored procedure.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth parameter between 1 and the return value from dbnumrets().
+
+
+
Returns
Size of a return parameter value, or NULL if no such retnum.
+
+
See also
dbnextrow(), dbnumrets(), dbresults(), dbretdata(), dbretname(), dbrettype(), dbrpcinit(), dbrpcparam().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbretname()

+ +
+
+ + + + + + + + + + + + + + + + + + +
char* dbretname (DBPROCESSdbproc,
int retnum 
)
+
+ +

Get name of an output parameter filled by a stored procedure.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth parameter between 1 and the return value from dbnumrets().
+
+
+
Returns
ASCII null-terminated string, NULL if no such retnum.
+
+
See also
dbnextrow(), dbnumrets(), dbresults(), dbretdata(), dbretlen(), dbrettype(), dbrpcinit(), dbrpcparam().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbretstatus()

+ +
+
+ + + + + + + + +
DBINT dbretstatus (DBPROCESSdbproc)
+
+ +

Fetch status value returned by query or remote procedure call.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
return value
+
See also
dbhasretstat(), dbnextrow(), dbresults(), dbretdata(), dbrpcinit(), dbrpcparam(), dbrpcsend().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbrettype()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dbrettype (DBPROCESSdbproc,
int retnum 
)
+
+ +

Get datatype of a stored procedure's return parameter.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
retnumNth return parameter, between 1 and dbnumrets().
+
+
+
+
Returns
SYB* datatype token, or -1 if retnum is out of range.
+
See also
dbnextrow(), dbnumrets(), dbprtype(), dbresults(), dbretdata(), dbretlen(), dbretname(), dbrpcinit(), dbrpcparam().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbrpcinit()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbrpcinit (DBPROCESSdbproc,
const char rpcname[],
DBSMALLINT options 
)
+
+ +

Initialize a remote procedure call.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
rpcnamename of the stored procedure to be run.
+
optionsOnly supported option would be DBRPCRECOMPILE, which causes the stored procedure to be recompiled before executing.
+
+
+
Remarks
The RPC functions are the only way to get back OUTPUT parameter data with db-lib from modern Microsoft servers.
+
+
Return values
+ + + +
SUCCEEDnormal.
FAILon error
+
+
+
See also
dbrpcparam(), dbrpcsend()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbrpcparam()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbrpcparam (DBPROCESSdbproc,
const char paramname[],
BYTE status,
int db_type,
DBINT maxlen,
DBINT datalen,
BYTE * value 
)
+
+ +

Add a parameter to a remote procedure call.

+

Call between dbrpcinit() and dbrpcsend()

Parameters
+ + + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
paramnameliteral name of the parameter, according to the stored procedure (starts with '@'). Optional.
+ If not used, parameters will be passed in order instead of by name.
statusmust be DBRPCRETURN, if this parameter is a return parameter, else 0.
typedatatype of the value parameter e.g., SYBINT4, SYBCHAR.
maxlenMaximum output size of the parameter's value to be returned by the stored procedure, usually the size of your host variable. Fixed-length datatypes take -1 (NULL or not).
+ Non-OUTPUT parameters also use -1.
+ Use 0 to send a NULL value for a variable length datatype.
+
datalenFor variable-length datatypes, the byte size of the data to be sent, exclusive of any null terminator. For fixed-length datatypes use -1. To send a NULL value, use 0.
+
valueAddress of your host variable.
+
+
+
+
Return values
+ + + +
SUCCEEDnormal.
FAILon error
+
+
+
See also
dbrpcinit(), dbrpcsend()
+
+Here is the call graph for this function:
-
+
+
+
+ + + + +

◆ dbrpcsend()

+ +
+
+ + + + + + + + +
RETCODE dbrpcsend (DBPROCESSdbproc)
+
+ +

Execute the procedure and free associated memory.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + + +
SUCCEEDnormal.
FAILon error
+
+
+
See also
dbrpcinit(), dbrpcparam()
+
+Here is the call graph for this function:
+
+
+
+
+
-
-

Functions thus far not implemented in the FreeTDS db-lib implementation.

-

While some of these are simply awaiting someone with time and skill (and inclination) it might be noted here that the old browse functions (e.g. dbcolbrowse()) are on the never-to-do list. They were defined by Sybase and were superseded long ago, although they're still present in Microsoft's implementation. They were never popular and today better alternatives are available. For completeness, they are:

    -
  • dbcolbrowse()
  • -
  • dbcolsource()
  • -
  • dbfreequal()
  • -
  • dbqual()
  • -
  • dbtabbrowse()
  • -
  • dbtabcount()
  • -
  • dbtabname()
  • -
  • dbtabsource()
  • -
  • dbtsnewlen()
  • -
  • dbtsnewval()
  • -
  • dbtsput()
  • -
diff -Nru freetds-1.1.6/doc/reference/a00546.map freetds-1.2.3/doc/reference/a00546.map --- freetds-1.1.6/doc/reference/a00546.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00546.md5 freetds-1.2.3/doc/reference/a00546.md5 --- freetds-1.1.6/doc/reference/a00546.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546.md5 2020-07-09 09:01:58.000000000 +0000 @@ -1 +1 @@ -b2763a515868e5e314d26606cf6bd3b7 \ No newline at end of file +278b0ea28cc98e29b5c86959eef5eb8c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00546.svg freetds-1.2.3/doc/reference/a00546.svg --- freetds-1.1.6/doc/reference/a00546.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00546.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Unimplemented - + + + +Remote Procedure functions + + + +Node2 + + +The db-lib API + + + -Node1 - - -The db-lib API + +Node1 + + +Remote Procedure functions - -Node0 - -Unimplemented - - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map freetds-1.2.3/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +098b3d70a822164d477dbdad337a32dc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga0ed03c69e698336d015bb315ad755fd5_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_colfmt + + + +Node1 + + +bcp_colfmt + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map freetds-1.2.3/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +8209f245522e883fff8d5d6dde08b210 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga220f6b043602da1028f98dacb2fd00c0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_getl + + + +Node1 + + +bcp_getl + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.map freetds-1.2.3/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +2105ff7f73104acc1f5d9500d4d3caf7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga244547855b41788fa3a67756956fbc81_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_control + + + +Node1 + + +bcp_control + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map freetds-1.2.3/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +47bf7ee58d685fbb68d2cf613ce591d3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga330b9f1028f856a9eec5115550bcb4f7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_columns + + + +Node1 + + +bcp_columns + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map freetds-1.2.3/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +890d6c2d71e25ebce7c0ba44ae0f3e17 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga6498235e4ef8e41ea43b01494b28998d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_colptr + + + +Node1 + + +bcp_colptr + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map freetds-1.2.3/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +fd747867eb6b81475c884b0040db6fb8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga6cf03708baaf02eb016b9ee77160d879_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_bind + + + +Node1 + + +bcp_bind + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map freetds-1.2.3/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +ea7c05aef503c2d519605e1526cab329 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_done + + + +Node1 + + +bcp_done + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map freetds-1.2.3/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map --- freetds-1.1.6/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 freetds-1.2.3/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +01b221b445e1d5c440689c80a570fa43 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg freetds-1.2.3/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_readfmt + + + +Node1 + + +bcp_readfmt + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map freetds-1.2.3/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map --- freetds-1.1.6/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 freetds-1.2.3/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +a6782d3d91d4ed938dbdb891b4045b14 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg freetds-1.2.3/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_batch + + + +Node1 + + +bcp_batch + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map freetds-1.2.3/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map --- freetds-1.1.6/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 freetds-1.2.3/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6895f9ae8b53d5df5cfaf4aec74684c6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg freetds-1.2.3/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_init + + + +Node1 + + +bcp_init + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.map freetds-1.2.3/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.map --- freetds-1.1.6/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.md5 freetds-1.2.3/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +4905b99367b59970417a101d299ea37d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.svg freetds-1.2.3/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gae41d196a22c544d66212dacc5b555791_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_collen + + + +Node1 + + +bcp_collen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map freetds-1.2.3/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map --- freetds-1.1.6/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 freetds-1.2.3/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +357c87a6016892af65644ed8821e4f3b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg freetds-1.2.3/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_sendrow + + + +Node1 + + +bcp_sendrow + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.map freetds-1.2.3/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.map --- freetds-1.1.6/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 freetds-1.2.3/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +7d62cd925f8369496f9585c83b191766 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg freetds-1.2.3/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gaf13b2bb12b4200752718f3a3face3870_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_colfmt_ps + + + +Node1 + + +bcp_colfmt_ps + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map freetds-1.2.3/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map --- freetds-1.1.6/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 freetds-1.2.3/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 --- freetds-1.1.6/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +553e4acbd8501359a0030eeb122b9336 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg freetds-1.2.3/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg --- freetds-1.1.6/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547_gafec3feb5bac1cb33545ba01efb0a67b8_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +bcp_options + + + +Node1 + + +bcp_options + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00547.html freetds-1.2.3/doc/reference/a00547.html --- freetds-1.1.6/doc/reference/a00547.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: ODBC API +FreeTDS API: Bulk copy functions @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -59,36 +62,1022 @@
-
ODBC API
+
Bulk copy functions
-

Functions callable by ODBC client programs. +

Functions to bulk-copy (a/k/a bcp) data to/from the database.
+ More...

-Collaboration diagram for ODBC API:
+Collaboration diagram for Bulk copy functions:
-
+
-
- - + + +

Modules

 ODBC utility
 Functions called within ODBC driver.
 Internal bcp functions
 Static functions internal to the bcp library.
+
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

DBINT bcp_batch (DBPROCESS *dbproc)
 Commit a set of rows to the table. More...
 
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. More...
 
RETCODE bcp_colfmt (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)
 Specify the format of a datafile prior to writing to a table. More...
 
RETCODE bcp_colfmt_ps (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)
 Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. More...
 
RETCODE bcp_collen (DBPROCESS *dbproc, DBINT varlen, int table_column)
 Set the length of a host variable to be written to a table. More...
 
RETCODE bcp_colptr (DBPROCESS *dbproc, BYTE *colptr, int table_column)
 Override bcp_bind() by pointing to a different host variable. More...
 
RETCODE bcp_columns (DBPROCESS *dbproc, int host_colcount)
 Indicate how many columns are to be found in the datafile. More...
 
RETCODE bcp_control (DBPROCESS *dbproc, int field, DBINT value)
 Set BCP options for uploading a datafile. More...
 
DBINT bcp_done (DBPROCESS *dbproc)
 Conclude the transfer of data from program variables. More...
 
RETCODE bcp_exec (DBPROCESS *dbproc, DBINT *rows_copied)
 Write a datafile to a table. More...
 
DBBOOL bcp_getl (LOGINREC *login)
 See if BCP_SETL() was used to set the LOGINREC for BCP work.
+ More...
 
RETCODE bcp_init (DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
 Prepare for bulk copy operation on a table. More...
 
RETCODE bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
 Set "hints" for uploading a file. A FreeTDS-only function.
+ More...
 
RETCODE bcp_readfmt (DBPROCESS *dbproc, const char filename[])
 Read a format definition file. More...
 
RETCODE bcp_sendrow (DBPROCESS *dbproc)
 Write data in host variables to the table.
+ More...
 

Detailed Description

-

Functions callable by ODBC client programs.

+

Functions to bulk-copy (a/k/a bcp) data to/from the database.
+

+

Function Documentation

+ +

◆ bcp_batch()

+ +
+
+ + + + + + + + +
DBINT bcp_batch (DBPROCESSdbproc)
+
+ +

Commit a set of rows to the table.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Remarks
If not called, bcp_done() will cause the rows to be saved.
+
+
Returns
Count of rows saved, or -1 on error.
+
See also
bcp_bind(), bcp_done(), bcp_sendrow()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_bind()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_bind (DBPROCESSdbproc,
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.

+
Parameters
+ + + + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
varaddraddress of host variable
prefixlenlength of any prefix found at the beginning of varaddr, in bytes.
+ Use zero for fixed-length datatypes.
varlenbytes of data in varaddr. Zero for NULL, -1 for fixed-length datatypes.
terminatorbyte sequence that marks the end of the data in varaddr
termlenlength of terminator
vartypedatatype of the host variable
table_columnNth column, starting at 1, in the table.
+
+
+
Remarks
The order of operation is: +
+
Returns
SUCCEED or FAIL.
+
See also
bcp_batch(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_moretext(), bcp_sendrow()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_colfmt()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_colfmt (DBPROCESSdbproc,
int host_colnum,
int host_type,
int host_prefixlen,
DBINT host_collen,
const BYTE * host_term,
int host_termlen,
int table_colnum 
)
+
+ +

Specify the format of a datafile prior to writing to a table.

+
Parameters
+ + + + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
host_colnumdatafile column number (starting with 1, not zero).
host_typedataype token describing the data type in host_colnum. E.g. SYBCHAR for character data.
host_prefixlensize of the prefix in the datafile column, if any. For delimited files: zero.
+ May be 0, 1, 2, or 4 bytes. The prefix will be read as an integer (not a character string) from the data file, and will be interpreted the data size of that column, in bytes.
+
host_collenmaximum size of datafile column, exclusive of any prefix/terminator. Just the data, ma'am.
+ Special values:
    +
  • 0 indicates NULL.
    +
  • +
  • -1 for fixed-length non-null datatypes
  • +
  • -1 for variable-length datatypes (e.g. SYBCHAR) where the length is established by a prefix/terminator.
    +
  • +
+
host_termthe sequence of characters that will serve as a column terminator (delimiter) in the datafile.
+ Often a tab character, but can be any string of any length. Zero indicates no terminator.
+ Special characters:
    +
  • '\0' terminator is an ASCII NUL.
  • +
  • '\t' terminator is an ASCII TAB.
  • +
  • '\n' terminator is an ASCII NL.
  • +
+
host_termlenthe length of host_term, in bytes.
table_colnumNth column, starting at 1, in the table that maps to host_colnum.
+ If there is a column in the datafile that does not map to a table column, set table_colnum to zero.
+
+
+
+
Remarks
bcp_colfmt() is called once for each column in the datafile, as specified with bcp_columns().
+ In so doing, you describe to FreeTDS how to parse each line of your datafile, and where to send each field.
+
+

When a prefix or terminator is used with variable-length data, host_collen may have one of three values:

    +
  • positive indicating the maximum number of bytes to be used
  • +
  • 0 indicating NULL
  • +
  • -1 indicating no maximum; all data, as described by the prefix/terminator will be used.
    +
  • +
+
Returns
SUCCEED or FAIL.
+
See also
bcp_batch(), bcp_bind(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_init(), bcp_sendrow
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_colfmt_ps()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_colfmt_ps (DBPROCESSdbproc,
int host_colnum,
int host_type,
int host_prefixlen,
DBINT host_collen,
BYTE * host_term,
int host_termlen,
int table_colnum,
DBTYPEINFOtypeinfo 
)
+
+ +

Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns.

+
Parameters
+ + + + + + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
host_colnumdatafile column number (starting with 1, not zero).
host_typedataype token describing the data type in host_colnum. E.g. SYBCHAR for character data.
host_prefixlensize of the prefix in the datafile column, if any. For delimited files: zero.
+ May be 0, 1, 2, or 4 bytes. The prefix will be read as an integer (not a character string) from the data file, and will be interpreted the data size of that column, in bytes.
+
host_collenmaximum size of datafile column, exclusive of any prefix/terminator. Just the data, ma'am.
+ Special values:
    +
  • 0 indicates NULL.
    +
  • +
  • -1 for fixed-length non-null datatypes
  • +
  • -1 for variable-length datatypes (e.g. SYBCHAR) where the length is established by a prefix/terminator.
    +
  • +
+
host_termthe sequence of characters that will serve as a column terminator (delimiter) in the datafile.
+ Often a tab character, but can be any string of any length. Zero indicates no terminator.
+ Special characters:
    +
  • '\0' terminator is an ASCII NUL.
  • +
  • '\t' terminator is an ASCII TAB.
  • +
  • '\n' terminator is an ASCII NL.
  • +
+
host_termlenthe length of host_term, in bytes.
table_colnumNth column, starting at 1, in the table that maps to host_colnum.
+ If there is a column in the datafile that does not map to a table column, set table_colnum to zero.
+
typeinfosomething
+
+
+
Todo:
Not implemented.
+
Returns
SUCCEED or FAIL.
+
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_init(), bcp_sendrow
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_collen()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_collen (DBPROCESSdbproc,
DBINT varlen,
int table_column 
)
+
+ +

Set the length of a host variable to be written to a table.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
varlensize of the variable, in bytes, or
    +
  • 0 indicating NULL
  • +
+
+
+
+
    +
  • -1 indicating size is determined by the prefix or terminator.
    + (If both a prefix and a terminator are present, bcp is supposed to use the smaller of the two. This feature might or might not actually work.)
    Parameters
    + + +
    table_columnthe number of the column in the table (starting with 1, not zero).
    +
    +
    +
    Returns
    SUCCEED or FAIL.
    +
    See also
    bcp_bind(), bcp_colptr(), bcp_sendrow()
    +
  • +
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_colptr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_colptr (DBPROCESSdbproc,
BYTE * colptr,
int table_column 
)
+
+ +

Override bcp_bind() by pointing to a different host variable.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
colptrThe pointer, the address of your variable.
table_columnThe 1-based column ordinal in the table.
+
+
+
+
Remarks
Use between calls to bcp_sendrow(). After calling bcp_colptr(), subsequent calls to bcp_sendrow() will bind to the new address.
+
+
Returns
SUCCEED or FAIL.
+
See also
bcp_bind(), bcp_collen(), bcp_sendrow()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_columns()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE bcp_columns (DBPROCESSdbproc,
int host_colcount 
)
+
+ +

Indicate how many columns are to be found in the datafile.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
host_colcountcount of columns in the datafile, irrespective of how many you intend to use.
+
+
+
Remarks
This function describes the file as it is, not how it will be used.
+
+
Returns
SUCCEED or FAIL. It's hard to see how it could fail.
+
+
See also
bcp_colfmt()
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_control()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_control (DBPROCESSdbproc,
int field,
DBINT value 
)
+
+ +

Set BCP options for uploading a datafile.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
fieldsymbolic constant indicating the option to be set, one of:
    +
  • BCPMAXERRS Maximum errors tolerated before quitting. The default is 10.
  • +
  • BCPFIRST The first row to read in the datafile. The default is 1.
  • +
  • BCPLAST The last row to read in the datafile. The default is to copy all rows. A value of -1 resets this field to its default?
  • +
  • BCPBATCH The number of rows per batch. Default is 0, meaning a single batch.
  • +
+
valueThe value for field.
+
+
+
Remarks
These options control the behavior of bcp_exec().
+ When writing to a table from application host memory variables, program logic controls error tolerance and batch size.
+
Returns
SUCCEED or FAIL.
+
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_done(), bcp_exec(), bcp_options()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_done()

+ +
+
+ + + + + + + + +
DBINT bcp_done (DBPROCESSdbproc)
+
+ +

Conclude the transfer of data from program variables.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Remarks
Do not overlook this function. According to Sybase, failure to call bcp_done() "will result in unpredictable errors".
+
Returns
As with bcp_batch(), the count of rows saved, or -1 on error.
+
See also
bcp_batch(), bcp_bind(), bcp_moretext(), bcp_sendrow()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_exec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE bcp_exec (DBPROCESSdbproc,
DBINT * rows_copied 
)
+
+ +

Write a datafile to a table.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
rows_copiedbcp_exec will write the count of rows successfully written to this address. If rows_copied is NULL, it will be ignored by db-lib.
+
+
+
Returns
SUCCEED or FAIL.
+
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_init(), bcp_sendrow()
+ +
+
+ +

◆ bcp_getl()

+ +
+
+ + + + + + + + +
DBBOOL bcp_getl (LOGINREClogin)
+
+ +

See if BCP_SETL() was used to set the LOGINREC for BCP work.
+

+
Parameters
+ + +
loginAddress of the LOGINREC variable to be passed to dbopen().
+
+
+
Returns
TRUE or FALSE.
+
See also
BCP_SETL(), bcp_init(), dblogin(), dbopen()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_init (DBPROCESSdbproc,
const char * tblname,
const char * hfile,
const char * errfile,
int direction 
)
+
+ +

Prepare for bulk copy operation on a table.

+
Parameters
+ + + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
tblnamethe name of the table receiving or providing the data.
hfilethe data file opposite the table, if any.
+
errfilethe "error file" captures messages and, if errors are encountered, copies of any rows that could not be written to the table.
directionone of
    +
  • DB_IN writing to the table
  • +
  • DB_OUT writing to the host file
  • +
+
+
+
+
Remarks
bcp_init() sets the host file data format and acquires the table metadata. It is called before the other bulk copy functions.
+

When writing to a table, bcp can use as its data source a data file (hfile), or program data in an application's variables. In the latter case, call bcp_bind() to associate your data with the appropriate table column.
+

Returns
SUCCEED or FAIL.
+
See also
BCP_SETL(), bcp_bind(), bcp_done(), bcp_exec()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_options()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE bcp_options (DBPROCESSdbproc,
int option,
BYTE * value,
int valuelen 
)
+
+ +

Set "hints" for uploading a file. A FreeTDS-only function.
+

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
optionsymbolic constant indicating the option to be set, one of:
    +
  • BCPLABELED Not implemented.
  • +
  • BCPHINTS The hint to be passed when the bulk-copy begins.
    +
  • +
+
valueThe string constant for option a/k/a the hint. One of:
    +
  • ORDER The data are ordered in accordance with the table's clustered index.
  • +
  • ROWS_PER_BATCH The batch size
  • +
  • KILOBYTES_PER_BATCH The approximate number of kilobytes to use for a batch size
  • +
  • TABLOCK Lock the table
  • +
  • CHECK_CONSTRAINTS Apply constraints
  • +
  • FIRE_TRIGGERS Fire any INSERT triggers on the target table
  • +
+
valuelenThe strlen of value.
+
+
+
+
Returns
SUCCEED or FAIL.
+
See also
bcp_control(), bcp_exec(),
+
Todo:
Simplify. Remove valuelen, and dbproc->bcpinfo->hint = strdup(hints[i])
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_readfmt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE bcp_readfmt (DBPROCESSdbproc,
const char filename[] 
)
+
+ +

Read a format definition file.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
filenameName that will be passed to fopen(3).
+
+
+
+
Remarks
Reads a format file and calls bcp_columns() and bcp_colfmt() as needed.
+
Returns
SUCCEED or FAIL.
+
See also
bcp_colfmt(), bcp_colfmt_ps(), bcp_columns(), bcp_writefmt()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ bcp_sendrow()

+ +
+
+ + + + + + + + +
RETCODE bcp_sendrow (DBPROCESSdbproc)
+
+ +

Write data in host variables to the table.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Remarks
Call bcp_bind() first to describe the variables to be used.
+ Use bcp_batch() to commit sets of rows. After sending the last row call bcp_done().
+
Returns
SUCCEED or FAIL.
+
See also
bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_init(), bcp_moretext(), bcp_options()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
diff -Nru freetds-1.1.6/doc/reference/a00547.map freetds-1.2.3/doc/reference/a00547.map --- freetds-1.1.6/doc/reference/a00547.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547.map 2020-07-09 09:01:58.000000000 +0000 @@ -1,3 +1,5 @@ - - + + + + diff -Nru freetds-1.1.6/doc/reference/a00547.md5 freetds-1.2.3/doc/reference/a00547.md5 --- freetds-1.1.6/doc/reference/a00547.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -dbaa718e33918f95657521e8f8738675 \ No newline at end of file +92a2de222453dedc4e930a18ae2cef0a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00547.svg freetds-1.2.3/doc/reference/a00547.svg --- freetds-1.1.6/doc/reference/a00547.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00547.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,52 @@ - - - - -ODBC API - - -Node0 - -ODBC API + + + +Bulk copy functions + + + +Node2 + + +The db-lib API + + -Node1 - - -ODBC utility + +Node1 + + +Bulk copy functions + + + + + +Node2->Node1 + + + + + +Node3 + + +Internal bcp functions - -Node0->Node1 - - + + +Node1->Node3 + + diff -Nru freetds-1.1.6/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map freetds-1.2.3/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map --- freetds-1.1.6/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 freetds-1.2.3/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +7a3b7c9f86297a1864202851df999603 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg freetds-1.2.3/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_get_col_data + + + +Node1 + + +_bcp_get_col_data + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.map freetds-1.2.3/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.map --- freetds-1.1.6/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.md5 freetds-1.2.3/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1348c60f996f8f6f4c27a5924ae9e524 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.svg freetds-1.2.3/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga1b57d952a9d72f375c3296124affa908_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_read_hostfile + + + +Node1 + + +_bcp_read_hostfile + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map freetds-1.2.3/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map --- freetds-1.1.6/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 freetds-1.2.3/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +646370fbdd31273199f833c9eb1d4a06 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg freetds-1.2.3/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_exec_in + + + +Node1 + + +_bcp_exec_in + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map freetds-1.2.3/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map --- freetds-1.1.6/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 freetds-1.2.3/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +08c15070cf8337048fbc4ab7ae9d69bb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg freetds-1.2.3/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_free_storage + + + +Node1 + + +_bcp_free_storage + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map freetds-1.2.3/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map --- freetds-1.1.6/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 freetds-1.2.3/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +69f4f596eeca94414d4277f1bad0162a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg freetds-1.2.3/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gacf69ac4cbe8e3c3e6ea665e31e5e85b8_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_free_columns + + + +Node1 + + +_bcp_free_columns + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.map freetds-1.2.3/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.map --- freetds-1.1.6/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.md5 freetds-1.2.3/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a23192142e8f8df3532261fc211e2034 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.svg freetds-1.2.3/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gadba4490bf3183799a70c9e2f44fab331_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -odbc_set_string_flag - - -Node6 - -odbc_set_string_flag - - -Node7 - - -tds_iconv - - - - -Node6->Node7 - - - - -Node8 - - -tdsdump_log - - - - -Node7->Node8 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map freetds-1.2.3/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map --- freetds-1.1.6/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 freetds-1.2.3/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +31f993e9b9f7c5b0f6f97e1df724d236 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg freetds-1.2.3/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg --- freetds-1.1.6/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548_gafc23d62bc86b38fb757e3ac4aadca0a4_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_readfmt_colinfo + + + +Node1 + + +_bcp_readfmt_colinfo + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00548.html freetds-1.2.3/doc/reference/a00548.html --- freetds-1.1.6/doc/reference/a00548.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: ODBC utility +FreeTDS API: Internal bcp functions @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -59,141 +62,304 @@
-
ODBC utility
+
Internal bcp functions
-

Functions called within ODBC driver. +

Static functions internal to the bcp library.
+ More...

-Collaboration diagram for ODBC utility:
+Collaboration diagram for Internal bcp functions:
-
+
-
- - - - - - - - - -

-Macros

-#define C_TYPES
 
-#define SQL_TYPES
 
-#define TYPE_NORMAL_SQL_C_GUID
 
-#define TYPE_NORMAL_SQL_GUID
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +

Functions

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. More...
 
-void odbc_convert_err_set (struct _sql_errors *errs, TDS_INT err)
 
-DSTRodbc_dstr_copy (TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR *str)
 
-SQLSMALLINT odbc_get_concise_c_type (SQLSMALLINT type, SQLSMALLINT interval)
 
-SQLSMALLINT odbc_get_concise_sql_type (SQLSMALLINT type, SQLSMALLINT interval)
 
-SQLLEN odbc_get_octet_len (int c_type, const struct _drecord *drec)
 
-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.
 
-unsigned int odbc_get_string_size (int size, const ODBC_CHAR *str _WIDE)
 
-void odbc_rdbms_version (TDSSOCKET *tds, char *pversion_string)
 Returns the version of the RDBMS in the ODBC format.
 
SQLRETURN odbc_set_concise_c_type (SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
 Set concise type and all cascading field. More...
 
SQLRETURN odbc_set_concise_sql_type (SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
 Set concise type and all cascading field. More...
 
-void odbc_set_return_params (struct _hstmt *stmt, unsigned int n_row)
 
-void odbc_set_return_status (struct _hstmt *stmt, unsigned int n_row)
 
-int odbc_set_stmt_query (TDS_STMT *stmt, const ODBC_CHAR *sql, int sql_len _WIDE)
 
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. More...
 
-int odbc_sql_to_c_type_default (int sql_type)
 
-TDS_SERVER_TYPE odbc_sql_to_server_type (TDSCONNECTION *conn, int sql_type, int sql_unsigned)
 
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 void _bcp_free_columns (DBPROCESS *dbproc)
 
static void _bcp_free_storage (DBPROCESS *dbproc)
 
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. More...
 
static int _bcp_get_term_var (BYTE *pdata, 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. More...
 
static STATUS _bcp_read_hostfile (DBPROCESS *dbproc, FILE *hostfile, int *row_error, bool skip)
 
static int _bcp_readfmt_colinfo (DBPROCESS *dbproc, char *buf, BCP_HOSTCOLINFO *ci)
 
static int rtrim (char *str, int len)
 trim a string of trailing blanks More...
 

Detailed Description

-

Functions called within ODBC driver.

+

Static functions internal to the bcp library.
+

Function Documentation

- -

§ odbc_c_to_server_type()

+ +

◆ _bcp_exec_in()

+ + + + + +
- + + + + + + + + + + + + + + + +
TDS_SERVER_TYPE odbc_c_to_server_type static RETCODE _bcp_exec_in (DBPROCESSdbproc,
DBINT * rows_copied 
)
+
+static
+
+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
rows_copied
+
+
+
Returns
SUCCEED or FAIL.
+
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ _bcp_exec_out()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static RETCODE _bcp_exec_out (DBPROCESSdbproc,
DBINT * rows_copied 
)
+
+static
+
+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
rows_copied
+
+
+
Returns
SUCCEED or FAIL.
+
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
+ +
+
+ +

◆ _bcp_fgets()

+ +
+
+ + + + + +
+ + + + + + + + + + - + + + + + + + + + + + + + +
static char* _bcp_fgets (char * buffer,
int c_type)size,
FILE * f 
)
+
+static
+
+
+ +

◆ _bcp_free_columns()

+ +
+
+ + + + + +
+ + + + + +
static void _bcp_free_columns (DBPROCESSdbproc)
+
+static
+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
+Here is the call graph for this function:
+
+
+
+
-

Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to the SQL_C_* type.

-

This function can return XSYBNVARCHAR or SYBUINTx even if server do not support it

+
+
+ +

◆ _bcp_free_storage()

+ +
+
+ + + + + +
+ + + + + + + + +
static void _bcp_free_storage (DBPROCESSdbproc)
+
+static
+
+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
bcp_done(), bcp_exec(), bcp_init()
+
+Here is the call graph for this function:
+
+
+
+
- -

§ odbc_set_concise_c_type()

+ +

◆ _bcp_get_col_data()

+ + + + + +
- + - - + + - - + + - + @@ -201,43 +367,58 @@
SQLRETURN odbc_set_concise_c_type static TDSRET _bcp_get_col_data (SQLSMALLINT concise_type, TDSBCPINFObcpinfo,
struct _drecorddrec, TDSCOLUMNbindcol,
int check_only offset 
+
+static
-

Set concise type and all cascading field.

+

For a bcp in from program variables, get the data from the host variable.

Parameters
- - - + +
concise_typeconcise type to set
drecrecord to set. NULL to test error without setting
check_onlyit <>0 (true) check only, do not set type
dbproccontains all information needed by db-lib to manage communications with the server.
bindcol
+
Returns
TDS_SUCCESS or TDS_FAIL.
+
See also
_bcp_add_fixed_columns, _bcp_add_variable_columns, _bcp_send_bcp_record
+
+Here is the call graph for this function:
+
+
+
+
- -

§ odbc_set_concise_sql_type()

+ +

◆ _bcp_get_term_var()

+ + + + + +
- + - - + + - - + + - + @@ -245,67 +426,119 @@
SQLRETURN odbc_set_concise_sql_type static int _bcp_get_term_var (SQLSMALLINT concise_type, BYTE * pdata,
struct _drecorddrec, BYTE * term,
int check_only term_len 
+
+static
-

Set concise type and all cascading field.

+

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.

+

Call it correctly.
+

Parameters
- - - + + +
concise_typeconcise type to set
drecrecord to set. NULL to test error without setting
check_onlyit <>0 (true) check only, do not set type
pdata
term
term_len
+
Returns
data length.
- -

§ odbc_set_string_flag()

+ +

◆ _bcp_read_hostfile()

+ + + + + +
- + - - + + - - + + - - + + - - + + - - - + + + +
SQLRETURN odbc_set_string_flag static STATUS _bcp_read_hostfile (TDS_DBCdbc, DBPROCESSdbproc,
SQLPOINTER buffer, FILE * hostfile,
SQLINTEGER cbBuffer, int * row_error,
void FAR * pcbBuffer, bool skip 
const char * s, )
+
+static
+
+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
hostfile
row_error
+
+
+
Returns
MORE_ROWS, NO_MORE_ROWS, or FAIL.
+
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ _bcp_readfmt_colinfo()

+ +
+
+ + + + + +
+ + + + + + - - + + - - + + @@ -313,27 +546,74 @@
static int _bcp_readfmt_colinfo (DBPROCESSdbproc,
int len, char * buf,
int flag BCP_HOSTCOLINFOci 
+
+static
- -

Copy a string to client setting size according to ODBC convenction.

Parameters
- - - - - - - + + +
dbcdatabase connection. Can be NULL
bufferclient buffer
cbBufferclient buffer size (in bytes)
pcbBufferpointer to SQLSMALLINT to hold string size
sstring to copy
lenlen of string to copy. <0 null terminated
flagset of flag 0x10 SQLINTEGER
dbproccontains all information needed by db-lib to manage communications with the server.
buf
ci
+
Returns
SUCCEED or FAIL.
+
See also
BCP_SETL(), bcp_batch(), bcp_bind(), bcp_colfmt(), bcp_colfmt_ps(), bcp_collen(), bcp_colptr(), bcp_columns(), bcp_control(), bcp_done(), bcp_exec(), bcp_getl(), bcp_init(), bcp_moretext(), bcp_options(), bcp_readfmt(), bcp_sendrow()
Here is the call graph for this function:
-
+
+
+
+
+ +

◆ rtrim()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static int rtrim (char * str,
int len 
)
+
+static
+
+ +

trim a string of trailing blanks

+

Replaces spaces at the end of a string with NULs

Parameters
+ + + +
strpointer to a character buffer (not null-terminated)
lensize of the str in bytes
+
+
+
Returns
modified length
@@ -342,7 +622,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00548.map freetds-1.2.3/doc/reference/a00548.map --- freetds-1.1.6/doc/reference/a00548.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00548.md5 freetds-1.2.3/doc/reference/a00548.md5 --- freetds-1.1.6/doc/reference/a00548.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -6bc947b6c20f3e107ff34227bf43e45f \ No newline at end of file +02e375d1c63cbc9fd9c84cc1a5075db7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00548.svg freetds-1.2.3/doc/reference/a00548.svg --- freetds-1.1.6/doc/reference/a00548.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00548.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -ODBC utility - + + + +Internal bcp functions + -Node1 - - -ODBC API + +Node1 + + +Internal bcp functions - -Node0 - -ODBC utility - - -Node1->Node0 - - + + +Node2 + + +Bulk copy functions + + + + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map freetds-1.2.3/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +fc0932eaee59f1627f489bac5ecb5b9a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga070e94f72f12c138a16a7bcdf732fa8b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmny4zero + + + +Node1 + + +dbmny4zero + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map freetds-1.2.3/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6a0f9f2e388ec23488ca1cc3a7c603a5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga0a384938a6586b7411fc42420ffad6ed_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmny4add + + + +Node1 + + +dbmny4add + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map freetds-1.2.3/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1f79a8362b680c9109cba7fffb576ff0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga109d4868baccb08fad3b26b6f031dc78_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmny4cmp + + + +Node1 + + +dbmny4cmp + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map freetds-1.2.3/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1ec9a6ba1b87fbedb5f4cf590b89a3c6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_ntlm_get_auth - - -Node3 - -tds_ntlm_get_auth - - -Node4 - - -tds_dstr_cstr - - - - -Node3->Node4 - - - - -Node5 - - -tds_dstr_len - - - - -Node3->Node5 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map freetds-1.2.3/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +7a11f417d4e6e08c0474c1593b997e2f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga70ca2474f6c93acd6e3b842330b712c7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnymaxpos + + + +Node1 + + +dbmnymaxpos + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map freetds-1.2.3/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +0eeb27b96a0c33058603d7e7cc3dcb97 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga76177eb61a67dd52424236aba1b16bc9_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmny4minus + + + +Node1 + + +dbmny4minus + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map freetds-1.2.3/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +de02eede4c85da0fbec79c9b11ebf92f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga826bca98da4fd1c3188da45c383c3a68_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnyminus + + + +Node1 + + +dbmnyminus + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map freetds-1.2.3/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +a2f96c9f8582aa7bf82aed4434b55e19 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga856143f4f9c7a5c15fb15633af81487d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmny4sub + + + +Node1 + + +dbmny4sub + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map freetds-1.2.3/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b833c45b3c3a703304acf89c8018b4eb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_answer_challenge - - -Node0 - -tds_answer_challenge - - -Node1 - - -tds_dstr_cstr - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.map freetds-1.2.3/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +3eedc1116b9533725fb558d10066e259 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8eab0959d5a3cd534487b350258c939e_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnyzero + + + +Node1 + + +dbmnyzero + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map freetds-1.2.3/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map --- freetds-1.1.6/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 freetds-1.2.3/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +692e5083df8bfcb0fe9d78123d66e9ce \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg freetds-1.2.3/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_ga8f1e9aa0280c1cb46c10e5c90b8faced_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnycopy + + + +Node1 + + +dbmnycopy + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map freetds-1.2.3/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map --- freetds-1.1.6/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 freetds-1.2.3/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1bbf82bfbd15ec49fa12bc5be61d6191 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg freetds-1.2.3/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gaa6d4c700b628f6a18a9d1ed9f8e2ba62_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmny4copy + + + +Node1 + + +dbmny4copy + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map freetds-1.2.3/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map --- freetds-1.1.6/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 freetds-1.2.3/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +02d0a878fd2c6af19e19d978ede0d120 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg freetds-1.2.3/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabc3cb44d33bf1b9b18fd59f23e4da722_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnymaxneg + + + +Node1 + + +dbmnymaxneg + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map freetds-1.2.3/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map --- freetds-1.1.6/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 freetds-1.2.3/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +67837add52fd2453b547fdc2e2816777 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg freetds-1.2.3/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabedce74748a31ea8a6e4068a5d44d8e4_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnydec + + + +Node1 + + +dbmnydec + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map freetds-1.2.3/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map --- freetds-1.1.6/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 freetds-1.2.3/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +8b25d1477c7e243928b2022497f18835 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg freetds-1.2.3/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gabf5216aaaa59ea7e7f07899f82a27faf_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnyinc + + + +Node1 + + +dbmnyinc + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.map freetds-1.2.3/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.map --- freetds-1.1.6/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 freetds-1.2.3/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 --- freetds-1.1.6/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +40e21aafee9cad1714a888f611d074bc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.svg freetds-1.2.3/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.svg --- freetds-1.1.6/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549_gadddacad5c3028aa8d3726246c3825651_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmnycmp + + + +Node1 + + +dbmnycmp + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00549.html freetds-1.2.3/doc/reference/a00549.html --- freetds-1.1.6/doc/reference/a00549.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Authentication +FreeTDS API: Money functions @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -59,267 +62,221 @@
-
Authentication
+
Money functions
-

Functions for handling authentication. +

Functions to manipulate the MONEY datatype.
+ More...

-Collaboration diagram for Authentication:
+Collaboration diagram for Money functions:
-
+
-
- - - - - - - - - - - - - -

-Classes

struct  asn1_der_iterator
 
struct  mpz_t
 
struct  names_blob_prefix_t
 
struct  rsa_public_key
 
struct  tds_answer
 
struct  tds_ntlm_auth
 
- - - - - - - - - - - - - - - - - -

-Macros

-#define dump(b)   dumpl(b, sizeof(b))
 
-#define dumpl(b, l)   tdsdump_dump_buf(TDS_DBG_INFO1, #b, b, l)
 
-#define hash_func   sha1
 
-#define HAVE_GMP   1
 
-#define HAVE_NETTLE   1
 
-#define mpz_clear(n)   gcry_mpi_release((n)->num)
 
-#define mpz_init(n)   do { (n)->num = NULL; } while(0)
 
-#define mpz_powm(w, n, e, m)   gcry_mpi_powm((w)->num, (n)->num, (e)->num, (m)->num);
 
- - - - - - - -

-Typedefs

-typedef void nettle_random_func(void *ctx, size_t len, uint8_t *out)
 
-typedef struct tds_answer TDSANSWER
 
-typedef struct tds_ntlm_auth TDSNTLMAUTH
 
- - - - - - - - - -

-Enumerations

enum  { ASN1_SEQUENCE = ASN1_TAG_SEQUENCE - }
 
enum  { hash_len = 20 - }
 
enum  { key_size_max = 1024 - }
 
enum  asn1_iterator_result { ASN1_ITERATOR_ERROR, -ASN1_ITERATOR_PRIMITIVE, -ASN1_ITERATOR_CONSTRUCTED, -ASN1_ITERATOR_END - }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

-static enum asn1_iterator_result asn1_der_iterator_first (struct asn1_der_iterator *der, int size, const void *der_buf)
 
-static enum asn1_iterator_result asn1_der_iterator_next (struct asn1_der_iterator *der)
 
-static void convert_to_upper (char *buf, size_t len)
 
-static size_t convert_to_usc2le_string (TDSSOCKET *tds, const char *s, size_t len, char *out)
 
-static void fill_names_blob_prefix (names_blob_prefix_t *prefix)
 
-static unsigned char * make_lm_v2_response (const unsigned char ntlm_v2_hash[16], const unsigned char *client_data, int client_data_len, const unsigned char challenge[8])
 
-static TDSRET make_ntlm_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_hash[16])
 
-static TDSRET make_ntlm_v2_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_v2_hash[16])
 
-static void memxor (uint8_t *dest, const uint8_t *src, size_t len)
 
-static void mgf_mask (uint8_t *dest, size_t dest_len, const uint8_t *mask, size_t mask_len)
 
-static void nettle_mpz_get_str_256 (unsigned length, uint8_t *s, const mpz_t x)
 
-static void nettle_mpz_set_str_256_u (mpz_t x, unsigned length, const uint8_t *s)
 
-static int oaep_encrypt (size_t key_size, void *random_ctx, nettle_random_func *random, size_t length, const uint8_t *message, mpz_t m)
 
-static void rnd_func (void *ctx, size_t len, uint8_t *out)
 
-static int rsa_encrypt_oaep (const struct rsa_public_key *key, void *random_ctx, nettle_random_func *random, size_t length, const uint8_t *message, mpz_t gibberish)
 
-static const BIGNUM * rsa_get_n (const RSA *rsa)
 
-static void rsa_public_key_clear (struct rsa_public_key *key)
 
-static int rsa_public_key_from_der_iterator (struct rsa_public_key *key, unsigned key_bits, struct asn1_der_iterator *der)
 
-static void rsa_public_key_init (struct rsa_public_key *key)
 
-static void sha1 (uint8_t *hash, const void *data, size_t len)
 
-TDSAUTHENTICATIONtds5_negotiate_get_auth (TDSSOCKET *tds)
 
-void tds5_negotiate_set_msg_type (TDSSOCKET *tds, TDSAUTHENTICATION *tds_auth, unsigned msg_type)
 
-static void * tds5_rsa_encrypt (const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size)
 
-static TDSRET tds7_send_auth (TDSSOCKET *tds, const unsigned char *challenge, uint32_t flags, const unsigned char *names_blob, int names_blob_len)
 
static TDSRET tds_answer_challenge (TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, int names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
 Crypt a given password using schema required for NTLMv1 or NTLM2 authentication. More...
 
-static TDSRET tds_answer_challenge_ntlmv2 (TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, int names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
 
-static void tds_convert_key (const unsigned char *key_56, DES_KEY *ks)
 
-static void tds_encrypt_answer (const unsigned char *hash, const unsigned char *challenge, unsigned char *answer)
 
-static TDSRET tds_ntlm_free (TDSCONNECTION *conn, TDSAUTHENTICATION *tds_auth)
 
TDSAUTHENTICATIONtds_ntlm_get_auth (TDSSOCKET *tds)
 Build a NTLMSPP packet to send to server. More...
 
-static TDSRET tds_ntlm_handle_next (TDSSOCKET *tds, struct tds_authentication *auth, size_t len)
 
-static void unix_to_nt_time (uint64_t *nt, struct timeval *tv)
 put a 8 byte filetime from a time_t This takes GMT as input
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Variables

-static const char label [] = ""
 
-static const unsigned char ntlm_id [] = "NTLMSSP"
 
RETCODE dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)
 Add two DBMONEY4 values. More...
 
int dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)
 Compare two DBMONEY4 values. More...
 
RETCODE dbmny4copy (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Copy a DBMONEY4 value. More...
 
RETCODE dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)
 Negate a DBMONEY4 value. More...
 
RETCODE dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)
 Subtract two DBMONEY4 values. More...
 
RETCODE dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest)
 Zero a DBMONEY4 value. More...
 
int dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)
 Compare two DBMONEY values. More...
 
RETCODE dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Copy a DBMONEY value. More...
 
RETCODE dbmnydec (DBPROCESS *dbproc, DBMONEY *amount)
 Subtract $0.0001 from a DBMONEY value. More...
 
RETCODE dbmnyinc (DBPROCESS *dbproc, DBMONEY *amount)
 Add $0.0001 to a DBMONEY value. More...
 
RETCODE dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum negative DBMONEY value supported. More...
 
RETCODE dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *amount)
 Get maximum positive DBMONEY value supported. More...
 
RETCODE dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
 Negate a DBMONEY value. More...
 
RETCODE dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest)
 Set a DBMONEY value to zero. More...
 

Detailed Description

-

Functions for handling authentication.

+

Functions to manipulate the MONEY datatype.
+

Function Documentation

- -

§ tds_answer_challenge()

+ +

◆ dbmny4add()

- - - - - -
- + - - + + - - + + - - + + - - + + + + + + + + +
static TDSRET tds_answer_challenge RETCODE dbmny4add (TDSSOCKETtds, DBPROCESSdbproc,
TDSLOGINlogin, DBMONEY4m1,
const unsigned char * challenge, DBMONEY4m2,
uint32_t * flags, DBMONEY4sum 
)
+
+ +

Add two DBMONEY4 values.

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
m1first operand.
m2other operand.
sumoutput: result of computation.
+
+
+
+
Return values
+ + + +
SUCCEEDusually.
+
FAILon overflow.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+ + +

◆ dbmny4cmp()

+ +
+
+ + + + + + - - + + - - + + + + + + + + +
int dbmny4cmp (DBPROCESSdbproc,
const unsigned char * names_blob, DBMONEY4m1,
int names_blob_len, DBMONEY4m2 
)
+
+ +

Compare two DBMONEY4 values.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
m1some money.
m2some other money.
+
+
+
Return values
+ + + + +
0m1 == m2.
-1m1 < m2.
1m1 > m2.
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmny4copy()

+ +
+
+ + + + + + - - + + - - + + @@ -327,60 +284,648 @@
RETCODE dbmny4copy (DBPROCESSdbproc,
TDSANSWERanswer, DBMONEY4src,
unsigned char ** ntlm_v2_response DBMONEY4dest 
-
-static
-

Crypt a given password using schema required for NTLMv1 or NTLM2 authentication.

+

Copy a DBMONEY4 value.

Parameters
- - - - + + +
passwdclear text domain password
challengechallenge data given by server
flagsNTLM flags from server side
answerbuffer where to store crypted password
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY4 structure.
+
destoutput: new money.
+
Return values
+ + +
SUCCEEDor FAIL if src/dest NULL.
+
+
+
See also
dbmnycopy(), dbmnyminus(), dbmny4minus().
Here is the call graph for this function:
-
+
- -

§ tds_ntlm_get_auth()

+ +

◆ dbmny4minus()

- + - - + + + + + + + + + + + + + + + + + +
TDSAUTHENTICATION* tds_ntlm_get_auth RETCODE dbmny4minus (TDSSOCKETtds)DBPROCESSdbproc,
DBMONEY4src,
DBMONEY4dest 
)
-

Build a NTLMSPP packet to send to server.

+

Negate a DBMONEY4 value.

Parameters
- + + + +
tdsA pointer to the TDSSOCKET structure managing a client/server operation.
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY4 structure.
+
destoutput: result of negation.
+
+
+
Return values
+ + + +
SUCCEEDusually.
+
FAILon overflow.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmny4sub()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbmny4sub (DBPROCESSdbproc,
DBMONEY4m1,
DBMONEY4m2,
DBMONEY4diff 
)
+
+ +

Subtract two DBMONEY4 values.

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
m1first operand.
m2other operand, subtracted from m1.
diffoutput: result of computation.
+
+
+
+
Return values
+ + + +
SUCCEEDusually.
+
FAILon overflow.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmny4zero()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbmny4zero (DBPROCESSdbproc,
DBMONEY4dest 
)
+
+ +

Zero a DBMONEY4 value.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
destaddress of a DBMONEY structure.
+
+
+
+
Return values
+ + + +
SUCCEEDusually.
+
FAILdest is NULL.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnycmp()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int dbmnycmp (DBPROCESSdbproc,
DBMONEYm1,
DBMONEYm2 
)
+
+ +

Compare two DBMONEY values.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
m1some money.
m2some other money.
+
+
+
Return values
+ + + + +
0m1 == m2.
-1m1 < m2.
1m1 > m2.
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnycopy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbmnycopy (DBPROCESSdbproc,
DBMONEYsrc,
DBMONEYdest 
)
+
+ +

Copy a DBMONEY value.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY structure.
+
destoutput: new money.
+
+
+
Return values
+ + +
SUCCEEDalways, unless src or dest is NULL.
+
+
+
+
See also
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnydec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbmnydec (DBPROCESSdbproc,
DBMONEYamount 
)
+
+ +

Subtract $0.0001 from a DBMONEY value.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
+
+
+
+
Return values
+ + +
SUCCEEDor FAIL if overflow or amount NULL.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnyinc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbmnyinc (DBPROCESSdbproc,
DBMONEYamount 
)
+
+ +

Add $0.0001 to a DBMONEY value.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
+
+
+
+
Return values
+ + +
SUCCEEDor FAIL if overflow or amount NULL.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnymaxneg()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbmnymaxneg (DBPROCESSdbproc,
DBMONEYamount 
)
+
+ +

Get maximum negative DBMONEY value supported.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
+
+
+
+
Return values
+ + +
SUCCEEDAlways.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnymaxpos()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbmnymaxpos (DBPROCESSdbproc,
DBMONEYamount 
)
+
+ +

Get maximum positive DBMONEY value supported.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
amountaddress of a DBMONEY structure.
+
+
+
+
Return values
+ + +
SUCCEEDAlways.
+
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnyminus()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
RETCODE dbmnyminus (DBPROCESSdbproc,
DBMONEYsrc,
DBMONEYdest 
)
+
+ +

Negate a DBMONEY value.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
srcaddress of a DBMONEY structure.
+
destoutput: result of negation.
+
+
+
Return values
+ + +
SUCCEEDor FAIL if overflow or src/dest NULL.
+
+
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbmnyzero()

+ +
+
+ + + + + + + + + + + + + + + + + + +
RETCODE dbmnyzero (DBPROCESSdbproc,
DBMONEYdest 
)
+
+ +

Set a DBMONEY value to zero.

+
Parameters
+ + + +
dbproccontains all information needed by db-lib to manage communications with the server.
destaddress of a DBMONEY structure.
+
+
+
+
Return values
+ +
SUCCEEDunless amount is NULL.
+
-
Returns
authentication info
+
See also
dbmnyadd(), dbmnysub(), dbmnymul(), dbmnydivide(), dbmnyminus(), dbmny4add(), dbmny4sub(), dbmny4mul(), dbmny4divide(), dbmny4minus().
Here is the call graph for this function:
-
+
@@ -391,7 +936,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00549.map freetds-1.2.3/doc/reference/a00549.map --- freetds-1.1.6/doc/reference/a00549.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00549.md5 freetds-1.2.3/doc/reference/a00549.md5 --- freetds-1.1.6/doc/reference/a00549.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -cbfb6c272aa0efc1f97f28757e5f87da \ No newline at end of file +0243cef10266d21ad85d972d00b99dd4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00549.svg freetds-1.2.3/doc/reference/a00549.svg --- freetds-1.1.6/doc/reference/a00549.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00549.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Authentication - - -Node0 - -Authentication + + + +Money functions + + + +Node2 + + +The db-lib API + + -Node1 - - -LibTDS API + +Node1 + + +Money functions - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map freetds-1.2.3/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map --- freetds-1.1.6/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 freetds-1.2.3/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +a9380153af7eab8d8e69d632293684d8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg freetds-1.2.3/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg --- freetds-1.1.6/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga129d2922d347121a6b312dd8e75ed6d2_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbdatecmp + + + +Node1 + + +dbdatecmp + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map freetds-1.2.3/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map --- freetds-1.1.6/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 freetds-1.2.3/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 --- freetds-1.1.6/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +05e527f5611104f72ea9de72e913777b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg freetds-1.2.3/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg --- freetds-1.1.6/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga38ecd55ae5827bfa0fd12e2baf0950dd_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbmonthname + + + +Node1 + + +dbmonthname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.map freetds-1.2.3/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.map --- freetds-1.1.6/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 freetds-1.2.3/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -620d124c64de3538c640493e3018e084 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.svg freetds-1.2.3/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.svg --- freetds-1.1.6/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_ga6631af35ee817f93827c62bbda41674a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_read_interfaces - - -Node24 - -tds_read_interfaces - - -Node25 - - -tdsdump_log - - - - -Node24->Node25 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.map freetds-1.2.3/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.map --- freetds-1.1.6/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.md5 freetds-1.2.3/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.md5 --- freetds-1.1.6/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -67862e03da675e999bbd02131a443a8f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.svg freetds-1.2.3/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.svg --- freetds-1.1.6/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_gaa9670914093b354e7a123b10ba877813_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - - - -parse_server_name_for_port - - -Node0 - -parse_server_name_for_port - - -Node1 - - -tds_dstr_cstr - - - - -Node0->Node1 - - - - -Node2 - - -tds_dstr_copy - - - - -Node0->Node2 - - - - -Node3 - - -tds_dstr_copyn - - - - -Node0->Node3 - - - - -Node2->Node3 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map freetds-1.2.3/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map --- freetds-1.1.6/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 freetds-1.2.3/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ffcd4e7199af8235f10c72e9845bf879 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg freetds-1.2.3/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg --- freetds-1.1.6/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -search_interface_file - - -Node5 - -search_interface_file - - -Node6 - - -tdsdump_log - - - - -Node5->Node6 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00550.html freetds-1.2.3/doc/reference/a00550.html --- freetds-1.1.6/doc/reference/a00550.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Configuration +FreeTDS API: Datetime functions @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -59,219 +62,68 @@
-
Configuration
+
Datetime functions
-

Handle reading of configuration. +

Functions to manipulate DBDATETIME structures. Defined by Sybase only.
+ These are not implemented: More...

-Collaboration diagram for Configuration:
+Collaboration diagram for Datetime functions:
-
+
-
- - - -

-Classes

struct  tdsvername_t
 
- - - -

-Macros

-#define TDS_FIND(k, b, c)   tds_find(k, b, sizeof(b)/sizeof(b[0]), sizeof(b[0]), c)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

-static int hex2num (char *hex)
 
-static int hexdigit (int c)
 
static int parse_server_name_for_port (TDSLOGIN *connection, TDSLOGIN *login)
 Check the server name to find port info first Warning: connection-> & login-> are all modified when needed. More...
 
static int search_interface_file (TDSLOGIN *login, const char *dir, const char *file, const char *host)
 Open and read the file 'file' searching for a logical server by the name of 'host'. More...
 
-int tds_config_boolean (const char *option, const char *value, TDSLOGIN *login)
 
-static void tds_config_encryption (const char *value, TDSLOGIN *login)
 
-static int tds_config_env_tdsdump (TDSLOGIN *login)
 
-static int tds_config_env_tdshost (TDSLOGIN *login)
 
-static void tds_config_env_tdsport (TDSLOGIN *login)
 
-static void tds_config_env_tdsver (TDSLOGIN *login)
 
-static int tds_config_login (TDSLOGIN *connection, TDSLOGIN *login)
 
TDS_USMALLINT * tds_config_verstr (const char *tdsver, TDSLOGIN *login)
 Set TDS version from given string. More...
 
-static 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. More...
 
-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. More...
 
struct addrinfo * tds_lookup_host (const char *servername)
 Get the IP address for a hostname. More...
 
-TDSRET tds_lookup_host_set (const char *servername, struct addrinfo **addr)
 
static int tds_lookup_port (const char *portname)
 Given a portname lookup the port. More...
 
-int tds_parse_boolean (const char *value, int default_value)
 
-void tds_parse_conf_section (const char *option, const char *value, void *param)
 
bool tds_read_conf_file (TDSLOGIN *login, const char *server)
 Read configuration info for given server return 0 on error. More...
 
bool tds_read_conf_section (FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *param)
 Read a section of configuration file (INI style file) More...
 
-static bool tds_read_conf_sections (FILE *in, const char *server, TDSLOGIN *login)
 
TDSLOGINtds_read_config_info (TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
 tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values More...
 
static int tds_read_interfaces (const char *server, TDSLOGIN *login)
 Try to find the IP number and port for a (possibly) logical server name. More...
 
TDSRET tds_set_interfaces_file_loc (const char *interf)
 Set the full name of interface file. More...
 
-static bool tds_try_conf_file (const char *path, const char *how, const char *server, TDSLOGIN *login)
 
-static int tds_vernanme_cmp (const void *key, const void *pelem)
 
- - - - - - - - + + + + + +

-Variables

struct {
-   unsigned char   to_return
 
-   char   value [7]
 
boolean_values []
 
int dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)
 Compare DBDATETIME values, similar to strcmp(3). More...
 
const char * dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)
 Get name of a month, in some human language. More...
 

Detailed Description

-

Handle reading of configuration.

+

Functions to manipulate DBDATETIME structures. Defined by Sybase only.
+ These are not implemented:

+
    +
  • dbdate4cmp()
  • +
  • dbdate4zero()
  • +
  • dbdatechar()
  • +
  • dbdatename()
  • +
  • dbdateorder()
  • +
  • dbdatepart()
  • +
  • dbdatezero()
  • +
  • dbdayname()
  • +

Function Documentation

- -

§ parse_server_name_for_port()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static int parse_server_name_for_port (TDSLOGINconnection,
TDSLOGINlogin 
)
-
-static
-
- -

Check the server name to find port info first Warning: connection-> & login-> are all modified when needed.

-
Returns
1 when found, else 0
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ search_interface_file()

+ +

◆ dbdatecmp()

- - - - - -
- + - - - - - - - - + + - - + + - - + + @@ -279,230 +131,64 @@
static int search_interface_file int dbdatecmp (TDSLOGINlogin,
const char * dir, DBPROCESSdbproc,
const char * file, DBDATETIMEd1,
const char * host DBDATETIMEd2 
-
-static
-

Open and read the file 'file' searching for a logical server by the name of 'host'.

-

If one is found then lookup the IP address and port number and store them in 'login'

+

Compare DBDATETIME values, similar to strcmp(3).

Parameters
- - - + + +
dirname of base directory for interface file
filename of the interface file
hostlogical host to search for
dbproccontains all information needed by db-lib to manage communications with the server.
d1a DBDATETIME structure address
d2another DBDATETIME structure address
-
Returns
0 if not fount 1 if found
-
-Here is the call graph for this function:
-
-
-
-
- -
-
- -

§ tds_config_verstr()

- -
-
- - - - - - - - - - - - - - - - - - -
TDS_USMALLINT* tds_config_verstr (const char * tdsver,
TDSLOGINlogin 
)
-
- -

Set TDS version from given string.

-
Parameters
- - - +
Return values
+
tdsvertds string version
loginwhere to store information
+ + +
0d1 = d2.
-1d1 < d2.
1d1 > d2.
-
Returns
as encoded hex value: high nybble major, low nybble minor.
- -
-
- -

§ tds_fix_login()

- -
-
- - - - - - - - -
void tds_fix_login (TDSLOGINlogin)
-
- -

Fix configuration after reading it.

-

Currently this read some environment variables and replace some options.

- -
-
- -

§ tds_get_home_file()

- -
-
- - - - - - - - -
char* tds_get_home_file (const char * file)
-
- -

Return filename from HOME directory.

-
Returns
allocated string or NULL if error
- -
-
- -

§ tds_lookup_host()

- -
-
- - - - - - - - -
struct addrinfo* tds_lookup_host (const char * servername)
-
- -

Get the IP address for a hostname.

-

Store server's IP address in the string 'ip' in dotted-decimal notation. (The "hostname" might itself be a dotted-decimal address.

-

If we can't determine the IP address then 'ip' will be set to empty string.

- -
-
- -

§ tds_lookup_port()

- -
-
- - - - - -
- - - - - - - - -
static int tds_lookup_port (const char * portname)
-
-static
-
- -

Given a portname lookup the port.

-

If we can't determine the port number then return 0.

- +
See also
dbdate4cmp(), dbmnycmp(), dbmny4cmp().
+
+Here is the call graph for this function:
+
+
- -

§ tds_read_conf_file()

- -
-
- - - - - - - - - - - - - - - - - - -
bool tds_read_conf_file (TDSLOGINlogin,
const char * server 
)
-
- -

Read configuration info for given server return 0 on error.

-
Parameters
- - - -
loginwhere to store configuration
serversection of file configuration that hold configuration for a server
-
-
- -

§ tds_read_conf_section()

+ +

◆ dbmonthname()

- + - - + + - - + + - - + + - - + + @@ -512,148 +198,35 @@
bool tds_read_conf_section const char* dbmonthname (FILE * in, DBPROCESSdbproc,
const char * section, char * language,
TDSCONFPARSE tds_conf_parse, int monthnum,
void * param DBBOOL shortform 
-

Read a section of configuration file (INI style file)

+

Get name of a month, in some human language.

Parameters
- - - - + + + +
inconfiguration file
sectionsection to read
tds_conf_parsecallback that receive every entry in section
paramparameter to pass to callback function
dbproccontains all information needed by db-lib to manage communications with the server.
languageignored.
monthnumnumber of the month, starting with 1.
shortformset to TRUE for a three letter output ("Jan" - "Dec"), else zero.
+
- -
-
- -

§ tds_read_config_info()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
TDSLOGIN* tds_read_config_info (TDSSOCKETtds,
TDSLOGINlogin,
TDSLOCALElocale 
)
-
- -

tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values

-

.tdsrc and freetds.conf have been added to make the package easier to integration with various Linux and *BSD distributions.

- -
-
- -

§ tds_read_interfaces()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static int tds_read_interfaces (const char * server,
TDSLOGINlogin 
)
-
-static
-
- -

Try to find the IP number and port for a (possibly) logical server name.

-
Note
This function uses only the interfaces file and is deprecated.
+
Returns
address of null-terminated ASCII string, or NULL on error.
+
See also
db12hour(), dbdateorder(), dbdayname(), DBSETLNATLANG(), dbsetopt().
+
Here is the call graph for this function:
-
+
- -

§ tds_set_interfaces_file_loc()

- -
-
- - - - - - - - -
TDSRET tds_set_interfaces_file_loc (const char * interf)
-
- -

Set the full name of interface file.

-
Parameters
- - -
interffile name
-
-
- -
-
-

Variable Documentation

- -

§ boolean_values

- -
-
- - - - -
const { ... } boolean_values[]
-
-Initial value:
= {
{ "yes", 1 },
{ "no", 0 },
{ "on", 1 },
{ "off", 0 },
{ "true", 1 },
{ "false", 0 }
}
-
-
diff -Nru freetds-1.1.6/doc/reference/a00550.map freetds-1.2.3/doc/reference/a00550.map --- freetds-1.1.6/doc/reference/a00550.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00550.md5 freetds-1.2.3/doc/reference/a00550.md5 --- freetds-1.1.6/doc/reference/a00550.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -dd62adead43c204f08815a07f0d2330e \ No newline at end of file +9d8d1adec5ebef0d0ddeafdb6ddd4606 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00550.svg freetds-1.2.3/doc/reference/a00550.svg --- freetds-1.1.6/doc/reference/a00550.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00550.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Configuration - - -Node0 - -Configuration + + + +Datetime functions + + + +Node2 + + +The db-lib API + + -Node1 - - -LibTDS API + +Node1 + + +Datetime functions - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map freetds-1.2.3/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a0a06df8158ca50f5bf79127c613be53 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -string_to_int - - -Node14 - -string_to_int - - -Node15 - - -parse_numeric - - - - -Node14->Node15 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map freetds-1.2.3/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +502cc543a2c02c9bfbe28861f3bf94dd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcurcmd + + + +Node1 + + +dbcurcmd + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.map freetds-1.2.3/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +5ccfa75bdb33a0ea69e385d7b90b6155 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetlbool + + + +Node1 + + +dbsetlbool + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map freetds-1.2.3/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +b0ae21da5289264f441f29b92552eba5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcolptr + + + +Node1 + + +dbcolptr + + + + + +Node2 + + +dbperror + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map freetds-1.2.3/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1cd7e27e767e9836dc6e5d542e29b3eb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dblastrow + + + +Node1 + + +dblastrow + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map freetds-1.2.3/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -557da3a98ead80b05814809857613683 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -store_monthname - - -Node11 - -store_monthname - - -Node12 - - -tdsdump_log - - - - -Node11->Node12 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map freetds-1.2.3/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +82751c819697ae2ea04c745229961575 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcmdrow + + + +Node1 + + +dbcmdrow + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.map freetds-1.2.3/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.map --- freetds-1.1.6/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.md5 freetds-1.2.3/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2261345e1d6fb356332f2a3c00bf1e20 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.svg freetds-1.2.3/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga28c75aff2615032005257af7455ed70d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -string_to_numeric - - -Node22 - -string_to_numeric - - -Node23 - - -stringz_to_numeric - - - - -Node22->Node23 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.map freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +917a13ec6d9126bd37e151f2ef9eaceb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tdsdbopen + + + +Node1 + + +tdsdbopen + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_open + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.map freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.map --- freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +5a317261238fde470cb9714458eb5995 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.svg freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga2c99ec565452279e9a382451d89642eb_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tdsdbopen + + + +Node1 + + +tdsdbopen + + + + + +Node2 + + +dbopen + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map freetds-1.2.3/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map --- freetds-1.1.6/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 freetds-1.2.3/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +17cbacc0d37797a00e7c9a425d470165 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg freetds-1.2.3/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbperror + + + +Node1 + + +dbperror + + + + + +Node2 + + +dbcolptr + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map freetds-1.2.3/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dd285ee0638c851193f013518dd50d5a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -stringz_to_numeric - - -Node28 - -stringz_to_numeric - - -Node29 - - -string_to_numeric - - - - -Node28->Node29 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map freetds-1.2.3/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +aef4ab13113cd566f1d6c95fbce0ea8d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrows + + + +Node1 + + +dbrows + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map freetds-1.2.3/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map --- freetds-1.1.6/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 freetds-1.2.3/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8321915e3896ca8bf5223439cc9985ca \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg freetds-1.2.3/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ - - - - - - -parse_numeric - - -Node6 - -parse_numeric - - -Node7 - - -string_to_int - - - - -Node6->Node7 - - - - -Node8 - - -parse_int8 - - - - -Node6->Node8 - - - - -Node9 - - -string_to_int8 - - - - -Node8->Node9 - - - - -Node10 - - -string_to_uint8 - - - - -Node8->Node10 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map freetds-1.2.3/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +dac161cad7275c5ee38c873b57ec95cb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetavail + + + +Node1 + + +dbsetavail + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map freetds-1.2.3/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +8724ba5e55139ada0f09aaba5b617fb1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbiowdesc + + + +Node1 + + +dbiowdesc + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.map freetds-1.2.3/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0570b1c7f57ed1e9c0ae76de45c397de \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_willconvert - - -Node39 - -tds_willconvert - - -Node40 - - -tdsdump_log - - - - -Node39->Node40 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map freetds-1.2.3/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1cc5a29c8baa21a74a5c3a799faaa5e4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbtds + + + +Node1 + + +dbtds + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.map freetds-1.2.3/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -52d388d424071443e30737cc1965e879 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga933f87cca76156648e91f472650b98f3_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -string_to_int8 - - -Node17 - -string_to_int8 - - -Node18 - - -parse_int8 - - - - -Node17->Node18 - - - - -Node19 - - -parse_numeric - - - - -Node18->Node19 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map freetds-1.2.3/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map --- freetds-1.1.6/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 freetds-1.2.3/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +0b2a062d770f270e728a97b7d9ccc334 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg freetds-1.2.3/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbcurrow + + + +Node1 + + +dbcurrow + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map freetds-1.2.3/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +47885a68a67a1a9239cfc045b301fc10 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg freetds-1.2.3/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbrowtype + + + +Node1 + + +dbrowtype + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.map freetds-1.2.3/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +597368478f09542ed0ee46314efd055a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.svg freetds-1.2.3/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gab842baac0ec420b265d8c199cc45059d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbiordesc + + + +Node1 + + +dbiordesc + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map freetds-1.2.3/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +097a80f66c11a4d32e4b9f3520b973a9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg freetds-1.2.3/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetllong + + + +Node1 + + +dbsetllong + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map freetds-1.2.3/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +05de76476433e6128b020b3b222479eb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg freetds-1.2.3/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +default_err_handler + + + +Node1 + + +default_err_handler + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.map freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cf51a51ae19565d202a0f7de858bc049 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -parse_int8 - - -Node0 - -parse_int8 - - -Node1 - - -parse_numeric - - - - -Node0->Node1 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.map freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.map --- freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -76f16607362c93d5cc5d2023dba90709 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg --- freetds-1.1.6/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -parse_int8 - - -Node2 - -parse_int8 - - -Node3 - - -string_to_int8 - - - - -Node2->Node3 - - - - -Node4 - - -string_to_uint8 - - - - -Node2->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map freetds-1.2.3/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +544ce9ac489d981622ef719420debd45 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg freetds-1.2.3/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbsetlname + + + +Node1 + + +dbsetlname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map freetds-1.2.3/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b537a65039a6158859f61c95f982814e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg freetds-1.2.3/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -string_to_uint8 - - -Node24 - -string_to_uint8 - - -Node25 - - -parse_int8 - - - - -Node24->Node25 - - - - -Node26 - - -parse_numeric - - - - -Node25->Node26 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map freetds-1.2.3/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +9e69ff3fa3b8dd5a93f9b3233c9b9987 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg freetds-1.2.3/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbdead + + + +Node1 + + +dbdead + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map freetds-1.2.3/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map --- freetds-1.1.6/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 freetds-1.2.3/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 --- freetds-1.1.6/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +394a432bde4cd6b58d6769e844a58642 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg freetds-1.2.3/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg --- freetds-1.1.6/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +dbfirstrow + + + +Node1 + + +dbfirstrow + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00551.html freetds-1.2.3/doc/reference/a00551.html --- freetds-1.1.6/doc/reference/a00551.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Conversion +FreeTDS API: Internals @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -59,276 +62,224 @@
-
Conversion
+
-

Conversions between datatypes. +

Functions called within db-lib for self-help.
+ These functions are of interest only to people hacking on the FreeTDS db-lib implementation.
+ More...

-Collaboration diagram for Conversion:
+Collaboration diagram for Internals:
-
+
-
+ + + +

+Classes

struct  _dblib_error_message
 
- - - - - - + + + + + + +

Macros

#define CASE_ALL_BINARY
 
-#define CASE_ALL_CHAR   SYBCHAR: case SYBVARCHAR: case SYBTEXT: case XSYBCHAR: case XSYBVARCHAR
 
-#define is_monthname(s)   (store_monthname(s, NULL) >= 0)
 
#define DBSETLLABELED(x, y)   dbsetlbool((x), (y), DBSETLABELED)
 Alternative way to set login packet fields.
+ More...
 
#define DBSETLVERSION(login, version)   dbsetlversion((login), (version))
 maps to the Microsoft (lower-case) function.
+ More...
 
+ + +

+Typedefs

typedef struct _dblib_error_message DBLIB_ERROR_MESSAGE
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

-static TDS_INT binary_to_result (int desttype, const void *data, size_t len, CONV_RESULT *cr)
 Copy binary data to to result and return len or TDS_CONVERT_NOMEM.
 
-static bool is_alphabetic (const char *)
 
-static bool is_ampm (const char *)
 
-static bool is_dd_mon_yyyy (char *t)
 
-static bool is_numeric (const char *)
 
-static bool is_numeric_dateformat (const char *)
 
-static bool is_timeformat (const char *)
 
static TDS_INT parse_int8 (const char *buf, const char *pend, TDS_UINT8 *res, bool *p_negative)
 convert a number in string to TDS_INT8 More...
 
static const char * parse_numeric (const char *buf, const char *pend, bool *p_negative, size_t *p_digits, size_t *p_decimals)
 Parse a string for numbers. More...
 
-static int store_dd_mon_yyy_date (char *datestr, struct tds_time *t)
 
-static int store_hour (const char *, const char *, struct tds_time *)
 
-static int store_mday (const char *, struct tds_time *)
 
static int store_monthname (const char *datestr, struct tds_time *t)
 Test if a string is a month name and store correct month number. More...
 
-static int store_numeric_date (const char *, struct tds_time *)
 
-static int store_time (const char *, struct tds_time *)
 
-static int store_year (int, struct tds_time *)
 
-static int store_yymmdd_date (const char *, struct tds_time *)
 
-static int string_to_datetime (const char *datestr, TDS_UINT len, int desttype, CONV_RESULT *cr)
 
-static TDS_INT string_to_float (const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
 
static TDS_INT string_to_int (const char *buf, const char *pend, TDS_INT *res)
 convert a number in string to TDS_INT More...
 
static TDS_INT string_to_int8 (const char *buf, const char *pend, TDS_INT8 *res)
 convert a number in string to TDS_INT8 More...
 
static int string_to_numeric (const char *instr, const char *pend, CONV_RESULT *cr)
 convert a number in string to a TDSNUMERIC More...
 
-static TDS_INT string_to_result (int desttype, const char *s, CONV_RESULT *cr)
 Copy a terminated string to result and return len or TDS_CONVERT_NOMEM.
 
static TDS_INT string_to_uint8 (const char *buf, const char *pend, TDS_UINT8 *res)
 convert a number in string to TDS_UINT8 More...
 
static int stringz_to_numeric (const char *instr, CONV_RESULT *cr)
 convert a zero terminated string to NUMERIC More...
 
-TDS_INT tds_char2hex (TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR *src, TDS_UINT srclen)
 
TDS_INT tds_convert (const TDSCONTEXT *tds_ctx, int srctype, const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
 tds_convert convert a type to another. More...
 
-static TDS_INT tds_convert_bigdatetime (const TDSCONTEXT *tds_ctx, const TDS_BIGDATETIME *bigdatetime, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_bigtime (const TDSCONTEXT *tds_ctx, const TDS_BIGTIME *bigtime, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_binary (const TDS_UCHAR *src, TDS_INT srclen, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_bit (const TDS_CHAR *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_char (const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_date (const TDSCONTEXT *tds_ctx, const TDS_DATE *date, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_datetime (const TDSCONTEXT *tds_ctx, const TDS_DATETIME *dt, int desttype, unsigned precision, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_datetime4 (const TDSCONTEXT *tds_ctx, const TDS_DATETIME4 *dt4, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_datetimeall (const TDSCONTEXT *tds_ctx, int srctype, const TDS_DATETIMEALL *dta, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_flt8 (const TDS_FLOAT *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int (TDS_INT num, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int1 (const TDS_TINYINT *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int2 (const TDS_SMALLINT *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int4 (const TDS_INT *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int8 (const TDS_INT8 *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int8_numeric (unsigned char scale, unsigned char sign, TDS_UINT8 num, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_int_numeric (unsigned char scale, unsigned char sign, TDS_UINT num, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_money (const TDSCONTEXT *tds_ctx, const TDS_MONEY *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_money4 (const TDSCONTEXT *tds_ctx, const TDS_MONEY4 *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_numeric (const TDS_NUMERIC *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_real (const TDS_REAL *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_time (const TDSCONTEXT *tds_ctx, const TDS_TIME *time, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_to_binary (int srctype, const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_uint2 (const TDS_USMALLINT *src, int desttype, CONV_RESULT *cr)
 
-static TDS_INT tds_convert_uint4 (const TDS_UINT *src, int desttype, CONV_RESULT *cr)
 
-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)
 Convert from db date format to a structured date format. More...
 
TDS_SERVER_TYPE tds_get_null_type (TDS_SERVER_TYPE srctype)
 Get same type but nullable. More...
 
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. More...
 
unsigned char tds_willconvert (int srctype, int desttype)
 Test if a conversion is possible. More...
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Variables

-const char tds_hex_digits [] = "0123456789abcdef"
 
static BYTE * _dbcoldata (TDSCOLUMN *colinfo)
 Return data from a column. More...
 
int _dblib_check_and_handle_interrupt (void *vdbproc)
 check interrupts for libtds. More...
 
RETCODE dbcmdrow (DBPROCESS *dbproc)
 See if the current command can return rows. More...
 
static TDSCOLUMNdbcolptr (DBPROCESS *dbproc, int column)
 Sanity checks for column-oriented functions.
+ More...
 
int dbcurcmd (DBPROCESS *dbproc)
 Get number of the row just returned. More...
 
DBINT dbcurrow (DBPROCESS *dbproc)
 Get number of the row currently being read. More...
 
DBBOOL dbdead (DBPROCESS *dbproc)
 Check if dbproc is an ex-parrot.
+ More...
 
DBINT dbfirstrow (DBPROCESS *dbproc)
 See if a server response has arrived. More...
 
int dbiordesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!) More...
 
int dbiowdesc (DBPROCESS *dbproc)
 Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!) More...
 
DBINT dblastrow (DBPROCESS *dbproc)
 Get number of the last row in the row buffer. More...
 
int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum,...)
 Call client-installed error handler. More...
 
RETCODE dbrows (DBPROCESS *dbproc)
 Indicate whether a query returned rows. More...
 
STATUS dbrowtype (DBPROCESS *dbproc)
 Get returned row's type. More...
 
void dbsetavail (DBPROCESS *dbproc)
 Mark a DBPROCESS as "available". More...
 
RETCODE dbsetlbool (LOGINREC *login, int value, int which)
 Set a boolean value in a LOGINREC structure.
+ More...
 
RETCODE dbsetllong (LOGINREC *login, long value, int which)
 Set an integer value in a LOGINREC structure.
+ More...
 
RETCODE dbsetlname (LOGINREC *login, const char *value, int which)
 Set the value of a string in a LOGINREC structure.
+ More...
 
int dbtds (DBPROCESS *dbproc)
 Get the TDS version in use for dbproc.
+ More...
 
static int default_err_handler (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)
 default error handler for db-lib (handles library-generated errors) More...
 
DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
 Form a connection with the server. More...
 

Detailed Description

-

Conversions between datatypes.

-

Supports, for example, dbconvert().

+

Functions called within db-lib for self-help.
+ These functions are of interest only to people hacking on the FreeTDS db-lib implementation.
+

Macro Definition Documentation

- -

§ CASE_ALL_BINARY

+ +

◆ DBSETLLABELED

- + + + + + + + + + + + + + + +
#define CASE_ALL_BINARYDBSETLLABELED( x,
 
)   dbsetlbool((x), (y), DBSETLABELED)
-Value:
SYBBINARY: case SYBVARBINARY: case SYBIMAGE: case XSYBBINARY: case XSYBVARBINARY: \
case SYBLONGBINARY: case TDS_CONVERT_BINARY
+ +

Alternative way to set login packet fields.
+

+
See also
dbsetllabeled()
+
-

Function Documentation

- -

§ parse_int8()

+ +

◆ DBSETLVERSION

- - -
- + - - + + - - + + - - - + + +
static TDS_INT parse_int8 DBSETLVERSION (const char * buf,  login,
const char * pend,  version 
TDS_UINT8 * res, )   dbsetlversion((login), (version))
+
+ +

maps to the Microsoft (lower-case) function.
+

+
See also
dbsetlversion()
+ +
+ +

Typedef Documentation

+ +

◆ DBLIB_ERROR_MESSAGE

+ +
+
+ - - - - + +
bool * p_negative typedef struct _dblib_error_message DBLIB_ERROR_MESSAGE
+
+
Remarks
member msgno Vendor-defined message number
+
+member severity Is passed to the error handler
+
+member msgtext Text of message
+ +
+
+

Function Documentation

+ +

◆ _dbcoldata()

+ +
+
+ + + @@ -338,25 +289,90 @@
+ + + + + - -
static BYTE * _dbcoldata (TDSCOLUMNcolinfo) )
-

convert a number in string to TDS_INT8

-
Returns
TDS_CONVERT_* or failure code on error
-
-Here is the call graph for this function:
-
-
+

Return data from a column.

+
Parameters
+ + +
colinfocontains information on a result column.
+
+
+
Returns
pointer to the data, or NULL if data are NULL
+
See also
dbdata(), dbretdata()
+
+ +

◆ _dblib_check_and_handle_interrupt()

+ +
+
+ + + + + + + + +
int _dblib_check_and_handle_interrupt (void * vdbproc)
+
+ +

check interrupts for libtds.

+
Parameters
+ + +
vdbproca DBPROCESS pointer, contains all information needed by db-lib to manage communications with the server.
+
+
+
See also
DBDEAD(), dbsetinterrupt().
+ +
+
+ +

◆ dbcmdrow()

+ +
+
+ + + + + + + + +
RETCODE dbcmdrow (DBPROCESSdbproc)
+
+ +

See if the current command can return rows.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + + +
SUCCEEDYes, it can.
+
FAILNo, it can't.
+
+
+
Remarks
Use DBCMDROW() macro instead.
+
+
See also
DBCMDROW(), dbnextrow(), dbresults(), DBROWS(), DBROWTYPE().
-Here is the caller graph for this function:
+Here is the call graph for this function:
-
+
- -

§ parse_numeric()

+ +

◆ dbcolptr()

@@ -365,34 +381,16 @@
- + - - + + - - - - - - - - - - - - - - - - - - - - + + @@ -407,211 +405,343 @@
static const char * parse_numeric static TDSCOLUMN* dbcolptr (const char * buf, DBPROCESSdbproc,
const char * pend,
bool * p_negative,
size_t * p_digits,
size_t * p_decimals int column 
-

Parse a string for numbers.

-

Syntax can be something like " *[+-] *[0-9]*\.[0-9]* *".

-

The function ignore all spaces. It strips leading zeroes which could possibly lead to overflow. The function returns a pointer to the integer part followed by *p_digits digits followed by a dot followed by *p_decimals digits (dot and fractional digits are optional, in this case *p_decimals is 0).

+

Sanity checks for column-oriented functions.
+

Parameters
- - - - - + +
bufstart of string
pendpointer to string end
p_negativestore if number is negative
p_digitsstore number of integer digits
p_decimalsstore number of fractional digits
dbproccontains all information needed by db-lib to manage communications with the server.
pcolinfoaddress of pointer to a TDSCOLUMN structure.
-
Returns
pointer to first not zero digit. If NULL this indicate a syntax error.
+
Remarks
Makes sure dbproc and the requested column are valid.
+ Calls dbperror() if not.
+
+
Returns
appropriate error or SUCCEED
-Here is the caller graph for this function:
+Here is the call graph for this function:
-
+
- -

§ store_monthname()

+ +

◆ dbcurcmd()

- - - - - -
- + - - - - - + + - - - - - - -
static int store_monthname int dbcurcmd (const char * datestr,
DBPROCESSdbproc) struct tds_timet 
)
-
-static
-

Test if a string is a month name and store correct month number.

-
Returns
month number (0-11) or -1 if not match
+

Get number of the row just returned.

Parameters
- - +
datestrstring to check
twhere to store month (if NULL no store is done)
dbproccontains all information needed by db-lib to manage communications with the server.
+
See also
DBCURROW().
+
Todo:
Unimplemented.
Here is the call graph for this function:
-
+
- -

§ string_to_int()

+ +

◆ dbcurrow()

- - - - - -
- + - - - - - + + - - +
static TDS_INT string_to_int DBINT dbcurrow (const char * buf,
DBPROCESSdbproc) const char * pend,
+
+ +

Get number of the row currently being read.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Returns
ostensibly the row number, or 0 if no rows have been read yet.
+
+
Return values
+ + +
0Always.
+
+
+
+
See also
DBCURROW(), dbclrbuf(), DBFIRSTROW(), dbgetrow(), DBLASTROW(), dbnextrow(), dbsetopt(),.
+
+
Todo:
Unimplemented.
+
+Here is the call graph for this function:
+
+
+
+
+ +
+ + +

◆ dbdead()

+ +
+
+ - + + + + - - +
DBBOOL dbdead (DBPROCESSdbproc) TDS_INT * res 
+
+ +

Check if dbproc is an ex-parrot.
+

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Return values
+ + + +
TRUEprocess has been marked dead.
FALSEprocess is OK.
+
+
+
+
Remarks
dbdead() does not communicate with the server.
+ Unless a previously db-lib marked dbproc dead, dbdead() returns FALSE.
+
+
See also
dberrhandle().
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbfirstrow()

+ +
+
+ + + + + - -
DBINT dbfirstrow (DBPROCESSdbproc) )
-
-static
-

convert a number in string to TDS_INT

-
Returns
TDS_CONVERT_* or failure code on error
-
Remarks
Sybase's char->int conversion tolerates embedded blanks, such that "convert( int, ' - 13 ' )" works. If we find blanks, we copy the string to a temporary buffer, skipping the blanks. We return the results of atoi() with a clean string.
-

n.b. it is possible to embed all sorts of non-printable characters, but we only check for spaces. at this time, no one on the project has tested anything else.

+

See if a server response has arrived.

+
Parameters
+ + + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
millisecondshow long to wait for the server before returning:
    +
  • 0 return immediately.
  • +
  • -1 do not return until the server responds or a system interrupt occurs.
  • +
+
ready_dbprocoutput: DBPROCESS for which a response arrived, of NULL.
return_reasonoutput:
    +
  • DBRESULT server responded.
  • +
  • DBNOTIFICATION registered procedure notification has arrived. dbpoll() the registered handler, if any, before it returns.
  • +
  • DBTIMEOUT milliseconds elapsed before the server responded.
  • +
  • DBINTERRUPT operating-system interrupt occurred before the server responded.
  • +
+
+
+
+
Return values
+ + + +
SUCCEEDeverything worked.
FAILa server connection died.
+
+
+
See also
DBIORDESC(), DBRBUF(), dbresults(), dbreghandle(), dbsqlok().
+
Todo:
Unimplemented.
+

Get number of the first row in the row buffer.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
DBFIRSTROW(), dbclrbuf(), DBCURROW(), dbgetrow(), DBLASTROW(), dbnextrow(), dbsetopt().
Here is the call graph for this function:
-
+
- -

§ string_to_int8()

+ +

◆ dbiordesc()

- - - - - -
- + - - - - - + + - - +
static TDS_INT string_to_int8 int dbiordesc (const char * buf,
DBPROCESSdbproc) const char * pend,
+
+ +

Get file descriptor of the socket used by a DBPROCESS to read data coming from the server. (!)

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
dbcmd(), DBIORDESC(), DBIOWDESC(), dbnextrow(), dbpoll(), DBRBUF(), dbresults(), dbsqlok(), dbsqlsend().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+ + +

◆ dbiowdesc()

+ +
+
+ - + + + + - - +
int dbiowdesc (DBPROCESSdbproc) TDS_INT8 * res 
+
+ +

Get file descriptor of the socket used by a DBPROCESS to write data coming to the server. (!)

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
dbcmd(), DBIORDESC(), DBIOWDESC(), dbnextrow(), dbpoll(), DBRBUF(), dbresults(), dbsqlok(), dbsqlsend().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dblastrow()

+ +
+
+ + + + + - -
DBINT dblastrow (DBPROCESSdbproc) )
-
-static
-

convert a number in string to TDS_INT8

-
Returns
TDS_CONVERT_* or failure code on error
+

Get number of the last row in the row buffer.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
DBLASTROW(), dbclrbuf(), DBCURROW(), DBFIRSTROW(), dbgetrow(), dbnextrow(), dbsetopt().
Here is the call graph for this function:
-
+
- -

§ string_to_numeric()

+ +

◆ dbperror()

- - - - - -
- + - - + + - - + + + + + + + + - - + + @@ -619,161 +749,253 @@
static int string_to_numeric int dbperror (const char * instr, DBPROCESSdbproc,
const char * pend, DBINT msgno,
long errnum,
CONV_RESULTcr  ... 
-
-static
-

convert a number in string to a TDSNUMERIC

-
Returns
sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure
+

Call client-installed error handler.

+
Parameters
+ + + + +
dbproccontains all information needed by db-lib to manage communications with the server.
msgnoidentifies the error message to be passed to the client's handler.
errnumidentifies the OS error (errno), if any. Use 0 if not applicable.
+
+
+
+
Returns
the handler's return code, subject to correction and adjustment for vendor style:
    +
  • INT_CANCEL The db-lib function that encountered the error will return FAIL.
    +
  • +
  • INT_TIMEOUT The db-lib function will cancel the operation and return FAIL. dbproc remains useable.
    +
  • +
  • INT_CONTINUE The db-lib function will retry the operation.
    +
  • +
+
+
Remarks
The client-installed handler may also return INT_EXIT. If Sybase semantics are used, this function notifies the user and calls exit(3). If Microsoft semantics are used, this function returns INT_CANCEL.
+
+

If the client-installed handler returns something other than these four INT_* values, or returns timeout-related value for anything but SYBETIME, it's treated here as INT_EXIT (see above).
+

+

Instead of sprinkling error text all over db-lib, we consolidate it here, where it can be translated (one day), and where it can be mapped to the TDS error number.
+ The libraries don't use consistent error numbers or messages, so when libtds has to emit an error message, it can't include the text. It can pass its error number to a client-library function, which will interpret it, add the text, call the application's installed handler (if any) and return the handler's return code back to the caller.
+

+

The call stack may look something like this:

+
    +
  1. application
  2. +
  3. db-lib function (encounters error)
  4. +
  5. dbperror
  6. +
  7. error handler (installed by application)
  8. +
+

The error handling in this case is unambiguous: the caller invokes this function, the client's handler returns its instruction, which the caller receives. Quite often the caller will get INT_CANCEL, in which case it should put its house in order and return FAIL.
+

+

The call stack may otherwise look something like this:

+
    +
  1. application
  2. +
  3. db-lib function
  4. +
  5. libtds function (encounters error)
  6. +
  7. _dblib_handle_err_message
  8. +
  9. dbperror
  10. +
  11. error handler (installed by application)
  12. +
+

Because different client libraries specify their handler semantics differently, and because libtds doesn't know which client library is in charge of any given connection, it cannot interpret the raw return code from a db-lib error handler. For these reasons, libtds calls _dblib_handle_err_message, which translates between libtds and db-lib semantics.
+

See also
dberrhandle(), _dblib_handle_err_message().
Here is the caller graph for this function:
-
+
- -

§ string_to_uint8()

+ +

◆ dbrows()

- - - - - -
- + - - - - - + + - - - - - - - - - - - - -
static TDS_INT string_to_uint8 RETCODE dbrows (const char * buf,
DBPROCESSdbproc) const char * pend,
TDS_UINT8 * res 
)
-
-static
-

convert a number in string to TDS_UINT8

-
Returns
TDS_CONVERT_* or failure code on error
+

Indicate whether a query returned rows.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
DBROWS(), DBCMDROW(), dbnextrow(), dbresults(), DBROWTYPE().
Here is the call graph for this function:
-
+
- -

§ stringz_to_numeric()

+ +

◆ dbrowtype()

- - - - - -
- + - - - - - + + - - +
static int stringz_to_numeric STATUS dbrowtype (const char * instr,
DBPROCESSdbproc) CONV_RESULTcr 
+
+ +

Get returned row's type.

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
See also
DBROWTYPE().
+
+
+Here is the call graph for this function:
+
+
+
+
+ +
+ + +

◆ dbsetavail()

+ +
+
+ + + + + - -
void dbsetavail (DBPROCESSdbproc) )
-
-static
-

convert a zero terminated string to NUMERIC

-
Returns
sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure
+

Mark a DBPROCESS as "available".

+
Parameters
+ + +
dbproccontains all information needed by db-lib to manage communications with the server.
+
+
+
Remarks
Basically bogus. FreeTDS behaves the way Sybase's implementation does, but so what?
+ Many db-lib functions set the DBPROCESS to "not available", but only dbsetavail() resets it to "available".
+
+
See also
DBISAVAIL(). DBSETAVAIL().
Here is the call graph for this function:
-
+
- -

§ tds_convert()

+ +

◆ dbsetlbool()

- + - - + + - + - - + + - - - + + + +
TDS_INT tds_convert RETCODE dbsetlbool (const TDSCONTEXTtds_ctx, LOGINREClogin,
int srctype, value,
const TDS_CHAR * src, int which 
TDS_UINT srclen, )
+
+ +

Set a boolean value in a LOGINREC structure.
+

+

Called by various macros to populate login.
+

Parameters
+ + + + +
loginthe LOGINREC* to modify.
valuethe value to set it to.
+
whichthe field to set.
+
+
+
Remarks
Only DBSETBCP is implemented.
+
+
Return values
+ + + +
SUCCEEDthe value was set.
FAILinvalid value passed for which.
+
+
+
+
Todo:
DBSETNOSHORT, DBSETENCRYPT, DBSETLABELED
+
+Here is the call graph for this function:
+
+
+
+
+ +
+
+ +

◆ dbsetllong()

+ +
+
+ + + + + + - - + + - - + + @@ -783,45 +1005,59 @@
RETCODE dbsetllong (LOGINREClogin,
int desttype, long value,
CONV_RESULTcr int which 
-

tds_convert convert a type to another.

-

If you convert to SYBDECIMAL/SYBNUMERIC you MUST initialize precision and scale of cr. Do not expect strings to be zero terminated. Databases support zero inside string. Using strlen may result on data loss or even a segmentation fault. Instead, use memcpy to copy destination using length returned. This function does not handle NULL, srclen should be >0. Client libraries handle NULLs each in their own way.

Parameters
+

Set an integer value in a LOGINREC structure.
+

+

Called by various macros to populate login.
+

Parameters
- - - - - - + + +
tds_ctxcontext (used in conversion to data and to return messages)
srctypetype of source
srcpointer to source data to convert
srclenlength in bytes of source (not counting terminator or strings)
desttypetype of destination
crstructure to hold result
loginthe LOGINREC* to modify.
valuethe value to set it to.
+
whichthe field to set.
+
-
Returns
length of result or TDS_CONVERT_* failure code on failure. All TDS_CONVERT_* constants are <0.
+
Return values
+ + + +
SUCCEEDthe value was set.
FAILanything other than DBSETPACKET was passed for which.
+
+
+
+
+Here is the call graph for this function:
+
+
+
+
- -

§ tds_datecrack()

+ +

◆ dbsetlname()

- + - - + + - - + + - - + + @@ -831,81 +1067,118 @@
TDSRET tds_datecrack RETCODE dbsetlname (TDS_INT datetype, LOGINREClogin,
const void * di, const char * value,
TDSDATERECdr int which 
-

Convert from db date format to a structured date format.

-
Parameters
+

Set the value of a string in a LOGINREC structure.
+

+

Called by various macros to populate login.
+

Parameters
- - - + + +
datetypesource date type. SYBDATETIME or SYBDATETIME4
disource date
drdestination date
loginthe LOGINREC* to modify.
valuethe value to set it to.
+
whichthe field to set.
+
-
Returns
TDS_FAIL or TDS_SUCCESS
+
Return values
+ + + +
SUCCEEDthe value was set.
FAILDBSETHID or other invalid which was tried.
+
+
+
+
+Here is the call graph for this function:
+
+
+
+
- -

§ tds_get_null_type()

+ +

◆ dbtds()

- + - - + +
TDS_SERVER_TYPE tds_get_null_type int dbtds (TDS_SERVER_TYPE srctype)DBPROCESSdbproc)
-

Get same type but nullable.

+

Get the TDS version in use for dbproc.
+

Parameters
- +
srctypetype requires
dbproccontains all information needed by db-lib to manage communications with the server.
-
Returns
nullable type
+
Returns
a DBTDS* token.
+
+
Remarks
The integer values of the constants are counterintuitive.
+
+
See also
DBTDS().
+
+Here is the call graph for this function:
+
+
+
+
- -

§ tds_strftime()

+ +

◆ default_err_handler()

+ + + + + +
- + - - + + - - + + - - + + - - + + - - + + + + + + + + @@ -913,40 +1186,49 @@
size_t tds_strftime static int default_err_handler (char * buf, DBPROCESSdbproc,
size_t maxsize, int severity,
const char * format, int dberr,
const TDSDATERECdr, int oserr,
int prec char * dberrstr,
char * oserrstr 
+
+static
-

format a date string according to an "extended" strftime(3) formatting definition.

-
Parameters
- - - - - - -
bufoutput buffer
maxsizesize of buffer in bytes (space include terminator)
formatformat string passed to strftime(3), except that z represents fraction of seconds.
drdate to convert
precsecond fraction precision (0-7).
-
-
-
Returns
length of string returned, 0 for error
+

default error handler for db-lib (handles library-generated errors)

+

The default error handler doesn't print anything. If you want to see your messages printed, install an error handler. If you think that should be an optional compile- or run-time default, submit a patch. It could be done.
+

+
See also
DBDEAD(), dberrhandle().
+
+Here is the call graph for this function:
+
+
+
+
- -

§ tds_willconvert()

+ +

◆ tdsdbopen()

- + - - + + + + + + + + - + @@ -956,19 +1238,38 @@
unsigned char tds_willconvert DBPROCESS* tdsdbopen (int srctype, LOGINREClogin,
const char * server,
int desttype msdblib 
-

Test if a conversion is possible.

-
Parameters
+

Form a connection with the server.

+

Called by the dbopen() macro, normally. If FreeTDS was configured with –enable-msdblib, this function is called by (exported) dbopen() function. tdsdbopen is so-named to avoid namespace conflicts with other database libraries that use the same function name.
+

Parameters
- - + + +
srctypesource type
desttypedestination type
loginLOGINREC* carrying the account information.
servername of the dataserver to connect to.
+
+
+
+
Returns
valid pointer on successful login.
+
+
Return values
+ +
NULLinsufficient memory, unable to connect for any reason.
-
Returns
0 if not convertible
+
See also
dbopen()
+
Todo:

use asprintf() to avoid buffer overflow.

+

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

+
Here is the call graph for this function:
-
+
+
+
+
+Here is the caller graph for this function:
+
+
@@ -979,7 +1280,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00551.map freetds-1.2.3/doc/reference/a00551.map --- freetds-1.1.6/doc/reference/a00551.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00551.md5 freetds-1.2.3/doc/reference/a00551.md5 --- freetds-1.1.6/doc/reference/a00551.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -a12766c68e37309ce979d248b4008919 \ No newline at end of file +200370235ea874d86f6c874b31d7ced3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00551.svg freetds-1.2.3/doc/reference/a00551.svg --- freetds-1.1.6/doc/reference/a00551.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00551.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Conversion - - -Node0 - -Conversion + + + +Internals + + + +Node2 + + +The db-lib API + + -Node1 - - -LibTDS API + +Node1 + + +Internals - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.map freetds-1.2.3/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.map --- freetds-1.1.6/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.md5 freetds-1.2.3/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.md5 --- freetds-1.1.6/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -25684b1223c3592fe3cab8b80ca6b150 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.svg freetds-1.2.3/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.svg --- freetds-1.1.6/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga38c0ac641a8c6e25e91ee9205c3c50c5_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_canonical_charset - - -Node3 - -tds_canonical_charset - - -Node4 - - -tds_canonical_charset_name - - - - -Node3->Node4 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map freetds-1.2.3/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map --- freetds-1.1.6/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 freetds-1.2.3/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 --- freetds-1.1.6/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f76df5c50cbc67ad0b8271ea14c1f377 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg freetds-1.2.3/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg --- freetds-1.1.6/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_iconv_info_init - - -Node12 - -tds_iconv_info_init - - -Node13 - - -tdsdump_log - - - - -Node12->Node13 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map freetds-1.2.3/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map --- freetds-1.1.6/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 freetds-1.2.3/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -397e8039dc97de73706fe605cb695eb6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg freetds-1.2.3/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg --- freetds-1.1.6/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_canonical_charset_name - - -Node5 - -tds_canonical_charset_name - - -Node6 - - -tds_canonical_charset - - - - -Node5->Node6 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map --- freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 --- freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -78929a968d854cb552babb66f3a4a0de \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg --- freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_iconv - - -Node8 - -tds_iconv - - -Node9 - - -tdsdump_log - - - - -Node8->Node9 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.map freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.map --- freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.md5 freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.md5 --- freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a606c09b98fa3776f6a69b1be6590a41 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.svg freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.svg --- freetds-1.1.6/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_iconv - - -Node10 - -tds_iconv - - -Node11 - - -odbc_set_string_flag - - - - -Node10->Node11 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map freetds-1.2.3/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map --- freetds-1.1.6/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 freetds-1.2.3/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 --- freetds-1.1.6/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -64e26166416bb941edcbe08842bf71fc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg freetds-1.2.3/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg --- freetds-1.1.6/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_sys_iconv_open - - -Node15 - -tds_sys_iconv_open - - -Node16 - - -tdsdump_log - - - - -Node15->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00552.html freetds-1.2.3/doc/reference/a00552.html --- freetds-1.1.6/doc/reference/a00552.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Charset conversion +FreeTDS API: Unimplemented @@ -29,18 +29,21 @@
- + +/* @license-end */
@@ -58,553 +61,47 @@
-
-
Charset conversion
+
Unimplemented
-

Convert between different charsets. +

Functions thus far not implemented in the FreeTDS db-lib implementation.
+ While some of these are simply awaiting someone with time and skill (and inclination) it might be noted here that the old browse functions (e.g. dbcolbrowse()) are on the never-to-do list.
+ They were defined by Sybase and were superseded long ago, although they're still present in Microsoft's implementation.
+ They were never popular and today better alternatives are available.
+ For completeness, they are: More...

-Collaboration diagram for Charset conversion:
+Collaboration diagram for Unimplemented:
-
+
-
- - - - -

-Macros

-#define CHUNK_ALLOC   4
 
- - - - - - - -

-Typedefs

-typedef uint32_t ICONV_CHAR
 
-typedef int(* iconv_get_t) (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-typedef int(* iconv_put_t) (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
- - - -

-Enumerations

enum  ICONV_CD_VALUE { Like_to_Like = 0x100 - }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-static void _iconv_close (iconv_t *cd)
 
-static int collate2charset (int sql_collate, int lcid)
 
-static int get_ascii (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_cp1252 (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_err (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_iso1 (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_ucs4be (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_ucs4le (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_utf16be (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_utf16le (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int get_utf8 (const unsigned char *p, size_t len, ICONV_CHAR *out)
 
-static int lookup_canonic (const CHARACTER_SET_ALIAS aliases[], const char *charset_name)
 
-static int put_ascii (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-static int put_cp1252 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-static int put_err (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-static int put_iso1 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-static int put_ucs4be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-static int put_ucs4le (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-static int put_utf16be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
 
-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)
 Move the input sequence pointer to the next valid position. More...
 
-void tds7_srv_charset_changed (TDSCONNECTION *conn, int sql_collate, int lcid)
 
static int tds_canonical_charset (const char *charset_name)
 Determine canonical iconv character set. More...
 
const char * tds_canonical_charset_name (const char *charset_name)
 Determine canonical iconv character set name. More...
 
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). More...
 
-void tds_iconv_close (TDSCONNECTION *conn)
 
-static void tds_iconv_err (TDSSOCKET *tds, int err)
 
-void tds_iconv_free (TDSCONNECTION *conn)
 
-TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
 Get iconv information from a LCID (to support different column encoding under MSSQL2K)
 
-TDSICONVtds_iconv_get (TDSCONNECTION *conn, const char *client_charset, const char *server_charset)
 
-static TDSICONVtds_iconv_get_info (TDSCONNECTION *conn, int canonic_client, int canonic_server)
 Get a iconv info structure, allocate and initialize if needed.
 
-static void tds_iconv_info_close (TDSICONV *char_conv)
 
static int tds_iconv_info_init (TDSICONV *char_conv, int client_canonical, int server_canonical)
 Open iconv descriptors to convert between character sets (both directions). More...
 
-TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
 
-void tds_srv_charset_changed (TDSCONNECTION *conn, const char *charset)
 
-static void tds_srv_charset_changed_num (TDSCONNECTION *conn, int canonic_charset_num)
 
-size_t tds_sys_iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
 
-int tds_sys_iconv_close (iconv_t cd)
 
iconv_t tds_sys_iconv_open (const char *tocode, const char *fromcode)
 Inputs are FreeTDS canonical names, no other. More...
 
- - - - - -

-Variables

static const iconv_get_t iconv_gets [16]
 
static const iconv_put_t iconv_puts [16]
 
-

Detailed Description

-

Convert between different charsets.

-

Set up the initial iconv conversion descriptors.

-

When the socket is allocated, three TDSICONV structures are attached to iconv. They have fixed meanings:

    -
  • 0. Client <-> UCS-2 (client2ucs2)
  • -
  • 1. Client <-> server single-byte charset (client2server_chardata)
  • +

    Functions thus far not implemented in the FreeTDS db-lib implementation.
    + While some of these are simply awaiting someone with time and skill (and inclination) it might be noted here that the old browse functions (e.g. dbcolbrowse()) are on the never-to-do list.
    + They were defined by Sybase and were superseded long ago, although they're still present in Microsoft's implementation.
    + They were never popular and today better alternatives are available.
    + For completeness, they are:

    +
      +
    • dbcolbrowse()
    • +
    • dbcolsource()
    • +
    • dbfreequal()
    • +
    • dbqual()
    • +
    • dbtabbrowse()
    • +
    • dbtabcount()
    • +
    • dbtabname()
    • +
    • dbtabsource()
    • +
    • dbtsnewlen()
    • +
    • dbtsnewval()
    • +
    • dbtsput()
    -

    Other designs that use less data are possible, but these three conversion needs are very often needed. By reserving them, we avoid searching the array for our most common purposes.

    -

    To solve different iconv names and portability problems FreeTDS maintains a list of aliases each charset.

    -

    First we discover the names of our minimum required charsets (UTF-8, ISO8859-1 and UCS2). Later, as and when it's needed, we try to discover others.

    -

    There is one list of canonic names (GNU iconv names) and two sets of aliases (one for other iconv implementations and another for Sybase). For every canonic charset name we cache the iconv name found during discovery.

    -

    Function Documentation

    - -

    § skip_one_input_sequence()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static size_t skip_one_input_sequence (iconv_t cd,
    const TDS_ENCODINGcharset,
    const char ** input,
    size_t * input_size 
    )
    -
    -static
    -
    - -

    Move the input sequence pointer to the next valid position.

    -

    Used when an input character cannot be converted.

    Returns
    number of bytes to skip.
    - -
    -
    - -

    § tds_canonical_charset()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static int tds_canonical_charset (const char * charset_name)
    -
    -static
    -
    - -

    Determine canonical iconv character set.

    -
    Returns
    canonical position, or -1 if lookup failed.
    -
    Remarks
    Returned name can be used in bytes_per_char(), above.
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_canonical_charset_name()

    - -
    -
    - - - - - - - - -
    const char* tds_canonical_charset_name (const char * charset_name)
    -
    - -

    Determine canonical iconv character set name.

    -
    Returns
    canonical name, or NULL if lookup failed.
    -
    Remarks
    Returned name can be used in bytes_per_char(), above.
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_iconv()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    size_t tds_iconv (TDSSOCKETtds,
    TDSICONVconv,
    TDS_ICONV_DIRECTION io,
    const char ** inbuf,
    size_t * inbytesleft,
    char ** outbuf,
    size_t * outbytesleft 
    )
    -
    - -

    Wrapper around iconv(3).

    -

    Same parameters, with slightly different behavior.

    Parameters
    - - - - - - - - -
    tdsstate information for the socket and the TDS protocol
    ioEnumerated value indicating whether the data are being sent to or received from the server.
    convinformation about the encodings involved, including the iconv(3) conversion descriptors.
    inbufaddress of pointer to the input buffer of data to be converted.
    inbytesleftaddress of count of bytes in inbuf.
    outbufaddress of pointer to the output buffer.
    outbytesleftaddress of count of bytes in outbuf.
    -
    -
    -
    Return values
    - - -
    numberof irreversible conversions performed. -1 on error, see iconv(3) documentation for a description of the possible values of errno.
    -
    -
    -
    Remarks
    Unlike iconv(3), none of the arguments can be nor point to NULL. Like iconv(3), all pointers will be updated. Success is signified by a nonnegative return code and *inbytesleft == 0. If the conversion descriptor in iconv is -1 or NULL, inbuf is copied to outbuf, and all parameters updated accordingly.
    -

    If a character in inbuf cannot be converted because no such cbaracter exists in the outbuf character set, we emit messages similar to the ones Sybase emits when it fails such a conversion. The message varies depending on the direction of the data. On a read error, we emit Msg 2403, Severity 16 (EX_INFO): "WARNING! Some character(s) could not be converted into client's character set. - Unconverted bytes were changed to question marks ('?')." On a write error we emit Msg 2402, Severity 16 (EX_USER): "Error converting client characters into server's character set. Some character(s) could not be converted." and return an error code. Client libraries relying on this routine should reflect an error back to the application.

    -
    Todo:

    Check for variable multibyte non-UTF-8 input character set.

    -

    Use more robust error message generation.

    -

    For reads, cope with outbuf encodings that don't have the equivalent of an ASCII '?'.

    -

    Support alternative to '?' for the replacement character.

    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_iconv_info_init()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static int tds_iconv_info_init (TDSICONVchar_conv,
    int client_canonical,
    int server_canonical 
    )
    -
    -static
    -
    - -

    Open iconv descriptors to convert between character sets (both directions).

    -
      -
    1. Look up the canonical names of the character sets.
    2. -
    3. Look up their widths.
    4. -
    5. Ask iconv to open a conversion descriptor.
    6. -
    7. Fail if any of the above offer any resistance.
      Remarks
      The charset names written to iconv will be the canonical names, not necessarily the names passed in.
      -
    8. -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_sys_iconv_open()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    iconv_t tds_sys_iconv_open (const char * tocode,
    const char * fromcode 
    )
    -
    - -

    Inputs are FreeTDS canonical names, no other.

    -

    No alias list is consulted.

    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    -

    Variable Documentation

    - -

    § iconv_gets

    - -
    -
    - - - - - -
    - - - - -
    const iconv_get_t iconv_gets[16]
    -
    -static
    -
    -Initial value:
    = {
    get_iso1, get_ascii, get_utf16le, get_utf16be, get_ucs4le, get_ucs4be, get_utf8, get_cp1252,
    get_err, get_err, get_err, get_err, get_err, get_err, get_err, get_err,
    }
    -
    -
    - -

    § iconv_puts

    - -
    -
    - - - - - -
    - - - - -
    const iconv_put_t iconv_puts[16]
    -
    -static
    -
    -Initial value:
    = {
    put_iso1, put_ascii, put_utf16le, put_utf16be, put_ucs4le, put_ucs4be, put_utf8, put_cp1252,
    put_err, put_err, put_err, put_err, put_err, put_err, put_err, put_err,
    }
    -
    -
    diff -Nru freetds-1.1.6/doc/reference/a00552.map freetds-1.2.3/doc/reference/a00552.map --- freetds-1.1.6/doc/reference/a00552.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00552.md5 freetds-1.2.3/doc/reference/a00552.md5 --- freetds-1.1.6/doc/reference/a00552.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -adf2ea3a1d6fc345b13e6857a22f2571 \ No newline at end of file +e544bcfec214a555e795cc5cb5523ca9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00552.svg freetds-1.2.3/doc/reference/a00552.svg --- freetds-1.1.6/doc/reference/a00552.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00552.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Charset conversion - - -Node0 - -Charset conversion + + + +Unimplemented + + + +Node2 + + +The db-lib API + + -Node1 - - -LibTDS API + +Node1 + + +Unimplemented - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.map freetds-1.2.3/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.map --- freetds-1.1.6/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.md5 freetds-1.2.3/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.md5 --- freetds-1.1.6/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9f6b37cfebafca8b76325e77f2b510bc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.svg freetds-1.2.3/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.svg --- freetds-1.1.6/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga501af7e6186e59c257729599a044a30b_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_dynid - - -Node11 - -tds_get_dynid - - -Node12 - - -tds_alloc_dynamic - - - - -Node11->Node12 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map freetds-1.2.3/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map --- freetds-1.1.6/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 freetds-1.2.3/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 --- freetds-1.1.6/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b50e68fd9d9cfbad1c0715d077510bfa \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg freetds-1.2.3/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg --- freetds-1.1.6/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_alloc_dynamic - - -Node0 - -tds_alloc_dynamic - - -Node1 - - -tds_lookup_dynamic - - - - -Node0->Node1 - - - - -Node2 - - -tds_get_dynid - - - - -Node0->Node2 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.map freetds-1.2.3/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.map --- freetds-1.1.6/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.md5 freetds-1.2.3/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.md5 --- freetds-1.1.6/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9d48ca0f8b4342e1f21881a5a26c6c80 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.svg freetds-1.2.3/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.svg --- freetds-1.1.6/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_ga924cb9fb5d19dbd308ba0ce8c1a8a1d5_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -tds_realloc - - -Node16 - -tds_realloc - - -Node17 - - -tds_dynamic_stream -_write - - - - -Node16->Node17 - - - - -Node18 - - -tds_dynamic_stream_init - - - - -Node17->Node18 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map freetds-1.2.3/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map --- freetds-1.1.6/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 freetds-1.2.3/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 --- freetds-1.1.6/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ba8cb9aeac1f8e07bd8b131105e59a0d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg freetds-1.2.3/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg --- freetds-1.1.6/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_release_dynamic - - -Node19 - -tds_release_dynamic - - -Node20 - - -tds_detach_results - - - - -Node19->Node20 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00553.html freetds-1.2.3/doc/reference/a00553.html --- freetds-1.1.6/doc/reference/a00553.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Memory allocation +FreeTDS API: ODBC API @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -59,582 +62,35 @@
    -
    Memory allocation
    +
    ODBC API
    -

    Allocate or free resources. +

    Functions callable by ODBC client programs. More...

    -Collaboration diagram for Memory allocation:
    +Collaboration diagram for ODBC API:
    -
    +
    -
    - - - - - - - - - - - - - - - -

    -Macros

    -#define REQ(i, n)   |(((TDS_REQ_ ## n / 8) == i)?(1<<(TDS_REQ_ ## n & 7)):0)
     
    -#define REQB(i)   0 SUPPORTED_REQ_CAP(i)
     
    -#define RES(i, n)   |(((TDS_RES_ ## n / 8) == i)?(1<<(TDS_RES_ ## n & 7)):0)
     
    -#define RESB(i)   0 SUPPORTED_RES_CAP(i)
     
    -#define SQLS_ENTRY(number, state)   case number: p = state; break
     
    #define SUPPORTED_REQ_CAP(i)
     
    -#define SUPPORTED_RES_CAP(i)   RES(i,CON_NOOOB) RES(i,PROTO_NOTEXT) RES(i,PROTO_NOBULK) RES(i,NOTDSDEBUG)
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions

    -BCPCOLDATAtds_alloc_bcp_column_data (unsigned int column_size)
     
    -TDSBCPINFOtds_alloc_bcpinfo (void)
     
    -char * tds_alloc_client_sqlstate (int msgno)
     
    -static TDSCOLUMNtds_alloc_column (void)
     
    -static TDSCOMPUTEINFOtds_alloc_compute_result (TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
     Allocate memory for storing compute info return NULL on out of memory.
     
    -TDSCOMPUTEINFO ** tds_alloc_compute_results (TDSSOCKET *tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
     
    -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)
     
    TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
     Allocate a dynamic statement. More...
     
    -TDSLOCALEtds_alloc_locale (void)
     
    -TDSLOGINtds_alloc_login (int use_environment)
     
    -char * tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno)
     
    -TDSPACKETtds_alloc_packet (void *buf, unsigned len)
     
    void * tds_alloc_param_data (TDSCOLUMN *curparam)
     Allocate data for a parameter. More...
     
    TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
     Adds a output parameter to TDSPARAMINFO. More...
     
    -TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols)
     
    -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_values_len, sizeof(defaultcaps.types[0].values)==14)
     
    TDS_COMPILE_CHECK (tds_cap_len, sizeof(defaultcaps)==TDS_MAX_CAPABILITY)
     
    -static void tds_connection_remove_socket (TDSCONNECTION *conn, TDSSOCKET *tds)
     
    -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)
     Detach result info from it current socket.
     
    -void tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     
    -void tds_free_all_results (TDSSOCKET *tds)
     
    -void tds_free_bcp_column_data (BCPCOLDATA *coldata)
     
    -void tds_free_bcpinfo (TDSBCPINFO *bcpinfo)
     
    -static void tds_free_column (TDSCOLUMN *col)
     
    -static void tds_free_compute_result (TDSCOMPUTEINFO *comp_info)
     
    -static void tds_free_compute_results (TDSSOCKET *tds)
     
    -void tds_free_context (TDSCONTEXT *context)
     
    -static void tds_free_env (TDSCONNECTION *conn)
     
    void tds_free_input_params (TDSDYNAMIC *dyn)
     Frees all allocated input parameters of a dynamic statement. More...
     
    -void tds_free_locale (TDSLOCALE *locale)
     
    -void tds_free_login (TDSLOGIN *login)
     
    -void tds_free_msg (TDSMESSAGE *message)
     
    -void tds_free_packets (TDSPACKET *packet)
     
    -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_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. More...
     
    -static TDSCONNECTIONtds_init_connection (TDSCONNECTION *conn, TDSCONTEXT *context, unsigned int bufsize)
     
    TDSLOGINtds_init_login (TDSLOGIN *login, TDSLOCALE *locale)
     Initialize login structure with locale information and other stuff for connection. More...
     
    -static TDSSOCKETtds_init_socket (TDSSOCKET *tds_socket, unsigned int bufsize)
     
    -static void tds_param_free (TDSCOLUMN *col)
     
    void * tds_realloc (void **pp, size_t new_size)
     Reallocate a pointer and update it if success. More...
     
    -TDSPACKETtds_realloc_packet (TDSPACKET *packet, unsigned len)
     
    -TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, size_t bufsize)
     
    -void tds_release_cursor (TDSCURSOR **pcursor)
     
    void tds_release_dynamic (TDSDYNAMIC **pdyn)
     Frees dynamic statement. More...
     
    -static void tds_row_free (TDSRESULTINFO *res_info, unsigned char *row)
     
    -void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info)
     
    -static int winsock_initialized (void)
     
    - - - - - - - + + + +

    -Variables

    static const TDS_CAPABILITIES defaultcaps
     
    -static volatile unsigned int inc_num = 1
     
    -const TDSCOLUMNFUNCS tds_invalid_funcs
     

    +Modules

     ODBC utility
     Functions called within ODBC driver.
     

    Detailed Description

    -

    Allocate or free resources.

    -

    Allocation can fail only on out of memory. In such case they return NULL and leave the state as before call. Mainly function names are in the form tds_alloc_XX or tds_free_XXX. tds_alloc_XXX functions allocate structures and return pointer to allocated data while tds_free_XXX take structure pointers and free them. Some functions require additional parameters to initialize structure correctly. The main exception are structures that use reference counting. These structures have tds_alloc_XXX functions but instead of tds_free_XXX use tds_release_XXX.

    -

    Macro Definition Documentation

    - -

    § SUPPORTED_REQ_CAP

    - -
    -
    - - - - - - - - -
    #define SUPPORTED_REQ_CAP( i)
    -
    -Value:
    REQ(i,LANG) REQ(i,RPC) REQ(i,EVT) REQ(i,MSTMT) REQ(i,BCP) REQ(i,CURSOR) REQ(i,DYNF) \
    REQ(i,MSG) REQ(i,PARAM) REQ(i,DATA_INT1) REQ(i,DATA_INT2) REQ(i,DATA_INT4) REQ(i,DATA_BIT) \
    REQ(i,DATA_CHAR) REQ(i,DATA_VCHAR) REQ(i,DATA_BIN) REQ(i,DATA_VBIN) REQ(i,DATA_MNY8) \
    REQ(i,DATA_MNY4) REQ(i,DATA_DATE8) REQ(i,DATA_DATE4) REQ(i,DATA_FLT4) REQ(i,DATA_FLT8) \
    REQ(i,DATA_NUM) REQ(i,DATA_TEXT) REQ(i,DATA_IMAGE) REQ(i,DATA_DEC) REQ(i,DATA_LCHAR) \
    REQ(i,DATA_LBIN) REQ(i,DATA_INTN) REQ(i,DATA_DATETIMEN) REQ(i,DATA_MONEYN) \
    REQ(i,CSR_PREV) REQ(i,CSR_FIRST) REQ(i,CSR_LAST) REQ(i,CSR_ABS) REQ(i,CSR_REL) \
    REQ(i,CSR_MULTI) REQ(i,CON_INBAND) REQ(i,PROTO_TEXT) REQ(i,PROTO_BULK) \
    REQ(i,DATA_SENSITIVITY) REQ(i,DATA_BOUNDARY) REQ(i,PROTO_DYNPROC) REQ(i,DATA_FLTN) \
    REQ(i,DATA_BITN) REQ(i,DATA_INT8) REQ(i,WIDETABLE) \
    REQ(i,DATA_UINT2) REQ(i,DATA_UINT4) REQ(i,DATA_UINT8) REQ(i,DATA_UINTN) REQ(i,LARGEIDENT) \
    REQ(i,SRVPKTSIZE) REQ(i,DATA_DATE) REQ(i,DATA_TIME) REQ(i,DATA_BIGTIME) REQ(i,DATA_BIGDATETIME)
    -
    -
    -

    Function Documentation

    - -

    § tds_alloc_dynamic()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSDYNAMIC * tds_alloc_dynamic (TDSCONNECTIONconn,
    const char * id 
    )
    -
    - -

    Allocate a dynamic statement.

    -
    Parameters
    - - - -
    connthe connection within which to allocate the statement.
    ida character label identifying the statement.
    -
    -
    -
    Returns
    a pointer to the allocated structure (NULL on failure).
    -

    tds_alloc_dynamic is used to implement placeholder code under TDS 5.0

    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_alloc_param_data()

    - -
    -
    - - - - - - - - -
    void* tds_alloc_param_data (TDSCOLUMNcurparam)
    -
    - -

    Allocate data for a parameter.

    -
    Parameters
    - - -
    curparamparameter to retrieve size information
    -
    -
    -
    Returns
    NULL on failure or new data
    - -
    -
    - -

    § tds_alloc_param_result()

    - -
    -
    - - - - - - - - -
    TDSPARAMINFO * tds_alloc_param_result (TDSPARAMINFOold_param)
    -
    - -

    Adds a output parameter to TDSPARAMINFO.

    -
    Parameters
    - - -
    old_parama pointer to the TDSPARAMINFO structure containing the current set of output parameter, or NULL if none exists.
    -
    -
    -
    Returns
    a pointer to the new TDSPARAMINFO structure.
    -

    tds_alloc_param_result() works a bit differently than the other alloc result functions. Output parameters come in individually with no total number given in advance, so we simply call this func every time with get a TDS_PARAM_TOKEN and let it realloc the columns struct one bigger. tds_free_all_results() usually cleans up after us.

    - -
    -
    - -

    § tds_free_input_params()

    - -
    -
    - - - - - - - - -
    void tds_free_input_params (TDSDYNAMICdyn)
    -
    - -

    Frees all allocated input parameters of a dynamic statement.

    -
    Parameters
    - - -
    dynthe dynamic statement whose input parameter are to be freed
    -
    -
    -

    tds_free_input_params frees all parameters for the give dynamic statement

    - -
    -
    - -

    § tds_get_dynid()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static char* tds_get_dynid (TDSCONNECTIONconn,
    char * id 
    )
    -
    -static
    -
    - -

    Get an id for dynamic query based on TDS information.

    -
    Parameters
    - - -
    connstate information for the connection and the TDS protocol
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_init_login()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSLOGIN* tds_init_login (TDSLOGINlogin,
    TDSLOCALElocale 
    )
    -
    - -

    Initialize login structure with locale information and other stuff for connection.

    -
    Parameters
    - - -
    localelocale information (copied to configuration information)
    -
    -
    -
    Returns
    login structure or NULL if initialization error
    - -
    -
    - -

    § tds_realloc()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void* tds_realloc (void ** pp,
    size_t new_size 
    )
    -
    - -

    Reallocate a pointer and update it if success.

    -
    Parameters
    - - - -
    pppointer to pointer to be reallocated
    new_sizenew size to be allocated
    -
    -
    -
    Returns
    new pointer allocated, NULL on failure
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_release_dynamic()

    - -
    -
    - - - - - - - - -
    void tds_release_dynamic (TDSDYNAMIC ** pdyn)
    -
    - -

    Frees dynamic statement.

    -
    Parameters
    - - -
    pdynpointer to dynamic statement to be freed.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    -

    Variable Documentation

    - -

    § defaultcaps

    - -
    -
    - - - - - -
    - - - - -
    const TDS_CAPABILITIES defaultcaps
    -
    -static
    -
    -Initial value:
    = { {
    { 1, 14, { REQB(13), REQB(12), REQB(11), REQB(10), REQB(9), REQB(8), REQB(7),
    REQB(6), REQB(5), REQB(4), REQB(3), REQB(2), REQB(1), REQB(0) } },
    { 2, 14, { RESB(13), RESB(12), RESB(11), RESB(10), RESB(9), RESB(8), RESB(7),
    RESB(6), RESB(5), RESB(4), RESB(3), RESB(2), RESB(1), RESB(0) } }
    } }
    -
    -
    +

    Functions callable by ODBC client programs.

    diff -Nru freetds-1.1.6/doc/reference/a00553.map freetds-1.2.3/doc/reference/a00553.map --- freetds-1.1.6/doc/reference/a00553.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00553.md5 freetds-1.2.3/doc/reference/a00553.md5 --- freetds-1.1.6/doc/reference/a00553.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -8545e46cfc341ae66623b412ab7286a0 \ No newline at end of file +4ff8469b56dbc3ea1d96ddb7cab14a01 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00553.svg freetds-1.2.3/doc/reference/a00553.svg --- freetds-1.1.6/doc/reference/a00553.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00553.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Memory allocation - - -Node0 - -Memory allocation - + + + +ODBC API + -Node1 - - -LibTDS API + +Node1 + + +ODBC API + + + + + +Node2 + + +ODBC utility - -Node1->Node0 - - + + +Node1->Node2 + + diff -Nru freetds-1.1.6/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map freetds-1.2.3/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -622ba01abbc25af14b4083cf9b604d52 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_needs_unprepare - - -Node42 - -tds_needs_unprepare - - -Node43 - - -tds_deferred_unprepare - - - - -Node42->Node43 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map freetds-1.2.3/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -7428298281815ab1b323ffed39493641 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ - - - - - - -tds_count_placeholders_ucs2le - - -Node24 - -tds_count_placeholders -_ucs2le - - -Node25 - - -tds_next_placeholder -_ucs2le - - - - -Node24->Node25 - - - - -Node26 - - -tds_skip_quoted_ucs2le - - - - -Node25->Node26 - - - - -Node27 - - -tds_skip_comment_ucs2le - - - - -Node25->Node27 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map freetds-1.2.3/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -898b36b622452126a5736cbb2c850ef3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_start_query - - -Node126 - -tds_start_query - - -Node127 - - -tds_start_query_head - - - - -Node126->Node127 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map freetds-1.2.3/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3e2ab952f195e82189a60ac0fcf21ff6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_put_param_as_string - - -Node65 - -tds_put_param_as_string - - -Node66 - - -tds_send_emulated_rpc - - - - -Node65->Node66 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.map freetds-1.2.3/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ef154950761161ee05990d27cc68c3fd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_send_cancel - - -Node89 - -tds_send_cancel - - -Node90 - - -tdsdump_log - - - - -Node89->Node90 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map freetds-1.2.3/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9dc50727034358747b40b466a134bd13 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - -tds_skip_quoted_ucs2le - - -Node123 - -tds_skip_quoted_ucs2le - - -Node124 - - -tds_next_placeholder -_ucs2le - - - - -Node123->Node124 - - - - -Node125 - - -tds_count_placeholders -_ucs2le - - - - -Node124->Node125 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map freetds-1.2.3/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5bbbe5179c1b79c876eba2eff2cf6db8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_quote_and_put - - -Node80 - -tds_quote_and_put - - -Node81 - - -tds_put_string - - - - -Node80->Node81 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map freetds-1.2.3/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6a2025639801f27d4e3f56b1909cb932 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_cursor_check_allocated - - -Node30 - -tds_cursor_check_allocated - - -Node31 - - -tds_deferred_cursor -_dealloc - - - - -Node30->Node31 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.map freetds-1.2.3/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -df9420f137ad971022aa90114eb89d59 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga319d610d59b2cc669b7fe20c793122af_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_put_data_info_length - - -Node62 - -tds_put_data_info_length - - -Node63 - - -tds_put_params - - - - -Node62->Node63 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map freetds-1.2.3/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e32034f34146470bab72c62e64ed9b74 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_submit_execute - - -Node138 - -tds_submit_execute - - -Node139 - - -tdsdump_log - - - - -Node138->Node139 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map freetds-1.2.3/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f7e0b1e1275ae00757aee44edc4de2fe \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_column_declaration - - -Node39 - -tds_get_column_declaration - - -Node40 - - -tds_send_emulated_rpc - - - - -Node39->Node40 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map freetds-1.2.3/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -19ff4f891d7837739fc053ebd2125015 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_deferred_cursor_dealloc - - -Node32 - -tds_deferred_cursor -_dealloc - - -Node33 - - -tds_cursor_check_allocated - - - - -Node32->Node33 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map freetds-1.2.3/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3cb6593be8be699eee38c1be0c6e6785 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_submit_query - - -Node146 - -tds_submit_query - - -Node147 - - -tds_submit_query_params - - - - -Node146->Node147 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map freetds-1.2.3/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2649ae4b42c1b31ad9d78dd5c55e01ae \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_skip_quoted - - -Node118 - -tds_skip_quoted - - -Node119 - - -tds_next_placeholder - - - - -Node118->Node119 - - - - -Node120 - - -tds_count_placeholders - - - - -Node119->Node120 - - - - -Node121 - - -tds_send_emulated_execute - - - - -Node120->Node121 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.map freetds-1.2.3/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c4a243c13f3e76cc1341d45fa2942c8c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_submit_rpc - - -Node157 - -tds_submit_rpc - - -Node158 - - -tds_set_state - - - - -Node157->Node158 - - - - -Node159 - - -tdsdump_log - - - - -Node158->Node159 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.map freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e0c7e13c90b947927069b2b2721df9db \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_next_placeholder - - -Node44 - -tds_next_placeholder - - -Node45 - - -tds_skip_quoted - - - - -Node44->Node45 - - - - -Node46 - - -tds_skip_comment - - - - -Node44->Node46 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.map freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1a35e4b98fb22c73915b55e3a58b97ce \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga6455b2991afbf7da90270787f2059d31_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_next_placeholder - - -Node47 - -tds_next_placeholder - - -Node48 - - -tds_count_placeholders - - - - -Node47->Node48 - - - - -Node49 - - -tds_send_emulated_execute - - - - -Node48->Node49 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.map freetds-1.2.3/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9b82aa63265443e959935ec2512377d8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga737b9fb9971fb425af5c722415ef0eac_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_quote_string - - -Node86 - -tds_quote_string - - -Node87 - - -tds_quote - - - - -Node86->Node87 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.map freetds-1.2.3/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5829ce5f98bf491037eb3382df4ee061 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_quote - - -Node77 - -tds_quote - - -Node78 - - -tds_quote_id - - - - -Node77->Node78 - - - - -Node79 - - -tds_quote_string - - - - -Node77->Node79 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.map freetds-1.2.3/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8eca3b494f149205d64a98b5e4b78194 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_quote_id - - -Node83 - -tds_quote_id - - -Node84 - - -tds_quote - - - - -Node83->Node84 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.map freetds-1.2.3/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f57dd8fad2ee54e80db8e236458c6cbf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_submit_query_params - - -Node150 - -tds_submit_query_params - - -Node151 - - -tds_submit_query - - - - -Node150->Node151 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.map freetds-1.2.3/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e526582a1f7d9b44b3e22542b401648a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga995c9b0fe4aafacc4095d33cd09dba8d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_put_params - - -Node67 - -tds_put_params - - -Node68 - - -tds_put_data_info_length - - - - -Node67->Node68 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map freetds-1.2.3/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map --- freetds-1.1.6/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 freetds-1.2.3/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -930c18269a4ae852cf1028043bad7b9d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg freetds-1.2.3/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_start_query_head - - -Node130 - -tds_start_query_head - - -Node131 - - -tds_start_query - - - - -Node130->Node131 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map freetds-1.2.3/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map --- freetds-1.1.6/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 freetds-1.2.3/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4749bcbe8fb99892f4efda280ad6c374 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg freetds-1.2.3/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_deferred_unprepare - - -Node35 - -tds_deferred_unprepare - - -Node36 - - -tds_needs_unprepare - - - - -Node35->Node36 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.map freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.map --- freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9568b0347af6d327cfd7d6698023b978 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.svg freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -tds_next_placeholder_ucs2le - - -Node50 - -tds_next_placeholder -_ucs2le - - -Node51 - - -tds_skip_quoted_ucs2le - - - - -Node50->Node51 - - - - -Node52 - - -tds_skip_comment_ucs2le - - - - -Node50->Node52 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.map freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.map --- freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6f0821c1cb5c03065ff6181ba273f69f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.svg freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaa823973b74efdf1ff00f340496bff614_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - - -tds_next_placeholder_ucs2le - - -Node53 - -tds_next_placeholder -_ucs2le - - -Node54 - - -tds_count_placeholders -_ucs2le - - - - -Node53->Node54 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map --- freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -728f2319fd120eaa2d5518ba46038d55 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_count_placeholders - - -Node18 - -tds_count_placeholders - - -Node19 - - -tds_next_placeholder - - - - -Node18->Node19 - - - - -Node20 - - -tds_skip_quoted - - - - -Node19->Node20 - - - - -Node21 - - -tds_skip_comment - - - - -Node19->Node21 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map --- freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d54afdd85f9e2e65df002141ea097c17 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_count_placeholders - - -Node22 - -tds_count_placeholders - - -Node23 - - -tds_send_emulated_execute - - - - -Node22->Node23 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map freetds-1.2.3/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map --- freetds-1.1.6/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 freetds-1.2.3/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -41e969777b00d192bab31d017ffaabe1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg freetds-1.2.3/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_skip_comment - - -Node109 - -tds_skip_comment - - -Node110 - - -tds_next_placeholder - - - - -Node109->Node110 - - - - -Node111 - - -tds_count_placeholders - - - - -Node110->Node111 - - - - -Node112 - - -tds_send_emulated_execute - - - - -Node111->Node112 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.map freetds-1.2.3/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.map --- freetds-1.1.6/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 freetds-1.2.3/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3658f5e7af8a1d294702b198217917ca \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg freetds-1.2.3/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - -tds_skip_comment_ucs2le - - -Node114 - -tds_skip_comment_ucs2le - - -Node115 - - -tds_next_placeholder -_ucs2le - - - - -Node114->Node115 - - - - -Node116 - - -tds_count_placeholders -_ucs2le - - - - -Node115->Node116 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.map freetds-1.2.3/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.map --- freetds-1.1.6/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.md5 freetds-1.2.3/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2de04566c49b107a80f6fdb81875d0d2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.svg freetds-1.2.3/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gad695defcbf663b0023851a198206a772_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_submit_queryf - - -Node153 - -tds_submit_queryf - - -Node154 - - -tds_writetext_start - - - - -Node153->Node154 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.map freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.map --- freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f174b9a0f7635022e425e2327b75e15b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_query_flush_packet - - -Node70 - -tds_query_flush_packet - - -Node71 - - -tds_flush_packet - - - - -Node70->Node71 - - - - -Node72 - - -tds_set_state - - - - -Node70->Node72 - - - - -Node73 - - -tdsdump_log - - - - -Node72->Node73 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.map freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.map --- freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8e9848538133f3289c76326b66dd5d2d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg --- freetds-1.1.6/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_query_flush_packet - - -Node74 - -tds_query_flush_packet - - -Node75 - - -tds_send_emulated_rpc - - - - -Node74->Node75 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.map freetds-1.2.3/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.map --- freetds-1.1.6/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 freetds-1.2.3/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3ec57f296aff437cbb1731b5dfcf39bf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg freetds-1.2.3/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_submit_optioncmd - - -Node141 - -tds_submit_optioncmd - - -Node142 - - -tdsdump_log - - - - -Node141->Node142 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.map freetds-1.2.3/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.map --- freetds-1.1.6/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.md5 freetds-1.2.3/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d475767dfc1a18a08757240a3862b2a4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.svg freetds-1.2.3/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gaf614c75ea8f7ad411e53dac0e2f91be4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,148 +0,0 @@ - - - - - - -tds_send_emulated_rpc - - -Node92 - -tds_send_emulated_rpc - - -Node93 - - -tds_get_column_declaration - - - - -Node92->Node93 - - - - -Node94 - - -tds_put_string - - - - -Node92->Node94 - - - - -Node95 - - -tds_put_param_as_string - - - - -Node92->Node95 - - - - -Node96 - - -tds_dstr_isempty - - - - -Node92->Node96 - - - - -Node97 - - -tds_dstr_cstr - - - - -Node92->Node97 - - - - -Node98 - - -tds_dstr_len - - - - -Node92->Node98 - - - - -Node99 - - -tds_query_flush_packet - - - - -Node92->Node99 - - - - -Node100 - - -tds_flush_packet - - - - -Node99->Node100 - - - - -Node101 - - -tds_set_state - - - - -Node99->Node101 - - - - -Node102 - - -tdsdump_log - - - - -Node101->Node102 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.map freetds-1.2.3/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.map --- freetds-1.1.6/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.md5 freetds-1.2.3/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.md5 --- freetds-1.1.6/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5ac2f4af673759d6f53baafb3a0ec69c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.svg freetds-1.2.3/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.svg --- freetds-1.1.6/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554_gafd74652c4722ddce4d642cc4209449d4_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_put_data_info - - -Node57 - -tds_put_data_info - - -Node58 - - -tds_dstr_len - - - - -Node57->Node58 - - - - -Node59 - - -tdsdump_log - - - - -Node57->Node59 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00554.html freetds-1.2.3/doc/reference/a00554.html --- freetds-1.1.6/doc/reference/a00554.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Query +FreeTDS API: ODBC utility @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,563 +63,139 @@
    -
    +
    ODBC utility
    -

    Function to handle query. +

    Functions called within ODBC driver. More...

    -Collaboration diagram for Query:
    +Collaboration diagram for ODBC utility:
    -
    +
    -
    - - - -

    Macros

    #define TDS_PUT_N_AS_UCS2(tds, s)
     Utility to convert a constant ascii string to ucs2 and send to server. More...
     
    - - - + + + + + + + +

    -Enumerations

    enum  { MUL_STARTED = 1 - }
     
    +#define C_TYPES
     
    +#define SQL_TYPES
     
    +#define TYPE_NORMAL_SQL_C_GUID
     
    +#define TYPE_NORMAL_SQL_GUID
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Functions

    static char * tds5_fix_dot_query (const char *query, size_t *query_len, TDSPARAMINFO *params)
     Substitute ?-style placeholders with named (@param) ones. More...
     
    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. More...
     
    static char * tds7_build_param_def_from_params (TDSSOCKET *tds, const char *query, size_t query_len, TDSPARAMINFO *params, size_t *out_len)
     Return string with parameters definition, useful for TDS7+. More...
     
    static char * tds7_build_param_def_from_query (TDSSOCKET *tds, const char *converted_query, size_t converted_query_len, TDSPARAMINFO *params, size_t *out_len)
     Return string with parameters definition, useful for TDS7+. More...
     
    -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_params_definition (TDSSOCKET *tds, const char *param_definition, size_t param_length)
     Send parameters definition to server. More...
     
    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) More...
     
    static TDSRET tds7_send_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Send dynamic request on TDS 7+ to be executed. More...
     
    static size_t tds_ascii_to_ucs2 (char *buffer, const char *buf)
     Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not contains the NUL. More...
     
    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. More...
     
    int tds_count_placeholders (const char *query)
     Count the number of placeholders ('?') in a query. More...
     
    static int tds_count_placeholders_ucs2le (const char *query, const char *query_end)
     Count the number of placeholders ('?') in a query. More...
     
    static bool tds_cursor_check_allocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
     Check if a cursor is allocated into the server. More...
     
    -TDSRET tds_cursor_close (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_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_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send)
     
    -TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
     
    -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_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
     Deallocate cursor on idle. More...
     
    TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     Unprepare dynamic on idle. More...
     
    -TDSRET tds_disconnect (TDSSOCKET *tds)
     
    -size_t tds_fix_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Get column size for wire.
     
    TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
     Return declaration for column (like "varchar(20)"). More...
     
    -TDSRET tds_multiple_done (TDSSOCKET *tds, TDSMULTIPLE *multiple)
     
    -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)
     Check if dynamic request must be unprepared. More...
     
    const char * tds_next_placeholder (const char *start)
     Get position of next placeholder. More...
     
    static const char * tds_next_placeholder_ucs2le (const char *start, const char *end, int named)
     Found the next placeholder (? or @param) in a string. More...
     
    static TDSRET tds_put_data (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Write data to wire. More...
     
    static TDSRET tds_put_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int flags)
     Put data information to wire. More...
     
    static int tds_put_data_info_length (TDSSOCKET *tds, TDSCOLUMN *curcol, int flags)
     Calc information length in bytes (useful for calculating full packet length) More...
     
    static TDSRET tds_put_param_as_string (TDSSOCKET *tds, TDSPARAMINFO *params, int n)
     Send a parameter to server. More...
     
    static TDSRET tds_put_params (TDSSOCKET *tds, TDSPARAMINFO *info, int flags)
     Send parameters to server. More...
     
    static TDSRET tds_query_flush_packet (TDSSOCKET *tds)
     Flush query packet. More...
     
    static size_t tds_quote (TDSSOCKET *tds, char *buffer, char quoting, const char *id, size_t len)
     Quote a string properly. More...
     
    static void tds_quote_and_put (TDSSOCKET *tds, const char *s, const char *end)
     Send a string to server while quoting it. More...
     
    size_t tds_quote_id (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
     Quote an id. More...
     
    size_t tds_quote_string (TDSSOCKET *tds, char *buffer, const char *str, int len)
     Quote a string. More...
     
    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. More...
     
    -static TDSRET tds_send_emulated_execute (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)
     Emulate prepared execute traslating to a normal language.
     
    static TDSRET tds_send_emulated_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params)
     Send RPC as string query. More...
     
    static void tds_set_cur_cursor (TDSSOCKET *tds, TDSCURSOR *cursor)
     Set current cursor. More...
     
    void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Set current dynamic. More...
     
    const char * tds_skip_comment (const char *s)
     Skip a comment in a query. More...
     
    static const char * tds_skip_comment_ucs2le (const char *s, const char *end)
     Skip a comment in a query. More...
     
    const char * tds_skip_quoted (const char *s)
     Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) More...
     
    static const char * tds_skip_quoted_ucs2le (const char *s, const char *end)
     Return pointer to end of a quoted string. More...
     
    void tds_start_query (TDSSOCKET *tds, unsigned char packet_type)
     Start query packet of a given type. More...
     
    static TDSRET tds_start_query_head (TDSSOCKET *tds, unsigned char packet_type, TDSHEADERS *head)
     Start query packet of a given type. More...
     
    TDSRET tds_submit_begin_tran (TDSSOCKET *tds)
     Send a rollback request. More...
     
    TDSRET tds_submit_commit (TDSSOCKET *tds, int cont)
     Send a commit request. More...
     
    TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
     Submit a prepared query with parameters. More...
     
    TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Sends a previously prepared dynamic statement to the server. More...
     
    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. More...
     
    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. More...
     
    TDSRET tds_submit_query (TDSSOCKET *tds, const char *query)
     Sends a language string to the database server for processing. More...
     
    TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
     Sends a language string to the database server for processing. More...
     
    TDSRET tds_submit_queryf (TDSSOCKET *tds, const char *queryf,...)
     Format and submit a query. More...
     
    TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont)
     Send a rollback request. More...
     
    TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
     Calls a RPC from server. More...
     
    TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Send a unprepare request for a prepared query. More...
     
    - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    -Variables

    -static const TDSCONTEXT empty_ctx = {0}
     
    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. More...
     
    +void odbc_convert_err_set (struct _sql_errors *errs, TDS_INT err)
     
    +DSTRodbc_dstr_copy (TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR *str)
     
    +SQLSMALLINT odbc_get_concise_c_type (SQLSMALLINT type, SQLSMALLINT interval)
     
    +SQLSMALLINT odbc_get_concise_sql_type (SQLSMALLINT type, SQLSMALLINT interval)
     
    +SQLLEN odbc_get_octet_len (int c_type, const struct _drecord *drec)
     
    +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.
     
    +unsigned int odbc_get_string_size (int size, const ODBC_CHAR *str _WIDE)
     
    +void odbc_rdbms_version (TDSSOCKET *tds, char *pversion_string)
     Returns the version of the RDBMS in the ODBC format.
     
    SQLRETURN odbc_set_concise_c_type (SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
     Set concise type and all cascading field. More...
     
    SQLRETURN odbc_set_concise_sql_type (SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
     Set concise type and all cascading field. More...
     
    +void odbc_set_return_params (struct _hstmt *stmt, unsigned int n_row)
     
    +void odbc_set_return_status (struct _hstmt *stmt, unsigned int n_row)
     
    +int odbc_set_stmt_query (TDS_STMT *stmt, const ODBC_CHAR *sql, int sql_len _WIDE)
     
    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. More...
     
    +int odbc_sql_to_c_type_default (int sql_type)
     
    +TDS_SERVER_TYPE odbc_sql_to_server_type (TDSCONNECTION *conn, int sql_type, int sql_unsigned)
     

    Detailed Description

    -

    Function to handle query.

    -

    Macro Definition Documentation

    - -

    § TDS_PUT_N_AS_UCS2

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    #define TDS_PUT_N_AS_UCS2( tds,
     
    )
    -
    -Value:
    do { \
    char buffer[sizeof(s)*2-2]; \
    tds_put_smallint(tds, sizeof(buffer)/2); \
    tds_put_n(tds, buffer, tds_ascii_to_ucs2(buffer, s)); \
    } while(0)
    static size_t tds_ascii_to_ucs2(char *buffer, const char *buf)
    Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not co...
    Definition: query.c:88
    -
    -

    Utility to convert a constant ascii string to ucs2 and send to server.

    -

    Used to send internal store procedure names to server.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    sconstanst string to send
    -
    -
    - -
    -
    +

    Functions called within ODBC driver.

    Function Documentation

    - -

    § tds5_fix_dot_query()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static char* tds5_fix_dot_query (const char * query,
    size_t * query_len,
    TDSPARAMINFOparams 
    )
    -
    -static
    -
    - -

    Substitute ?-style placeholders with named (@param) ones.

    -

    Sybase does not support ?-style placeholders so convert them. Also the function replace parameter names.

    Parameters
    - - - - -
    queryquery string
    [in,out]query_lenpointer to query length. On input length of input query, on output length of output query
    paramsparameters to send to server
    -
    -
    -
    Returns
    new query or NULL on error
    - -
    -
    - -

    § tds71_submit_prepexec()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds71_submit_prepexec (TDSSOCKETtds,
    const char * query,
    const char * id,
    TDSDYNAMIC ** dyn_out,
    TDSPARAMINFOparams 
    )
    -
    - -

    Creates a temporary stored procedure in the server and execute it.

    -
    Parameters
    - - - - - - -
    tdsstate information for the socket and the TDS protocol
    querylanguage query with given placeholders ('?')
    idstring to identify the dynamic query. Pass NULL for automatic generation.
    dyn_outwill receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed. Can be NULL.
    paramsparameters to use. It can be NULL even if parameters are present.
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    - -
    -
    - -

    § tds7_build_param_def_from_params()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static char * tds7_build_param_def_from_params (TDSSOCKETtds,
    const char * query,
    size_t query_len,
    TDSPARAMINFOparams,
    size_t * out_len 
    )
    -
    -static
    -
    - -

    Return string with parameters definition, useful for TDS7+.

    -

    Looks like "@P1 INT, @P2 VARCHAR(100)"

    Parameters
    - - - - - - -
    tdsstate information for the socket and the TDS protocol
    queryquery to send to server encoded in ucs2le
    query_lenquery length in bytes
    paramsparameters to build declaration
    out_lenlength output buffer in bytes
    -
    -
    -
    Returns
    allocated and filled string or NULL on failure (encoded in ucs2le)
    - -
    -
    - -

    § tds7_build_param_def_from_query()

    + +

    ◆ odbc_c_to_server_type()

    - - - - - -
    - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - -
    static char * tds7_build_param_def_from_query TDS_SERVER_TYPE odbc_c_to_server_type (TDSSOCKETtds,
    const char * converted_query,
    size_t converted_query_len,
    TDSPARAMINFOparams,
    size_t * out_len 
    int c_type) )
    -
    -static
    -

    Return string with parameters definition, useful for TDS7+.

    -

    Looks like "@P1 INT, @P2 VARCHAR(100)"

    Parameters
    - - - - - - -
    tdsstate information for the socket and the TDS protocol
    converted_queryquery to send to server in ucs2le encoding
    converted_query_lenquery length in bytes
    paramsparameters to build declaration
    out_lenlength output buffer in bytes
    -
    -
    -
    Returns
    allocated and filled string or NULL on failure (encoded in ucs2le)
    +

    Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to the SQL_C_* type.

    +

    This function can return XSYBNVARCHAR or SYBUINTx even if server do not support it

    - -

    § tds7_put_params_definition()

    + +

    ◆ odbc_set_concise_c_type()

    - - - - - -
    - + - - + + - - + + - - + + @@ -624,52 +203,43 @@
    static void tds7_put_params_definition SQLRETURN odbc_set_concise_c_type (TDSSOCKETtds, SQLSMALLINT concise_type,
    const char * param_definition, struct _drecorddrec,
    size_t param_length int check_only 
    -
    -static
    -

    Send parameters definition to server.

    -
    See also
    tds7_build_param_def_from_query, tds7_build_param_def_from_params
    +

    Set concise type and all cascading field.

    Parameters
    - - - + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    param_definitionparameter definition string. Encoded in ucs2le
    param_lengthparameter definition string length in bytes
    concise_typeconcise type to set
    drecrecord to set. NULL to test error without setting
    check_onlyit <>0 (true) check only, do not set type
    - -

    § tds7_put_query_params()

    + +

    ◆ odbc_set_concise_sql_type()

    - - - - - -
    - + - - + + - - + + - - + + @@ -677,133 +247,49 @@
    static void tds7_put_query_params SQLRETURN odbc_set_concise_sql_type (TDSSOCKETtds, SQLSMALLINT concise_type,
    const char * query, struct _drecorddrec,
    size_t query_len int check_only 
    -
    -static
    -

    Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec)

    +

    Set concise type and all cascading field.

    Parameters
    - - - + + +
    tdsstate information for the socket and the TDS protocol
    queryquery (encoded in ucs2le)
    query_lenquery length in bytes
    concise_typeconcise type to set
    drecrecord to set. NULL to test error without setting
    check_onlyit <>0 (true) check only, do not set type
    - -

    § tds7_send_execute()

    + +

    ◆ odbc_set_string_flag()

    - - - - - -
    - + - - + + - - - - - - - - -
    static TDSRET tds7_send_execute SQLRETURN odbc_set_string_flag (TDSSOCKETtds, TDS_DBCdbc,
    TDSDYNAMICdyn 
    )
    -
    -static
    -
    - -

    Send dynamic request on TDS 7+ to be executed.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic query to execute
    -
    -
    - -
    -
    - -

    § tds_ascii_to_ucs2()

    - -
    -
    - - - - - -
    - - - - - + - - - - - - - - -
    static size_t tds_ascii_to_ucs2 (char * SQLPOINTER  buffer,
    const char * buf 
    )
    -
    -static
    -
    - -

    Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not contains the NUL.

    -
    Parameters
    - - - -
    bufferbuffer where to store output
    bufstring to write
    -
    -
    -
    Returns
    bytes written
    - -
    -
    - -

    § tds_convert_string()

    - -
    -
    - - - - - - + + - - + + @@ -820,2026 +306,8 @@ - - - - - - - - -
    const char* tds_convert_string (TDSSOCKETtds, SQLINTEGER cbBuffer,
    TDSICONVchar_conv, void FAR * pcbBuffer,
    size_t * out_len 
    )
    -
    - -

    Convert a string in an allocated buffer.

    -
    Parameters
    - - - - - - -
    tdsstate information for the socket and the TDS protocol
    char_convinformation about the encodings involved
    sinput string
    leninput string length (in bytes), -1 for NUL-terminated
    out_lenreturned output length (in bytes)
    -
    -
    -
    Returns
    string allocated (or input pointer if no conversion required) or NULL if error
    - -
    -
    - -

    § tds_count_placeholders()

    - -
    -
    - - - - - - - - -
    int tds_count_placeholders (const char * query)
    -
    - -

    Count the number of placeholders ('?') in a query.

    -
    Parameters
    - - -
    queryquery string
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_count_placeholders_ucs2le()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static int tds_count_placeholders_ucs2le (const char * query,
    const char * query_end 
    )
    -
    -static
    -
    - -

    Count the number of placeholders ('?') in a query.

    -
    Parameters
    - - - -
    queryquery encoded in ucs2le
    query_endend of query
    -
    -
    -
    Returns
    number of placeholders found
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_cursor_check_allocated()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static bool tds_cursor_check_allocated (TDSCONNECTIONconn,
    TDSCURSORcursor 
    )
    -
    -static
    -
    - -

    Check if a cursor is allocated into the server.

    -

    If is not allocated it assures is removed from the connection list

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    Returns
    true if allocated false otherwise
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_deferred_cursor_dealloc()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSRET tds_deferred_cursor_dealloc (TDSCONNECTIONconn,
    TDSCURSORcursor 
    )
    -
    - -

    Deallocate cursor on idle.

    -

    This let libTDS close the cursor when possible.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    cursorcursor to close
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_deferred_unprepare()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSRET tds_deferred_unprepare (TDSCONNECTIONconn,
    TDSDYNAMICdyn 
    )
    -
    - -

    Unprepare dynamic on idle.

    -

    This let libTDS close the prepared statement when possible.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic request to close
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_get_column_declaration()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_get_column_declaration (TDSSOCKETtds,
    TDSCOLUMNcurcol,
    char * out 
    )
    -
    - -

    Return declaration for column (like "varchar(20)").

    -

    This depends on:

      -
    • on_server.column_type
    • -
    • varint_size (for varchar(max) distinction)
    • -
    • column_size
    • -
    • precision/scale (numeric)
    • -
    -
    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn
    outbuffer to hold declaration
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_needs_unprepare()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int tds_needs_unprepare (TDSCONNECTIONconn,
    TDSDYNAMICdyn 
    )
    -
    - -

    Check if dynamic request must be unprepared.

    -

    Depending on status and protocol version request should be unprepared or not.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic request to check
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_next_placeholder()

    - -
    -
    - - - - - - - - -
    const char* tds_next_placeholder (const char * start)
    -
    - -

    Get position of next placeholder.

    -
    Parameters
    - - -
    startpointer to part of query to search
    -
    -
    -
    Returns
    next placeholder or NULL if not found
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_next_placeholder_ucs2le()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static const char* tds_next_placeholder_ucs2le (const char * start,
    const char * end,
    int named 
    )
    -
    -static
    -
    - -

    Found the next placeholder (? or @param) in a string.

    -

    String must be encoded in ucs2le.

    Parameters
    - - - - -
    startstart of the string (or part of it)
    endend of string
    namedtrue if named parameters should be returned
    -
    -
    -
    Returns
    either start of next placeholder or end if not found
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_put_data()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_put_data (TDSSOCKETtds,
    TDSCOLUMNcurcol 
    )
    -
    -inlinestatic
    -
    - -

    Write data to wire.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn where store column information
    -
    -
    -
    Returns
    TDS_FAIL on error or TDS_SUCCESS
    - -
    -
    - -

    § tds_put_data_info()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_put_data_info (TDSSOCKETtds,
    TDSCOLUMNcurcol,
    int flags 
    )
    -
    -static
    -
    - -

    Put data information to wire.

    -
    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    curcolcolumn where to store information
    flagsbit flags on how to send data (use TDS_PUT_DATA_USE_NAME for use name information)
    -
    -
    -
    Returns
    TDS_SUCCESS or TDS_FAIL
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_put_data_info_length()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static int tds_put_data_info_length (TDSSOCKETtds,
    TDSCOLUMNcurcol,
    int flags 
    )
    -
    -static
    -
    - -

    Calc information length in bytes (useful for calculating full packet length)

    -
    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    curcolcolumn where to store information
    flagsbit flags on how to send data (use TDS_PUT_DATA_USE_NAME for use name information)
    -
    -
    -
    Returns
    data info length
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_put_param_as_string()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_put_param_as_string (TDSSOCKETtds,
    TDSPARAMINFOparams,
    int n 
    )
    -
    -static
    -
    - -

    Send a parameter to server.

    -

    Parameters are converted to string and sent to server.

    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    paramsparameters structure
    nnumber of parameter to send
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_put_params()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_put_params (TDSSOCKETtds,
    TDSPARAMINFOinfo,
    int flags 
    )
    -
    -static
    -
    - -

    Send parameters to server.

    -
    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    infoparameters to send
    flags0 or TDS_PUT_DATA_USE_NAME
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_query_flush_packet()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_query_flush_packet (TDSSOCKETtds)
    -
    -static
    -
    - -

    Flush query packet.

    -

    Used at the end of packet write to really send packet to server. This also changes the state to TDS_PENDING.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_quote()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static size_t tds_quote (TDSSOCKETtds,
    char * buffer,
    char quoting,
    const char * id,
    size_t len 
    )
    -
    -static
    -
    - -

    Quote a string properly.

    -

    Output string is always NUL-terminated

    Parameters
    - - - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    bufferoutput buffer. If NULL function will just return required bytes
    quotingquote character (should be one of '\'', '"', ']')
    idstring to quote
    lenlength of string to quote
    -
    -
    -
    Returns
    size of output string
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_quote_and_put()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static void tds_quote_and_put (TDSSOCKETtds,
    const char * s,
    const char * end 
    )
    -
    -static
    -
    - -

    Send a string to server while quoting it.

    -
    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    sstring start
    endstring end
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_quote_id()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    size_t tds_quote_id (TDSSOCKETtds,
    char * buffer,
    const char * id,
    int idlen 
    )
    -
    - -

    Quote an id.

    -
    Parameters
    - - - - - -
    tdsstate information for the socket and the TDS protocol
    bufferbuffer to store quoted id. If NULL do not write anything (useful to compute quote length)
    idid to quote
    idlenid length (< 0 for NUL terminated)
    -
    -
    -
    Returns
    written chars (not including needed terminator)
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_quote_string()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    size_t tds_quote_string (TDSSOCKETtds,
    char * buffer,
    const char * str,
    int len 
    )
    -
    - -

    Quote a string.

    -
    Parameters
    - - - - - -
    tdsstate information for the socket and the TDS protocol
    bufferbuffer to store quoted id. If NULL do not write anything (useful to compute quote length)
    strstring to quote (not necessary NUL-terminated)
    lenlength of string (-1 for NUL-terminated)
    -
    -
    -
    Returns
    written chars (not including needed terminator)
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_send_cancel()

    - -
    -
    - - - - - - - - -
    TDSRET tds_send_cancel (TDSSOCKETtds)
    -
    - -

    tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.

    -
    Parameters
    - - -
    tdsstate information for the socket and the TDS protocol
    -
    -
    -
    Remarks
    tcp will either deliver the packet or time out. (TIME_WAIT determines how long it waits between retries.)
    -

    On sending the cancel, we may get EAGAIN. We then select(2) until we know either 1) it succeeded or 2) it didn't. On failure, close the socket, tell the app, and fail the function.

    -

    On success, we read(2) and wait for a reply with select(2). If we get one, great. If the client's timeout expires, we tell him, but all we can do is wait some more or give up and close the connection. If he tells us to cancel again, we wait some more.

    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_send_emulated_rpc()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_send_emulated_rpc (TDSSOCKETtds,
    const char * rpc_name,
    TDSPARAMINFOparams 
    )
    -
    -static
    -
    - -

    Send RPC as string query.

    -

    This function is used on old protocol which does not support RPC queries.

    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    rpc_namename of RPC to invoke
    paramsparameters to send to server
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_set_cur_cursor()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static void tds_set_cur_cursor (TDSSOCKETtds,
    TDSCURSORcursor 
    )
    -
    -inlinestatic
    -
    - -

    Set current cursor.

    -

    Current cursor is the one will receive output from server.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    cursorcursor to set as current
    -
    -
    - -
    -
    - -

    § tds_set_cur_dyn()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void tds_set_cur_dyn (TDSSOCKETtds,
    TDSDYNAMICdyn 
    )
    -
    - -

    Set current dynamic.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic to set
    -
    -
    - -
    -
    - -

    § tds_skip_comment()

    - -
    -
    - - - - - - - - -
    const char* tds_skip_comment (const char * s)
    -
    - -

    Skip a comment in a query.

    -
    Parameters
    - - -
    sstart of the string (or part of it)
    -
    -
    -
    Returns
    pointer to end of comment
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_skip_comment_ucs2le()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static const char* tds_skip_comment_ucs2le (const char * s,
    const char * end 
    )
    -
    -static
    -
    - -

    Skip a comment in a query.

    -
    Parameters
    - - - -
    sstart of the string (or part of it). Encoded in ucs2le
    endend of string
    -
    -
    -
    Returns
    pointer to end of comment
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_skip_quoted()

    - -
    -
    - - - - - - - - -
    const char* tds_skip_quoted (const char * s)
    -
    - -

    Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])

    -
    Parameters
    - - -
    spointer to first quoting character.
    Should be ', " or [. 
    -
    -
    -
    Returns
    character after quoting
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_skip_quoted_ucs2le()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static const char* tds_skip_quoted_ucs2le (const char * s,
    const char * end 
    )
    -
    -static
    -
    - -

    Return pointer to end of a quoted string.

    -

    At the beginning pointer should point to delimiter.

    Parameters
    - - - -
    sstart of string to skip encoded in ucs2le
    endpointer to end of string
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_start_query()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void tds_start_query (TDSSOCKETtds,
    unsigned char packet_type 
    )
    -
    - -

    Start query packet of a given type.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    packet_typepacket type
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_start_query_head()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_start_query_head (TDSSOCKETtds,
    unsigned char packet_type,
    TDSHEADERShead 
    )
    -
    -static
    -
    - -

    Start query packet of a given type.

    -
    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    packet_typepacket type
    headextra information to put in a TDS7 header
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_begin_tran()

    - -
    -
    - - - - - - - - -
    TDSRET tds_submit_begin_tran (TDSSOCKETtds)
    -
    - -

    Send a rollback request.

    -

    TDS 7.2+ need this in order to handle transactions correctly if MARS is used.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    See also
    tds_submit_commit, tds_submit_rollback
    - -
    -
    - -

    § tds_submit_commit()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_commit (TDSSOCKETtds,
    int cont 
    )
    -
    - -

    Send a commit request.

    -

    TDS 7.2+ need this in order to handle transactions correctly if MARS is used.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    conttrue to start a new transaction
    -
    -
    -
    See also
    tds_submit_rollback, tds_submit_begin_tran
    - -
    -
    - -

    § tds_submit_execdirect()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_execdirect (TDSSOCKETtds,
    const char * query,
    TDSPARAMINFOparams,
    TDSHEADERShead 
    )
    -
    - -

    Submit a prepared query with parameters.

    -
    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    querylanguage query with given placeholders (?)
    paramsparameters to send
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    - -
    -
    - -

    § tds_submit_execute()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_execute (TDSSOCKETtds,
    TDSDYNAMICdyn 
    )
    -
    - -

    Sends a previously prepared dynamic statement to the server.

    -
    Parameters
    - - - -
    tdsstate information for the socket and the TDS protocol
    dyndynamic proc to execute. Must build from same tds.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_optioncmd()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_optioncmd (TDSSOCKETtds,
    TDS_OPTION_CMD command,
    TDS_OPTION option,
    TDS_OPTION_ARGparam,
    TDS_INT param_size 
    )
    -
    - -

    Send option commands to server.

    -

    Option commands are used to change server options.

    Parameters
    - - - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    commandcommand type.
    optionoption to set/get.
    paramparameter value
    param_sizelength of parameter value in bytes
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_prepare()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_prepare (TDSSOCKETtds,
    const char * query,
    const char * id,
    TDSDYNAMIC ** dyn_out,
    TDSPARAMINFOparams 
    )
    -
    - -

    Creates a temporary stored procedure in the server.

    -

    Under TDS 4.2 dynamic statements are emulated building sql command. TDS 5 does not uses parameters type. TDS 7+ uses parameter types to prepare the query. You should prepare again the query if parameters changes.

    Parameters
    - - - - - - -
    tdsstate information for the socket and the TDS protocol
    querylanguage query with given placeholders (?)
    idstring to identify the dynamic query. Pass NULL for automatic generation.
    dyn_outwill receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed, Can be NULL.
    paramsparameters to use. It can be NULL even if parameters are present. Used only for TDS7+
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    - -
    -
    - -

    § tds_submit_query()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_query (TDSSOCKETtds,
    const char * query 
    )
    -
    - -

    Sends a language string to the database server for processing.

    -

    TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    querylanguage query to submit
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_query_params()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_query_params (TDSSOCKETtds,
    const char * query,
    TDSPARAMINFOparams,
    TDSHEADERShead 
    )
    -
    - -

    Sends a language string to the database server for processing.

    -

    TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f.

    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    querylanguage query to submit
    paramsparameters of query
    -
    -
    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_queryf()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_queryf (TDSSOCKETtds,
    const char * queryf,
     ... 
    )
    -
    - -

    Format and submit a query.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    queryfquery format. printf like expansion is performed on this query.
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_rollback()

    - -
    -
    - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_rollback (TDSSOCKETtds,
    int cont 
    )
    -
    - -

    Send a rollback request.

    -

    TDS 7.2+ need this in order to handle transactions correctly if MARS is used.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    conttrue to start a new transaction
    -
    -
    -
    See also
    tds_submit_begin_tran, tds_submit_commit
    - -
    -
    - -

    § tds_submit_rpc()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_submit_rpc (TDSSOCKETtds,
    const char * rpc_name,
    TDSPARAMINFOparams,
    TDSHEADERShead 
    )
    -
    - -

    Calls a RPC from server.

    -

    Output parameters will be stored in tds->param_info.

    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    rpc_namename of RPC
    paramsparameters informations. NULL for no parameters
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_submit_unprepare()

    - -
    -
    - - - - - - - - - - - - + @@ -2849,15 +317,19 @@
    TDSRET tds_submit_unprepare (TDSSOCKETtds,
    TDSDYNAMICdyn flag 
    -

    Send a unprepare request for a prepared query.

    +

    Copy a string to client setting size according to ODBC convenction.

    Parameters
    - - + + + + + + +
    tdsstate information for the socket and the TDS protocol
    dyndynamic query
    dbcdatabase connection. Can be NULL
    bufferclient buffer
    cbBufferclient buffer size (in bytes)
    pcbBufferpointer to SQLSMALLINT to hold string size
    sstring to copy
    lenlen of string to copy. <0 null terminated
    flagset of flags. 0x01 wide string in buffer 0x10 pcbBuffer is SQLINTEGER otherwise SQLSMALLINT 0x20 size is in bytes, not characters
    -
    Returns
    TDS_SUCCESS or TDS_FAIL
    @@ -2866,7 +338,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00554.map freetds-1.2.3/doc/reference/a00554.map --- freetds-1.1.6/doc/reference/a00554.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00554.md5 freetds-1.2.3/doc/reference/a00554.md5 --- freetds-1.1.6/doc/reference/a00554.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -72a78e34f7742bed34e1cd8c98021dcd \ No newline at end of file +ea398964e4c6d69ab5b8b1fb699514fa \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00554.svg freetds-1.2.3/doc/reference/a00554.svg --- freetds-1.1.6/doc/reference/a00554.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00554.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Query - - -Node0 - -Query + + + +ODBC utility + + + +Node2 + + +ODBC API + + -Node1 - - -LibTDS API + +Node1 + + +ODBC utility - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4f5a4b492dcd6e1ce2dccec566766ce3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_byte - - -Node27 - -tds_get_byte - - -Node28 - - -tds_read_packet - - - - -Node27->Node28 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map --- freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -24a60750ce0e1430954ae0244171e9ba \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -tds_get_byte - - -Node29 - -tds_get_byte - - -Node30 - - -tds_peek - - - - -Node29->Node30 - - - - -Node31 - - -tds_process_param_result -_tokens - - - - -Node29->Node31 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map freetds-1.2.3/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map --- freetds-1.1.6/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 freetds-1.2.3/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3c73d2ec7603246e1ad797c42f3cc822 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg freetds-1.2.3/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_put_string - - -Node74 - -tds_put_string - - -Node75 - - -tds_send_emulated_rpc - - - - -Node74->Node75 - - - - -Node76 - - -tds_quote_and_put - - - - -Node74->Node76 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map freetds-1.2.3/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -05ceb189a3be9246accbc9761ab70270 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_peek - - -Node69 - -tds_peek - - -Node70 - - -tds_get_byte - - - - -Node69->Node70 - - - - -Node71 - - -tds_read_packet - - - - -Node70->Node71 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.map freetds-1.2.3/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cef9a1c5eac365a272f553f5a4accc48 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga2734407109c834c5dda7ff8a45c71230_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_goodwrite - - -Node66 - -tds_goodwrite - - -Node67 - - -tds_select - - - - -Node66->Node67 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map freetds-1.2.3/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map --- freetds-1.1.6/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 freetds-1.2.3/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2eb584a41254ded6c23b5f0b96069e11 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg freetds-1.2.3/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,291 +0,0 @@ - - - - - - -tds_read_packet - - -Node78 - -tds_read_packet - - -Node79 - - -tds_get_byte - - - - -Node78->Node79 - - - - -Node82 - - -tds_get_n - - - - -Node78->Node82 - - - - -Node80 - - -tds_peek - - - - -Node79->Node80 - - - - -Node81 - - -tds_process_param_result -_tokens - - - - -Node79->Node81 - - - - -Node83 - - -tds_datain_stream_read - - - - -Node82->Node83 - - - - -Node86 - - -tds_get_usmallint - - - - -Node82->Node86 - - - - -Node90 - - -tds_process_colinfo - - - - -Node82->Node90 - - - - -Node97 - - -tds_get_uint - - - - -Node82->Node97 - - - - -Node98 - - -tds_get_uint8 - - - - -Node82->Node98 - - - - -Node99 - - -tds_dstr_get - - - - -Node82->Node99 - - - - -Node84 - - -tds_datain_stream_init - - - - -Node83->Node84 - - - - -Node87 - - -tds_process_col_name - - - - -Node86->Node87 - - - - -Node88 - - -tds_process_col_fmt - - - - -Node86->Node88 - - - - -Node89 - - -tds_process_tabname - - - - -Node86->Node89 - - - - -Node86->Node90 - - - - -Node91 - - -tds_process_end - - - - -Node86->Node91 - - - - -Node92 - - -tds_process_env_chg - - - - -Node86->Node92 - - - - -Node93 - - -tds_process_dyn_result - - - - -Node86->Node93 - - - - -Node94 - - -tds5_process_dyn_result2 - - - - -Node86->Node94 - - - - -Node95 - - -tds_process_compute -_names - - - - -Node86->Node95 - - - - -Node96 - - -tds_process_cursor -_tokens - - - - -Node86->Node96 - - - - -Node97->Node94 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map freetds-1.2.3/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map --- freetds-1.1.6/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 freetds-1.2.3/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -59d6379ce4d657fafee14b33c0eba098 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg freetds-1.2.3/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_flush_packet - - -Node24 - -tds_flush_packet - - -Node25 - - -tds_query_flush_packet - - - - -Node24->Node25 - - - - -Node26 - - -tds_send_emulated_rpc - - - - -Node25->Node26 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.map freetds-1.2.3/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d42474e4bc34e53271a83a249b9e9c97 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ - - - - - - -read_and_convert - - -Node0 - -read_and_convert - - -Node1 - - -tds_datain_stream_init - - - - -Node0->Node1 - - - - -Node5 - - -tds_staticout_stream_init - - - - -Node0->Node5 - - - - -Node7 - - -tds_convert_stream - - - - -Node0->Node7 - - - - -Node2 - - -tds_datain_stream_read - - - - -Node1->Node2 - - - - -Node3 - - -tds_get_n - - - - -Node2->Node3 - - - - -Node6 - - -tds_staticout_stream -_write - - - - -Node5->Node6 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map freetds-1.2.3/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1c2452bdc1c6b957d893b98d437328b2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga679f2d22b4a4bdefe0fa475d63503778_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_ntlm_get_auth + + + +Node1 + + +tds_ntlm_get_auth + + + + + +Node2 + + +tds_dstr_cstr + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_dstr_len + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map freetds-1.2.3/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1caa7894bdba759e176dd31c8ee5c4e3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_get_uint8 - - -Node62 - -tds_get_uint8 - - -Node63 - - -tds_get_n - - - - -Node62->Node63 - - - - -Node64 - - -tds_read_packet - - - - -Node63->Node64 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map freetds-1.2.3/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +7bb1d3a972ccec9604153c632b732681 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga8adf4e719762fef6fdb091d15d4d5d7f_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_answer_challenge + + + +Node1 + + +tds_answer_challenge + + + + + +Node2 + + +tds_dstr_cstr + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.map freetds-1.2.3/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.map --- freetds-1.1.6/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.md5 freetds-1.2.3/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -562e1053d94d475f4528dc7d2b5cfe3b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.svg freetds-1.2.3/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga90f080e6e9448feac15dee1370d66802_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_string - - -Node55 - -tds_get_string - - -Node56 - - -tds_dstr_get - - - - -Node55->Node56 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map --- freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -410c71d3daf96b6338d44e820b7c1823 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_get_uint - - -Node57 - -tds_get_uint - - -Node58 - - -tds_get_n - - - - -Node57->Node58 - - - - -Node59 - - -tds_read_packet - - - - -Node58->Node59 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map --- freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -beaa91bbb1f284ce6df47321396d7182 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_uint - - -Node60 - -tds_get_uint - - -Node61 - - -tds5_process_dyn_result2 - - - - -Node60->Node61 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.map freetds-1.2.3/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.map --- freetds-1.1.6/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.md5 freetds-1.2.3/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -942624a4b6ca013604ba76dae28fb401 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.svg freetds-1.2.3/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gad6f81b48fbcfc18ce0b213dbbea47e30_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_socket_write - - -Node112 - -tds_socket_write - - -Node113 - - -tdsdump_log - - - - -Node112->Node113 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.map freetds-1.2.3/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.map --- freetds-1.1.6/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.md5 freetds-1.2.3/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -abed2120e166b8bf336a4b80ca247ffe \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.svg freetds-1.2.3/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gad7aae89e32444ab30852fee056231403_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_select - - -Node101 - -tds_select - - -Node102 - - -tds_goodread - - - - -Node101->Node102 - - - - -Node103 - - -tds_goodwrite - - - - -Node101->Node103 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map --- freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0525b98f6f1bdf8cfc2edb14cec2c03e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_n - - -Node34 - -tds_get_n - - -Node35 - - -tds_read_packet - - - - -Node34->Node35 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map --- freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 --- freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ea44cd7a2df0f8d0ebe731beb1de241c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg --- freetds-1.1.6/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,251 +0,0 @@ - - - - - - -tds_get_n - - -Node36 - -tds_get_n - - -Node37 - - -tds_datain_stream_read - - - - -Node36->Node37 - - - - -Node40 - - -tds_get_usmallint - - - - -Node36->Node40 - - - - -Node44 - - -tds_process_colinfo - - - - -Node36->Node44 - - - - -Node51 - - -tds_get_uint - - - - -Node36->Node51 - - - - -Node52 - - -tds_get_uint8 - - - - -Node36->Node52 - - - - -Node53 - - -tds_dstr_get - - - - -Node36->Node53 - - - - -Node38 - - -tds_datain_stream_init - - - - -Node37->Node38 - - - - -Node39 - - -read_and_convert - - - - -Node38->Node39 - - - - -Node41 - - -tds_process_col_name - - - - -Node40->Node41 - - - - -Node42 - - -tds_process_col_fmt - - - - -Node40->Node42 - - - - -Node43 - - -tds_process_tabname - - - - -Node40->Node43 - - - - -Node40->Node44 - - - - -Node45 - - -tds_process_end - - - - -Node40->Node45 - - - - -Node46 - - -tds_process_env_chg - - - - -Node40->Node46 - - - - -Node47 - - -tds_process_dyn_result - - - - -Node40->Node47 - - - - -Node48 - - -tds5_process_dyn_result2 - - - - -Node40->Node48 - - - - -Node49 - - -tds_process_compute -_names - - - - -Node40->Node49 - - - - -Node50 - - -tds_process_cursor -_tokens - - - - -Node40->Node50 - - - - -Node51->Node48 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.map freetds-1.2.3/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.map --- freetds-1.1.6/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.md5 freetds-1.2.3/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5d17bf3106f715a1ac39b82ead21ac53 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.svg freetds-1.2.3/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.svg --- freetds-1.1.6/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555_gafae08056186b143f3ef1399307dc9be7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ - - - - - - -tds_dstr_get - - -Node15 - -tds_dstr_get - - -Node16 - - -tds_dstr_alloc - - - - -Node15->Node16 - - - - -Node17 - - -tds_get_n - - - - -Node15->Node17 - - - - -Node19 - - -tds_get_string - - - - -Node15->Node19 - - - - -Node20 - - -tds_dstr_buf - - - - -Node15->Node20 - - - - -Node21 - - -tds_dstr_setlen - - - - -Node15->Node21 - - - - -Node18 - - -tds_read_packet - - - - -Node17->Node18 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00555.html freetds-1.2.3/doc/reference/a00555.html --- freetds-1.1.6/doc/reference/a00555.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Network functions +FreeTDS API: Authentication @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,175 +63,208 @@
    -
    Network functions
    +
    Authentication
    -

    Functions for reading or writing from network. +

    Functions for handling authentication. More...

    -Collaboration diagram for Network functions:
    +Collaboration diagram for Authentication:
    -
    +
    -
    - + + + + + + + + + + + +

    Classes

    struct  retry_addr
    struct  asn1_der_iterator
     
    struct  mpz_t
     
    struct  names_blob_prefix_t
     
    struct  rsa_public_key
     
    struct  tds_answer
     
    struct  tds_ntlm_auth
     
    + + + + + + + + + + + + + + + + + +

    +Macros

    +#define dump(b)   dumpl(b, sizeof(b))
     
    +#define dumpl(b, l)   tdsdump_dump_buf(TDS_DBG_INFO1, #b, b, l)
     
    +#define hash_func   sha1
     
    +#define HAVE_GMP   1
     
    +#define HAVE_NETTLE   1
     
    +#define mpz_clear(n)   gcry_mpi_release((n)->num)
     
    +#define mpz_init(n)   do { (n)->num = NULL; } while(0)
     
    +#define mpz_powm(w, n, e, m)   gcry_mpi_powm((w)->num, (n)->num, (e)->num, (m)->num);
     
    + + + + + + + +

    +Typedefs

    +typedef void nettle_random_func(void *ctx, size_t len, uint8_t *out)
     
    +typedef struct tds_answer TDSANSWER
     
    +typedef struct tds_ntlm_auth TDSNTLMAUTH
     
    + + + + + + + + +

    +Enumerations

    enum  { ASN1_SEQUENCE = ASN1_TAG_SEQUENCE + }
     
    enum  { hash_len = 20 + }
     
    enum  { key_size_max = 1024 + }
     
    enum  asn1_iterator_result { ASN1_ITERATOR_ERROR, +ASN1_ITERATOR_PRIMITIVE, +ASN1_ITERATOR_CONSTRUCTED, +ASN1_ITERATOR_END + }
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    static size_t read_and_convert (TDSSOCKET *tds, TDSICONV *char_conv, size_t *wire_size, char *outbuf, size_t outbytesleft)
     For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not aligned with the character boundary. More...
     
    int tds7_get_instance_port (struct addrinfo *addr, const char *instance)
     Get port of given instance. More...
     
    int tds7_get_instance_ports (FILE *output, struct addrinfo *addr)
     Get port of all instances. More...
     
    -const char * tds_addrinfo2str (struct addrinfo *addr, char *name, int namemax)
     
    -static void tds_addrinfo_set_port (struct addrinfo *addr, unsigned int port)
     
    void tds_close_socket (TDSSOCKET *tds)
     Close current socket. More...
     
    -void tds_connection_close (TDSCONNECTION *conn)
     
    -int tds_connection_read (TDSSOCKET *tds, unsigned char *buf, int buflen)
     
    -static int tds_connection_signaled (TDSCONNECTION *conn)
     
    -int tds_connection_write (TDSSOCKET *tds, const unsigned char *buf, int buflen, int final)
     
    DSTRtds_dstr_get (TDSSOCKET *tds, DSTR *s, size_t len)
     Reads a string from wire and put in a DSTR. More...
     
    TDSRET tds_flush_packet (TDSSOCKET *tds)
     Flush packet to server. More...
     
    unsigned char tds_get_byte (TDSSOCKET *tds)
     Return a single byte from the input buffer. More...
     
    TDSRET tds_get_char_data (TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
     Fetch character data the wire. More...
     
    bool tds_get_n (TDSSOCKET *tds, void *dest, size_t need)
     Get N bytes from the buffer and return them in the already allocated space given to us. More...
     
    -static int tds_get_socket_error (TDS_SYS_SOCKET sock)
     Returns error stored in the socket.
     
    size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
     Fetch a string from the wire. More...
     
    TDS_UINT tds_get_uint (TDSSOCKET *tds)
     Get an int32 from the server. More...
     
    TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
     Get an uint64 from the server. More...
     
    -TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
     Get an int16 from the server.
     
    -int tds_goodread (TDSSOCKET *tds, unsigned char *buf, int buflen)
     Loops until we have received some characters return -1 on failure.
     
    int tds_goodwrite (TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
     
    -int tds_init_write_buf (TDSSOCKET *tds)
     
    -TDSERRNO tds_open_socket (TDSSOCKET *tds, struct addrinfo *addr, unsigned int port, int timeout, int *p_oserr)
     
    unsigned char tds_peek (TDSSOCKET *tds)
     Reads a byte from the TDS stream without removing it. More...
     
    -int tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize)
     
    -int tds_put_byte (TDSSOCKET *tds, unsigned char c)
     
    -int tds_put_cancel (TDSSOCKET *tds)
     
    -int tds_put_int (TDSSOCKET *tds, TDS_INT i)
     
    -int tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i)
     
    -int tds_put_n (TDSSOCKET *tds, const void *buf, size_t n)
     
    -int tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si)
     
    int tds_put_string (TDSSOCKET *tds, const char *s, int len)
     Output a string to wire automatic translate string to unicode if needed. More...
     
    int tds_read_packet (TDSSOCKET *tds)
     Read in one 'packet' from the server. More...
     
    int tds_select (TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
     Select on a socket until it's available or the timeout expires. More...
     
    static TDSERRNO tds_setup_socket (TDS_SYS_SOCKET *p_sock, struct addrinfo *addr, unsigned int port, int *p_oserr)
     Setup the socket and attempt a connection. More...
     
    -void tds_socket_flush (TDS_SYS_SOCKET sock)
     
    static int tds_socket_read (TDSCONNECTION *conn, TDSSOCKET *tds, unsigned char *buf, int buflen)
     Read from an OS socket remove tds, save error somewhere, report error in another way. More...
     
    int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
     Set socket to non-blocking. More...
     
    int tds_socket_set_nosigpipe (TDS_SYS_SOCKET sock, int on)
     Set socket to not throw SIGPIPE. More...
     
    static int tds_socket_write (TDSCONNECTION *conn, TDSSOCKET *tds, const unsigned char *buf, int buflen)
     Write to an OS socket. More...
     
    void tds_unget_byte (TDSSOCKET *tds)
     Unget will always work as long as you don't call it twice in a row. More...
     
    -void tds_wakeup_close (TDSPOLLWAKEUP *wakeup)
     
    -int tds_wakeup_init (TDSPOLLWAKEUP *wakeup)
     
    -void tds_wakeup_send (TDSPOLLWAKEUP *wakeup, char cancel)
     
    -TDSRET tds_write_packet (TDSSOCKET *tds, unsigned char final)
     
    +static enum asn1_iterator_result asn1_der_iterator_first (struct asn1_der_iterator *der, int size, const void *der_buf)
     
    +static enum asn1_iterator_result asn1_der_iterator_next (struct asn1_der_iterator *der)
     
    +static void convert_to_upper (char *buf, size_t len)
     
    +static size_t convert_to_usc2le_string (TDSSOCKET *tds, const char *s, size_t len, char *out)
     
    +static void fill_names_blob_prefix (names_blob_prefix_t *prefix)
     
    +static unsigned char * make_lm_v2_response (const unsigned char ntlm_v2_hash[16], const unsigned char *client_data, int client_data_len, const unsigned char challenge[8])
     
    +static TDSRET make_ntlm_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_hash[16])
     
    +static TDSRET make_ntlm_v2_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_v2_hash[16])
     
    +static void memxor (uint8_t *dest, const uint8_t *src, size_t len)
     
    +static void mgf_mask (uint8_t *dest, size_t dest_len, const uint8_t *mask, size_t mask_len)
     
    +static void nettle_mpz_get_str_256 (unsigned length, uint8_t *s, const mpz_t x)
     
    +static void nettle_mpz_set_str_256_u (mpz_t x, unsigned length, const uint8_t *s)
     
    +static int oaep_encrypt (size_t key_size, void *random_ctx, nettle_random_func *random, size_t length, const uint8_t *message, mpz_t m)
     
    +static void rnd_func (void *ctx, size_t len, uint8_t *out)
     
    +static int rsa_encrypt_oaep (const struct rsa_public_key *key, void *random_ctx, nettle_random_func *random, size_t length, const uint8_t *message, mpz_t gibberish)
     
    +static const BIGNUM * rsa_get_n (const RSA *rsa)
     
    +static void rsa_public_key_clear (struct rsa_public_key *key)
     
    +static int rsa_public_key_from_der_iterator (struct rsa_public_key *key, unsigned key_bits, struct asn1_der_iterator *der)
     
    +static void rsa_public_key_init (struct rsa_public_key *key)
     
    +static void sha1 (uint8_t *hash, const void *data, size_t len)
     
    +TDSAUTHENTICATIONtds5_negotiate_get_auth (TDSSOCKET *tds)
     
    +static void * tds5_rsa_encrypt (const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size)
     
    +static TDSRET tds7_send_auth (TDSSOCKET *tds, const unsigned char *challenge, uint32_t flags, const unsigned char *names_blob, int names_blob_len)
     
    static TDSRET tds_answer_challenge (TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, int names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
     Crypt a given password using schema required for NTLMv1 or NTLM2 authentication. More...
     
    +static TDSRET tds_answer_challenge_ntlmv2 (TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, int names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
     
    +static void tds_convert_key (const unsigned char *key_56, DES_KEY *ks)
     
    +static void tds_encrypt_answer (const unsigned char *hash, const unsigned char *challenge, unsigned char *answer)
     
    +static TDSRET tds_ntlm_free (TDSCONNECTION *conn, TDSAUTHENTICATION *tds_auth)
     
    TDSAUTHENTICATIONtds_ntlm_get_auth (TDSSOCKET *tds)
     Build a NTLMSPP packet to send to server. More...
     
    +static TDSRET tds_ntlm_handle_next (TDSSOCKET *tds, struct tds_authentication *auth, size_t len)
     
    +static void unix_to_nt_time (uint64_t *nt, struct timeval *tv)
     put a 8 byte filetime from a time_t This takes GMT as input
     
    + + + + +

    +Variables

    +static const char label [] = ""
     
    +static const unsigned char ntlm_id [] = "NTLMSSP"
     

    Detailed Description

    -

    Functions for reading or writing from network.

    +

    Functions for handling authentication.

    Function Documentation

    - -

    § read_and_convert()

    + +

    ◆ tds_answer_challenge()

    @@ -237,176 +273,52 @@ - + - + - - - - - - - - + + - - + + - - - - - - - - -
    static size_t read_and_convert static TDSRET tds_answer_challenge (TDSSOCKETTDSSOCKET tds,
    TDSICONVchar_conv,
    size_t * wire_size, TDSLOGINlogin,
    char * outbuf, const unsigned char * challenge,
    size_t outbytesleft 
    )
    - - -static - - -
    - -

    For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not aligned with the character boundary.

    -

    In that event, it will return an error, and some number of bytes (less than a character) will remain in the tail end of temp[]. They are moved to the beginning, ptemp is adjusted to point just behind them, and the next chunk is read.

    Parameters
    - - - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    char_convconversion structure
    [out]wire_sizesize readed from wire
    outbufbuffer to write to
    outbytesleftbuffer length
    -
    -
    -
    Returns
    bytes readed
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds7_get_instance_port()

    - -
    -
    - - - - - - + + - - - - - - - - -
    int tds7_get_instance_port (struct addrinfo * addr, uint32_t * flags,
    const char * instance 
    )
    -
    - -

    Get port of given instance.

    -
    Returns
    port number or 0 if error
    - -
    -
    - -

    § tds7_get_instance_ports()

    - -
    -
    - - - - - - + + - - - - - - - - -
    int tds7_get_instance_ports (FILE * output, const unsigned char * names_blob,
    struct addrinfo * addr 
    )
    -
    - -

    Get port of all instances.

    -
    Returns
    default port number or 0 if error
    -
    Remarks
    experimental, cf. MC-SQLR.pdf.
    - -
    -
    - -

    § tds_close_socket()

    - -
    -
    - - - - - - - - -
    void tds_close_socket (TDSSOCKETtds)
    -
    - -

    Close current socket.

    -

    For last socket close entire connection. For MARS send FIN request. This attempts a graceful disconnection, for ungraceful call tds_connection_close.

    - -
    -
    - -

    § tds_dstr_get()

    - -
    -
    - - - - - - + + - - + + - - + + @@ -414,780 +326,62 @@
    DSTR* tds_dstr_get (TDSSOCKETtds, int names_blob_len,
    DSTRs, TDSANSWERanswer,
    size_t len unsigned char ** ntlm_v2_response 
    + + +static + +
    -

    Reads a string from wire and put in a DSTR.

    -

    On error we read the bytes from the wire anyway.

    Parameters
    +

    Crypt a given password using schema required for NTLMv1 or NTLM2 authentication.

    +
    Parameters
    - - - + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    [out]soutput string
    [in]lenstring length (in characters)
    passwdclear text domain password
    challengechallenge data given by server
    flagsNTLM flags from server side
    answerbuffer where to store crypted password
    -
    Returns
    string or NULL on error
    Here is the call graph for this function:
    -
    -
    -
    - -
    -
    - -

    § tds_flush_packet()

    - -
    -
    - - - - - - - - -
    TDSRET tds_flush_packet (TDSSOCKETtds)
    -
    - -

    Flush packet to server.

    -
    Returns
    TDS_FAIL or TDS_SUCCESS
    -
    -Here is the caller graph for this function:
    -
    -
    +
    - -

    § tds_get_byte()

    + +

    ◆ tds_ntlm_get_auth()

    - + - +
    unsigned char tds_get_byte TDSAUTHENTICATION* tds_ntlm_get_auth (TDSSOCKETTDSSOCKET tds)
    -

    Return a single byte from the input buffer.

    +

    Build a NTLMSPP packet to send to server.

    Parameters
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    Returns
    authentication info
    Here is the call graph for this function:
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_get_char_data()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_get_char_data (TDSSOCKETtds,
    char * row_buffer,
    size_t wire_size,
    TDSCOLUMNcurcol 
    )
    -
    - -

    Fetch character data the wire.

    -

    Output is NOT null terminated. If char_conv is not NULL, convert data accordingly.

    Parameters
    - - - - - -
    tdsstate information for the socket and the TDS protocol
    row_bufferdestination buffer in current_row. Can't be NULL
    wire_sizesize to read from wire (in bytes)
    curcolcolumn information
    -
    -
    -
    Returns
    TDS_SUCCESS or TDS_FAIL (probably memory error on text data)
    - -
    -
    - -

    § tds_get_n()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    bool tds_get_n (TDSSOCKETtds,
    void * dest,
    size_t need 
    )
    -
    - -

    Get N bytes from the buffer and return them in the already allocated space given to us.

    -

    We ASSUME that the person calling this function has done the bounds checking for us since they know how many bytes they want here. dest of NULL means we just want to eat the bytes. (tethe.nosp@m.row@.nosp@m.nol.o.nosp@m.rg)

    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_get_string()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    size_t tds_get_string (TDSSOCKETtds,
    size_t string_len,
    char * dest,
    size_t dest_size 
    )
    -
    - -

    Fetch a string from the wire.

    -

    Output string is NOT null terminated. If TDS version is 7 or 8 read unicode string and convert it. This function should be use to read server default encoding strings like columns name, table names, etc, not for data (use tds_get_char_data instead)

    Returns
    bytes written to dest
    -
    Parameters
    - - - - - -
    tdsconnection information
    string_lenlength of string to read from wire (in server characters, bytes for tds4-tds5, ucs2 for tds7+)
    destdestination buffer, if NULL string is read and discarded
    dest_sizedestination buffer size, in bytes
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - +
    - -

    § tds_get_uint()

    - -
    -
    - - - - - - - - -
    TDS_UINT tds_get_uint (TDSSOCKETtds)
    -
    - -

    Get an int32 from the server.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_get_uint8()

    - -
    -
    - - - - - - - - -
    TDS_UINT8 tds_get_uint8 (TDSSOCKETtds)
    -
    - -

    Get an uint64 from the server.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_goodwrite()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    int tds_goodwrite (TDSSOCKETtds,
    const unsigned char * buffer,
    size_t buflen 
    )
    -
    -
    Parameters
    - - - - - -
    tdsthe famous socket
    bufferdata to send
    buflenbytes in buffer
    last1 if this is the last packet, else 0
    -
    -
    -
    Returns
    length written (>0), <0 on failure
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_peek()

    - -
    -
    - - - - - - - - -
    unsigned char tds_peek (TDSSOCKETtds)
    -
    - -

    Reads a byte from the TDS stream without removing it.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_put_string()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    int tds_put_string (TDSSOCKETtds,
    const char * s,
    int len 
    )
    -
    - -

    Output a string to wire automatic translate string to unicode if needed.

    -
    Returns
    bytes written to wire
    -
    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    sstring to write
    lenlength of string in characters, or -1 for null terminated
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_read_packet()

    - -
    -
    - - - - - - - - -
    int tds_read_packet (TDSSOCKETtds)
    -
    - -

    Read in one 'packet' from the server.

    -

    This is a wrapped outer packet of the protocol (they bundle result packets into chunks and wrap them at what appears to be 512 bytes regardless of how that breaks internal packet up. (tetherow@nol.org)

    Returns
    bytes read or -1 on failure
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_select()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    int tds_select (TDSSOCKETtds,
    unsigned tds_sel,
    int timeout_seconds 
    )
    -
    - -

    Select on a socket until it's available or the timeout expires.

    -

    Meanwhile, call the interrupt function.

    Returns
    >0 ready descriptors 0 timeout <0 error (cf. errno). Caller should close socket and return failure. This function does not call tdserror or close the socket because it can't know the context in which it's being called.
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_setup_socket()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSERRNO tds_setup_socket (TDS_SYS_SOCKET * p_sock,
    struct addrinfo * addr,
    unsigned int port,
    int * p_oserr 
    )
    -
    -static
    -
    - -

    Setup the socket and attempt a connection.

    -

    Function allocate the socket in *p_sock and try to start a connection.

    Parameters
    - - - - - -
    p_sockwhere returned socket is stored. Socket is stored even on error. Can be INVALID_SOCKET.
    addraddress to use for attempting the connection
    portport to connect to
    p_oserrwhere system error is returned
    -
    -
    -
    Returns
    TDSEOK is success, TDSEINPROGRESS if connection attempt is started or any other error.
    - -
    -
    - -

    § tds_socket_read()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static int tds_socket_read (TDSCONNECTIONconn,
    TDSSOCKETtds,
    unsigned char * buf,
    int buflen 
    )
    -
    -static
    -
    - -

    Read from an OS socket remove tds, save error somewhere, report error in another way.

    -
    Returns
    0 if blocking, <0 error >0 bytes read
    - -
    -
    - -

    § tds_socket_set_nonblocking()

    - -
    -
    - - - - - - - - -
    int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
    -
    - -

    Set socket to non-blocking.

    -
    Parameters
    - - -
    socksocket to set
    -
    -
    -
    Returns
    0 on success or error code
    - -
    -
    - -

    § tds_socket_set_nosigpipe()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    int tds_socket_set_nosigpipe (TDS_SYS_SOCKET sock,
    int on 
    )
    -
    - -

    Set socket to not throw SIGPIPE.

    -

    Not many systems support this feature (in this case ENOTSUP can be returned).

    Parameters
    - - - -
    socksocket to set
    onflag if enable or disable
    -
    -
    -
    Returns
    0 on success or error code
    - -
    -
    - -

    § tds_socket_write()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static int tds_socket_write (TDSCONNECTIONconn,
    TDSSOCKETtds,
    const unsigned char * buf,
    int buflen 
    )
    -
    -static
    -
    - -

    Write to an OS socket.

    -
    Returns
    0 if blocking, <0 error >0 bytes readed
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_unget_byte()

    - -
    -
    - - - - - - - - -
    void tds_unget_byte (TDSSOCKETtds)
    -
    - -

    Unget will always work as long as you don't call it twice in a row.

    -

    It it may work if you call it multiple times as long as you don't backup over the beginning of network packet boundary which can occur anywhere in the token stream.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    @@ -1196,7 +390,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00555.map freetds-1.2.3/doc/reference/a00555.map --- freetds-1.1.6/doc/reference/a00555.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00555.md5 freetds-1.2.3/doc/reference/a00555.md5 --- freetds-1.1.6/doc/reference/a00555.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -e871bba2b8c089c4bc1dd584608ec0ea \ No newline at end of file +868882e2664cb9ce82e234d3ab70f349 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00555.svg freetds-1.2.3/doc/reference/a00555.svg --- freetds-1.1.6/doc/reference/a00555.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00555.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Network functions - - -Node0 - -Network functions - + + + +Authentication + -Node1 - - -LibTDS API + +Node1 + + +Authentication + + + + + +Node2 + + +LibTDS API - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.map freetds-1.2.3/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.map --- freetds-1.1.6/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.md5 freetds-1.2.3/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8d39942f9db01e718ddad58b6ec48d69 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.svg freetds-1.2.3/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga0cf7e719115b0ae476753442d10505ab_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_prtype - - -Node127 - -tds_prtype - - -Node128 - - -tdsdump_col - - - - -Node127->Node128 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.map freetds-1.2.3/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -49d814f4cfd21af0b83685582a258b2b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - -tds_process_colinfo - - -Node56 - -tds_process_colinfo - - -Node57 - - -tds_get_usmallint - - - - -Node56->Node57 - - - - -Node58 - - -tds_get_n - - - - -Node56->Node58 - - - - -Node60 - - -tds_dstr_copy - - - - -Node56->Node60 - - - - -Node57->Node58 - - - - -Node59 - - -tds_read_packet - - - - -Node58->Node59 - - - - -Node61 - - -tds_dstr_copyn - - - - -Node60->Node61 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map freetds-1.2.3/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -912943b2a1d25aa01a36da9c95f4b922 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ - - - - - - -tds_process_cursor_tokens - - -Node73 - -tds_process_cursor -_tokens - - -Node74 - - -tds_get_usmallint - - - - -Node73->Node74 - - - - -Node75 - - -tds_get_n - - - - -Node74->Node75 - - - - -Node76 - - -tds_read_packet - - - - -Node75->Node76 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map freetds-1.2.3/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8e653005c78f136fd1615f99cca14450 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_process_default_tokens - - -Node78 - -tds_process_default -_tokens - - -Node79 - - -tdsdump_log - - - - -Node78->Node79 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map freetds-1.2.3/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8fafd8c9394c819d7545ff5caef57bb2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ - - - - - - -tds_process_env_chg - - -Node93 - -tds_process_env_chg - - -Node94 - - -tds_get_usmallint - - - - -Node93->Node94 - - - - -Node97 - - -tdsdump_log - - - - -Node93->Node97 - - - - -Node95 - - -tds_get_n - - - - -Node94->Node95 - - - - -Node96 - - -tds_read_packet - - - - -Node95->Node96 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map freetds-1.2.3/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8fc1bcb31705cf72c7702f80f833e73c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_process_dyn_result - - -Node81 - -tds_process_dyn_result - - -Node82 - - -tds_get_usmallint - - - - -Node81->Node82 - - - - -Node83 - - -tds_get_n - - - - -Node82->Node83 - - - - -Node84 - - -tds_read_packet - - - - -Node83->Node84 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map freetds-1.2.3/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d3ffcbdfcd7f5928d62bddf3d9bb664b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_process_col_fmt - - -Node45 - -tds_process_col_fmt - - -Node46 - - -tds_get_usmallint - - - - -Node45->Node46 - - - - -Node47 - - -tds_get_n - - - - -Node46->Node47 - - - - -Node48 - - -tds_read_packet - - - - -Node47->Node48 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map freetds-1.2.3/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map --- freetds-1.1.6/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 freetds-1.2.3/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -673d515b0a6589f507f6840f915da58c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg freetds-1.2.3/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_lookup_dynamic - - -Node37 - -tds_lookup_dynamic - - -Node38 - - -tds_alloc_dynamic - - - - -Node37->Node38 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.map freetds-1.2.3/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +c279a75265d4135dbad9a3d3362054e3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga6631af35ee817f93827c62bbda41674a_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_read_interfaces + + + +Node1 + + +tds_read_interfaces + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map freetds-1.2.3/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6d1499f1a517d210236d9f3782e69b00 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_process_end - - -Node88 - -tds_process_end - - -Node89 - - -tds_get_usmallint - - - - -Node88->Node89 - - - - -Node90 - - -tds_get_n - - - - -Node89->Node90 - - - - -Node91 - - -tds_read_packet - - - - -Node90->Node91 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.map freetds-1.2.3/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +81098a7f6c20e9e8d5e5ba30b65dfd98 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga82ac44924fb1ae41042c233573a4ac8d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,73 @@ + + + + + + +parse_server_name_for_port + + + +Node1 + + +parse_server_name_for_port + + + + + +Node2 + + +tds_dstr_copy + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_dstr_copyn + + + + + +Node1->Node3 + + + + + +Node4 + + +tds_dstr_cstr + + + + + +Node1->Node4 + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map freetds-1.2.3/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -7d1f2b94e58a85cb56982e881b12cc3f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ - - - - - - -tds_process_col_name - - -Node50 - -tds_process_col_name - - -Node51 - - -tds_get_usmallint - - - - -Node50->Node51 - - - - -Node54 - - -tds_read_namelist - - - - -Node50->Node54 - - - - -Node52 - - -tds_get_n - - - - -Node51->Node52 - - - - -Node53 - - -tds_read_packet - - - - -Node52->Node53 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map freetds-1.2.3/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map --- freetds-1.1.6/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 freetds-1.2.3/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8204592f8f2c192fb10544527a545400 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg freetds-1.2.3/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -tds_process_param_result_tokens - - -Node106 - -tds_process_param_result -_tokens - - -Node107 - - -tds_get_byte - - - - -Node106->Node107 - - - - -Node108 - - -tds_read_packet - - - - -Node107->Node108 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map freetds-1.2.3/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -42a0a4ff2d18691bff1b39b7b4972d97 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg freetds-1.2.3/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds5_process_optioncmd - - -Node10 - -tds5_process_optioncmd - - -Node11 - - -tdsdump_log - - - - -Node10->Node11 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map freetds-1.2.3/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -13bcdb04485ce88bc4edd0945701435f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg freetds-1.2.3/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds5_process_result2 - - -Node15 - -tds5_process_result2 - - -Node16 - - -tdsdump_log - - - - -Node15->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map freetds-1.2.3/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a99df6bc8095454ff5630fc33f747f7e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg freetds-1.2.3/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_process_tokens - - -Node123 - -tds_process_tokens - - -Node124 - - -tdsdump_log - - - - -Node123->Node124 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map freetds-1.2.3/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +264a5afd515e4b8ace35120f9943bdee \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg freetds-1.2.3/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaca20b6e5f5a5ac1727126712dd39564b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +search_interface_file + + + +Node1 + + +search_interface_file + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map freetds-1.2.3/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -926fd33797e1e9f522ba1cf2a9ca1b05 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg freetds-1.2.3/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds7_process_result - - -Node24 - -tds7_process_result - - -Node25 - - -tdsdump_log - - - - -Node24->Node25 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.map freetds-1.2.3/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -bac2e318ac541fd46f03c9b20f227ceb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg freetds-1.2.3/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_process_param_result - - -Node103 - -tds_process_param_result - - -Node104 - - -tdsdump_log - - - - -Node103->Node104 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map freetds-1.2.3/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -244ed218f93a5c54630b65d4539d85a3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg freetds-1.2.3/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_get_data_info - - -Node31 - -tds_get_data_info - - -Node32 - - -tdsdump_log - - - - -Node31->Node32 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map freetds-1.2.3/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4446ba8c830382e0e549f8097236f1a2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg freetds-1.2.3/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ - - - - - - -tds_process_compute_names - - -Node65 - -tds_process_compute -_names - - -Node66 - - -tds_get_usmallint - - - - -Node65->Node66 - - - - -Node69 - - -tdsdump_log - - - - -Node65->Node69 - - - - -Node67 - - -tds_get_n - - - - -Node66->Node67 - - - - -Node68 - - -tds_read_packet - - - - -Node67->Node68 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.map freetds-1.2.3/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dfd2a4d2ca3460929b436cc12bf9a490 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.svg freetds-1.2.3/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gae688b515631141acfbc41bbb91c8b921_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ - - - - - - -tds5_process_dyn_result2 - - -Node4 - -tds5_process_dyn_result2 - - -Node5 - - -tds_get_uint - - - - -Node4->Node5 - - - - -Node8 - - -tds_get_usmallint - - - - -Node4->Node8 - - - - -Node6 - - -tds_get_n - - - - -Node5->Node6 - - - - -Node7 - - -tds_read_packet - - - - -Node6->Node7 - - - - -Node8->Node6 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map freetds-1.2.3/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map --- freetds-1.1.6/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 freetds-1.2.3/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c2dcf24ab3e5995527039970d57d9402 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg freetds-1.2.3/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg --- freetds-1.1.6/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_read_namelist - - -Node130 - -tds_read_namelist - - -Node131 - - -tds_process_col_name - - - - -Node130->Node131 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map freetds-1.2.3/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map --- freetds-1.1.6/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 freetds-1.2.3/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -42e5ed2d1ddc947a85a706fc839b2173 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg freetds-1.2.3/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg --- freetds-1.1.6/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_process_tabname - - -Node118 - -tds_process_tabname - - -Node119 - - -tds_get_usmallint - - - - -Node118->Node119 - - - - -Node120 - - -tds_get_n - - - - -Node119->Node120 - - - - -Node121 - - -tds_read_packet - - - - -Node120->Node121 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00556.html freetds-1.2.3/doc/reference/a00556.html --- freetds-1.1.6/doc/reference/a00556.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Results processing +FreeTDS API: Configuration @@ -29,18 +29,21 @@
    - + +/* @license-end */
    @@ -60,178 +63,141 @@
    -
    Results processing
    +
    Configuration
    -

    Handle tokens in packets. +

    Handle reading of configuration. More...

    -Collaboration diagram for Results processing:
    +Collaboration diagram for Configuration:
    -
    +
    -
    - - +

    Classes

    struct  namelist
     Holds list of names. More...
    struct  tdsvername_t
     
    + + + +

    +Macros

    +#define TDS_FIND(k, b, c)   tds_find(k, b, TDS_VECTOR_SIZE(b), sizeof(b[0]), c)
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    static void adjust_character_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Adjust column size according to client's encoding. More...
     
    int determine_adjusted_size (const TDSICONV *char_conv, int size)
     Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
     
    static TDSRET tds5_process_dyn_result2 (TDSSOCKET *tds)
     Process new TDS 5.0 token for describing output parameters. More...
     
    static TDSRET tds5_process_optioncmd (TDSSOCKET *tds)
     Process option cmd results. More...
     
    static TDSRET tds5_process_result (TDSSOCKET *tds)
     tds5_process_result() is the TDS 5.0 result set processing routine. More...
     
    static TDSRET tds5_process_result2 (TDSSOCKET *tds)
     tds5_process_result2() is the new TDS 5.0 result set processing routine. More...
     
    static int tds71_read_table_names (TDSSOCKET *tds, int remainder, struct namelist **p_head)
     Reads table names for TDS 7.1+. More...
     
    static TDSRET tds7_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Reads data information from wire. More...
     
    static TDSRET tds7_process_compute_result (TDSSOCKET *tds)
     tds7_process_compute_result() processes compute result sets for TDS 7/8. More...
     
    static TDSRET tds7_process_result (TDSSOCKET *tds)
     tds7_process_result() is the TDS 7.0 result set processing routine. More...
     
    static int tds_alloc_get_string (TDSSOCKET *tds, char **string, size_t len)
     Reads a string from wire in a new allocated buffer. More...
     
    static void tds_free_namelist (struct namelist *head)
     Frees list of names. More...
     
    static TDSRET tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
     Reads data metadata from wire. More...
     
    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 More...
     
    TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
     Finds a dynamic given string id. More...
     
    static const char * tds_pr_op (int op)
     Returns string representation for a given operation. More...
     
    static TDSRET tds_process_auth (TDSSOCKET *tds)
     Process authentication token. More...
     
    TDSRET tds_process_cancel (TDSSOCKET *tds)
     
    static TDSRET tds_process_col_fmt (TDSSOCKET *tds)
     tds_process_col_fmt() is the other half of result set processing under TDS 4.2. More...
     
    static TDSRET tds_process_col_name (TDSSOCKET *tds)
     tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function More...
     
    static TDSRET tds_process_colinfo (TDSSOCKET *tds, char **names, int num_names)
     Reads column information. More...
     
    static TDSRET tds_process_compute (TDSSOCKET *tds)
     tds_process_compute() processes compute rows and places them in the row buffer. More...
     
    static TDSRET tds_process_compute_names (TDSSOCKET *tds)
     tds_process_compute_names() processes compute result sets. More...
     
    static TDSRET tds_process_compute_result (TDSSOCKET *tds)
     tds_process_compute_result() processes compute result sets. More...
     
    static TDSRET tds_process_cursor_tokens (TDSSOCKET *tds)
     Reads cursor command results. More...
     
    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 More...
     
    static TDSRET tds_process_dyn_result (TDSSOCKET *tds)
     Process results from dynamic. More...
     
    static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
     tds_process_dynamic() finds the element of the dyns array for the id More...
     
    static TDSRET tds_process_end (TDSSOCKET *tds, int marker, int *flags_parm)
     tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens. More...
     
    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. More...
     
    -static TDSRET tds_process_env_routing (TDSSOCKET *tds)
     
    -static TDSRET tds_process_featureextack (TDSSOCKET *tds)
     
    static TDSRET tds_process_info (TDSSOCKET *tds, int marker)
     tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine More...
     
    TDSRET tds_process_login_tokens (TDSSOCKET *tds)
     tds_process_login_tokens() is called after sending the login packet to the server. More...
     
    -static TDSRET tds_process_loginack (TDSSOCKET *tds, TDSRET *login_succeeded)
     
    -static TDSRET tds_process_nbcrow (TDSSOCKET *tds)
     tds_process_nbcrow() processes rows and places them in the row buffer.
     
    static TDSRET tds_process_param_result (TDSSOCKET *tds, TDSPARAMINFO **pinfo)
     process output parameters of a stored procedure. More...
     
    static TDSRET tds_process_param_result_tokens (TDSSOCKET *tds)
     Process parameters from networks. More...
     
    static TDSRET tds_process_params_result_token (TDSSOCKET *tds)
     tds_process_params_result_token() processes params on TDS5. More...
     
    static void tds_process_pending_closes (TDSSOCKET *tds)
     Attempt to close all deferred closes (dynamics and cursors). More...
     
    static TDSRET tds_process_row (TDSSOCKET *tds)
     tds_process_row() processes rows and places them in the row buffer. More...
     
    TDSRET tds_process_simple_query (TDSSOCKET *tds)
     Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. More...
     
    static TDSRET tds_process_tabname (TDSSOCKET *tds)
     Process list of table from network. More...
     
    TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
     process all streams. More...
     
    const char * tds_prtype (int type)
     Returns string representation of the given type. More...
     
    static int tds_read_namelist (TDSSOCKET *tds, int remainder, struct namelist **p_head, int large)
     Reads list of names (usually table names) More...
     
    static const char * tds_token_name (unsigned char marker)
     Returns string representation for a given token type. More...
     
    +static int hex2num (char *hex)
     
    +static int hexdigit (int c)
     
    static int parse_server_name_for_port (TDSLOGIN *connection, TDSLOGIN *login, bool update_server)
     Check the server name to find port info first Warning: connection-> & login-> are all modified when needed. More...
     
    static int search_interface_file (TDSLOGIN *login, const char *dir, const char *file, const char *host)
     Open and read the file 'file' searching for a logical server by the name of 'host'. More...
     
    +int tds_config_boolean (const char *option, const char *value, TDSLOGIN *login)
     
    +static void tds_config_encryption (const char *value, TDSLOGIN *login)
     
    +static int tds_config_env_tdsdump (TDSLOGIN *login)
     
    +static int tds_config_env_tdshost (TDSLOGIN *login)
     
    +static void tds_config_env_tdsport (TDSLOGIN *login)
     
    +static void tds_config_env_tdsver (TDSLOGIN *login)
     
    +static int tds_config_login (TDSLOGIN *connection, TDSLOGIN *login)
     
    TDS_USMALLINT * tds_config_verstr (const char *tdsver, TDSLOGIN *login)
     Set TDS version from given string. More...
     
    +static 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. More...
     
    const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void)
     Return a structure capturing the compile-time settings provided to the configure script. More...
     
    char * tds_get_home_file (const char *file)
     Return filename from HOME directory. More...
     
    struct addrinfo * tds_lookup_host (const char *servername)
     Get the IP address for a hostname. More...
     
    +TDSRET tds_lookup_host_set (const char *servername, struct addrinfo **addr)
     
    static int tds_lookup_port (const char *portname)
     Given a portname lookup the port. More...
     
    +int tds_parse_boolean (const char *value, int default_value)
     
    +void tds_parse_conf_section (const char *option, const char *value, void *param)
     
    bool tds_read_conf_file (TDSLOGIN *login, const char *server)
     Read configuration info for given server return 0 on error. More...
     
    bool tds_read_conf_section (FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *param)
     Read a section of configuration file (INI style file) More...
     
    +static bool tds_read_conf_sections (FILE *in, const char *server, TDSLOGIN *login)
     
    TDSLOGINtds_read_config_info (TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
     tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values More...
     
    static int tds_read_interfaces (const char *server, TDSLOGIN *login)
     Try to find the IP number and port for a (possibly) logical server name. More...
     
    TDSRET tds_set_interfaces_file_loc (const char *interf)
     Set the full name of interface file. More...
     
    +static bool tds_try_conf_file (const char *path, const char *how, const char *server, TDSLOGIN *login)
     
    +static int tds_vernanme_cmp (const void *key, const void *pelem)
     
    + + + + + + + +

    +Variables

    struct {
    +   unsigned char   to_return
     
    +   char   value [7]
     
    boolean_values []
     

    Detailed Description

    -

    Handle tokens in packets.

    -

    Many PDU (packets data unit) contain tokens. (like result description, rows, data, errors and many other).

    +

    Handle reading of configuration.

    Function Documentation

    - -

    § adjust_character_column_size()

    + +

    ◆ parse_server_name_for_port()

    @@ -240,16 +206,22 @@ - + - - + + + + + + + + - - + + @@ -264,70 +236,54 @@
    static void adjust_character_column_size static int parse_server_name_for_port (TDSSOCKETtds, TDSLOGINconnection,
    TDSLOGINlogin,
    TDSCOLUMNcurcol bool update_server 
    -

    Adjust column size according to client's encoding.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn to adjust
    -
    -
    +

    Check the server name to find port info first Warning: connection-> & login-> are all modified when needed.

    +
    Returns
    1 when found, else 0
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    - -

    § determine_adjusted_size()

    + +

    ◆ search_interface_file()

    + + +
    - + - - + + - - + + + - - + + + + + + + + -
    int determine_adjusted_size static int search_interface_file (const TDSICONVchar_conv, TDSLOGINlogin,
    int size const char * dir,
    )const char * file,
    const char * host 
    -
    - -

    Allow for maximum possible size of converted data, while being careful about integer division truncation.

    -

    All character data pass through iconv. It doesn't matter if the server side is Unicode or not; even Latin1 text need conversion if, for example, the client is UTF-8.

    Parameters
    - - - -
    char_convconversion structure
    sizeunconverted byte size
    -
    -
    -
    Returns
    maximum size for converted string
    - -
    - - -

    § tds5_process_dyn_result2()

    - -
    -
    - - - @@ -337,236 +293,153 @@
    - - - - - + +
    static TDSRET tds5_process_dyn_result2 (TDSSOCKETtds) )
    -

    Process new TDS 5.0 token for describing output parameters.

    +

    Open and read the file 'file' searching for a logical server by the name of 'host'.

    +

    If one is found then lookup the IP address and port number and store them in 'login'

    Parameters
    - + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dirname of base directory for interface file
    filename of the interface file
    hostlogical host to search for
    +
    Returns
    0 if not fount 1 if found
    Here is the call graph for this function:
    -
    +
    - -

    § tds5_process_optioncmd()

    + +

    ◆ tds_config_verstr()

    - - - - - -
    - + - - + + + + + + + + + + + +
    static TDSRET tds5_process_optioncmd TDS_USMALLINT* tds_config_verstr (TDSSOCKETtds)const char * tdsver,
    TDSLOGINlogin 
    )
    -
    -static
    -

    Process option cmd results.

    -

    This token is available only on TDS 5.0 (Sybase).

    Parameters
    +

    Set TDS version from given string.

    +
    Parameters
    - + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    tdsvertds string version
    loginwhere to store information
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    +
    Returns
    as encoded hex value: high nybble major, low nybble minor.
    - -

    § tds5_process_result()

    + +

    ◆ tds_fix_login()

    - - - - - -
    - + - - + +
    static TDSRET tds5_process_result void tds_fix_login (TDSSOCKETtds)TDSLOGINlogin)
    -
    -static
    -

    tds5_process_result() is the TDS 5.0 result set processing routine.

    -

    It is responsible for populating the tds->res_info structure. This is a TDS 5.0 only function

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    +

    Fix configuration after reading it.

    +

    Currently this read some environment variables and replace some options.

    - -

    § tds5_process_result2()

    + +

    ◆ tds_get_compiletime_settings()

    - - - - - -
    - + - - + +
    static TDSRET tds5_process_result2 const TDS_COMPILETIME_SETTINGS* tds_get_compiletime_settings (TDSSOCKETtds)void )
    -
    -static
    -

    tds5_process_result2() is the new TDS 5.0 result set processing routine.

    -

    It is responsible for populating the tds->res_info structure. This is a TDS 5.0 only function

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    +

    Return a structure capturing the compile-time settings provided to the configure script.

    +


    +

    - -

    § tds71_read_table_names()

    + +

    ◆ tds_get_home_file()

    - - - - - -
    - + - - - - - - - - - - - - - - - - + + - -
    static int tds71_read_table_names char* tds_get_home_file (TDSSOCKETtds,
    int remainder,
    struct namelist ** p_head 
    const char * file) )
    -
    -static
    -

    Reads table names for TDS 7.1+.

    -

    TDS 7.1+ return table names as an array of names (so database.schema.owner.name as separate names)

    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    remainderbytes left to read
    p_headpointer to list head to return
    -
    -
    -
    Returns
    number of element returned or -1 on error
    +

    Return filename from HOME directory.

    +
    Returns
    allocated string or NULL if error
    - -

    § tds7_get_data_info()

    + +

    ◆ tds_lookup_host()

    - - - - - -
    - + - - - - - - - - - - + + - -
    static TDSRET tds7_get_data_info struct addrinfo* tds_lookup_host (TDSSOCKETtds,
    TDSCOLUMNcurcol 
    const char * servername) )
    -
    -static
    -

    Reads data information from wire.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn where to store information
    -
    -
    +

    Get the IP address for a hostname.

    +

    Store server's IP address in the string 'ip' in dotted-decimal notation. (The "hostname" might itself be a dotted-decimal address.
    +

    +

    If we can't determine the IP address then 'ip' will be set to empty string.

    - -

    § tds7_process_compute_result()

    + +

    ◆ tds_lookup_port()

    @@ -575,10 +448,10 @@
    - + - - + +
    static TDSRET tds7_process_compute_result static int tds_lookup_port (TDSSOCKETtds)const char * portname)
    @@ -589,82 +462,77 @@
    -

    tds7_process_compute_result() processes compute result sets for TDS 7/8.

    -

    They is are very similar to normal result sets.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    +

    Given a portname lookup the port.

    +

    If we can't determine the port number then return 0.

    - -

    § tds7_process_result()

    + +

    ◆ tds_read_conf_file()

    - - - - - -
    - + - - + + + + + + + + + + + +
    static TDSRET tds7_process_result bool tds_read_conf_file (TDSSOCKETtds)TDSLOGINlogin,
    const char * server 
    )
    -
    -static
    -

    tds7_process_result() is the TDS 7.0 result set processing routine.

    -

    It is responsible for populating the tds->res_info structure. This is a TDS 7.0 only function

    Parameters
    +

    Read configuration info for given server return 0 on error.

    +
    Parameters
    - + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    loginwhere to store configuration
    serversection of file configuration that hold configuration for a server
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -

    § tds_alloc_get_string()

    + +

    ◆ tds_read_conf_section()

    - - - - - -
    - + - - + + - - + + + + + + + + - - + + @@ -672,62 +540,60 @@
    static int tds_alloc_get_string bool tds_read_conf_section (TDSSOCKETtds, FILE * in,
    char ** string, const char * section,
    TDSCONFPARSE tds_conf_parse,
    size_t len void * param 
    -
    -static
    -

    Reads a string from wire in a new allocated buffer.

    +

    Read a section of configuration file (INI style file)

    Parameters
    - - - + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    stringoutput string
    lenlength of string to read
    inconfiguration file
    sectionsection to read
    tds_conf_parsecallback that receive every entry in section
    paramparameter to pass to callback function
    -
    Returns
    0 for success, -1 on error.
    - -

    § tds_free_namelist()

    + +

    ◆ tds_read_config_info()

    - - - - - -
    - + - - + + + + + + + + + + + + + + + + + +
    static void tds_free_namelist TDSLOGIN* tds_read_config_info (struct namelisthead)TDSSOCKETtds,
    TDSLOGINlogin,
    TDSLOCALElocale 
    )
    -
    -static
    -

    Frees list of names.

    -
    Parameters
    - - -
    headlist head to free
    -
    -
    +

    tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values

    +

    .tdsrc and freetds.conf have been added to make the package easier to integration with various Linux and *BSD distributions.

    - -

    § tds_get_data_info()

    + +

    ◆ tds_read_interfaces()

    @@ -736,22 +602,16 @@ - + - - - - - - - - + + - - + + @@ -766,1249 +626,64 @@
    static TDSRET tds_get_data_info static int tds_read_interfaces (TDSSOCKETtds,
    TDSCOLUMNcurcol, const char * server,
    int is_param TDSLOGINlogin 
    -

    Reads data metadata from wire.

    -
    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    curcolcolumn where to store information
    is_paramtrue if metadata are for a parameter (false for normal column)
    -
    -
    +

    Try to find the IP number and port for a (possibly) logical server name.

    +
    Note
    This function uses only the interfaces file and is deprecated.
    Here is the call graph for this function:
    -
    +
    - -

    § tds_get_token_size()

    + +

    ◆ tds_set_interfaces_file_loc()

    - + - - + +
    int tds_get_token_size TDSRET tds_set_interfaces_file_loc (int marker)const char * interf)
    -

    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

    +

    Set the full name of interface file.

    Parameters
    - +
    markertoken type.
    interffile name
    - -

    § tds_lookup_dynamic()

    +

    Variable Documentation

    + +

    ◆ boolean_values

    - - - - - - - - - - - - - - - +
    TDSDYNAMIC* tds_lookup_dynamic (TDSCONNECTIONconn,
    const char * id 
    )const { ... } boolean_values[]
    - -

    Finds a dynamic given string id.

    -
    Returns
    dynamic or NULL is not found
    -
    Parameters
    - - - -
    connstate information for the socket and the TDS protocol
    iddynamic id to search
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_pr_op()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static const char * tds_pr_op (int op)
    -
    -static
    -
    - -

    Returns string representation for a given operation.

    -
    Parameters
    - - -
    opoperation code
    -
    -
    -
    Returns
    string representation. Empty if not found.
    - -
    -
    - -

    § tds_process_auth()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_auth (TDSSOCKETtds)
    -
    -static
    -
    - -

    Process authentication token.

    -

    This token is only TDS 7.0+.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_cancel()

    - -
    -
    - - - - - - - - -
    TDSRET tds_process_cancel (TDSSOCKETtds)
    -
    -
    Remarks
    Process the incoming token stream until it finds an end token (DONE, DONEPROC, DONEINPROC) with the cancel flag set. At that point the connection should be ready to handle a new query.
    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_col_fmt()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_col_fmt (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_col_fmt() is the other half of result set processing under TDS 4.2.

    -

    It follows tds_process_col_name(). It contains all the column type and size information. This is a 4.2 only function

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_col_name()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_col_name (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_colinfo()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_process_colinfo (TDSSOCKETtds,
    char ** names,
    int num_names 
    )
    -
    -static
    -
    - -

    Reads column information.

    -

    This token is only TDS 4.2

    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    [in]namestable names
    [in]num_namesnumber of table names
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_compute()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_compute (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_compute() processes compute rows and places them in the row buffer.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_compute_names()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_compute_names (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_compute_names() processes compute result sets.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_compute_result()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_compute_result (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_compute_result() processes compute result sets.

    -

    These functions need work but since they get little use, nobody has complained! It is very similar to normal result sets.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_cursor_tokens()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_cursor_tokens (TDSSOCKETtds)
    -
    -static
    -
    - -

    Reads cursor command results.

    -

    This contains status of cursors.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_default_tokens()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_process_default_tokens (TDSSOCKETtds,
    int marker 
    )
    -
    -static
    -
    - -

    tds_process_default_tokens() is a catch all function that is called to process tokens not known to other tds_process_* routines

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    markerToken type
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_dyn_result()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_dyn_result (TDSSOCKETtds)
    -
    -static
    -
    - -

    Process results from dynamic.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_dynamic()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSDYNAMIC * tds_process_dynamic (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_dynamic() finds the element of the dyns array for the id

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    Returns
    allocated dynamic or NULL on failure.
    - -
    -
    - -

    § tds_process_end()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_process_end (TDSSOCKETtds,
    int marker,
    int * flags_parm 
    )
    -
    -static
    -
    - -

    tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens.

    -
    Parameters
    - - - - -
    tdsstate information for the socket and the TDS protocol
    markerTDS token number
    flags_parmfilled with bit flags (see TDS_DONE_ constants). Is NULL nothing is returned
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_env_chg()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_env_chg (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_env_chg() when ever certain things change on the server, such as database, character set, language, or block size.

    -

    A environment change message is generated There is no action taken currently, but certain functions at the CLI level that return the name of the current database will need to use this.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_info()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_process_info (TDSSOCKETtds,
    int marker 
    )
    -
    -static
    -
    - -

    tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine

    -
    Returns
    TDS_SUCCESS if informational, TDS_FAIL if error.
    - -
    -
    - -

    § tds_process_login_tokens()

    - -
    -
    - - - - - - - - -
    TDSRET tds_process_login_tokens (TDSSOCKETtds)
    -
    - -

    tds_process_login_tokens() is called after sending the login packet to the server.

    -

    It returns the success or failure of the login dependent on the protocol version. 4.2 sends an ACK token only when successful, TDS 5.0 sends it always with a success byte within

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_param_result()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static TDSRET tds_process_param_result (TDSSOCKETtds,
    TDSPARAMINFO ** pinfo 
    )
    -
    -static
    -
    - -

    process output parameters of a stored procedure.

    -

    This differs from regular row/compute results in that there is no total number of parameters given, they just show up singly.

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    [out]pinfooutput parameter. Should point to a not allocated structure
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_param_result_tokens()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_param_result_tokens (TDSSOCKETtds)
    -
    -static
    -
    - -

    Process parameters from networks.

    -

    Read all consecutives paramaters, not a single one. Parameters are then stored in tds->param_info or tds->cur_dyn->res_info depending if we are reading cursor results or normal parameters.

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_params_result_token()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_params_result_token (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_params_result_token() processes params on TDS5.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_pending_closes()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static void tds_process_pending_closes (TDSSOCKETtds)
    -
    -static
    -
    - -

    Attempt to close all deferred closes (dynamics and cursors).

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_row()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_row (TDSSOCKETtds)
    -
    -static
    -
    - -

    tds_process_row() processes rows and places them in the row buffer.

    -
    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    - -
    -
    - -

    § tds_process_simple_query()

    - -
    -
    - - - - - - - - -
    TDSRET tds_process_simple_query (TDSSOCKETtds)
    -
    - -

    Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded.

    -

    This function was written to avoid direct calls to tds_process_default_tokens (which caused problems such as ignoring query errors). Results are read until idle state or severe failure (do not stop for statement failure).

    Returns
    see tds_process_tokens for results (TDS_NO_MORE_RESULTS is never returned)
    - -
    -
    - -

    § tds_process_tabname()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static TDSRET tds_process_tabname (TDSSOCKETtds)
    -
    -static
    -
    - -

    Process list of table from network.

    -

    This token is only TDS 4.2

    Parameters
    - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_process_tokens()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_process_tokens (TDSSOCKETtds,
    TDS_INT * result_type,
    int * done_flags,
    unsigned flag 
    )
    -
    - -

    process all streams.

    -

    tds_process_tokens() is called after submitting a query with tds_submit_query() and is responsible for calling the routines to populate tds->res_info if appropriate (some query have no result sets)

    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    result_typeA pointer to an integer variable which tds_process_tokens sets to indicate the current type of result.
    -
    -
    -
    Values that indicate command status - - - - - - -
    TDS_DONE_RESULTThe results of a command have been completely processed. This command returned no rows.
    TDS_DONEPROC_RESULTThe results of a command have been completely processed. This command returned rows.
    TDS_DONEINPROC_RESULTThe results of a command have been completely processed. This command returned rows.
    -Values that indicate results information is available - - - - - - -
    TDS_ROWFMT_RESULTRegular Data format information tds->res_info now contains the result details ; tds->current_results now points to that data
    TDS_COMPUTEFMT_ RESULTCompute data format information tds->comp_info now contains the result data; tds->current_results now points to that data
    TDS_DESCRIBE_RESULT
    -Values that indicate data is available - - - - - - - - - - -
    ValueMeaningInformation returned
    TDS_ROW_RESULTRegular row results 1 or more rows of regular data can now be retrieved
    TDS_COMPUTE_RESULTCompute row results A single row of compute data can now be retrieved
    TDS_PARAM_RESULTReturn parameter results param_info or cur_dyn->params contain returned parameters
    TDS_STATUS_RESULTStored procedure status results tds->ret_status contain the returned code
    -
    -
    Parameters
    - - - -
    done_flagsFlags contained in the TDS_DONE*_TOKEN readed
    flagFlags to select token type to stop/return
    -
    -
    -
    Todo:
    Complete TDS_DESCRIBE_RESULT description
    -
    Return values
    - - - - - -
    TDS_SUCCESSif a result set is available for processing.
    TDS_FAILon error.
    TDS_NO_MORE_RESULTSif all results have been completely processed.
    anythingreturned by one of the many functions it calls. :-(
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_prtype()

    - -
    -
    - - - - - - - - -
    const char* tds_prtype (int type)
    -
    - -

    Returns string representation of the given type.

    -
    Parameters
    - - -
    typedata type
    -
    -
    -
    Returns
    type as string. Empty if not found.
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_read_namelist()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    static int tds_read_namelist (TDSSOCKETtds,
    int remainder,
    struct namelist ** p_head,
    int large 
    )
    -
    -static
    -
    - -

    Reads list of names (usually table names)

    -
    Parameters
    - - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    remainderbytes left to read
    p_headlist head to return
    largetrue if name length from network are 2 byte (usually 1)
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_token_name()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static const char * tds_token_name (unsigned char marker)
    -
    -static
    -
    - -

    Returns string representation for a given token type.

    -
    Parameters
    - - -
    markertoken type
    -
    -
    -
    Returns
    string representation. Empty if not token not valid.
    - +Initial value:
    = {
    +
    { "yes", 1 },
    +
    { "no", 0 },
    +
    { "on", 1 },
    +
    { "off", 0 },
    +
    { "true", 1 },
    +
    { "false", 0 }
    +
    }
    +
    @@ -2016,7 +691,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00556.map freetds-1.2.3/doc/reference/a00556.map --- freetds-1.1.6/doc/reference/a00556.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00556.md5 freetds-1.2.3/doc/reference/a00556.md5 --- freetds-1.1.6/doc/reference/a00556.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -5a93198edac2cb3c911788e2d7e2bbb7 \ No newline at end of file +d1810b6457a41439e3ddf203e8be4ae1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00556.svg freetds-1.2.3/doc/reference/a00556.svg --- freetds-1.1.6/doc/reference/a00556.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00556.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Results processing - - -Node0 - -Results processing - + + + +Configuration + -Node1 - - -LibTDS API + +Node1 + + +Configuration + + + + + +Node2 + + +LibTDS API - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map freetds-1.2.3/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map --- freetds-1.1.6/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 freetds-1.2.3/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +ed92ef2fc86bbd36da4c7fdb5c33dc81 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg freetds-1.2.3/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga0176fafd412b5b8005bf1202fbc13b00_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +string_to_int + + + +Node1 + + +string_to_int + + + + + +Node2 + + +parse_numeric + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.map freetds-1.2.3/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.map --- freetds-1.1.6/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.md5 freetds-1.2.3/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c76a39b26d3f91e733494705c5586946 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.svg freetds-1.2.3/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_dstr_setlen - - -Node27 - -tds_dstr_setlen - - -Node28 - - -tds_dstr_get - - - - -Node27->Node28 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map freetds-1.2.3/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map --- freetds-1.1.6/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 freetds-1.2.3/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6fe49b659b3816598a070563021482b9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg freetds-1.2.3/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga17a0597ec3522c7f1ddb54956226dbfc_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +store_monthname + + + +Node1 + + +store_monthname + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.map freetds-1.2.3/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.map --- freetds-1.1.6/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.md5 freetds-1.2.3/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +5ed282d09b88014fa4c3df6af38cd127 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.svg freetds-1.2.3/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga28c75aff2615032005257af7455ed70d_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +string_to_numeric + + + +Node1 + + +string_to_numeric + + + + + +Node2 + + +stringz_to_numeric + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map freetds-1.2.3/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map --- freetds-1.1.6/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 freetds-1.2.3/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +02030237efe216b5689752760057576d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg freetds-1.2.3/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga467401163bf05ed167f7b2b7e8bd875a_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +stringz_to_numeric + + + +Node1 + + +stringz_to_numeric + + + + + +Node2 + + +string_to_numeric + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map freetds-1.2.3/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map --- freetds-1.1.6/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 freetds-1.2.3/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b3caeb32abc9ddd0a41c64b8fc316d9b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg freetds-1.2.3/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_dstr_dup - - -Node19 - -tds_dstr_dup - - -Node20 - - -tds_dstr_copyn - - - - -Node19->Node20 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map freetds-1.2.3/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map --- freetds-1.1.6/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 freetds-1.2.3/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +2193bcfb4c4e97b9ca154e5b6322e90a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg freetds-1.2.3/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga53a19b5da172ff364d01e8f04b97015a_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + +parse_numeric + + + +Node1 + + +parse_numeric + + + + + +Node2 + + +parse_int8 + + + + + +Node1->Node2 + + + + + +Node5 + + +string_to_int + + + + + +Node1->Node5 + + + + + +Node3 + + +string_to_int8 + + + + + +Node2->Node3 + + + + + +Node4 + + +string_to_uint8 + + + + + +Node2->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.map freetds-1.2.3/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.map --- freetds-1.1.6/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 freetds-1.2.3/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fac072704880809b843b9905ae732b8b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg freetds-1.2.3/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - -tds_dstr_copyn - - -Node13 - -tds_dstr_copyn - - -Node14 - - -parse_server_name_for_port - - - - -Node13->Node14 - - - - -Node15 - - -tds_dstr_copy - - - - -Node13->Node15 - - - - -Node18 - - -tds_dstr_dup - - - - -Node13->Node18 - - - - -Node15->Node14 - - - - -Node16 - - -tds_process_colinfo - - - - -Node15->Node16 - - - - -Node17 - - -tds_dstr_set - - - - -Node15->Node17 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.map freetds-1.2.3/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.map --- freetds-1.1.6/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.md5 freetds-1.2.3/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6ba34f8d0c2030b50e990503f5dac280 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.svg freetds-1.2.3/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_dstr_alloc - - -Node1 - -tds_dstr_alloc - - -Node2 - - -tds_dstr_get - - - - -Node1->Node2 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.map freetds-1.2.3/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.map --- freetds-1.1.6/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 freetds-1.2.3/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +a43499a99d1ba997dab6512215bb5cbd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg freetds-1.2.3/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga80487b313213f60d8be71a50a002bb2c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_willconvert + + + +Node1 + + +tds_willconvert + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.map freetds-1.2.3/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.map --- freetds-1.1.6/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.md5 freetds-1.2.3/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -58a532e6616a8020295d930d072f4e4d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.svg freetds-1.2.3/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga8fa35e3ff06ef0b7d0d642cf50282ab8_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_dstr_buf - - -Node4 - -tds_dstr_buf - - -Node5 - - -tds_dstr_get - - - - -Node4->Node5 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.map freetds-1.2.3/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.map --- freetds-1.1.6/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.md5 freetds-1.2.3/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6fe4c0db0aa4c3520693ff1b764ac49e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.svg freetds-1.2.3/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_ga933f87cca76156648e91f472650b98f3_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +string_to_int8 + + + +Node1 + + +string_to_int8 + + + + + +Node2 + + +parse_int8 + + + + + +Node1->Node2 + + + + + +Node3 + + +parse_numeric + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map freetds-1.2.3/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map --- freetds-1.1.6/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 freetds-1.2.3/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -90382b5450e4d096e36008fa9f73c24e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg freetds-1.2.3/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -tds_dstr_set - - -Node22 - -tds_dstr_set - - -Node23 - - -tds_dstr_copy - - - - -Node22->Node23 - - - - -Node24 - - -tds_dstr_copyn - - - - -Node23->Node24 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.map freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.map --- freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +8c128b661cc77e5a1deba635cf730f31 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +parse_int8 + + + +Node1 + + +parse_int8 + + + + + +Node2 + + +parse_numeric + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.map freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.map --- freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +b654d397e02df28372d63e4f03507cf4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gace939c1fa676d172cb0cae94848b7fac_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +parse_int8 + + + +Node1 + + +parse_int8 + + + + + +Node2 + + +string_to_int8 + + + + + +Node1->Node2 + + + + + +Node3 + + +string_to_uint8 + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map --- freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -417b71975eec856d3fc31e37148997ca \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_dstr_copy - - -Node6 - -tds_dstr_copy - - -Node7 - - -tds_dstr_copyn - - - - -Node6->Node7 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map --- freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 --- freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c02624b19278b363ace8327277a32d2c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg --- freetds-1.1.6/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_dstr_copy - - -Node8 - -tds_dstr_copy - - -Node9 - - -parse_server_name_for_port - - - - -Node8->Node9 - - - - -Node10 - - -tds_process_colinfo - - - - -Node8->Node10 - - - - -Node11 - - -tds_dstr_set - - - - -Node8->Node11 - - - - - diff -Nru freetds-1.1.6/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map freetds-1.2.3/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map --- freetds-1.1.6/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 freetds-1.2.3/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 --- freetds-1.1.6/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +9c0a6313901cf883941f09b7eabd6d1e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg freetds-1.2.3/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg --- freetds-1.1.6/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +string_to_uint8 + + + +Node1 + + +string_to_uint8 + + + + + +Node2 + + +parse_int8 + + + + + +Node1->Node2 + + + + + +Node3 + + +parse_numeric + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00557.html freetds-1.2.3/doc/reference/a00557.html --- freetds-1.1.6/doc/reference/a00557.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Dynamic string functions +FreeTDS API: Conversion @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -59,159 +62,342 @@
    -
    Dynamic string functions
    +
    Conversion
    -

    Handle dynamic string. +

    Conversions between datatypes. Supports, for example, dbconvert().
    + More...

    -Collaboration diagram for Dynamic string functions:
    +Collaboration diagram for Conversion:
    -
    +
    -
    - - - - -

    -Classes

    struct  tds_dstr
     Structure to hold a string. More...
     
    - - - - - - -

    Macros

    #define DSTR_INITIALIZER   ((struct tds_dstr*) &tds_str_empty)
     Initializer, used to initialize string like in the following example. More...
     
    -#define tds_dstr_empty(s)   tds_dstr_free(s)
     Make a string empty.
     
    - - - - + + + + + +

    -Typedefs

    typedef struct tds_dstrDSTR
     Structure to hold a string. More...
     
    #define CASE_ALL_BINARY
     
    +#define CASE_ALL_CHAR   SYBCHAR: case SYBVARCHAR: case SYBTEXT: case XSYBCHAR: case XSYBVARCHAR
     
    +#define is_monthname(s)   (store_monthname(s, NULL) >= 0)
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    DSTRtds_dstr_alloc (DSTR *s, size_t length)
     allocate space for length char More...
     
    static char * tds_dstr_buf (DSTR *s)
     Returns a buffer to edit the string. More...
     
    DSTRtds_dstr_copy (DSTR *s, const char *src)
     copy a string from another More...
     
    DSTRtds_dstr_copyn (DSTR *s, const char *src, size_t length)
     Set string to a given buffer of characters. More...
     
    -static const char * tds_dstr_cstr (const DSTR *s)
     Returns a C version (NUL terminated string) of dstr.
     
    DSTRtds_dstr_dup (DSTR *s, const DSTR *src)
     Duplicate a string from another dynamic string. More...
     
    -void tds_dstr_free (DSTR *s)
     free string
     
    -static void tds_dstr_init (DSTR *s)
     init a string with empty
     
    -static int tds_dstr_isempty (const DSTR *s)
     test if string is empty
     
    -static size_t tds_dstr_len (const DSTR *s)
     Returns the length of the string in bytes.
     
    DSTRtds_dstr_set (DSTR *s, char *src)
     set a string from another buffer. More...
     
    DSTRtds_dstr_setlen (DSTR *s, size_t length)
     limit length of string, MUST be <= current length More...
     
    -void tds_dstr_zero (DSTR *s)
     clear all string filling with zeroes (mainly for security reason)
     
    +static TDS_INT binary_to_result (int desttype, const void *data, size_t len, CONV_RESULT *cr)
     Copy binary data to to result and return len or TDS_CONVERT_NOMEM.
     
    +static bool is_alphabetic (const char *)
     
    +static bool is_ampm (const char *)
     
    +static bool is_dd_mon_yyyy (char *t)
     
    +static bool is_numeric (const char *)
     
    +static bool is_numeric_dateformat (const char *)
     
    +static bool is_timeformat (const char *)
     
    static TDS_INT parse_int8 (const char *buf, const char *pend, TDS_UINT8 *res, bool *p_negative)
     convert a number in string to TDS_INT8 More...
     
    static const char * parse_numeric (const char *buf, const char *pend, bool *p_negative, size_t *p_digits, size_t *p_decimals)
     Parse a string for numbers. More...
     
    +static int store_dd_mon_yyy_date (char *datestr, struct tds_time *t)
     
    +static int store_hour (const char *, const char *, struct tds_time *)
     
    +static int store_mday (const char *, struct tds_time *)
     
    static int store_monthname (const char *datestr, struct tds_time *t)
     Test if a string is a month name and store correct month number. More...
     
    +static int store_numeric_date (const char *, struct tds_time *)
     
    +static int store_time (const char *, struct tds_time *)
     
    +static int store_year (int, struct tds_time *)
     
    +static int store_yymmdd_date (const char *, struct tds_time *)
     
    +static int string_to_datetime (const char *datestr, TDS_UINT len, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT string_to_float (const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
     
    static TDS_INT string_to_int (const char *buf, const char *pend, TDS_INT *res)
     convert a number in string to TDS_INT More...
     
    static TDS_INT string_to_int8 (const char *buf, const char *pend, TDS_INT8 *res)
     convert a number in string to TDS_INT8 More...
     
    static int string_to_numeric (const char *instr, const char *pend, CONV_RESULT *cr)
     convert a number in string to a TDSNUMERIC More...
     
    +static TDS_INT string_to_result (int desttype, const char *s, CONV_RESULT *cr)
     Copy a terminated string to result and return len or TDS_CONVERT_NOMEM.
     
    static TDS_INT string_to_uint8 (const char *buf, const char *pend, TDS_UINT8 *res)
     convert a number in string to TDS_UINT8 More...
     
    static int stringz_to_numeric (const char *instr, CONV_RESULT *cr)
     convert a zero terminated string to NUMERIC More...
     
    +TDS_INT tds_char2hex (TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR *src, TDS_UINT srclen)
     
    TDS_INT tds_convert (const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
     tds_convert convert a type to another. More...
     
    +static TDS_INT tds_convert_bigdatetime (const TDSCONTEXT *tds_ctx, const TDS_BIGDATETIME *bigdatetime, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_bigtime (const TDSCONTEXT *tds_ctx, const TDS_BIGTIME *bigtime, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_binary (const TDS_UCHAR *src, TDS_INT srclen, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_bit (const TDS_CHAR *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_char (const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_date (const TDSCONTEXT *tds_ctx, const TDS_DATE *date, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_datetime (const TDSCONTEXT *tds_ctx, const TDS_DATETIME *dt, int desttype, unsigned precision, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_datetime4 (const TDSCONTEXT *tds_ctx, const TDS_DATETIME4 *dt4, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_datetimeall (const TDSCONTEXT *tds_ctx, int srctype, const TDS_DATETIMEALL *dta, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_flt8 (const TDS_FLOAT *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int (TDS_INT num, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int1 (const TDS_TINYINT *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int2 (const TDS_SMALLINT *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int4 (const TDS_INT *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int8 (const TDS_INT8 *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int8_numeric (unsigned char scale, unsigned char sign, TDS_UINT8 num, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_int_numeric (unsigned char scale, unsigned char sign, TDS_UINT num, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_money (const TDSCONTEXT *tds_ctx, const TDS_MONEY *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_money4 (const TDSCONTEXT *tds_ctx, const TDS_MONEY4 *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_numeric (const TDS_NUMERIC *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_real (const TDS_REAL *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_time (const TDSCONTEXT *tds_ctx, const TDS_TIME *time, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_to_binary (int srctype, const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_uint2 (const TDS_USMALLINT *src, int desttype, CONV_RESULT *cr)
     
    +static TDS_INT tds_convert_uint4 (const TDS_UINT *src, int desttype, CONV_RESULT *cr)
     
    +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)
     Convert from db date format to a structured date format. More...
     
    TDS_SERVER_TYPE tds_get_null_type (TDS_SERVER_TYPE srctype)
     Get same type but nullable. More...
     
    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. More...
     
    unsigned char tds_willconvert (int srctype, int desttype)
     Test if a conversion is possible. More...
     
    - - - + +

    Variables

    -const struct tds_dstr tds_str_empty
     Internal representation for an empty string.
     
    +const char tds_hex_digits [] = "0123456789abcdef"
     

    Detailed Description

    -

    Handle dynamic string.

    -

    In this string are always valid (you don't have NULL pointer, only empty strings)

    +

    Conversions between datatypes. Supports, for example, dbconvert().
    +

    Macro Definition Documentation

    - -

    § DSTR_INITIALIZER

    + +

    ◆ CASE_ALL_BINARY

    - +
    #define DSTR_INITIALIZER   ((struct tds_dstr*) &tds_str_empty)#define CASE_ALL_BINARY
    - -

    Initializer, used to initialize string like in the following example.

    - +Value:
    SYBBINARY: case SYBVARBINARY: case SYBIMAGE: case XSYBBINARY: case XSYBVARBINARY: \
    +
    case SYBLONGBINARY: case TDS_CONVERT_BINARY
    +
    -

    Typedef Documentation

    - -

    § DSTR

    +

    Function Documentation

    + +

    ◆ parse_int8()

    + + + + + +
    - + + + + + + + + + + + + + + + + + + + + + + + + + + +
    typedef struct tds_dstr * DSTRstatic TDS_INT parse_int8 (const char * buf,
    const char * pend,
    TDS_UINT8 * res,
    bool * p_negative 
    )
    +
    +static
    -

    Structure to hold a string.

    -

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

    +

    convert a number in string to TDS_INT8

    +
    Returns
    TDS_CONVERT_* or failure code on error
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    -

    Function Documentation

    - -

    § tds_dstr_alloc()

    + +

    ◆ parse_numeric()

    + + + + + +
    - + - - + + - - + + + + + + + + + + + + + + + + + + + + @@ -219,28 +405,38 @@
    DSTR * tds_dstr_alloc static const char * parse_numeric (DSTRs, const char * buf,
    size_t length const char * pend,
    bool * p_negative,
    size_t * p_digits,
    size_t * p_decimals 
    +
    +static
    -

    allocate space for length char

    +

    Parse a string for numbers.

    +

    Syntax can be something like " *[+-] *[0-9]*\.[0-9]* *".

    +

    The function ignore all spaces. It strips leading zeroes which could possibly lead to overflow. The function returns a pointer to the integer part followed by *p_digits digits followed by a dot followed by *p_decimals digits (dot and fractional digits are optional, in this case *p_decimals is 0).

    Parameters
    - - + + + + +
    sdynamic string
    lengthnew length
    bufstart of string
    pendpointer to string end
    p_negativestore if number is negative
    p_digitsstore number of integer digits
    p_decimalsstore number of fractional digits
    -
    Returns
    string allocated or NULL on memory error
    +
    Returns
    pointer to first not zero digit. If NULL this indicate a syntax error.
    Here is the caller graph for this function:
    -
    +
    - -

    § tds_dstr_buf()

    + +

    ◆ store_monthname()

    @@ -249,48 +445,74 @@ - + - - + + + + + + + + + + + +
    static char* tds_dstr_buf static int store_monthname (DSTRs)const char * datestr,
    struct tds_timet 
    )
    -inlinestatic +static
    -

    Returns a buffer to edit the string.

    -

    Be careful to avoid buffer overflows and remember to set the correct length at the end of the editing if changed.

    +

    Test if a string is a month name and store correct month number.

    +
    Returns
    month number (0-11) or -1 if not match
    +
    Parameters
    + + + +
    datestrstring to check
    twhere to store month (if NULL no store is done)
    +
    +
    -Here is the caller graph for this function:
    +Here is the call graph for this function:
    -
    +
    - -

    § tds_dstr_copy()

    + +

    ◆ string_to_int()

    + + + + + +
    - + - - + + - + + + + + + + @@ -298,55 +520,107 @@
    DSTR * tds_dstr_copy static TDS_INT string_to_int (DSTRs, const char * buf,
    const char * src pend,
    TDS_INT * res 
    +
    +static
    -

    copy a string from another

    -
    Parameters
    - - - -
    sdynamic string
    srcsource buffer
    -
    -
    -
    Returns
    string copied or NULL on memory error
    +

    convert a number in string to TDS_INT

    +
    Returns
    TDS_CONVERT_* or failure code on error
    +
    Remarks
    Sybase's char->int conversion tolerates embedded blanks, such that "convert( int, ' - 13 ' )" works.
    + If we find blanks, we copy the string to a temporary buffer, skipping the blanks.
    + We return the results of atoi() with a clean string.
    +
    +

    n.b. it is possible to embed all sorts of non-printable characters, but we only check for spaces. at this time, no one on the project has tested anything else.
    +

    Here is the call graph for this function:
    -
    +
    +
    +
    +
    + +

    ◆ string_to_int8()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDS_INT string_to_int8 (const char * buf,
    const char * pend,
    TDS_INT8 * res 
    )
    +
    +static
    +
    + +

    convert a number in string to TDS_INT8

    +
    Returns
    TDS_CONVERT_* or failure code on error
    -Here is the caller graph for this function:
    +Here is the call graph for this function:
    -
    +
    - -

    § tds_dstr_copyn()

    + +

    ◆ string_to_numeric()

    + + + + + +
    - + - - + + - + - - + + @@ -354,44 +628,50 @@
    DSTR * tds_dstr_copyn static int string_to_numeric (DSTRs, const char * instr,
    const char * src, pend,
    size_t length CONV_RESULTcr 
    +
    +static
    -

    Set string to a given buffer of characters.

    -
    Parameters
    - - - - -
    sdynamic string
    srcsource buffer
    lengthlength of source buffer
    -
    -
    -
    Returns
    string copied or NULL on memory error
    +

    convert a number in string to a TDSNUMERIC

    +
    Returns
    sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure
    Here is the caller graph for this function:
    -
    +
    - -

    § tds_dstr_dup()

    + +

    ◆ string_to_uint8()

    + + + + + +
    - + - - + + - - + + + + + + + + @@ -399,43 +679,44 @@
    DSTR * tds_dstr_dup static TDS_INT string_to_uint8 (DSTRs, const char * buf,
    const DSTRsrc const char * pend,
    TDS_UINT8 * res 
    +
    +static
    -

    Duplicate a string from another dynamic string.

    -
    Parameters
    - - - -
    soutput string
    srcsource string to copy
    -
    -
    -
    Returns
    string copied or NULL on memory error
    +

    convert a number in string to TDS_UINT8

    +
    Returns
    TDS_CONVERT_* or failure code on error
    Here is the call graph for this function:
    -
    +
    - -

    § tds_dstr_set()

    + +

    ◆ stringz_to_numeric()

    + + + + + +
    - + - - + + - - + + @@ -443,43 +724,197 @@
    DSTR * tds_dstr_set static int stringz_to_numeric (DSTRs, const char * instr,
    char * src CONV_RESULTcr 
    +
    +static
    -

    set a string from another buffer.

    -

    The string will use the supplied buffer (it not copy the string), so it should be a pointer returned by malloc.

    Parameters
    +

    convert a zero terminated string to NUMERIC

    +
    Returns
    sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_convert()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDS_INT tds_convert (const TDSCONTEXTtds_ctx,
    int srctype,
    const void * src,
    TDS_UINT srclen,
    int desttype,
    CONV_RESULTcr 
    )
    +
    + +

    tds_convert convert a type to another.

    +

    If you convert to SYBDECIMAL/SYBNUMERIC you MUST initialize precision and scale of cr. Do not expect strings to be zero terminated. Databases support zero inside string. Using strlen may result on data loss or even a segmentation fault. Instead, use memcpy to copy destination using length returned. This function does not handle NULL, srclen should be >0. Client libraries handle NULLs each in their own way.

    Parameters
    - - + + + + + +
    sdynamic string
    srcsource buffer
    tds_ctxcontext (used in conversion to data and to return messages)
    srctypetype of source
    srcpointer to source data to convert
    srclenlength in bytes of source (not counting terminator or strings)
    desttypetype of destination
    crstructure to hold result
    -
    Returns
    string copied or NULL on memory error
    -
    -Here is the call graph for this function:
    -
    -
    +
    Returns
    length of result or TDS_CONVERT_* failure code on failure. All TDS_CONVERT_* constants are <0.
    +
    + +

    ◆ tds_datecrack()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_datecrack (TDS_INT datetype,
    const void * di,
    TDSDATERECdr 
    )
    +
    + +

    Convert from db date format to a structured date format.

    +
    Parameters
    + + + + +
    datetypesource date type. SYBDATETIME or SYBDATETIME4
    disource date
    drdestination date
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    - -

    § tds_dstr_setlen()

    + +

    ◆ tds_get_null_type()

    - + - - + + + + +
    DSTR * tds_dstr_setlen TDS_SERVER_TYPE tds_get_null_type (DSTRs, TDS_SERVER_TYPE srctype)
    +
    + +

    Get same type but nullable.

    +
    Parameters
    + + +
    srctypetype requires
    +
    +
    +
    Returns
    nullable type
    + +
    +
    + +

    ◆ tds_strftime()

    + +
    +
    + + + + + + - + + + + + + + + + + + + + + + + + + + @@ -489,18 +924,60 @@
    size_t tds_strftime (char * buf,
    size_t length maxsize,
    const char * format,
    const TDSDATERECdr,
    int prec 
    -

    limit length of string, MUST be <= current length

    +

    format a date string according to an "extended" strftime(3) formatting definition.

    Parameters
    - - + + + + +
    sdynamic string
    lengthnew length
    bufoutput buffer
    maxsizesize of buffer in bytes (space include terminator)
    formatformat string passed to strftime(3), except that z represents fraction of seconds.
    drdate to convert
    precsecond fraction precision (0-7).
    +
    Returns
    length of string returned, 0 for error
    + +
    +
    + +

    ◆ tds_willconvert()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    unsigned char tds_willconvert (int srctype,
    int desttype 
    )
    +
    + +

    Test if a conversion is possible.

    +
    Parameters
    + + + +
    srctypesource type
    desttypedestination type
    +
    +
    +
    Returns
    0 if not convertible
    -Here is the caller graph for this function:
    +Here is the call graph for this function:
    -
    +
    @@ -511,7 +988,7 @@ diff -Nru freetds-1.1.6/doc/reference/a00557.map freetds-1.2.3/doc/reference/a00557.map --- freetds-1.1.6/doc/reference/a00557.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,3 +1,4 @@ - - + + + diff -Nru freetds-1.1.6/doc/reference/a00557.md5 freetds-1.2.3/doc/reference/a00557.md5 --- freetds-1.1.6/doc/reference/a00557.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -19b1a6d2c927ec5bd9d513cc116ba6b2 \ No newline at end of file +18be371d598c1dc49c3a478242da091f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00557.svg freetds-1.2.3/doc/reference/a00557.svg --- freetds-1.1.6/doc/reference/a00557.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00557.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,31 +1,37 @@ - - - - -Dynamic string functions - - -Node0 - -Dynamic string functions - + + + +Conversion + -Node1 - - -LibTDS API + +Node1 + + +Conversion + + + + + +Node2 + + +LibTDS API - -Node1->Node0 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map freetds-1.2.3/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map --- freetds-1.1.6/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 freetds-1.2.3/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 --- freetds-1.1.6/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +fb74e9fc78f6fca054b4f1d03d584dd0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg freetds-1.2.3/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg --- freetds-1.1.6/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_iconv_info_init + + + +Node1 + + +tds_iconv_info_init + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map freetds-1.2.3/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map --- freetds-1.1.6/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 freetds-1.2.3/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +3a89c7b365c6cb7d92838fe96c403723 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg freetds-1.2.3/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg --- freetds-1.1.6/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga6561d1dba1a04c168431b16ec17d7e4c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_canonical_charset_name + + + +Node1 + + +tds_canonical_charset_name + + + + + +Node2 + + +tds_canonical_charset + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map freetds-1.2.3/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map --- freetds-1.1.6/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 freetds-1.2.3/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 --- freetds-1.1.6/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +2a45fdd580ae0a32f67798dc2c59b0b3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg freetds-1.2.3/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg --- freetds-1.1.6/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga87db49044919f1bc84c0ff5e9ab00304_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_iconv + + + +Node1 + + +tds_iconv + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map freetds-1.2.3/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map --- freetds-1.1.6/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 freetds-1.2.3/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 --- freetds-1.1.6/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +54431cdcc0799fec6c67a146316ee67e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg freetds-1.2.3/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg --- freetds-1.1.6/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_ga900b0bce08c6bfc2e7c988f4b5970516_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_sys_iconv_open + + + +Node1 + + +tds_sys_iconv_open + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.map freetds-1.2.3/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.map --- freetds-1.1.6/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.md5 freetds-1.2.3/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.md5 --- freetds-1.1.6/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +3996f23466857497a56e1ea8bc6f91de \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.svg freetds-1.2.3/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.svg --- freetds-1.1.6/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558_gac01180352db7052e786463e3b07a8a9e_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_canonical_charset + + + +Node1 + + +tds_canonical_charset + + + + + +Node2 + + +tds_canonical_charset_name + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00558.html freetds-1.2.3/doc/reference/a00558.html --- freetds-1.1.6/doc/reference/a00558.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: LibTDS API +FreeTDS API: Charset conversion @@ -29,18 +29,21 @@
    - + +/* @license-end */
    @@ -59,61 +62,558 @@
    -
    LibTDS API
    +
    Charset conversion
    -

    Callable functions in libtds. +

    Convert between different charsets. More...

    -Collaboration diagram for LibTDS API:
    +Collaboration diagram for Charset conversion:
    -
    +
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +

    -Modules

     Authentication
     Functions for handling authentication.
     
     Configuration
     Handle reading of configuration.
     
     Conversion
     Conversions between datatypes.
     
     Charset conversion
     Convert between different charsets.
     
     Memory allocation
     Allocate or free resources.
     
     Query
     Function to handle query.
     
     Network functions
     Functions for reading or writing from network.
     
     Results processing
     Handle tokens in packets.
     
     Dynamic string functions
     Handle dynamic string.
     

    +Macros

    +#define CHUNK_ALLOC   4
     
    + + + + + + + +

    +Typedefs

    +typedef uint32_t ICONV_CHAR
     
    +typedef int(* iconv_get_t) (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +typedef int(* iconv_put_t) (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    + + + +

    +Enumerations

    enum  ICONV_CD_VALUE { Like_to_Like = 0x100 + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +static void _iconv_close (iconv_t *cd)
     
    +static int collate2charset (TDSCONNECTION *conn, TDS_UCHAR collate[5])
     
    +static int get_ascii (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_cp1252 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_err (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_iso1 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_ucs4be (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_ucs4le (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_utf16be (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_utf16le (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_utf8 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int put_ascii (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_cp1252 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_err (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_iso1 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_ucs4be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_ucs4le (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_utf16be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +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)
     Move the input sequence pointer to the next valid position. More...
     
    +void tds7_srv_charset_changed (TDSCONNECTION *conn, TDS_UCHAR collation[5])
     
    int tds_canonical_charset (const char *charset_name)
     Determine canonical iconv character set. More...
     
    const char * tds_canonical_charset_name (const char *charset_name)
     Determine canonical iconv character set name. More...
     
    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). More...
     
    +void tds_iconv_close (TDSCONNECTION *conn)
     
    +static void tds_iconv_err (TDSSOCKET *tds, int err)
     
    +void tds_iconv_free (TDSCONNECTION *conn)
     
    +TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
     Get iconv information from a LCID (to support different column encoding under MSSQL2K)
     
    +TDSICONVtds_iconv_get (TDSCONNECTION *conn, const char *client_charset, const char *server_charset)
     
    +TDSICONVtds_iconv_get_info (TDSCONNECTION *conn, int canonic_client, int canonic_server)
     Get a iconv info structure, allocate and initialize if needed.
     
    +static void tds_iconv_info_close (TDSICONV *char_conv)
     
    static int tds_iconv_info_init (TDSICONV *char_conv, int client_canonical, int server_canonical)
     Open iconv descriptors to convert between character sets (both directions). More...
     
    +TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
     
    +void tds_srv_charset_changed (TDSCONNECTION *conn, const char *charset)
     
    +static void tds_srv_charset_changed_num (TDSCONNECTION *conn, int canonic_charset_num)
     
    +size_t tds_sys_iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
     
    +int tds_sys_iconv_close (iconv_t cd)
     
    iconv_t tds_sys_iconv_open (const char *tocode, const char *fromcode)
     Inputs are FreeTDS canonical names, no other. More...
     
    + + + + +

    +Variables

    static const iconv_get_t iconv_gets [16]
     
    static const iconv_put_t iconv_puts [16]
     

    Detailed Description

    -

    Callable functions in libtds.

    -

    The libtds library is for use internal to FreeTDS. It is not intended for use by applications. Although any use is permitted, you're encouraged to use one of the established public APIs instead, because their interfaces are stable and documented by the vendors.

    +

    Convert between different charsets.

    +

    Set up the initial iconv conversion descriptors. When the socket is allocated, three TDSICONV structures are attached to iconv.
    + They have fixed meanings:

      +
    • 0. Client <-> UCS-2 (client2ucs2)
    • +
    • 1. Client <-> server single-byte charset (client2server_chardata)
    • +
    +

    Other designs that use less data are possible, but these three conversion needs are very often needed. By reserving them, we avoid searching the array for our most common purposes.

    +

    To solve different iconv names and portability problems FreeTDS maintains a list of aliases each charset.
    +

    +

    First we discover the names of our minimum required charsets (UTF-8, ISO8859-1 and UCS2).
    + Later, as and when it's needed, we try to discover others.

    +

    There is one list of canonic names (GNU iconv names) and two sets of aliases (one for other iconv implementations and another for Sybase). For every canonic charset name we cache the iconv name found during discovery.

    +

    Function Documentation

    + +

    ◆ skip_one_input_sequence()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static size_t skip_one_input_sequence (iconv_t cd,
    const TDS_ENCODINGcharset,
    const char ** input,
    size_t * input_size 
    )
    +
    +static
    +
    + +

    Move the input sequence pointer to the next valid position.

    +

    Used when an input character cannot be converted.
    +

    Returns
    number of bytes to skip.
    + +
    +
    + +

    ◆ tds_canonical_charset()

    + +
    +
    + + + + + + + + +
    int tds_canonical_charset (const char * charset_name)
    +
    + +

    Determine canonical iconv character set.

    +
    Returns
    canonical position, or -1 if lookup failed.
    +
    Remarks
    Returned name can be used in bytes_per_char(), above.
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_canonical_charset_name()

    + +
    +
    + + + + + + + + +
    const char* tds_canonical_charset_name (const char * charset_name)
    +
    + +

    Determine canonical iconv character set name.

    +


    +

    Returns
    canonical name, or NULL if lookup failed.
    +
    Remarks
    Returned name can be used in bytes_per_char(), above.
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_iconv()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    size_t tds_iconv (TDSSOCKETtds,
    TDSICONVconv,
    TDS_ICONV_DIRECTION io,
    const char ** inbuf,
    size_t * inbytesleft,
    char ** outbuf,
    size_t * outbytesleft 
    )
    +
    + +

    Wrapper around iconv(3).

    +

    Same parameters, with slightly different behavior.

    Parameters
    + + + + + + + + +
    tdsstate information for the socket and the TDS protocol
    ioEnumerated value indicating whether the data are being sent to or received from the server.
    convinformation about the encodings involved, including the iconv(3) conversion descriptors.
    inbufaddress of pointer to the input buffer of data to be converted.
    +
    inbytesleftaddress of count of bytes in inbuf.
    outbufaddress of pointer to the output buffer.
    +
    outbytesleftaddress of count of bytes in outbuf.
    +
    +
    +
    Return values
    + + +
    numberof irreversible conversions performed. -1 on error, see iconv(3) documentation for a description of the possible values of errno.
    +
    +
    +
    +
    Remarks
    Unlike iconv(3), none of the arguments can be nor point to NULL. Like iconv(3), all pointers will be updated. Success is signified by a nonnegative return code and *inbytesleft == 0.
    + If the conversion descriptor in iconv is -1 or NULL, inbuf is copied to outbuf, and all parameters updated accordingly.
    +

    If a character in inbuf cannot be converted because no such cbaracter exists in the outbuf character set, we emit messages similar to the ones Sybase emits when it fails such a conversion. The message varies depending on the direction of the data.
    + On a read error, we emit Msg 2403, Severity 16 (EX_INFO): "WARNING! Some character(s) could not be converted into client's character set. + Unconverted bytes were changed to question marks ('?')." On a write error we emit Msg 2402, Severity 16 (EX_USER): "Error converting client characters into server's character set. Some character(s) could not be converted." and return an error code. Client libraries relying on this routine should reflect an error back to the application.
    +

    +
    Todo:

    Check for variable multibyte non-UTF-8 input character set.
    +

    +

    Use more robust error message generation.
    +

    +

    For reads, cope with outbuf encodings that don't have the equivalent of an ASCII '?'.
    +

    +

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

    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_iconv_info_init()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static int tds_iconv_info_init (TDSICONVchar_conv,
    int client_canonical,
    int server_canonical 
    )
    +
    +static
    +
    + +

    Open iconv descriptors to convert between character sets (both directions).

    +
      +
    1. Look up the canonical names of the character sets.
    2. +
    3. Look up their widths.
    4. +
    5. Ask iconv to open a conversion descriptor.
    6. +
    7. Fail if any of the above offer any resistance.
      +
      Remarks
      The charset names written to iconv will be the canonical names, not necessarily the names passed in.
      +
    8. +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_sys_iconv_open()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    iconv_t tds_sys_iconv_open (const char * tocode,
    const char * fromcode 
    )
    +
    + +

    Inputs are FreeTDS canonical names, no other.

    +

    No alias list is consulted.
    +

    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ iconv_gets

    + +
    +
    + + + + + +
    + + + + +
    const iconv_get_t iconv_gets[16]
    +
    +static
    +
    +Initial value:
    = {
    +
    get_iso1, get_ascii, get_utf16le, get_utf16be, get_ucs4le, get_ucs4be, get_utf8, get_cp1252,
    +
    get_err, get_err, get_err, get_err, get_err, get_err, get_err, get_err,
    +
    }
    +
    +
    +
    + +

    ◆ iconv_puts

    + +
    +
    + + + + + +
    + + + + +
    const iconv_put_t iconv_puts[16]
    +
    +static
    +
    +Initial value:
    = {
    +
    put_iso1, put_ascii, put_utf16le, put_utf16be, put_ucs4le, put_ucs4be, put_utf8, put_cp1252,
    +
    put_err, put_err, put_err, put_err, put_err, put_err, put_err, put_err,
    +
    }
    +
    +
    +
    diff -Nru freetds-1.1.6/doc/reference/a00558.map freetds-1.2.3/doc/reference/a00558.map --- freetds-1.1.6/doc/reference/a00558.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558.map 2020-07-09 09:01:59.000000000 +0000 @@ -1,11 +1,4 @@ - - - - - - - - - - + + + diff -Nru freetds-1.1.6/doc/reference/a00558.md5 freetds-1.2.3/doc/reference/a00558.md5 --- freetds-1.1.6/doc/reference/a00558.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558.md5 2020-07-09 09:01:59.000000000 +0000 @@ -1 +1 @@ -6ea0374cc6493f4bae0900b33b2ecdb1 \ No newline at end of file +a810e4aef22858e36c0dd6fa49331039 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00558.svg freetds-1.2.3/doc/reference/a00558.svg --- freetds-1.1.6/doc/reference/a00558.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00558.svg 2020-07-09 09:02:01.000000000 +0000 @@ -1,135 +1,37 @@ - - - - -LibTDS API - - -Node7 - - -Network functions - - - - -Node6 - - -Query - - - - -Node5 - - -Memory allocation - - - + + + +Charset conversion + -Node1 - - -Authentication - - - - -Node9 - - -Dynamic string functions - - - - -Node3 - - -Conversion - - - - -Node8 - - -Results processing + +Node1 + + +Charset conversion -Node2 - - -Configuration - - - - -Node4 - - -Charset conversion + +Node2 + + +LibTDS API - -Node0 - -LibTDS API - - -Node0->Node7 - - - - -Node0->Node6 - - - - -Node0->Node5 - - - - -Node0->Node1 - - - - -Node0->Node9 - - - - -Node0->Node3 - - - - -Node0->Node8 - - - - -Node0->Node2 - - - - -Node0->Node4 - - + + +Node2->Node1 + + diff -Nru freetds-1.1.6/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.map freetds-1.2.3/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.map --- freetds-1.1.6/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.md5 freetds-1.2.3/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.md5 --- freetds-1.1.6/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +b7f14275aaee6a00149ca82bc1c0f9c3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.svg freetds-1.2.3/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.svg --- freetds-1.1.6/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_ga501af7e6186e59c257729599a044a30b_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_dynid + + + +Node1 + + +tds_get_dynid + + + + + +Node2 + + +tds_alloc_dynamic + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map freetds-1.2.3/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map --- freetds-1.1.6/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 freetds-1.2.3/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 --- freetds-1.1.6/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +8e202ac628c8efe3dd7bf69285b120e7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg freetds-1.2.3/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg --- freetds-1.1.6/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_ga69559de43b47f4a9e2eecc7a56527444_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_alloc_dynamic + + + +Node1 + + +tds_alloc_dynamic + + + + + +Node2 + + +tds_get_dynid + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_lookup_dynamic + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map freetds-1.2.3/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map --- freetds-1.1.6/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 freetds-1.2.3/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 --- freetds-1.1.6/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +5253eb161e5a8533055fb86640a0a447 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg freetds-1.2.3/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg --- freetds-1.1.6/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559_gabf2fdb0def5388508602ee7dd2f49506_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_release_dynamic + + + +Node1 + + +tds_release_dynamic + + + + + +Node2 + + +tds_detach_results + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00559.html freetds-1.2.3/doc/reference/a00559.html --- freetds-1.1.6/doc/reference/a00559.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Member List +FreeTDS API: Memory allocation @@ -29,19 +29,23 @@
    - + +/* @license-end */ +
    -
    +
    -
    METADATA Member List
    +
    Memory allocation
    -

    This is the complete list of members for METADATA, including all inherited members.

    - - - - - - - - - - - -
    format_string (defined in METADATA)METADATA
    name (defined in METADATA)METADATA
    nchars (defined in METADATA)METADATA
    size (defined in METADATA)METADATA
    size (defined in METADATA)METADATA
    source (defined in METADATA)METADATA
    type (defined in METADATA)METADATA
    type (defined in METADATA)METADATA
    width (defined in METADATA)METADATA
    width (defined in METADATA)METADATA
    +

    Allocate or free resources. Allocation can fail only on out of memory. In such case they return NULL and leave the state as before call. Mainly function names are in the form tds_alloc_XX or tds_free_XXX. tds_alloc_XXX functions allocate structures and return pointer to allocated data while tds_free_XXX take structure pointers and free them. Some functions require additional parameters to initialize structure correctly. The main exception are structures that use reference counting. These structures have tds_alloc_XXX functions but instead of tds_free_XXX use tds_release_XXX. +More...

    +
    +Collaboration diagram for Memory allocation:
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + +

    +Macros

    +#define REQ(i, n)   |(((TDS_REQ_ ## n / 8) == i)?(1<<(TDS_REQ_ ## n & 7)):0)
     
    +#define REQB(i)   0 SUPPORTED_REQ_CAP(i)
     
    +#define RES(i, n)   |(((TDS_RES_ ## n / 8) == i)?(1<<(TDS_RES_ ## n & 7)):0)
     
    +#define RESB(i)   0 SUPPORTED_RES_CAP(i)
     
    +#define SQLS_ENTRY(number, state)   case number: p = state; break
     
    #define SUPPORTED_REQ_CAP(i)
     
    +#define SUPPORTED_RES_CAP(i)   RES(i,CON_NOOOB) RES(i,PROTO_NOTEXT) RES(i,PROTO_NOBULK) RES(i,NOTDSDEBUG)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +BCPCOLDATAtds_alloc_bcp_column_data (unsigned int column_size)
     
    +TDSBCPINFOtds_alloc_bcpinfo (void)
     
    +char * tds_alloc_client_sqlstate (int msgno)
     
    +static TDSCOLUMNtds_alloc_column (void)
     
    +static TDSCOMPUTEINFOtds_alloc_compute_result (TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
     Allocate memory for storing compute info return NULL on out of memory.
     
    +TDSCOMPUTEINFO ** tds_alloc_compute_results (TDSSOCKET *tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
     
    +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)
     
    TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
     Allocate a dynamic statement. More...
     
    +TDSLOCALEtds_alloc_locale (void)
     
    +TDSLOGINtds_alloc_login (int use_environment)
     
    +char * tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno)
     
    +TDSPACKETtds_alloc_packet (void *buf, unsigned len)
     
    void * tds_alloc_param_data (TDSCOLUMN *curparam)
     Allocate data for a parameter. More...
     
    TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
     Adds a output parameter to TDSPARAMINFO. More...
     
    +TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols)
     
    +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)
     
    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_deinit_bcpinfo (TDSBCPINFO *bcpinfo)
     
    +static void tds_deinit_connection (TDSCONNECTION *conn)
     
    +void tds_detach_results (TDSRESULTINFO *info)
     Detach result info from it current socket.
     
    +void tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     
    +void tds_free_all_results (TDSSOCKET *tds)
     
    +void tds_free_bcp_column_data (BCPCOLDATA *coldata)
     
    +void tds_free_bcpinfo (TDSBCPINFO *bcpinfo)
     
    +static void tds_free_column (TDSCOLUMN *col)
     
    +static void tds_free_compute_result (TDSCOMPUTEINFO *comp_info)
     
    +static void tds_free_compute_results (TDSSOCKET *tds)
     
    +void tds_free_context (TDSCONTEXT *context)
     
    +static void tds_free_env (TDSCONNECTION *conn)
     
    void tds_free_input_params (TDSDYNAMIC *dyn)
     Frees all allocated input parameters of a dynamic statement. More...
     
    +void tds_free_locale (TDSLOCALE *locale)
     
    +void tds_free_login (TDSLOGIN *login)
     
    +void tds_free_msg (TDSMESSAGE *message)
     
    +void tds_free_packets (TDSPACKET *packet)
     
    +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_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. More...
     
    +static TDSCONNECTIONtds_init_connection (TDSCONNECTION *conn, TDSCONTEXT *context, unsigned int bufsize)
     
    TDSLOGINtds_init_login (TDSLOGIN *login, TDSLOCALE *locale)
     Initialize login structure with locale information and other stuff for connection. More...
     
    +static TDSSOCKETtds_init_socket (TDSSOCKET *tds_socket, unsigned int bufsize)
     
    +static void tds_param_free (TDSCOLUMN *col)
     
    void * tds_realloc (void **pp, size_t new_size)
     Reallocate a pointer and update it if success. More...
     
    +TDSPACKETtds_realloc_packet (TDSPACKET *packet, unsigned len)
     
    +TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, size_t bufsize)
     
    +void tds_release_cursor (TDSCURSOR **pcursor)
     
    void tds_release_dynamic (TDSDYNAMIC **pdyn)
     Frees dynamic statement. More...
     
    +static void tds_row_free (TDSRESULTINFO *res_info, unsigned char *row)
     
    +void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info)
     
    +static int winsock_initialized (void)
     
    + + + + + + + +

    +Variables

    static const TDS_CAPABILITIES defaultcaps
     
    +static volatile unsigned int inc_num = 1
     
    +const TDSCOLUMNFUNCS tds_invalid_funcs
     
    +

    Detailed Description

    +

    Allocate or free resources. Allocation can fail only on out of memory. In such case they return NULL and leave the state as before call. Mainly function names are in the form tds_alloc_XX or tds_free_XXX. tds_alloc_XXX functions allocate structures and return pointer to allocated data while tds_free_XXX take structure pointers and free them. Some functions require additional parameters to initialize structure correctly. The main exception are structures that use reference counting. These structures have tds_alloc_XXX functions but instead of tds_free_XXX use tds_release_XXX.

    +

    Macro Definition Documentation

    + +

    ◆ SUPPORTED_REQ_CAP

    + +
    +
    + + + + + + + + +
    #define SUPPORTED_REQ_CAP( i)
    +
    +Value:
    REQ(i,LANG) REQ(i,RPC) REQ(i,EVT) REQ(i,MSTMT) REQ(i,BCP) REQ(i,CURSOR) REQ(i,DYNF) \
    +
    REQ(i,MSG) REQ(i,PARAM) REQ(i,DATA_INT1) REQ(i,DATA_INT2) REQ(i,DATA_INT4) REQ(i,DATA_BIT) \
    +
    REQ(i,DATA_CHAR) REQ(i,DATA_VCHAR) REQ(i,DATA_BIN) REQ(i,DATA_VBIN) REQ(i,DATA_MNY8) \
    +
    REQ(i,DATA_MNY4) REQ(i,DATA_DATE8) REQ(i,DATA_DATE4) REQ(i,DATA_FLT4) REQ(i,DATA_FLT8) \
    +
    REQ(i,DATA_NUM) REQ(i,DATA_TEXT) REQ(i,DATA_IMAGE) REQ(i,DATA_DEC) REQ(i,DATA_LCHAR) \
    +
    REQ(i,DATA_LBIN) REQ(i,DATA_INTN) REQ(i,DATA_DATETIMEN) REQ(i,DATA_MONEYN) \
    +
    REQ(i,CSR_PREV) REQ(i,CSR_FIRST) REQ(i,CSR_LAST) REQ(i,CSR_ABS) REQ(i,CSR_REL) \
    +
    REQ(i,CSR_MULTI) REQ(i,CON_INBAND) REQ(i,PROTO_TEXT) REQ(i,PROTO_BULK) \
    +
    REQ(i,DATA_SENSITIVITY) REQ(i,DATA_BOUNDARY) REQ(i,PROTO_DYNPROC) REQ(i,DATA_FLTN) \
    +
    REQ(i,DATA_BITN) REQ(i,DATA_INT8) REQ(i,WIDETABLE) \
    +
    REQ(i,DATA_UINT2) REQ(i,DATA_UINT4) REQ(i,DATA_UINT8) REQ(i,DATA_UINTN) REQ(i,LARGEIDENT) \
    +
    REQ(i,SRVPKTSIZE) REQ(i,DATA_DATE) REQ(i,DATA_TIME) REQ(i,DATA_BIGTIME) REQ(i,DATA_BIGDATETIME)
    +
    +
    +
    +

    Function Documentation

    + +

    ◆ tds_alloc_dynamic()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSDYNAMIC * tds_alloc_dynamic (TDSCONNECTIONconn,
    const char * id 
    )
    +
    + +

    Allocate a dynamic statement.

    +
    Parameters
    + + + +
    connthe connection within which to allocate the statement.
    ida character label identifying the statement.
    +
    +
    +
    Returns
    a pointer to the allocated structure (NULL on failure).
    +

    tds_alloc_dynamic is used to implement placeholder code under TDS 5.0

    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_alloc_param_data()

    + +
    +
    + + + + + + + + +
    void* tds_alloc_param_data (TDSCOLUMNcurparam)
    +
    + +

    Allocate data for a parameter.

    +
    Parameters
    + + +
    curparamparameter to retrieve size information
    +
    +
    +
    Returns
    NULL on failure or new data
    + +
    +
    + +

    ◆ tds_alloc_param_result()

    + +
    +
    + + + + + + + + +
    TDSPARAMINFO * tds_alloc_param_result (TDSPARAMINFOold_param)
    +
    + +

    Adds a output parameter to TDSPARAMINFO.

    +
    Parameters
    + + +
    old_parama pointer to the TDSPARAMINFO structure containing the current set of output parameter, or NULL if none exists.
    +
    +
    +
    Returns
    a pointer to the new TDSPARAMINFO structure.
    +

    tds_alloc_param_result() works a bit differently than the other alloc result functions. Output parameters come in individually with no total number given in advance, so we simply call this func every time with get a TDS_PARAM_TOKEN and let it realloc the columns struct one bigger. tds_free_all_results() usually cleans up after us.

    + +
    +
    + +

    ◆ tds_free_input_params()

    + +
    +
    + + + + + + + + +
    void tds_free_input_params (TDSDYNAMICdyn)
    +
    + +

    Frees all allocated input parameters of a dynamic statement.

    +
    Parameters
    + + +
    dynthe dynamic statement whose input parameter are to be freed
    +
    +
    +

    tds_free_input_params frees all parameters for the give dynamic statement

    + +
    +
    + +

    ◆ tds_get_dynid()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static char* tds_get_dynid (TDSCONNECTIONconn,
    char * id 
    )
    +
    +static
    +
    + +

    Get an id for dynamic query based on TDS information.

    +
    Parameters
    + + +
    connstate information for the connection and the TDS protocol
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_init_login()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSLOGIN* tds_init_login (TDSLOGINlogin,
    TDSLOCALElocale 
    )
    +
    + +

    Initialize login structure with locale information and other stuff for connection.

    +
    Parameters
    + + +
    localelocale information (copied to configuration information)
    +
    +
    +
    Returns
    login structure or NULL if initialization error
    + +
    +
    + +

    ◆ tds_realloc()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void* tds_realloc (void ** pp,
    size_t new_size 
    )
    +
    + +

    Reallocate a pointer and update it if success.

    +
    Parameters
    + + + +
    pppointer to pointer to be reallocated
    new_sizenew size to be allocated
    +
    +
    +
    Returns
    new pointer allocated, NULL on failure
    + +
    +
    + +

    ◆ tds_release_dynamic()

    + +
    +
    + + + + + + + + +
    void tds_release_dynamic (TDSDYNAMIC ** pdyn)
    +
    + +

    Frees dynamic statement.

    +
    Parameters
    + + +
    pdynpointer to dynamic statement to be freed.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ defaultcaps

    + +
    +
    + + + + + +
    + + + + +
    const TDS_CAPABILITIES defaultcaps
    +
    +static
    +
    +Initial value:
    = { {
    +
    +
    { 1, 14, { REQB(13), REQB(12), REQB(11), REQB(10), REQB(9), REQB(8), REQB(7),
    +
    REQB(6), REQB(5), REQB(4), REQB(3), REQB(2), REQB(1), REQB(0) } },
    +
    { 2, 14, { RESB(13), RESB(12), RESB(11), RESB(10), RESB(9), RESB(8), RESB(7),
    +
    RESB(6), RESB(5), RESB(4), RESB(3), RESB(2), RESB(1), RESB(0) } }
    +
    } }
    +
    +
    +
    + diff -Nru freetds-1.1.6/doc/reference/a00559.map freetds-1.2.3/doc/reference/a00559.map --- freetds-1.1.6/doc/reference/a00559.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00559.md5 freetds-1.2.3/doc/reference/a00559.md5 --- freetds-1.1.6/doc/reference/a00559.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d2284661fe3edf070eec36a5cce65a6a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00559.svg freetds-1.2.3/doc/reference/a00559.svg --- freetds-1.1.6/doc/reference/a00559.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00559.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +Memory allocation + + + +Node1 + + +Memory allocation + + + + + +Node2 + + +LibTDS API + + + + + +Node2->Node1 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map freetds-1.2.3/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +05df911ef271253486e3ee23c9ae635c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_needs_unprepare + + + +Node1 + + +tds_needs_unprepare + + + + + +Node2 + + +tds_deferred_unprepare + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map freetds-1.2.3/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +7653868a49dcaf1ebdbe30cadb9ec47f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,69 @@ + + + + + + +tds_count_placeholders_ucs2le + + + +Node1 + + +tds_count_placeholders +_ucs2le + + + + + +Node2 + + +tds_next_placeholder +_ucs2le + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_skip_comment_ucs2le + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_skip_quoted_ucs2le + + + + + +Node2->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map freetds-1.2.3/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +add1931bb78ff3e0bac4e843d1b197d8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_start_query + + + +Node1 + + +tds_start_query + + + + + +Node2 + + +tds_start_query_head + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map freetds-1.2.3/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +97b6225dddeb3ad6fd29ad40400f0c24 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_put_param_as_string + + + +Node1 + + +tds_put_param_as_string + + + + + +Node2 + + +tds4_send_emulated_rpc + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.map freetds-1.2.3/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +cbc5db2b179a31657c4fe62529fb20cd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga11338742dc30fd0c2711f58eb830316f_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_send_cancel + + + +Node1 + + +tds_send_cancel + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map freetds-1.2.3/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +ab5acd074e39178a4e519fbd7fd67e72 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2361ec4629aa0eac38f1702b03ed8185_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,54 @@ + + + + + + +tds_skip_quoted_ucs2le + + + +Node1 + + +tds_skip_quoted_ucs2le + + + + + +Node2 + + +tds_next_placeholder +_ucs2le + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_count_placeholders +_ucs2le + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map freetds-1.2.3/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d9652cb66f6c957f8de77c6f6a20a53b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_quote_and_put + + + +Node1 + + +tds_quote_and_put + + + + + +Node2 + + +tds_put_string + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map freetds-1.2.3/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6e251497302e1401db3eb72ac93ad8f5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_cursor_check_allocated + + + +Node1 + + +tds_cursor_check_allocated + + + + + +Node2 + + +tds_deferred_cursor +_dealloc + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.map freetds-1.2.3/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +389274d545331655a9be51f86b812b17 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,172 @@ + + + + + + +tds4_send_emulated_rpc + + + +Node1 + + +tds4_send_emulated_rpc + + + + + +Node2 + + +tds_dstr_cstr + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_dstr_isempty + + + + + +Node1->Node3 + + + + + +Node4 + + +tds_dstr_len + + + + + +Node1->Node4 + + + + + +Node5 + + +tds_get_column_declaration + + + + + +Node1->Node5 + + + + + +Node6 + + +tds_put_param_as_string + + + + + +Node1->Node6 + + + + + +Node7 + + +tds_put_string + + + + + +Node1->Node7 + + + + + +Node8 + + +tds_query_flush_packet + + + + + +Node1->Node8 + + + + + +Node9 + + +tds_flush_packet + + + + + +Node8->Node9 + + + + + +Node10 + + +tds_set_state + + + + + +Node8->Node10 + + + + + +Node11 + + +tdsdump_log + + + + + +Node10->Node11 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map freetds-1.2.3/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +ae6c21d9366da6f9a9545d6abd8d4bc2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_submit_execute + + + +Node1 + + +tds_submit_execute + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.map freetds-1.2.3/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d229aa158ec8bd4e5192acf0f794a5f6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds5_put_params + + + +Node1 + + +tds5_put_params + + + + + +Node2 + + +tds_freeze + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map freetds-1.2.3/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +74ca64b97c3603fd6f06090f3f7eee32 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_column_declaration + + + +Node1 + + +tds_get_column_declaration + + + + + +Node2 + + +tds4_send_emulated_rpc + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map freetds-1.2.3/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +c59a9c8cf881cd717e422aff32eb0386 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_deferred_cursor_dealloc + + + +Node1 + + +tds_deferred_cursor +_dealloc + + + + + +Node2 + + +tds_cursor_check_allocated + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map freetds-1.2.3/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +917eb9246448b865efd48413f0f4c391 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_submit_query + + + +Node1 + + +tds_submit_query + + + + + +Node2 + + +tds_submit_query_params + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map freetds-1.2.3/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +eb1be92e8b331d3ee28c7a49be1c281d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5dbe51ce9533218f2da23f69ff63dda4_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_skip_quoted + + + +Node1 + + +tds_skip_quoted + + + + + +Node2 + + +tds_next_placeholder + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_count_placeholders + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_send_emulated_execute + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.map freetds-1.2.3/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +b1c60b99b990bec8cf8688a02672b152 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga5f071b94ad7889690762dc85646c74ab_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_submit_rpc + + + +Node1 + + +tds_submit_rpc + + + + + +Node2 + + +tds_set_state + + + + + +Node1->Node2 + + + + + +Node3 + + +tdsdump_log + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.map freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +74ad7b3d3e126fe0f6158ed488e5b325 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_next_placeholder + + + +Node1 + + +tds_next_placeholder + + + + + +Node2 + + +tds_skip_comment + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_skip_quoted + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.map freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d62898100146d52a2864d8c99f39e852 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga6455b2991afbf7da90270787f2059d31_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_next_placeholder + + + +Node1 + + +tds_next_placeholder + + + + + +Node2 + + +tds_count_placeholders + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_send_emulated_execute + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.map freetds-1.2.3/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +e5f645cd37f64540ffd70e0e28178c6c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga95e0fccedc459a4404f496eec74a369a_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_submit_query_params + + + +Node1 + + +tds_submit_query_params + + + + + +Node2 + + +tds_submit_query + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map freetds-1.2.3/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map --- freetds-1.1.6/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 freetds-1.2.3/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +eae34ad4e551abe7c71320f2077955dc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg freetds-1.2.3/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga9ad2e6defce530a8778791cce0166ccd_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_start_query_head + + + +Node1 + + +tds_start_query_head + + + + + +Node2 + + +tds_start_query + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map freetds-1.2.3/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map --- freetds-1.1.6/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 freetds-1.2.3/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +170dfdbfd01cbe2cea01876060ff7572 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg freetds-1.2.3/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_ga9f80fdf732b084aef7de7a323261aa61_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_deferred_unprepare + + + +Node1 + + +tds_deferred_unprepare + + + + + +Node2 + + +tds_needs_unprepare + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.map freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.map --- freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +5e53f21dcbe6c0997abd70c3ddd8447f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.svg freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,53 @@ + + + + + + +tds_next_placeholder_ucs2le + + + +Node1 + + +tds_next_placeholder +_ucs2le + + + + + +Node2 + + +tds_skip_comment_ucs2le + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_skip_quoted_ucs2le + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.map freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.map --- freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +8216c63705f8403e678c5a23741ef824 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.svg freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaa823973b74efdf1ff00f340496bff614_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,39 @@ + + + + + + +tds_next_placeholder_ucs2le + + + +Node1 + + +tds_next_placeholder +_ucs2le + + + + + +Node2 + + +tds_count_placeholders +_ucs2le + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map --- freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +095249908e4eb31a226e68a1257b3068 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_count_placeholders + + + +Node1 + + +tds_count_placeholders + + + + + +Node2 + + +tds_next_placeholder + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_skip_comment + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_skip_quoted + + + + + +Node2->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map --- freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +ac6672047b55787a28e0f935245fb1c8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_count_placeholders + + + +Node1 + + +tds_count_placeholders + + + + + +Node2 + + +tds_send_emulated_execute + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map freetds-1.2.3/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map --- freetds-1.1.6/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 freetds-1.2.3/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +7ae49c1f96e2e0f36f3d878b540fd485 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg freetds-1.2.3/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaac7347ba9380d77d726648b85e9fab8f_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_skip_comment + + + +Node1 + + +tds_skip_comment + + + + + +Node2 + + +tds_next_placeholder + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_count_placeholders + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_send_emulated_execute + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.map freetds-1.2.3/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.map --- freetds-1.1.6/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 freetds-1.2.3/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +192787a31de07ec0edd0ae0bf879a229 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg freetds-1.2.3/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gab304fda9f325e852ba5c5252079d22e3_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,54 @@ + + + + + + +tds_skip_comment_ucs2le + + + +Node1 + + +tds_skip_comment_ucs2le + + + + + +Node2 + + +tds_next_placeholder +_ucs2le + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_count_placeholders +_ucs2le + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.map freetds-1.2.3/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.map --- freetds-1.1.6/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.md5 freetds-1.2.3/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +3463545ff81965af24d6063320b1cea0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.svg freetds-1.2.3/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gad695defcbf663b0023851a198206a772_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_submit_queryf + + + +Node1 + + +tds_submit_queryf + + + + + +Node2 + + +tds_writetext_start + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.map freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.map --- freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +24cfe19df927e50e15eb996231bfa408 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_query_flush_packet + + + +Node1 + + +tds_query_flush_packet + + + + + +Node2 + + +tds_flush_packet + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_set_state + + + + + +Node1->Node3 + + + + + +Node4 + + +tdsdump_log + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.map freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.map --- freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +1beb0c15888001e3869054f992d582de \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg --- freetds-1.1.6/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gada27f4cfce925240ad33b71b63ca692d_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_query_flush_packet + + + +Node1 + + +tds_query_flush_packet + + + + + +Node2 + + +tds4_send_emulated_rpc + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.map freetds-1.2.3/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.map --- freetds-1.1.6/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 freetds-1.2.3/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 --- freetds-1.1.6/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +edda92a72fe724a89657e3f14c67cad1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg freetds-1.2.3/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg --- freetds-1.1.6/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560_gaf0da49585d39e99780a004ee2ca23479_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_submit_optioncmd + + + +Node1 + + +tds_submit_optioncmd + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00560.html freetds-1.2.3/doc/reference/a00560.html --- freetds-1.1.6/doc/reference/a00560.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,2805 @@ + + + + + + + +FreeTDS API: Query + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + +
    + +

    Function to handle query. +More...

    +
    +Collaboration diagram for Query:
    +
    +
    +
    +
    + + + + +

    +Classes

    struct  tds_quoteout_stream
     
    + + + + +

    +Macros

    #define TDS_PUT_N_AS_UCS2(tds, s)
     Utility to convert a constant ascii string to ucs2 and send to server. More...
     
    + + + +

    +Typedefs

    +typedef struct tds_quoteout_stream TDSQUOTEOUTSTREAM
     
    + + + +

    +Enumerations

    enum  { MUL_STARTED = 1 + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    static TDSRET tds4_send_emulated_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params)
     Send RPC as string query. More...
     
    static char * tds5_fix_dot_query (const char *query, size_t *query_len, TDSPARAMINFO *params)
     Substitute ?-style placeholders with named (@param) ones. More...
     
    static TDSRET tds5_put_params (TDSSOCKET *tds, TDSPARAMINFO *info, int flags)
     Send parameters to server. More...
     
    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. More...
     
    +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) More...
     
    static TDSRET tds7_send_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Send dynamic request on TDS 7+ to be executed. More...
     
    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+. More...
     
    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+. More...
     
    static size_t tds_ascii_to_ucs2 (char *buffer, const char *buf)
     Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not contains the NUL. More...
     
    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. More...
     
    int tds_count_placeholders (const char *query)
     Count the number of placeholders ('?') in a query. More...
     
    static int tds_count_placeholders_ucs2le (const char *query, const char *query_end)
     Count the number of placeholders ('?') in a query. More...
     
    static bool tds_cursor_check_allocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
     Check if a cursor is allocated into the server. More...
     
    +TDSRET tds_cursor_close (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_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_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send)
     
    +TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
     
    +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_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
     Deallocate cursor on idle. More...
     
    TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     Unprepare dynamic on idle. More...
     
    +TDSRET tds_disconnect (TDSSOCKET *tds)
     
    +size_t tds_fix_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Get column size for wire.
     
    TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
     Return declaration for column (like "varchar(20)"). More...
     
    +TDSRET tds_multiple_done (TDSSOCKET *tds, TDSMULTIPLE *multiple)
     
    +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)
     Check if dynamic request must be unprepared. More...
     
    const char * tds_next_placeholder (const char *start)
     Get position of next placeholder. More...
     
    static const char * tds_next_placeholder_ucs2le (const char *start, const char *end, int named)
     Found the next placeholder (? or @param) in a string. More...
     
    +static TDSRET tds_put_char_param_as_string (TDSSOCKET *tds, const TDSCOLUMN *curcol)
     
    static TDSRET tds_put_data (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Write data to wire. More...
     
    static TDSRET tds_put_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int flags)
     Put data information to wire. More...
     
    static TDSRET tds_put_param_as_string (TDSSOCKET *tds, TDSPARAMINFO *params, int n)
     Send a parameter to server. More...
     
    static TDSRET tds_query_flush_packet (TDSSOCKET *tds)
     Flush query packet. More...
     
    static size_t tds_quote (TDSSOCKET *tds, char *buffer, char quoting, const char *id, size_t len)
     Quote a string properly. More...
     
    static void tds_quote_and_put (TDSSOCKET *tds, const char *s, const char *end)
     Send a string to server while quoting it. More...
     
    size_t tds_quote_id (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
     Quote an id. More...
     
    size_t tds_quote_id_rpc (TDSSOCKET *tds, char *buffer, const char *id, int idlen)
     Quote an id for a RPC call. More...
     
    size_t tds_quote_string (TDSSOCKET *tds, char *buffer, const char *str, int len)
     Quote a string. More...
     
    +static void tds_quoteout_stream_init (TDSQUOTEOUTSTREAM *stream, TDSSOCKET *tds)
     
    +static int tds_quoteout_stream_write (TDSOUTSTREAM *stream, size_t len)
     
    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. More...
     
    +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)
     Set current cursor. More...
     
    void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Set current dynamic. More...
     
    const char * tds_skip_comment (const char *s)
     Skip a comment in a query. More...
     
    static const char * tds_skip_comment_ucs2le (const char *s, const char *end)
     Skip a comment in a query. More...
     
    const char * tds_skip_quoted (const char *s)
     Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) More...
     
    static const char * tds_skip_quoted_ucs2le (const char *s, const char *end)
     Return pointer to end of a quoted string. More...
     
    void tds_start_query (TDSSOCKET *tds, unsigned char packet_type)
     Start query packet of a given type. More...
     
    static TDSRET tds_start_query_head (TDSSOCKET *tds, unsigned char packet_type, TDSHEADERS *head)
     Start query packet of a given type. More...
     
    TDSRET tds_submit_begin_tran (TDSSOCKET *tds)
     Send a rollback request. More...
     
    TDSRET tds_submit_commit (TDSSOCKET *tds, int cont)
     Send a commit request. More...
     
    TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
     Submit a prepared query with parameters. More...
     
    TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Sends a previously prepared dynamic statement to the server. More...
     
    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. More...
     
    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. More...
     
    TDSRET tds_submit_query (TDSSOCKET *tds, const char *query)
     Sends a language string to the database server for processing. More...
     
    TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
     Sends a language string to the database server for processing. More...
     
    TDSRET tds_submit_queryf (TDSSOCKET *tds, const char *queryf,...)
     Format and submit a query. More...
     
    TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont)
     Send a rollback request. More...
     
    TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
     Calls a RPC from server. More...
     
    TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Send a unprepare request for a prepared query. More...
     
    + + + +

    +Variables

    +static const TDSCONTEXT empty_ctx = {0}
     
    +

    Detailed Description

    +

    Function to handle query.

    +

    Macro Definition Documentation

    + +

    ◆ TDS_PUT_N_AS_UCS2

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define TDS_PUT_N_AS_UCS2( tds,
     
    )
    +
    +Value:
    do { \
    +
    char buffer[sizeof(s)*2-2]; \
    +
    tds_put_smallint(tds, sizeof(buffer)/2); \
    +
    tds_put_n(tds, buffer, tds_ascii_to_ucs2(buffer, s)); \
    +
    } while(0)
    +
    +

    Utility to convert a constant ascii string to ucs2 and send to server.

    +

    Used to send internal store procedure names to server.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    sconstanst string to send
    +
    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ tds4_send_emulated_rpc()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds4_send_emulated_rpc (TDSSOCKETtds,
    const char * rpc_name,
    TDSPARAMINFOparams 
    )
    +
    +static
    +
    + +

    Send RPC as string query.

    +

    This function is used on old protocol which does not support RPC queries.

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    rpc_namename of RPC to invoke
    paramsparameters to send to server
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds5_fix_dot_query()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static char* tds5_fix_dot_query (const char * query,
    size_t * query_len,
    TDSPARAMINFOparams 
    )
    +
    +static
    +
    + +

    Substitute ?-style placeholders with named (@param) ones.

    +

    Sybase does not support ?-style placeholders so convert them. Also the function replace parameter names.

    Parameters
    + + + + +
    queryquery string
    [in,out]query_lenpointer to query length. On input length of input query, on output length of output query
    paramsparameters to send to server
    +
    +
    +
    Returns
    new query or NULL on error
    + +
    +
    + +

    ◆ tds5_put_params()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds5_put_params (TDSSOCKETtds,
    TDSPARAMINFOinfo,
    int flags 
    )
    +
    +static
    +
    + +

    Send parameters to server.

    +
    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    infoparameters to send
    flags0 or TDS_PUT_DATA_USE_NAME
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds71_submit_prepexec()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds71_submit_prepexec (TDSSOCKETtds,
    const char * query,
    const char * id,
    TDSDYNAMIC ** dyn_out,
    TDSPARAMINFOparams 
    )
    +
    + +

    Creates a temporary stored procedure in the server and execute it.

    +
    Parameters
    + + + + + + +
    tdsstate information for the socket and the TDS protocol
    querylanguage query with given placeholders ('?')
    idstring to identify the dynamic query. Pass NULL for automatic generation.
    dyn_outwill receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed. Can be NULL.
    paramsparameters to use. It can be NULL even if parameters are present.
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    + +
    +
    + +

    ◆ tds7_put_query_params()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static void tds7_put_query_params (TDSSOCKETtds,
    const char * query,
    size_t query_len 
    )
    +
    +static
    +
    + +

    Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec)

    +
    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    queryquery (encoded in ucs2le)
    query_lenquery length in bytes
    +
    +
    + +
    +
    + +

    ◆ tds7_send_execute()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static TDSRET tds7_send_execute (TDSSOCKETtds,
    TDSDYNAMICdyn 
    )
    +
    +static
    +
    + +

    Send dynamic request on TDS 7+ to be executed.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic query to execute
    +
    +
    + +
    +
    + +

    ◆ tds7_write_param_def_from_params()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds7_write_param_def_from_params (TDSSOCKETtds,
    const char * query,
    size_t query_len,
    TDSPARAMINFOparams 
    )
    +
    +static
    +
    + +

    Write string with parameters definition, useful for TDS7+.

    +

    Looks like "@P1 INT, @P2 VARCHAR(100)"

    Parameters
    + + + + + +
    tdsstate information for the socket and the TDS protocol
    queryquery to send to server encoded in ucs2le
    query_lenquery length in bytes
    paramsparameters to build declaration
    +
    +
    +
    Returns
    result of the operation
    + +
    +
    + +

    ◆ tds7_write_param_def_from_query()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds7_write_param_def_from_query (TDSSOCKETtds,
    const char * converted_query,
    size_t converted_query_len,
    TDSPARAMINFOparams 
    )
    +
    +static
    +
    + +

    Write string with parameters definition, useful for TDS7+.

    +

    Looks like "@P1 INT, @P2 VARCHAR(100)"

    Parameters
    + + + + + +
    tdsstate information for the socket and the TDS protocol
    converted_queryquery to send to server in ucs2le encoding
    converted_query_lenquery length in bytes
    paramsparameters to build declaration
    +
    +
    +
    Returns
    result of write
    + +
    +
    + +

    ◆ tds_ascii_to_ucs2()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static size_t tds_ascii_to_ucs2 (char * buffer,
    const char * buf 
    )
    +
    +static
    +
    + +

    Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not contains the NUL.

    +
    Parameters
    + + + +
    bufferbuffer where to store output
    bufstring to write
    +
    +
    +
    Returns
    bytes written
    + +
    +
    + +

    ◆ tds_convert_string()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    const char* tds_convert_string (TDSSOCKETtds,
    TDSICONVchar_conv,
    const char * s,
    int len,
    size_t * out_len 
    )
    +
    + +

    Convert a string in an allocated buffer.

    +
    Parameters
    + + + + + + +
    tdsstate information for the socket and the TDS protocol
    char_convinformation about the encodings involved
    sinput string
    leninput string length (in bytes), -1 for NUL-terminated
    out_lenreturned output length (in bytes)
    +
    +
    +
    Returns
    string allocated (or input pointer if no conversion required) or NULL if error
    + +
    +
    + +

    ◆ tds_count_placeholders()

    + +
    +
    + + + + + + + + +
    int tds_count_placeholders (const char * query)
    +
    + +

    Count the number of placeholders ('?') in a query.

    +
    Parameters
    + + +
    queryquery string
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_count_placeholders_ucs2le()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static int tds_count_placeholders_ucs2le (const char * query,
    const char * query_end 
    )
    +
    +static
    +
    + +

    Count the number of placeholders ('?') in a query.

    +
    Parameters
    + + + +
    queryquery encoded in ucs2le
    query_endend of query
    +
    +
    +
    Returns
    number of placeholders found
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_cursor_check_allocated()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static bool tds_cursor_check_allocated (TDSCONNECTIONconn,
    TDSCURSORcursor 
    )
    +
    +static
    +
    + +

    Check if a cursor is allocated into the server.

    +

    If is not allocated it assures is removed from the connection list

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    Returns
    true if allocated false otherwise
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_deferred_cursor_dealloc()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_deferred_cursor_dealloc (TDSCONNECTIONconn,
    TDSCURSORcursor 
    )
    +
    + +

    Deallocate cursor on idle.

    +

    This let libTDS close the cursor when possible.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    cursorcursor to close
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_deferred_unprepare()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_deferred_unprepare (TDSCONNECTIONconn,
    TDSDYNAMICdyn 
    )
    +
    + +

    Unprepare dynamic on idle.

    +

    This let libTDS close the prepared statement when possible.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic request to close
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_get_column_declaration()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_get_column_declaration (TDSSOCKETtds,
    TDSCOLUMNcurcol,
    char * out 
    )
    +
    + +

    Return declaration for column (like "varchar(20)").

    +

    This depends on:

      +
    • on_server.column_type
    • +
    • varint_size (for varchar(max) distinction)
    • +
    • column_size
    • +
    • precision/scale (numeric)
    • +
    +
    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn
    outbuffer to hold declaration
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_needs_unprepare()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int tds_needs_unprepare (TDSCONNECTIONconn,
    TDSDYNAMICdyn 
    )
    +
    + +

    Check if dynamic request must be unprepared.

    +

    Depending on status and protocol version request should be unprepared or not.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic request to check
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_next_placeholder()

    + +
    +
    + + + + + + + + +
    const char* tds_next_placeholder (const char * start)
    +
    + +

    Get position of next placeholder.

    +
    Parameters
    + + +
    startpointer to part of query to search
    +
    +
    +
    Returns
    next placeholder or NULL if not found
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_next_placeholder_ucs2le()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static const char* tds_next_placeholder_ucs2le (const char * start,
    const char * end,
    int named 
    )
    +
    +static
    +
    + +

    Found the next placeholder (? or @param) in a string.

    +

    String must be encoded in ucs2le.

    Parameters
    + + + + +
    startstart of the string (or part of it)
    endend of string
    namedtrue if named parameters should be returned
    +
    +
    +
    Returns
    either start of next placeholder or end if not found
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_put_data()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_put_data (TDSSOCKETtds,
    TDSCOLUMNcurcol 
    )
    +
    +inlinestatic
    +
    + +

    Write data to wire.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn where store column information
    +
    +
    +
    Returns
    TDS_FAIL on error or TDS_SUCCESS
    + +
    +
    + +

    ◆ tds_put_data_info()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_put_data_info (TDSSOCKETtds,
    TDSCOLUMNcurcol,
    int flags 
    )
    +
    +static
    +
    + +

    Put data information to wire.

    +
    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    curcolcolumn where to store information
    flagsbit flags on how to send data (use TDS_PUT_DATA_USE_NAME for use name information)
    +
    +
    +
    Returns
    TDS_SUCCESS or TDS_FAIL
    + +
    +
    + +

    ◆ tds_put_param_as_string()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_put_param_as_string (TDSSOCKETtds,
    TDSPARAMINFOparams,
    int n 
    )
    +
    +static
    +
    + +

    Send a parameter to server.

    +

    Parameters are converted to string and sent to server.

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    paramsparameters structure
    nnumber of parameter to send
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_query_flush_packet()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_query_flush_packet (TDSSOCKETtds)
    +
    +static
    +
    + +

    Flush query packet.

    +

    Used at the end of packet write to really send packet to server. This also changes the state to TDS_PENDING.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_quote()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static size_t tds_quote (TDSSOCKETtds,
    char * buffer,
    char quoting,
    const char * id,
    size_t len 
    )
    +
    +static
    +
    + +

    Quote a string properly.

    +

    Output string is always NUL-terminated

    Parameters
    + + + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    bufferoutput buffer. If NULL function will just return required bytes
    quotingquote character (should be one of '\'', '"', ']')
    idstring to quote
    lenlength of string to quote
    +
    +
    +
    Returns
    size of output string
    + +
    +
    + +

    ◆ tds_quote_and_put()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static void tds_quote_and_put (TDSSOCKETtds,
    const char * s,
    const char * end 
    )
    +
    +static
    +
    + +

    Send a string to server while quoting it.

    +
    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    sstring start
    endstring end
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_quote_id()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    size_t tds_quote_id (TDSSOCKETtds,
    char * buffer,
    const char * id,
    int idlen 
    )
    +
    + +

    Quote an id.

    +
    Parameters
    + + + + + +
    tdsstate information for the socket and the TDS protocol
    bufferbuffer to store quoted id. If NULL do not write anything (useful to compute quote length)
    idid to quote
    idlenid length (< 0 for NUL terminated)
    +
    +
    +
    Returns
    written chars (not including needed terminator)
    +
    See also
    tds_quote_id_rpc
    + +
    +
    + +

    ◆ tds_quote_id_rpc()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    size_t tds_quote_id_rpc (TDSSOCKETtds,
    char * buffer,
    const char * id,
    int idlen 
    )
    +
    + +

    Quote an id for a RPC call.

    +
    Parameters
    + + + + + +
    tdsstate information for the socket and the TDS protocol
    bufferbuffer to store quoted id. If NULL do not write anything (useful to compute quote length)
    idid to quote
    idlenid length (< 0 for NUL terminated)
    +
    +
    +
    Returns
    written chars (not including needed terminator)
    +
    See also
    tds_quote_id
    + +
    +
    + +

    ◆ tds_quote_string()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    size_t tds_quote_string (TDSSOCKETtds,
    char * buffer,
    const char * str,
    int len 
    )
    +
    + +

    Quote a string.

    +
    Parameters
    + + + + + +
    tdsstate information for the socket and the TDS protocol
    bufferbuffer to store quoted id. If NULL do not write anything (useful to compute quote length)
    strstring to quote (not necessary NUL-terminated)
    lenlength of string (-1 for NUL-terminated)
    +
    +
    +
    Returns
    written chars (not including needed terminator)
    + +
    +
    + +

    ◆ tds_send_cancel()

    + +
    +
    + + + + + + + + +
    TDSRET tds_send_cancel (TDSSOCKETtds)
    +
    + +

    tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.

    +
    Parameters
    + + +
    tdsstate information for the socket and the TDS protocol
    +
    +
    +
    Remarks
    tcp will either deliver the packet or time out. (TIME_WAIT determines how long it waits between retries.)
    +
    +

    On sending the cancel, we may get EAGAIN. We then select(2) until we know either 1) it succeeded or 2) it didn't. On failure, close the socket, tell the app, and fail the function.
    +

    +

    On success, we read(2) and wait for a reply with select(2). If we get one, great. If the client's timeout expires, we tell him, but all we can do is wait some more or give up and close the connection. If he tells us to cancel again, we wait some more.
    +

    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_set_cur_cursor()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static void tds_set_cur_cursor (TDSSOCKETtds,
    TDSCURSORcursor 
    )
    +
    +inlinestatic
    +
    + +

    Set current cursor.

    +

    Current cursor is the one will receive output from server.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    cursorcursor to set as current
    +
    +
    + +
    +
    + +

    ◆ tds_set_cur_dyn()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void tds_set_cur_dyn (TDSSOCKETtds,
    TDSDYNAMICdyn 
    )
    +
    + +

    Set current dynamic.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    dyndynamic to set
    +
    +
    + +
    +
    + +

    ◆ tds_skip_comment()

    + +
    +
    + + + + + + + + +
    const char* tds_skip_comment (const char * s)
    +
    + +

    Skip a comment in a query.

    +
    Parameters
    + + +
    sstart of the string (or part of it)
    +
    +
    +
    Returns
    pointer to end of comment
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_skip_comment_ucs2le()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static const char* tds_skip_comment_ucs2le (const char * s,
    const char * end 
    )
    +
    +static
    +
    + +

    Skip a comment in a query.

    +
    Parameters
    + + + +
    sstart of the string (or part of it). Encoded in ucs2le
    endend of string
    +
    +
    +
    Returns
    pointer to end of comment
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_skip_quoted()

    + +
    +
    + + + + + + + + +
    const char* tds_skip_quoted (const char * s)
    +
    + +

    Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])

    +
    Parameters
    + + +
    spointer to first quoting character.
    Should be ', " or [. 
    +
    +
    +
    Returns
    character after quoting
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_skip_quoted_ucs2le()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static const char* tds_skip_quoted_ucs2le (const char * s,
    const char * end 
    )
    +
    +static
    +
    + +

    Return pointer to end of a quoted string.

    +

    At the beginning pointer should point to delimiter.

    Parameters
    + + + +
    sstart of string to skip encoded in ucs2le
    endpointer to end of string
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_start_query()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void tds_start_query (TDSSOCKETtds,
    unsigned char packet_type 
    )
    +
    + +

    Start query packet of a given type.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    packet_typepacket type
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_start_query_head()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_start_query_head (TDSSOCKETtds,
    unsigned char packet_type,
    TDSHEADERShead 
    )
    +
    +static
    +
    + +

    Start query packet of a given type.

    +
    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    packet_typepacket type
    headextra information to put in a TDS7 header
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_begin_tran()

    + +
    +
    + + + + + + + + +
    TDSRET tds_submit_begin_tran (TDSSOCKETtds)
    +
    + +

    Send a rollback request.

    +

    TDS 7.2+ need this in order to handle transactions correctly if MARS is used.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    See also
    tds_submit_commit, tds_submit_rollback
    + +
    +
    + +

    ◆ tds_submit_commit()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_commit (TDSSOCKETtds,
    int cont 
    )
    +
    + +

    Send a commit request.

    +

    TDS 7.2+ need this in order to handle transactions correctly if MARS is used.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    conttrue to start a new transaction
    +
    +
    +
    See also
    tds_submit_rollback, tds_submit_begin_tran
    + +
    +
    + +

    ◆ tds_submit_execdirect()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_execdirect (TDSSOCKETtds,
    const char * query,
    TDSPARAMINFOparams,
    TDSHEADERShead 
    )
    +
    + +

    Submit a prepared query with parameters.

    +
    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    querylanguage query with given placeholders (?)
    paramsparameters to send
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    + +
    +
    + +

    ◆ tds_submit_execute()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_execute (TDSSOCKETtds,
    TDSDYNAMICdyn 
    )
    +
    + +

    Sends a previously prepared dynamic statement to the server.

    +
    Parameters
    + + + +
    tdsstate information for the socket and the TDS protocol
    dyndynamic proc to execute. Must build from same tds.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_optioncmd()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_optioncmd (TDSSOCKETtds,
    TDS_OPTION_CMD command,
    TDS_OPTION option,
    TDS_OPTION_ARGparam,
    TDS_INT param_size 
    )
    +
    + +

    Send option commands to server.

    +

    Option commands are used to change server options.

    Parameters
    + + + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    commandcommand type.
    optionoption to set/get.
    paramparameter value
    param_sizelength of parameter value in bytes
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_prepare()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_prepare (TDSSOCKETtds,
    const char * query,
    const char * id,
    TDSDYNAMIC ** dyn_out,
    TDSPARAMINFOparams 
    )
    +
    + +

    Creates a temporary stored procedure in the server.

    +

    Under TDS 4.2 dynamic statements are emulated building sql command. TDS 5 does not uses parameters type. TDS 7+ uses parameter types to prepare the query. You should prepare again the query if parameters changes.

    Parameters
    + + + + + + +
    tdsstate information for the socket and the TDS protocol
    querylanguage query with given placeholders (?)
    idstring to identify the dynamic query. Pass NULL for automatic generation.
    dyn_outwill receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed, Can be NULL.
    paramsparameters to use. It can be NULL even if parameters are present. Used only for TDS7+
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    + +
    +
    + +

    ◆ tds_submit_query()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_query (TDSSOCKETtds,
    const char * query 
    )
    +
    + +

    Sends a language string to the database server for processing.

    +

    TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    querylanguage query to submit
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_query_params()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_query_params (TDSSOCKETtds,
    const char * query,
    TDSPARAMINFOparams,
    TDSHEADERShead 
    )
    +
    + +

    Sends a language string to the database server for processing.

    +

    TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f.

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    querylanguage query to submit
    paramsparameters of query
    +
    +
    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_queryf()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_queryf (TDSSOCKETtds,
    const char * queryf,
     ... 
    )
    +
    + +

    Format and submit a query.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    queryfquery format. printf like expansion is performed on this query.
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_rollback()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_rollback (TDSSOCKETtds,
    int cont 
    )
    +
    + +

    Send a rollback request.

    +

    TDS 7.2+ need this in order to handle transactions correctly if MARS is used.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    conttrue to start a new transaction
    +
    +
    +
    See also
    tds_submit_begin_tran, tds_submit_commit
    + +
    +
    + +

    ◆ tds_submit_rpc()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_rpc (TDSSOCKETtds,
    const char * rpc_name,
    TDSPARAMINFOparams,
    TDSHEADERShead 
    )
    +
    + +

    Calls a RPC from server.

    +

    Output parameters will be stored in tds->param_info.

    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    rpc_namename of RPC
    paramsparameters informations. NULL for no parameters
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_submit_unprepare()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_submit_unprepare (TDSSOCKETtds,
    TDSDYNAMICdyn 
    )
    +
    + +

    Send a unprepare request for a prepared query.

    +
    Parameters
    + + + +
    tdsstate information for the socket and the TDS protocol
    dyndynamic query
    +
    +
    +
    Returns
    TDS_SUCCESS or TDS_FAIL
    + +
    +
    +
    +
    static size_t tds_ascii_to_ucs2(char *buffer, const char *buf)
    Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not co...
    Definition: query.c:91
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00560.map freetds-1.2.3/doc/reference/a00560.map --- freetds-1.1.6/doc/reference/a00560.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00560.md5 freetds-1.2.3/doc/reference/a00560.md5 --- freetds-1.1.6/doc/reference/a00560.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +ee467915da72dce3f0a4f02ba1c626fa \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00560.svg freetds-1.2.3/doc/reference/a00560.svg --- freetds-1.1.6/doc/reference/a00560.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00560.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +Query + + + +Node1 + + +Query + + + + + +Node2 + + +LibTDS API + + + + + +Node2->Node1 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map --- freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +041c8a86beae48e61d5f6f0c4869a071 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_byte + + + +Node1 + + +tds_get_byte + + + + + +Node2 + + +tds_read_packet + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +64df57f9b5ab8375342d616036b0610b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,53 @@ + + + + + + +tds_get_byte + + + +Node1 + + +tds_get_byte + + + + + +Node2 + + +tds_peek + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_process_param_result +_tokens + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map freetds-1.2.3/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +a7ff7eaca362a3b2784f684a4679e544 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_put_string + + + +Node1 + + +tds_put_string + + + + + +Node2 + + +tds4_send_emulated_rpc + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_quote_and_put + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map freetds-1.2.3/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map --- freetds-1.1.6/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 freetds-1.2.3/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +961d9b99457643d7512859003703097b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg freetds-1.2.3/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_peek + + + +Node1 + + +tds_peek + + + + + +Node2 + + +tds_get_byte + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_read_packet + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.map freetds-1.2.3/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +b81172583b75043eb38664070a935a51 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_freeze_close_len + + + +Node1 + + +tds_freeze_close_len + + + + + +Node2 + + +tds_freeze_close + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map freetds-1.2.3/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6a8ee9ad8a65642ca449d9c6d8aa610b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,292 @@ + + + + + + +tds_read_packet + + + +Node1 + + +tds_read_packet + + + + + +Node2 + + +tds_get_byte + + + + + +Node1->Node2 + + + + + +Node5 + + +tds_get_n + + + + + +Node1->Node5 + + + + + +Node3 + + +tds_peek + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_process_param_result +_tokens + + + + + +Node2->Node4 + + + + + +Node6 + + +tds_get_uint + + + + + +Node5->Node6 + + + + + +Node8 + + +tds_get_uint8 + + + + + +Node5->Node8 + + + + + +Node9 + + +tds_get_usmallint + + + + + +Node5->Node9 + + + + + +Node12 + + +tds_process_colinfo + + + + + +Node5->Node12 + + + + + +Node7 + + +tds5_process_dyn_result2 + + + + + +Node6->Node7 + + + + + +Node9->Node7 + + + + + +Node10 + + +tds_process_col_fmt + + + + + +Node9->Node10 + + + + + +Node11 + + +tds_process_col_name + + + + + +Node9->Node11 + + + + + +Node9->Node12 + + + + + +Node13 + + +tds_process_compute +_names + + + + + +Node9->Node13 + + + + + +Node14 + + +tds_process_cursor +_tokens + + + + + +Node9->Node14 + + + + + +Node15 + + +tds_process_dyn_result + + + + + +Node9->Node15 + + + + + +Node16 + + +tds_process_end + + + + + +Node9->Node16 + + + + + +Node17 + + +tds_process_env_chg + + + + + +Node9->Node17 + + + + + +Node18 + + +tds_process_tabname + + + + + +Node9->Node18 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.map freetds-1.2.3/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +578a14ec8aafb03c0958e3cf3f91a16c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga528cc96da09c11bc2930daae64e33e83_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_freeze_written + + + +Node1 + + +tds_freeze_written + + + + + +Node2 + + +tds_freeze_close + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map freetds-1.2.3/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +684a293be8cc66871b9a7cbd90732dcf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga5feb53554e8917a81bbbc332163a61fb_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_flush_packet + + + +Node1 + + +tds_flush_packet + + + + + +Node2 + + +tds_query_flush_packet + + + + + +Node1->Node2 + + + + + +Node3 + + +tds4_send_emulated_rpc + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.map freetds-1.2.3/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.map --- freetds-1.1.6/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.md5 freetds-1.2.3/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +90aa3f1bfcaa15214f301c105ba6e0c6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.svg freetds-1.2.3/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_freeze_close + + + +Node1 + + +tds_freeze_close + + + + + +Node2 + + +tds_freeze_close_len + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_freeze_written + + + + + +Node1->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.map freetds-1.2.3/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.map --- freetds-1.1.6/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 freetds-1.2.3/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b5a8bf695d9770b5a1bba06eac27a380 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg freetds-1.2.3/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga676c4dee6522815b16fdc8e448e43590_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + +read_and_convert + + + +Node1 + + +read_and_convert + + + + + +Node2 + + +tds_convert_stream + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_datain_stream_init + + + + + +Node1->Node3 + + + + + +Node5 + + +tds_staticout_stream_init + + + + + +Node1->Node5 + + + + + +Node4 + + +tds_datain_stream_read + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.map freetds-1.2.3/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +9575a08422ba152ba02e675073df4ba9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga6b2b012b999bd0a4f159fabc8d11a5bf_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_freeze + + + +Node1 + + +tds_freeze + + + + + +Node2 + + +tds5_put_params + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map freetds-1.2.3/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map --- freetds-1.1.6/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 freetds-1.2.3/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +495097bf4df47abd4c9649fb45a640e8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg freetds-1.2.3/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_get_uint8 + + + +Node1 + + +tds_get_uint8 + + + + + +Node2 + + +tds_get_n + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_read_packet + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map --- freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +f4c30af511259e587a14b20563c6ef71 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_get_uint + + + +Node1 + + +tds_get_uint + + + + + +Node2 + + +tds_get_n + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_read_packet + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map --- freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d1424a47b2cc39c7f42e4fd9ff847b59 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_ga9ac121c269e203337a48c5bf8afc48c3_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_uint + + + +Node1 + + +tds_get_uint + + + + + +Node2 + + +tds5_process_dyn_result2 + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map --- freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 --- freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +e5896c450985702384d9fead32616d21 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg --- freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_n + + + +Node1 + + +tds_get_n + + + + + +Node2 + + +tds_read_packet + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map --- freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 --- freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +d53746812424361b29b668f07c280908 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg --- freetds-1.1.6/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,231 @@ + + + + + + +tds_get_n + + + +Node1 + + +tds_get_n + + + + + +Node2 + + +tds_get_uint + + + + + +Node1->Node2 + + + + + +Node4 + + +tds_get_uint8 + + + + + +Node1->Node4 + + + + + +Node5 + + +tds_get_usmallint + + + + + +Node1->Node5 + + + + + +Node8 + + +tds_process_colinfo + + + + + +Node1->Node8 + + + + + +Node3 + + +tds5_process_dyn_result2 + + + + + +Node2->Node3 + + + + + +Node5->Node3 + + + + + +Node6 + + +tds_process_col_fmt + + + + + +Node5->Node6 + + + + + +Node7 + + +tds_process_col_name + + + + + +Node5->Node7 + + + + + +Node5->Node8 + + + + + +Node9 + + +tds_process_compute +_names + + + + + +Node5->Node9 + + + + + +Node10 + + +tds_process_cursor +_tokens + + + + + +Node5->Node10 + + + + + +Node11 + + +tds_process_dyn_result + + + + + +Node5->Node11 + + + + + +Node12 + + +tds_process_end + + + + + +Node5->Node12 + + + + + +Node13 + + +tds_process_env_chg + + + + + +Node5->Node13 + + + + + +Node14 + + +tds_process_tabname + + + + + +Node5->Node14 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00561.html freetds-1.2.3/doc/reference/a00561.html --- freetds-1.1.6/doc/reference/a00561.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,1386 @@ + + + + + + + +FreeTDS API: Network functions + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    Network functions
    +
    +
    + +

    Functions for reading or writing from network. +More...

    +
    +Collaboration diagram for Network functions:
    +
    +
    +
    +
    + + + + +

    +Classes

    struct  retry_addr
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    static size_t read_and_convert (TDSSOCKET *tds, TDSICONV *char_conv, size_t *wire_size, char *outbuf, size_t outbytesleft)
     For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not aligned with the character boundary. More...
     
    int tds7_get_instance_port (struct addrinfo *addr, const char *instance)
     Get port of given instance. More...
     
    int tds7_get_instance_ports (FILE *output, struct addrinfo *addr)
     Get port of all instances. More...
     
    +const char * tds_addrinfo2str (struct addrinfo *addr, char *name, int namemax)
     
    +static void tds_addrinfo_set_port (struct addrinfo *addr, unsigned int port)
     
    void tds_close_socket (TDSSOCKET *tds)
     Close current socket. More...
     
    TDS_COMPILE_CHECK (additional, TDS_ADDITIONAL_SPACE !=0)
     
    +void tds_connection_close (TDSCONNECTION *conn)
     
    +int tds_connection_read (TDSSOCKET *tds, unsigned char *buf, int buflen)
     
    +static int tds_connection_signaled (TDSCONNECTION *conn)
     
    +int tds_connection_write (TDSSOCKET *tds, const unsigned char *buf, int buflen, int final)
     
    DSTRtds_dstr_get (TDSSOCKET *tds, DSTR *s, size_t len)
     Reads a string from wire and put in a DSTR. More...
     
    TDSRET tds_flush_packet (TDSSOCKET *tds)
     Flush packet to server. More...
     
    void tds_freeze (TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len)
     Stop writing to server and cache every packet not sending them to server. More...
     
    TDSRET tds_freeze_abort (TDSFREEZE *freeze)
     Discard all data written after the freeze. More...
     
    TDSRET tds_freeze_close (TDSFREEZE *freeze)
     Stop keeping data for this specific freeze. More...
     
    TDSRET tds_freeze_close_len (TDSFREEZE *freeze, int32_t size)
     Stop keeping data for this specific freeze. More...
     
    +static void tds_freeze_update_size (const TDSFREEZE *freeze, int32_t size)
     
    size_t tds_freeze_written (TDSFREEZE *freeze)
     Compute how many bytes has been written from freeze. More...
     
    unsigned char tds_get_byte (TDSSOCKET *tds)
     Return a single byte from the input buffer. More...
     
    TDSRET tds_get_char_data (TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol)
     Fetch character data the wire. More...
     
    bool tds_get_n (TDSSOCKET *tds, void *dest, size_t need)
     Get N bytes from the buffer and return them in the already allocated space
    + given to us. More...
     
    +static TDSPACKETtds_get_packet (TDSCONNECTION *conn, unsigned len)
     
    +static int tds_get_socket_error (TDS_SYS_SOCKET sock)
     Returns error stored in the socket.
     
    size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
     Fetch a string from the wire. More...
     
    TDS_UINT tds_get_uint (TDSSOCKET *tds)
     Get an int32 from the server. More...
     
    TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
     Get an uint64 from the server. More...
     
    +TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
     Get an int16 from the server.
     
    +int tds_goodread (TDSSOCKET *tds, unsigned char *buf, int buflen)
     Loops until we have received some characters return -1 on failure.
     
    int tds_goodwrite (TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
     
    +int tds_init_write_buf (TDSSOCKET *tds)
     
    +TDSERRNO tds_open_socket (TDSSOCKET *tds, struct addrinfo *addr, unsigned int port, int timeout, int *p_oserr)
     
    +static void tds_packet_cache_add (TDSCONNECTION *conn, TDSPACKET *packet)
     
    unsigned char tds_peek (TDSSOCKET *tds)
     Reads a byte from the TDS stream without removing it. More...
     
    +int tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize)
     
    +int tds_put_byte (TDSSOCKET *tds, unsigned char c)
     
    +int tds_put_cancel (TDSSOCKET *tds)
     
    +int tds_put_int (TDSSOCKET *tds, TDS_INT i)
     
    +int tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i)
     
    +int tds_put_n (TDSSOCKET *tds, const void *buf, size_t n)
     
    +int tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si)
     
    int tds_put_string (TDSSOCKET *tds, const char *s, int len)
     Output a string to wire automatic translate string to unicode if needed. More...
     
    int tds_read_packet (TDSSOCKET *tds)
     Read in one 'packet' from the server. More...
     
    int tds_select (TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
     Select on a socket until it's available or the timeout expires. More...
     
    static TDSERRNO tds_setup_socket (TDS_SYS_SOCKET *p_sock, struct addrinfo *addr, unsigned int port, int *p_oserr)
     Setup the socket and attempt a connection. More...
     
    +void tds_socket_flush (TDS_SYS_SOCKET sock)
     
    static int tds_socket_read (TDSCONNECTION *conn, TDSSOCKET *tds, unsigned char *buf, int buflen)
     Read from an OS socket @TODO remove tds, save error somewhere, report error in another way. More...
     
    int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
     Set socket to non-blocking. More...
     
    int tds_socket_set_nosigpipe (TDS_SYS_SOCKET sock, int on)
     Set socket to not throw SIGPIPE. More...
     
    static int tds_socket_write (TDSCONNECTION *conn, TDSSOCKET *tds, const unsigned char *buf, int buflen)
     Write to an OS socket. More...
     
    void tds_unget_byte (TDSSOCKET *tds)
     Unget will always work as long as you don't call it twice in a row. More...
     
    +void tds_wakeup_close (TDSPOLLWAKEUP *wakeup)
     
    +int tds_wakeup_init (TDSPOLLWAKEUP *wakeup)
     
    +void tds_wakeup_send (TDSPOLLWAKEUP *wakeup, char cancel)
     
    +TDSRET tds_write_packet (TDSSOCKET *tds, unsigned char final)
     
    +

    Detailed Description

    +

    Functions for reading or writing from network.

    +

    Function Documentation

    + +

    ◆ read_and_convert()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static size_t read_and_convert (TDSSOCKETtds,
    TDSICONVchar_conv,
    size_t * wire_size,
    char * outbuf,
    size_t outbytesleft 
    )
    +
    +static
    +
    + +

    For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not aligned with the character boundary.

    +

    In that event, it will return an error, and some number of bytes (less than a character) will remain in the tail end of temp[]. They are moved to the beginning, ptemp is adjusted to point just behind them, and the next chunk is read.

    Parameters
    + + + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    char_convconversion structure
    [out]wire_sizesize readed from wire
    outbufbuffer to write to
    outbytesleftbuffer length
    +
    +
    +
    Returns
    bytes readed
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds7_get_instance_port()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int tds7_get_instance_port (struct addrinfo * addr,
    const char * instance 
    )
    +
    + +

    Get port of given instance.

    +
    Returns
    port number or 0 if error
    + +
    +
    + +

    ◆ tds7_get_instance_ports()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int tds7_get_instance_ports (FILE * output,
    struct addrinfo * addr 
    )
    +
    + +

    Get port of all instances.

    +
    Returns
    default port number or 0 if error
    +
    Remarks
    experimental, cf. MC-SQLR.pdf.
    + +
    +
    + +

    ◆ tds_close_socket()

    + +
    +
    + + + + + + + + +
    void tds_close_socket (TDSSOCKETtds)
    +
    + +

    Close current socket.

    +

    For last socket close entire connection. For MARS send FIN request. This attempts a graceful disconnection, for ungraceful call tds_connection_close.

    + +
    +
    + +

    ◆ tds_dstr_get()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    DSTR* tds_dstr_get (TDSSOCKETtds,
    DSTRs,
    size_t len 
    )
    +
    + +

    Reads a string from wire and put in a DSTR.

    +

    On error we read the bytes from the wire anyway.

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    [out]soutput string
    [in]lenstring length (in characters)
    +
    +
    +
    Returns
    string or NULL on error
    + +
    +
    + +

    ◆ tds_flush_packet()

    + +
    +
    + + + + + + + + +
    TDSRET tds_flush_packet (TDSSOCKETtds)
    +
    + +

    Flush packet to server.

    +
    Returns
    TDS_FAIL or TDS_SUCCESS
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_freeze()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void tds_freeze (TDSSOCKETtds,
    TDSFREEZEfreeze,
    unsigned size_len 
    )
    +
    + +

    Stop writing to server and cache every packet not sending them to server.

    +

    This is used to write data without worrying to compute length before. If size_len is provided the number of bytes written between tds_freeze and tds_freeze_close will be written as a number of size size_len. This call should be followed by a tds_freeze_close, tds_freeze_close_len or a tds_freeze_abort. Failing to match tds_freeze with a close would possibly result in a disconnection from the server.

    +
    Parameters
    + + + +
    [out]freezestructure to initialize
    size_lenlength of the size to automatically write on close (0, 1, 2, or 4)
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_freeze_abort()

    + +
    +
    + + + + + + + + +
    TDSRET tds_freeze_abort (TDSFREEZEfreeze)
    +
    + +

    Discard all data written after the freeze.

    +

    After this call freeze should not be used.

    +
    Parameters
    + + +
    [in]freezestructure to work on
    +
    +
    + +
    +
    + +

    ◆ tds_freeze_close()

    + +
    +
    + + + + + + + + +
    TDSRET tds_freeze_close (TDSFREEZEfreeze)
    +
    + +

    Stop keeping data for this specific freeze.

    +

    If size_len was used for tds_freeze this function write the written bytes at position when tds_freeze was called. After this call freeze should not be used.

    +
    Parameters
    + + +
    [in]freezestructure to work on
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_freeze_close_len()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_freeze_close_len (TDSFREEZEfreeze,
    int32_t size 
    )
    +
    + +

    Stop keeping data for this specific freeze.

    +

    Similar to tds_freeze_close but specify the size to be written instead of letting tds_freeze_close compute it. After this call freeze should not be used.

    +
    Parameters
    + + + +
    [in]freezestructure to work on
    [in]sizesize to write
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_freeze_written()

    + +
    +
    + + + + + + + + +
    size_t tds_freeze_written (TDSFREEZEfreeze)
    +
    + +

    Compute how many bytes has been written from freeze.

    +
    Returns
    bytes written since tds_freeze call
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_get_byte()

    + +
    +
    + + + + + + + + +
    unsigned char tds_get_byte (TDSSOCKETtds)
    +
    + +

    Return a single byte from the input buffer.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_get_char_data()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_get_char_data (TDSSOCKETtds,
    char * row_buffer,
    size_t wire_size,
    TDSCOLUMNcurcol 
    )
    +
    + +

    Fetch character data the wire.

    +

    Output is NOT null terminated. If char_conv is not NULL, convert data accordingly.

    Parameters
    + + + + + +
    tdsstate information for the socket and the TDS protocol
    row_bufferdestination buffer in current_row. Can't be NULL
    wire_sizesize to read from wire (in bytes)
    curcolcolumn information
    +
    +
    +
    Returns
    TDS_SUCCESS or TDS_FAIL (probably memory error on text data)
    + +
    +
    + +

    ◆ tds_get_n()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    bool tds_get_n (TDSSOCKETtds,
    void * dest,
    size_t need 
    )
    +
    + +

    Get N bytes from the buffer and return them in the already allocated space
    + given to us.

    +

    We ASSUME that the person calling this function has done the
    + bounds checking for us since they know how many bytes they want here. dest of NULL means we just want to eat the bytes. (tethe.nosp@m.row@.nosp@m.nol.o.nosp@m.rg)

    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_get_string()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    size_t tds_get_string (TDSSOCKETtds,
    size_t string_len,
    char * dest,
    size_t dest_size 
    )
    +
    + +

    Fetch a string from the wire.

    +

    Output string is NOT null terminated. If TDS version is 7 or 8 read unicode string and convert it. This function should be use to read server default encoding strings like columns name, table names, etc, not for data (use tds_get_char_data instead)

    Returns
    bytes written to dest
    +
    Parameters
    + + + + + +
    tdsconnection information
    string_lenlength of string to read from wire (in server characters, bytes for tds4-tds5, ucs2 for tds7+)
    destdestination buffer, if NULL string is read and discarded
    dest_sizedestination buffer size, in bytes
    +
    +
    + +
    +
    + +

    ◆ tds_get_uint()

    + +
    +
    + + + + + + + + +
    TDS_UINT tds_get_uint (TDSSOCKETtds)
    +
    + +

    Get an int32 from the server.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_get_uint8()

    + +
    +
    + + + + + + + + +
    TDS_UINT8 tds_get_uint8 (TDSSOCKETtds)
    +
    + +

    Get an uint64 from the server.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_goodwrite()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    int tds_goodwrite (TDSSOCKETtds,
    const unsigned char * buffer,
    size_t buflen 
    )
    +
    +
    Parameters
    + + + + + +
    tdsthe famous socket
    bufferdata to send
    buflenbytes in buffer
    last1 if this is the last packet, else 0
    +
    +
    +
    Returns
    length written (>0), <0 on failure
    + +
    +
    + +

    ◆ tds_peek()

    + +
    +
    + + + + + + + + +
    unsigned char tds_peek (TDSSOCKETtds)
    +
    + +

    Reads a byte from the TDS stream without removing it.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_put_string()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    int tds_put_string (TDSSOCKETtds,
    const char * s,
    int len 
    )
    +
    + +

    Output a string to wire automatic translate string to unicode if needed.

    +
    Returns
    bytes written to wire
    +
    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    sstring to write
    lenlength of string in characters, or -1 for null terminated
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_read_packet()

    + +
    +
    + + + + + + + + +
    int tds_read_packet (TDSSOCKETtds)
    +
    + +

    Read in one 'packet' from the server.

    +

    This is a wrapped outer packet of the protocol (they bundle result packets into chunks and wrap them at what appears to be 512 bytes regardless of how that breaks internal packet up. (tetherow@nol.org)

    Returns
    bytes read or -1 on failure
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_select()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    int tds_select (TDSSOCKETtds,
    unsigned tds_sel,
    int timeout_seconds 
    )
    +
    + +

    Select on a socket until it's available or the timeout expires.

    +

    Meanwhile, call the interrupt function.

    Returns
    >0 ready descriptors 0 timeout <0 error (cf. errno). Caller should close socket and return failure. This function does not call tdserror or close the socket because it can't know the context in which it's being called.
    +
    + +
    +
    + +

    ◆ tds_setup_socket()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSERRNO tds_setup_socket (TDS_SYS_SOCKET * p_sock,
    struct addrinfo * addr,
    unsigned int port,
    int * p_oserr 
    )
    +
    +static
    +
    + +

    Setup the socket and attempt a connection.

    +

    Function allocate the socket in *p_sock and try to start a connection.

    Parameters
    + + + + + +
    p_sockwhere returned socket is stored. Socket is stored even on error. Can be INVALID_SOCKET.
    addraddress to use for attempting the connection
    portport to connect to
    p_oserrwhere system error is returned
    +
    +
    +
    Returns
    TDSEOK is success, TDSEINPROGRESS if connection attempt is started or any other error.
    + +
    +
    + +

    ◆ tds_socket_read()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static int tds_socket_read (TDSCONNECTIONconn,
    TDSSOCKETtds,
    unsigned char * buf,
    int buflen 
    )
    +
    +static
    +
    + +

    Read from an OS socket @TODO remove tds, save error somewhere, report error in another way.

    +
    Returns
    0 if blocking, <0 error >0 bytes read
    + +
    +
    + +

    ◆ tds_socket_set_nonblocking()

    + +
    +
    + + + + + + + + +
    int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
    +
    + +

    Set socket to non-blocking.

    +
    Parameters
    + + +
    socksocket to set
    +
    +
    +
    Returns
    0 on success or error code
    + +
    +
    + +

    ◆ tds_socket_set_nosigpipe()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int tds_socket_set_nosigpipe (TDS_SYS_SOCKET sock,
    int on 
    )
    +
    + +

    Set socket to not throw SIGPIPE.

    +

    Not many systems support this feature (in this case ENOTSUP can be returned).

    Parameters
    + + + +
    socksocket to set
    onflag if enable or disable
    +
    +
    +
    Returns
    0 on success or error code
    + +
    +
    + +

    ◆ tds_socket_write()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static int tds_socket_write (TDSCONNECTIONconn,
    TDSSOCKETtds,
    const unsigned char * buf,
    int buflen 
    )
    +
    +static
    +
    + +

    Write to an OS socket.

    +
    Returns
    0 if blocking, <0 error >0 bytes readed
    + +
    +
    + +

    ◆ tds_unget_byte()

    + +
    +
    + + + + + + + + +
    void tds_unget_byte (TDSSOCKETtds)
    +
    + +

    Unget will always work as long as you don't call it twice in a row.

    +

    It it may work if you call it multiple times as long as you don't backup over the beginning of network packet boundary which can occur anywhere in the token stream.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00561.map freetds-1.2.3/doc/reference/a00561.map --- freetds-1.1.6/doc/reference/a00561.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00561.md5 freetds-1.2.3/doc/reference/a00561.md5 --- freetds-1.1.6/doc/reference/a00561.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +0c1447b5ca7ff93cbaae254c30dcd73a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00561.svg freetds-1.2.3/doc/reference/a00561.svg --- freetds-1.1.6/doc/reference/a00561.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00561.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +Network functions + + + +Node1 + + +Network functions + + + + + +Node2 + + +LibTDS API + + + + + +Node2->Node1 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.map freetds-1.2.3/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +495fc034e3d740c1e67bc568a816edf7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga22c7f413d43fc0d511e122a3de389166_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + + +tds_process_colinfo + + + +Node1 + + +tds_process_colinfo + + + + + +Node2 + + +tds_dstr_copy + + + + + +Node1->Node2 + + + + + +Node4 + + +tds_get_n + + + + + +Node1->Node4 + + + + + +Node6 + + +tds_get_usmallint + + + + + +Node1->Node6 + + + + + +Node3 + + +tds_dstr_copyn + + + + + +Node2->Node3 + + + + + +Node5 + + +tds_read_packet + + + + + +Node4->Node5 + + + + + +Node6->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map freetds-1.2.3/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b018618acff17f805199ca9922cc4610 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga315d875d90c64d12d61fc9e33b4dee96_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,68 @@ + + + + + + +tds_process_cursor_tokens + + + +Node1 + + +tds_process_cursor +_tokens + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map freetds-1.2.3/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +7550a2fd039df650b115a854e17a4153 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga39453d084f3f780ac4602d4abf2839f7_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_process_default_tokens + + + +Node1 + + +tds_process_default +_tokens + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map freetds-1.2.3/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c0627d7f40ed0933008b6a2ab82b69e1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga3e1b4df4410a86a563a8c155e7799720_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + +tds_process_env_chg + + + +Node1 + + +tds_process_env_chg + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node5 + + +tdsdump_log + + + + + +Node1->Node5 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map freetds-1.2.3/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b190c3d17f9a97053575fcb2679a12d4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga416cf119c1d4a0fca27dc5b50c261358_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_process_dyn_result + + + +Node1 + + +tds_process_dyn_result + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map freetds-1.2.3/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5195b630557a16521c79992019efd59a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga4e3dd9d3614f5f0433b78b761dd68741_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_process_col_fmt + + + +Node1 + + +tds_process_col_fmt + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map freetds-1.2.3/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map --- freetds-1.1.6/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 freetds-1.2.3/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +e2e851655c727f13be8c557ffd0de0a7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg freetds-1.2.3/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga595fe391e60a71bd98ffd53b4c015e44_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_lookup_dynamic + + + +Node1 + + +tds_lookup_dynamic + + + + + +Node2 + + +tds_alloc_dynamic + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map freetds-1.2.3/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +fcd6564c97ca149f5f845f511f2d08a8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_process_end + + + +Node1 + + +tds_process_end + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map freetds-1.2.3/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6fbbf16342e517805b5f65e475c8fe06 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + +tds_process_col_name + + + +Node1 + + +tds_process_col_name + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node5 + + +tds_read_namelist + + + + + +Node1->Node5 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map freetds-1.2.3/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map --- freetds-1.1.6/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 freetds-1.2.3/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +577f5714bfa596c567f875997d31898f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg freetds-1.2.3/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_ga9fdef8228d29cab7fa9098f07fa73fba_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,53 @@ + + + + + + +tds_process_param_result_tokens + + + +Node1 + + +tds_process_param_result +_tokens + + + + + +Node2 + + +tds_get_byte + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_read_packet + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map freetds-1.2.3/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ed7232048c9dfb8e9b843a4643dab905 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg freetds-1.2.3/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaa6a7e5aeb10a1322911c47be9c43e2d2_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds5_process_optioncmd + + + +Node1 + + +tds5_process_optioncmd + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map freetds-1.2.3/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +69d5bbc4f60740447bc5d33fdb5e8c14 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg freetds-1.2.3/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gabe2bdd5a41ce067cb31aef18ff81cb1c_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds5_process_result2 + + + +Node1 + + +tds5_process_result2 + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map freetds-1.2.3/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c55f7652c19891a0975e31c84742e564 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg freetds-1.2.3/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gabfc9de1d1fe718818caf63a4be4035a6_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_process_tokens + + + +Node1 + + +tds_process_tokens + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map freetds-1.2.3/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +9fbe21598e024779fc68516acff90c1b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg freetds-1.2.3/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaca56fc22d65a24a96d1bef310ade73aa_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds7_process_result + + + +Node1 + + +tds7_process_result + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.map freetds-1.2.3/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5c228dfb0759f5d3602c3900c2f82300 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg freetds-1.2.3/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gacb3354443bcefe7a500a500a4904cc05_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_process_param_result + + + +Node1 + + +tds_process_param_result + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map freetds-1.2.3/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ec76bab74ce0ebbe90f810c9783849c1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg freetds-1.2.3/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gad9b6b86f48be077fb44ac603845a0c27_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_get_data_info + + + +Node1 + + +tds_get_data_info + + + + + +Node2 + + +tdsdump_log + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map freetds-1.2.3/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +48d467421af9ac38c4a2c99b2d34e9ce \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg freetds-1.2.3/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + +tds_process_compute_names + + + +Node1 + + +tds_process_compute +_names + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node5 + + +tdsdump_log + + + + + +Node1->Node5 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.map freetds-1.2.3/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b60e19413df5018f1d7101ccab5fc92a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.svg freetds-1.2.3/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gae688b515631141acfbc41bbb91c8b921_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,88 @@ + + + + + + +tds5_process_dyn_result2 + + + +Node1 + + +tds5_process_dyn_result2 + + + + + +Node2 + + +tds_get_uint + + + + + +Node1->Node2 + + + + + +Node5 + + +tds_get_usmallint + + + + + +Node1->Node5 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + +Node5->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map freetds-1.2.3/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map --- freetds-1.1.6/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 freetds-1.2.3/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +9bd30dd17abba6d6f7704d9be26a7801 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg freetds-1.2.3/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg --- freetds-1.1.6/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_read_namelist + + + +Node1 + + +tds_read_namelist + + + + + +Node2 + + +tds_process_col_name + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map freetds-1.2.3/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map --- freetds-1.1.6/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 freetds-1.2.3/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 --- freetds-1.1.6/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6076bef0f59fa25b0c943a84a36bca0f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg freetds-1.2.3/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg --- freetds-1.1.6/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_process_tabname + + + +Node1 + + +tds_process_tabname + + + + + +Node2 + + +tds_get_usmallint + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_get_n + + + + + +Node2->Node3 + + + + + +Node4 + + +tds_read_packet + + + + + +Node3->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00562.html freetds-1.2.3/doc/reference/a00562.html --- freetds-1.1.6/doc/reference/a00562.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: METADATA Struct Reference +FreeTDS API: Results processing @@ -29,19 +29,23 @@ - + +/* @license-end */ +
    -
    -
    METADATA Struct Reference
    +
    Results processing
    + +

    Handle tokens in packets. Many PDU (packets data unit) contain tokens. (like result description, rows, data, errors and many other). +More...

    +
    +Collaboration diagram for Results processing:
    +
    +
    +
    +
    - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -char * format_string
     
    -char * name
     
    -SQLINTEGER nchars
     
    -int size
     
    -SQLULEN size
     
    -const char * source
     
    -int type
     
    -SQLSMALLINT type
     
    -int width
     
    -SQLULEN width
     
    -
    The documentation for this struct was generated from the following files:
      -
    • src/apps/bsqldb.c
    • -
    • src/apps/bsqlodbc.c
    • -
    +

    +Classes

    +struct  namelist + Holds list of names. More...
    +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    static void adjust_character_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Adjust column size according to client's encoding. More...
     
    int determine_adjusted_size (const TDSICONV *char_conv, int size)
     Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
     
    static TDSRET tds5_process_dyn_result2 (TDSSOCKET *tds)
     Process new TDS 5.0 token for describing output parameters. More...
     
    static TDSRET tds5_process_optioncmd (TDSSOCKET *tds)
     Process option cmd results. More...
     
    static TDSRET tds5_process_result (TDSSOCKET *tds)
     tds5_process_result() is the TDS 5.0 result set processing routine. More...
     
    static TDSRET tds5_process_result2 (TDSSOCKET *tds)
     tds5_process_result2() is the new TDS 5.0 result set processing routine. More...
     
    static int tds71_read_table_names (TDSSOCKET *tds, int remainder, struct namelist **p_head)
     Reads table names for TDS 7.1+. More...
     
    static TDSRET tds7_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Reads data information from wire. More...
     
    static TDSRET tds7_process_compute_result (TDSSOCKET *tds)
     tds7_process_compute_result() processes compute result sets for TDS 7/8. More...
     
    static TDSRET tds7_process_result (TDSSOCKET *tds)
     tds7_process_result() is the TDS 7.0 result set processing routine. More...
     
    static int tds_alloc_get_string (TDSSOCKET *tds, char **string, size_t len)
     Reads a string from wire in a new allocated buffer. More...
     
    static void tds_free_namelist (struct namelist *head)
     Frees list of names. More...
     
    static TDSRET tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
     Reads data metadata from wire. More...
     
    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 More...
     
    TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
     Finds a dynamic given string id. More...
     
    static const char * tds_pr_op (int op)
     Returns string representation for a given operation. More...
     
    static TDSRET tds_process_auth (TDSSOCKET *tds)
     Process authentication token. More...
     
    TDSRET tds_process_cancel (TDSSOCKET *tds)
     
    static TDSRET tds_process_col_fmt (TDSSOCKET *tds)
     tds_process_col_fmt() is the other half of result set processing under TDS 4.2. More...
     
    static TDSRET tds_process_col_name (TDSSOCKET *tds)
     tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function More...
     
    static TDSRET tds_process_colinfo (TDSSOCKET *tds, char **names, int num_names)
     Reads column information. More...
     
    static TDSRET tds_process_compute (TDSSOCKET *tds)
     tds_process_compute() processes compute rows and places them in the row buffer. More...
     
    static TDSRET tds_process_compute_names (TDSSOCKET *tds)
     tds_process_compute_names() processes compute result sets. More...
     
    static TDSRET tds_process_compute_result (TDSSOCKET *tds)
     tds_process_compute_result() processes compute result sets. More...
     
    static TDSRET tds_process_cursor_tokens (TDSSOCKET *tds)
     Reads cursor command results. More...
     
    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 More...
     
    static TDSRET tds_process_dyn_result (TDSSOCKET *tds)
     Process results from dynamic. More...
     
    static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
     tds_process_dynamic() finds the element of the dyns array for the id More...
     
    static TDSRET tds_process_end (TDSSOCKET *tds, int marker, int *flags_parm)
     tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens. More...
     
    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. More...
     
    +static TDSRET tds_process_env_routing (TDSSOCKET *tds)
     
    +static TDSRET tds_process_featureextack (TDSSOCKET *tds)
     
    static TDSRET tds_process_info (TDSSOCKET *tds, int marker)
     tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine More...
     
    TDSRET tds_process_login_tokens (TDSSOCKET *tds)
     tds_process_login_tokens() is called after sending the login packet to the server. More...
     
    +static TDSRET tds_process_loginack (TDSSOCKET *tds, TDSRET *login_succeeded)
     
    +static TDSRET tds_process_nbcrow (TDSSOCKET *tds)
     tds_process_nbcrow() processes rows and places them in the row buffer.
     
    static TDSRET tds_process_param_result (TDSSOCKET *tds, TDSPARAMINFO **pinfo)
     process output parameters of a stored procedure. More...
     
    static TDSRET tds_process_param_result_tokens (TDSSOCKET *tds)
     Process parameters from networks. More...
     
    static TDSRET tds_process_params_result_token (TDSSOCKET *tds)
     tds_process_params_result_token() processes params on TDS5. More...
     
    static void tds_process_pending_closes (TDSSOCKET *tds)
     Attempt to close all deferred closes (dynamics and cursors). More...
     
    static TDSRET tds_process_row (TDSSOCKET *tds)
     tds_process_row() processes rows and places them in the row buffer. More...
     
    TDSRET tds_process_simple_query (TDSSOCKET *tds)
     Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. More...
     
    static TDSRET tds_process_tabname (TDSSOCKET *tds)
     Process list of table from network. More...
     
    TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
     process all streams. More...
     
    const char * tds_prtype (int type)
     Returns string representation of the given type. More...
     
    static int tds_read_namelist (TDSSOCKET *tds, int remainder, struct namelist **p_head, int large)
     Reads list of names (usually table names) More...
     
    static const char * tds_token_name (unsigned char marker)
     Returns string representation for a given token type. More...
     
    +

    Detailed Description

    +

    Handle tokens in packets. Many PDU (packets data unit) contain tokens. (like result description, rows, data, errors and many other).

    +

    Function Documentation

    + +

    ◆ adjust_character_column_size()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static void adjust_character_column_size (TDSSOCKETtds,
    TDSCOLUMNcurcol 
    )
    +
    +static
    +
    + +

    Adjust column size according to client's encoding.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn to adjust
    +
    +
    + +
    +
    + +

    ◆ determine_adjusted_size()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int determine_adjusted_size (const TDSICONVchar_conv,
    int size 
    )
    +
    + +

    Allow for maximum possible size of converted data, while being careful about integer division truncation.

    +

    All character data pass through iconv. It doesn't matter if the server side is Unicode or not; even Latin1 text need conversion if, for example, the client is UTF-8.
    +

    Parameters
    + + + +
    char_convconversion structure
    sizeunconverted byte size
    +
    +
    +
    Returns
    maximum size for converted string
    + +
    +
    + +

    ◆ tds5_process_dyn_result2()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds5_process_dyn_result2 (TDSSOCKETtds)
    +
    +static
    +
    + +

    Process new TDS 5.0 token for describing output parameters.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds5_process_optioncmd()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds5_process_optioncmd (TDSSOCKETtds)
    +
    +static
    +
    + +

    Process option cmd results.

    +

    This token is available only on TDS 5.0 (Sybase).

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds5_process_result()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds5_process_result (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds5_process_result() is the TDS 5.0 result set processing routine.

    +

    It is responsible for populating the tds->res_info structure. This is a TDS 5.0 only function

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds5_process_result2()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds5_process_result2 (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds5_process_result2() is the new TDS 5.0 result set processing routine.

    +

    It is responsible for populating the tds->res_info structure. This is a TDS 5.0 only function

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds71_read_table_names()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static int tds71_read_table_names (TDSSOCKETtds,
    int remainder,
    struct namelist ** p_head 
    )
    +
    +static
    +
    + +

    Reads table names for TDS 7.1+.

    +

    TDS 7.1+ return table names as an array of names (so database.schema.owner.name as separate names)

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    remainderbytes left to read
    p_headpointer to list head to return
    +
    +
    +
    Returns
    number of element returned or -1 on error
    + +
    +
    + +

    ◆ tds7_get_data_info()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static TDSRET tds7_get_data_info (TDSSOCKETtds,
    TDSCOLUMNcurcol 
    )
    +
    +static
    +
    + +

    Reads data information from wire.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    curcolcolumn where to store information
    +
    +
    + +
    +
    + +

    ◆ tds7_process_compute_result()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds7_process_compute_result (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds7_process_compute_result() processes compute result sets for TDS 7/8.

    +

    They is are very similar to normal result sets.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds7_process_result()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds7_process_result (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds7_process_result() is the TDS 7.0 result set processing routine.

    +

    It is responsible for populating the tds->res_info structure. This is a TDS 7.0 only function

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_alloc_get_string()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static int tds_alloc_get_string (TDSSOCKETtds,
    char ** string,
    size_t len 
    )
    +
    +static
    +
    + +

    Reads a string from wire in a new allocated buffer.

    +
    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    stringoutput string
    lenlength of string to read
    +
    +
    +
    Returns
    0 for success, -1 on error.
    + +
    +
    + +

    ◆ tds_free_namelist()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void tds_free_namelist (struct namelisthead)
    +
    +static
    +
    + +

    Frees list of names.

    +
    Parameters
    + + +
    headlist head to free
    +
    +
    + +
    +
    + +

    ◆ tds_get_data_info()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_get_data_info (TDSSOCKETtds,
    TDSCOLUMNcurcol,
    int is_param 
    )
    +
    +static
    +
    + +

    Reads data metadata from wire.

    +
    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    curcolcolumn where to store information
    is_paramtrue if metadata are for a parameter (false for normal column)
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_get_token_size()

    + +
    +
    + + + + + + + + +
    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

    +
    Parameters
    + + +
    markertoken type.
    +
    +
    + +
    +
    + +

    ◆ tds_lookup_dynamic()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSDYNAMIC* tds_lookup_dynamic (TDSCONNECTIONconn,
    const char * id 
    )
    +
    + +

    Finds a dynamic given string id.

    +
    Returns
    dynamic or NULL is not found
    +
    Parameters
    + + + +
    connstate information for the socket and the TDS protocol
    iddynamic id to search
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_pr_op()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static const char * tds_pr_op (int op)
    +
    +static
    +
    + +

    Returns string representation for a given operation.

    +
    Parameters
    + + +
    opoperation code
    +
    +
    +
    Returns
    string representation. Empty if not found.
    + +
    +
    + +

    ◆ tds_process_auth()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_auth (TDSSOCKETtds)
    +
    +static
    +
    + +

    Process authentication token.

    +

    This token is only TDS 7.0+.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_cancel()

    + +
    +
    + + + + + + + + +
    TDSRET tds_process_cancel (TDSSOCKETtds)
    +
    +
    Remarks
    Process the incoming token stream until it finds an end token (DONE, DONEPROC, DONEINPROC) with the cancel flag set. At that point the connection should be ready to handle a new query.
    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_col_fmt()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_col_fmt (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_col_fmt() is the other half of result set processing under TDS 4.2.

    +

    It follows tds_process_col_name(). It contains all the column type and size information. This is a 4.2 only function

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_col_name()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_col_name (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_colinfo()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_process_colinfo (TDSSOCKETtds,
    char ** names,
    int num_names 
    )
    +
    +static
    +
    + +

    Reads column information.

    +

    This token is only TDS 4.2

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    [in]namestable names
    [in]num_namesnumber of table names
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_compute()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_compute (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_compute() processes compute rows and places them in the row buffer.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_compute_names()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_compute_names (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_compute_names() processes compute result sets.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_compute_result()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_compute_result (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_compute_result() processes compute result sets.

    +

    These functions need work but since they get little use, nobody has complained! It is very similar to normal result sets.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_cursor_tokens()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_cursor_tokens (TDSSOCKETtds)
    +
    +static
    +
    + +

    Reads cursor command results.

    +

    This contains status of cursors.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_default_tokens()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_process_default_tokens (TDSSOCKETtds,
    int marker 
    )
    +
    +static
    +
    + +

    tds_process_default_tokens() is a catch all function that is called to process tokens not known to other tds_process_* routines

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    markerToken type
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_dyn_result()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_dyn_result (TDSSOCKETtds)
    +
    +static
    +
    + +

    Process results from dynamic.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_dynamic()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSDYNAMIC * tds_process_dynamic (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_dynamic() finds the element of the dyns array for the id

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    Returns
    allocated dynamic or NULL on failure.
    + +
    +
    + +

    ◆ tds_process_end()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_process_end (TDSSOCKETtds,
    int marker,
    int * flags_parm 
    )
    +
    +static
    +
    + +

    tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens.

    +
    Parameters
    + + + + +
    tdsstate information for the socket and the TDS protocol
    markerTDS token number
    flags_parmfilled with bit flags (see TDS_DONE_ constants). Is NULL nothing is returned
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_env_chg()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_env_chg (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_env_chg() when ever certain things change on the server, such as database, character set, language, or block size.

    +

    A environment change message is generated There is no action taken currently, but certain functions at the CLI level that return the name of the current database will need to use this.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_info()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_process_info (TDSSOCKETtds,
    int marker 
    )
    +
    +static
    +
    + +

    tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine

    +
    Returns
    TDS_SUCCESS if informational, TDS_FAIL if error.
    + +
    +
    + +

    ◆ tds_process_login_tokens()

    + +
    +
    + + + + + + + + +
    TDSRET tds_process_login_tokens (TDSSOCKETtds)
    +
    + +

    tds_process_login_tokens() is called after sending the login packet to the server.

    +

    It returns the success or failure of the login dependent on the protocol version. 4.2 sends an ACK token only when successful, TDS 5.0 sends it always with a success byte within

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_param_result()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static TDSRET tds_process_param_result (TDSSOCKETtds,
    TDSPARAMINFO ** pinfo 
    )
    +
    +static
    +
    + +

    process output parameters of a stored procedure.

    +

    This differs from regular row/compute results in that there is no total number of parameters given, they just show up singly.

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    [out]pinfooutput parameter. Should point to a not allocated structure
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_param_result_tokens()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_param_result_tokens (TDSSOCKETtds)
    +
    +static
    +
    + +

    Process parameters from networks.

    +

    Read all consecutives paramaters, not a single one. Parameters are then stored in tds->param_info or tds->cur_dyn->res_info depending if we are reading cursor results or normal parameters.

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_params_result_token()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_params_result_token (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_params_result_token() processes params on TDS5.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_pending_closes()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void tds_process_pending_closes (TDSSOCKETtds)
    +
    +static
    +
    + +

    Attempt to close all deferred closes (dynamics and cursors).

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_row()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_row (TDSSOCKETtds)
    +
    +static
    +
    + +

    tds_process_row() processes rows and places them in the row buffer.

    +
    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    + +
    +
    + +

    ◆ tds_process_simple_query()

    + +
    +
    + + + + + + + + +
    TDSRET tds_process_simple_query (TDSSOCKETtds)
    +
    + +

    Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded.

    +

    This function was written to avoid direct calls to tds_process_default_tokens (which caused problems such as ignoring query errors). Results are read until idle state or severe failure (do not stop for statement failure).

    Returns
    see tds_process_tokens for results (TDS_NO_MORE_RESULTS is never returned)
    + +
    +
    + +

    ◆ tds_process_tabname()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static TDSRET tds_process_tabname (TDSSOCKETtds)
    +
    +static
    +
    + +

    Process list of table from network.

    +

    This token is only TDS 4.2

    Parameters
    + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_process_tokens()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_process_tokens (TDSSOCKETtds,
    TDS_INT * result_type,
    int * done_flags,
    unsigned flag 
    )
    +
    + +

    process all streams.

    +

    tds_process_tokens() is called after submitting a query with tds_submit_query() and is responsible for calling the routines to populate tds->res_info if appropriate (some query have no result sets)

    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    result_typeA pointer to an integer variable which tds_process_tokens sets to indicate the current type of result.
    +
    +
    +
    Values that indicate command status + + + + + + +
    TDS_DONE_RESULTThe results of a command have been completely processed. This command returned no rows.
    TDS_DONEPROC_RESULTThe results of a command have been completely processed.
    + This command returned rows.
    TDS_DONEINPROC_RESULTThe results of a command have been completely processed.
    + This command returned rows.
    +Values that indicate results information is available + + + + + + +
    TDS_ROWFMT_RESULTRegular Data format information tds->res_info now contains the result details ; tds->current_results now points to that data
    TDS_COMPUTEFMT_ RESULTCompute data format information tds->comp_info now contains the result data; tds->current_results now points to that data
    TDS_DESCRIBE_RESULT
    +Values that indicate data is available + + + + + + + + + + +
    ValueMeaningInformation returned
    TDS_ROW_RESULTRegular row results 1 or more rows of regular data can now be retrieved
    TDS_COMPUTE_RESULTCompute row results A single row of compute data can now be retrieved
    TDS_PARAM_RESULTReturn parameter results param_info or cur_dyn->params contain returned parameters
    TDS_STATUS_RESULTStored procedure status results tds->ret_status contain the returned code
    +
    +
    Parameters
    + + + +
    done_flagsFlags contained in the TDS_DONE*_TOKEN readed
    flagFlags to select token type to stop/return
    +
    +
    +
    Todo:
    Complete TDS_DESCRIBE_RESULT description
    +
    Return values
    + + + + + +
    TDS_SUCCESSif a result set is available for processing.
    TDS_FAILon error.
    TDS_NO_MORE_RESULTSif all results have been completely processed.
    anythingreturned by one of the many functions it calls. :-(
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_prtype()

    + +
    +
    + + + + + + + + +
    const char* tds_prtype (int type)
    +
    + +

    Returns string representation of the given type.

    +
    Parameters
    + + +
    typedata type
    +
    +
    +
    Returns
    type as string. Empty if not found.
    + +
    +
    + +

    ◆ tds_read_namelist()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static int tds_read_namelist (TDSSOCKETtds,
    int remainder,
    struct namelist ** p_head,
    int large 
    )
    +
    +static
    +
    + +

    Reads list of names (usually table names)

    +
    Parameters
    + + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    remainderbytes left to read
    p_headlist head to return
    largetrue if name length from network are 2 byte (usually 1)
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_token_name()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static const char * tds_token_name (unsigned char marker)
    +
    +static
    +
    + +

    Returns string representation for a given token type.

    +
    Parameters
    + + +
    markertoken type
    +
    +
    +
    Returns
    string representation. Empty if not token not valid.
    + +
    +
    diff -Nru freetds-1.1.6/doc/reference/a00562.map freetds-1.2.3/doc/reference/a00562.map --- freetds-1.1.6/doc/reference/a00562.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562.map 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00562.md5 freetds-1.2.3/doc/reference/a00562.md5 --- freetds-1.1.6/doc/reference/a00562.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562.md5 2020-07-09 09:01:59.000000000 +0000 @@ -0,0 +1 @@ +6b4db94d219f0c7f82fec59e9716abba \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00562.svg freetds-1.2.3/doc/reference/a00562.svg --- freetds-1.1.6/doc/reference/a00562.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00562.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +Results processing + + + +Node1 + + +Results processing + + + + + +Node2 + + +LibTDS API + + + + + +Node2->Node1 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map freetds-1.2.3/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map --- freetds-1.1.6/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 freetds-1.2.3/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 --- freetds-1.1.6/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5f10a7c864325bdacdb19bf7af5abbad \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg freetds-1.2.3/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg --- freetds-1.1.6/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_dstr_dup + + + +Node1 + + +tds_dstr_dup + + + + + +Node2 + + +tds_dstr_copyn + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.map freetds-1.2.3/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.map --- freetds-1.1.6/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 freetds-1.2.3/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 --- freetds-1.1.6/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +a58016a39495661f5d54d33c41127046 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg freetds-1.2.3/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg --- freetds-1.1.6/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_ga656718f240d7403f986ae887d84a6ca1_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + + +tds_dstr_copyn + + + +Node1 + + +tds_dstr_copyn + + + + + +Node2 + + +parse_server_name_for_port + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_dstr_copy + + + + + +Node1->Node3 + + + + + +Node6 + + +tds_dstr_dup + + + + + +Node1->Node6 + + + + + +Node3->Node2 + + + + + +Node4 + + +tds_dstr_set + + + + + +Node3->Node4 + + + + + +Node5 + + +tds_process_colinfo + + + + + +Node3->Node5 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map freetds-1.2.3/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map --- freetds-1.1.6/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 freetds-1.2.3/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 --- freetds-1.1.6/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +4b49504e5af00fca910d06b5d6bd19eb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg freetds-1.2.3/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg --- freetds-1.1.6/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +tds_dstr_set + + + +Node1 + + +tds_dstr_set + + + + + +Node2 + + +tds_dstr_copy + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_dstr_copyn + + + + + +Node2->Node3 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map --- freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 --- freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5a858158aad5fce88f48a3d2e488f8d1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg --- freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_dstr_copy + + + +Node1 + + +tds_dstr_copy + + + + + +Node2 + + +tds_dstr_copyn + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map --- freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 --- freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +dff11159b88b6f821fbd401237bd3b47 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg --- freetds-1.1.6/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + + +tds_dstr_copy + + + +Node1 + + +tds_dstr_copy + + + + + +Node2 + + +parse_server_name_for_port + + + + + +Node1->Node2 + + + + + +Node3 + + +tds_dstr_set + + + + + +Node1->Node3 + + + + + +Node4 + + +tds_process_colinfo + + + + + +Node1->Node4 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00563.html freetds-1.2.3/doc/reference/a00563.html --- freetds-1.1.6/doc/reference/a00563.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: Member List +FreeTDS API: Dynamic string functions @@ -29,19 +29,23 @@ - + +/* @license-end */ +
    -
    +
    -
    DATA Member List
    +
    Dynamic string functions
    -

    This is the complete list of members for DATA, including all inherited members.

    - - - - -
    buffer (defined in DATA)DATA
    len (defined in DATA)DATA
    status (defined in DATA)DATA
    +

    Handle dynamic string. In this string are always valid (you don't have NULL pointer, only empty strings) +More...

    +
    +Collaboration diagram for Dynamic string functions:
    +
    +
    +
    +
    + + + + + +

    +Classes

    struct  tds_dstr
     Structure to hold a string. More...
     
    + + + + + + + +

    +Macros

    #define DSTR_INITIALIZER   ((struct tds_dstr*) &tds_str_empty)
     Initializer, used to initialize string like in the following example. More...
     
    +#define tds_dstr_empty(s)   tds_dstr_free(s)
     Make a string empty.
     
    + + + + +

    +Typedefs

    typedef struct tds_dstrDSTR
     Structure to hold a string. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    DSTRtds_dstr_alloc (DSTR *s, size_t length)
     allocate space for length char More...
     
    static char * tds_dstr_buf (DSTR *s)
     Returns a buffer to edit the string. More...
     
    DSTRtds_dstr_copy (DSTR *s, const char *src)
     copy a string from another More...
     
    DSTRtds_dstr_copyn (DSTR *s, const char *src, size_t length)
     Set string to a given buffer of characters. More...
     
    +static const char * tds_dstr_cstr (const DSTR *s)
     Returns a C version (NUL terminated string) of dstr.
     
    DSTRtds_dstr_dup (DSTR *s, const DSTR *src)
     Duplicate a string from another dynamic string. More...
     
    +void tds_dstr_free (DSTR *s)
     free string
     
    +static void tds_dstr_init (DSTR *s)
     init a string with empty
     
    +static int tds_dstr_isempty (const DSTR *s)
     test if string is empty
     
    +static size_t tds_dstr_len (const DSTR *s)
     Returns the length of the string in bytes.
     
    DSTRtds_dstr_set (DSTR *s, char *src)
     set a string from another buffer. More...
     
    DSTRtds_dstr_setlen (DSTR *s, size_t length)
     limit length of string, MUST be <= current length More...
     
    +void tds_dstr_zero (DSTR *s)
     clear all string filling with zeroes (mainly for security reason)
     
    + + + + +

    +Variables

    +const struct tds_dstr tds_str_empty
     Internal representation for an empty string.
     
    +

    Detailed Description

    +

    Handle dynamic string. In this string are always valid (you don't have NULL pointer, only empty strings)

    +

    Macro Definition Documentation

    + +

    ◆ DSTR_INITIALIZER

    + +
    +
    + + + + +
    #define DSTR_INITIALIZER   ((struct tds_dstr*) &tds_str_empty)
    +
    + +

    Initializer, used to initialize string like in the following example.

    + +
    +
    +

    Typedef Documentation

    + +

    ◆ DSTR

    + +
    +
    + + + + +
    typedef struct tds_dstr * DSTR
    +
    + +

    Structure to hold a string.

    +

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

    + +
    +
    +

    Function Documentation

    + +

    ◆ tds_dstr_alloc()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DSTR * tds_dstr_alloc (DSTRs,
    size_t length 
    )
    +
    + +

    allocate space for length char

    +
    Parameters
    + + + +
    sdynamic string
    lengthnew length
    +
    +
    +
    Returns
    string allocated or NULL on memory error
    + +
    +
    + +

    ◆ tds_dstr_buf()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static char* tds_dstr_buf (DSTRs)
    +
    +inlinestatic
    +
    + +

    Returns a buffer to edit the string.

    +

    Be careful to avoid buffer overflows and remember to set the correct length at the end of the editing if changed.

    + +
    +
    + +

    ◆ tds_dstr_copy()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DSTR * tds_dstr_copy (DSTRs,
    const char * src 
    )
    +
    + +

    copy a string from another

    +
    Parameters
    + + + +
    sdynamic string
    srcsource buffer
    +
    +
    +
    Returns
    string copied or NULL on memory error
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_dstr_copyn()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    DSTR * tds_dstr_copyn (DSTRs,
    const char * src,
    size_t length 
    )
    +
    + +

    Set string to a given buffer of characters.

    +
    Parameters
    + + + + +
    sdynamic string
    srcsource buffer
    lengthlength of source buffer
    +
    +
    +
    Returns
    string copied or NULL on memory error
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_dstr_dup()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DSTR * tds_dstr_dup (DSTRs,
    const DSTRsrc 
    )
    +
    + +

    Duplicate a string from another dynamic string.

    +
    Parameters
    + + + +
    soutput string
    srcsource string to copy
    +
    +
    +
    Returns
    string copied or NULL on memory error
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_dstr_set()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DSTR * tds_dstr_set (DSTRs,
    char * src 
    )
    +
    + +

    set a string from another buffer.

    +

    The string will use the supplied buffer (it not copy the string), so it should be a pointer returned by malloc.

    Parameters
    + + + +
    sdynamic string
    srcsource buffer
    +
    +
    +
    Returns
    string copied or NULL on memory error
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_dstr_setlen()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    DSTR * tds_dstr_setlen (DSTRs,
    size_t length 
    )
    +
    + +

    limit length of string, MUST be <= current length

    +
    Parameters
    + + + +
    sdynamic string
    lengthnew length
    +
    +
    + +
    +
    + +
    Structure to hold a string.
    Definition: string.h:36
    +
    #define DSTR_INITIALIZER
    Initializer, used to initialize string like in the following example.
    Definition: string.h:49
    diff -Nru freetds-1.1.6/doc/reference/a00563.map freetds-1.2.3/doc/reference/a00563.map --- freetds-1.1.6/doc/reference/a00563.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00563.md5 freetds-1.2.3/doc/reference/a00563.md5 --- freetds-1.1.6/doc/reference/a00563.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +11b6f1838f068dad2be4a3e28fc1bc35 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00563.svg freetds-1.2.3/doc/reference/a00563.svg --- freetds-1.1.6/doc/reference/a00563.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00563.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +Dynamic string functions + + + +Node1 + + +Dynamic string functions + + + + + +Node2 + + +LibTDS API + + + + + +Node2->Node1 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00564.html freetds-1.2.3/doc/reference/a00564.html --- freetds-1.1.6/doc/reference/a00564.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00564.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,123 @@ + + + + + + + +FreeTDS API: LibTDS API + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    LibTDS API
    +
    +
    + +

    Callable functions in libtds. +More...

    +
    +Collaboration diagram for LibTDS API:
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Modules

     Authentication
     Functions for handling authentication.
     
     Configuration
     Handle reading of configuration.
     
     Conversion
     Conversions between datatypes. Supports, for example, dbconvert().
    +
     
     Charset conversion
     Convert between different charsets.
     
     Memory allocation
     Allocate or free resources. Allocation can fail only on out of memory. In such case they return NULL and leave the state as before call. Mainly function names are in the form tds_alloc_XX or tds_free_XXX. tds_alloc_XXX functions allocate structures and return pointer to allocated data while tds_free_XXX take structure pointers and free them. Some functions require additional parameters to initialize structure correctly. The main exception are structures that use reference counting. These structures have tds_alloc_XXX functions but instead of tds_free_XXX use tds_release_XXX.
     
     Query
     Function to handle query.
     
     Network functions
     Functions for reading or writing from network.
     
     Results processing
     Handle tokens in packets. Many PDU (packets data unit) contain tokens. (like result description, rows, data, errors and many other).
     
     Dynamic string functions
     Handle dynamic string. In this string are always valid (you don't have NULL pointer, only empty strings)
     
    +

    Detailed Description

    +

    Callable functions in libtds.

    +

    The libtds library is for use internal to FreeTDS. It is not intended for use by applications. Although any use is permitted, you're encouraged to use one of the established public APIs instead, because their interfaces are stable and documented by the vendors.
    +

    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00564.map freetds-1.2.3/doc/reference/a00564.map --- freetds-1.1.6/doc/reference/a00564.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00564.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00564.md5 freetds-1.2.3/doc/reference/a00564.md5 --- freetds-1.1.6/doc/reference/a00564.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00564.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +d78b4cc8814dfac4b62053130757e90d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00564.svg freetds-1.2.3/doc/reference/a00564.svg --- freetds-1.1.6/doc/reference/a00564.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00564.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,157 @@ + + + + + + +LibTDS API + + + +Node8 + + +Network functions + + + + + +Node7 + + +Query + + + + + +Node6 + + +Memory allocation + + + + + +Node2 + + +Authentication + + + + + +Node10 + + +Dynamic string functions + + + + + +Node4 + + +Conversion + + + + + +Node9 + + +Results processing + + + + + +Node3 + + +Configuration + + + + + +Node5 + + +Charset conversion + + + + + +Node1 + + +LibTDS API + + + + + +Node1->Node8 + + + + + +Node1->Node7 + + + + + +Node1->Node6 + + + + + +Node1->Node2 + + + + + +Node1->Node10 + + + + + +Node1->Node4 + + + + + +Node1->Node9 + + + + + +Node1->Node3 + + + + + +Node1->Node5 + + + + + diff -Nru freetds-1.1.6/doc/reference/a00565.html freetds-1.2.3/doc/reference/a00565.html --- freetds-1.1.6/doc/reference/a00565.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00565.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    METADATA Member List
    +
    +
    + +

    This is the complete list of members for METADATA, including all inherited members.

    + + + + + + + + + + + +
    format_string (defined in METADATA)METADATA
    name (defined in METADATA)METADATA
    nchars (defined in METADATA)METADATA
    size (defined in METADATA)METADATA
    size (defined in METADATA)METADATA
    source (defined in METADATA)METADATA
    type (defined in METADATA)METADATA
    type (defined in METADATA)METADATA
    width (defined in METADATA)METADATA
    width (defined in METADATA)METADATA
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00566.html freetds-1.2.3/doc/reference/a00566.html --- freetds-1.1.6/doc/reference/a00566.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00566.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - - - -FreeTDS API: DATA Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DATA Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -char * buffer
     
    -SQLLEN len
     
    -int status
     
    -
    The documentation for this struct was generated from the following files:
      -
    • src/apps/bsqldb.c
    • -
    • src/apps/bsqlodbc.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00567.html freetds-1.2.3/doc/reference/a00567.html --- freetds-1.1.6/doc/reference/a00567.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00567.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    METACOMP Member List
    -
    -
    - -

    This is the complete list of members for METACOMP, including all inherited members.

    - - - - -
    data (defined in METACOMP)METACOMP
    meta (defined in METACOMP)METACOMP
    numalts (defined in METACOMP)METACOMP
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00568.html freetds-1.2.3/doc/reference/a00568.html --- freetds-1.1.6/doc/reference/a00568.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00568.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,117 @@ + + + + + + + +FreeTDS API: METADATA Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    METADATA Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +char * format_string
     
    +char * name
     
    +SQLINTEGER nchars
     
    +int size
     
    +SQLULEN size
     
    +const char * source
     
    +int type
     
    +SQLSMALLINT type
     
    +int width
     
    +SQLULEN width
     
    +
    The documentation for this struct was generated from the following files:
      +
    • src/apps/bsqldb.c
    • +
    • src/apps/bsqlodbc.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00568.map freetds-1.2.3/doc/reference/a00568.map --- freetds-1.1.6/doc/reference/a00568.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00568.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00568.md5 freetds-1.2.3/doc/reference/a00568.md5 --- freetds-1.1.6/doc/reference/a00568.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00568.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -99ad34bd2eb1c524bf374df7ff643f34 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00568.svg freetds-1.2.3/doc/reference/a00568.svg --- freetds-1.1.6/doc/reference/a00568.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00568.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - -METACOMP - - -Node1 - -METACOMP - - -Node2 - - -METADATA - - - - -Node2->Node1 - - - meta - - -Node3 - - -DATA - - - - -Node3->Node1 - - - data - - - diff -Nru freetds-1.1.6/doc/reference/a00569.html freetds-1.2.3/doc/reference/a00569.html --- freetds-1.1.6/doc/reference/a00569.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00569.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DATA Member List
    +
    +
    + +

    This is the complete list of members for DATA, including all inherited members.

    + + + + +
    buffer (defined in DATA)DATA
    len (defined in DATA)DATA
    status (defined in DATA)DATA
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00570.html freetds-1.2.3/doc/reference/a00570.html --- freetds-1.1.6/doc/reference/a00570.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00570.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: METACOMP Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    METACOMP Struct Reference
    -
    -
    -
    -Collaboration diagram for METACOMP:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -struct DATAdata
     
    -struct METADATAmeta
     
    -int numalts
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/apps/bsqldb.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00571.html freetds-1.2.3/doc/reference/a00571.html --- freetds-1.1.6/doc/reference/a00571.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00571.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    KEY_T Member List
    -
    -
    - -

    This is the complete list of members for KEY_T, including all inherited members.

    - - - - - -
    keys (defined in KEY_T)KEY_T
    keys (defined in KEY_T)KEY_T
    nkeys (defined in KEY_T)KEY_T
    nkeys (defined in KEY_T)KEY_T
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00572.html freetds-1.2.3/doc/reference/a00572.html --- freetds-1.1.6/doc/reference/a00572.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00572.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + + +FreeTDS API: DATA Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DATA Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +char * buffer
     
    +SQLLEN len
     
    +int status
     
    +
    The documentation for this struct was generated from the following files:
      +
    • src/apps/bsqldb.c
    • +
    • src/apps/bsqlodbc.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00572.map freetds-1.2.3/doc/reference/a00572.map --- freetds-1.1.6/doc/reference/a00572.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00572.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00572.md5 freetds-1.2.3/doc/reference/a00572.md5 --- freetds-1.1.6/doc/reference/a00572.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00572.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -27df151852a015741ae5ef96403c13c2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00572.svg freetds-1.2.3/doc/reference/a00572.svg --- freetds-1.1.6/doc/reference/a00572.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00572.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -KEY_T - - -Node1 - -KEY_T - - -Node2 - - -col_t - - - - -Node2->Node1 - - - keys - - - diff -Nru freetds-1.1.6/doc/reference/a00573.html freetds-1.2.3/doc/reference/a00573.html --- freetds-1.1.6/doc/reference/a00573.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00573.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    METACOMP Member List
    +
    +
    + +

    This is the complete list of members for METACOMP, including all inherited members.

    + + + + +
    data (defined in METACOMP)METACOMP
    meta (defined in METACOMP)METACOMP
    numalts (defined in METACOMP)METACOMP
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00574.html freetds-1.2.3/doc/reference/a00574.html --- freetds-1.1.6/doc/reference/a00574.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00574.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,102 +0,0 @@ - - - - - - - -FreeTDS API: KEY_T Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    KEY_T Struct Reference
    -
    -
    -
    -Collaboration diagram for KEY_T:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -int * keys
     
    -struct col_tkeys
     
    -size_t nkeys
     
    -int nkeys
     
    -
    The documentation for this struct was generated from the following files:
      -
    • src/apps/bsqldb.c
    • -
    • src/dblib/dbpivot.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00574.map freetds-1.2.3/doc/reference/a00574.map --- freetds-1.1.6/doc/reference/a00574.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00574.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00574.md5 freetds-1.2.3/doc/reference/a00574.md5 --- freetds-1.1.6/doc/reference/a00574.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00574.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +94ae8041833b1edf7d494c50b3a8a670 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00574.svg freetds-1.2.3/doc/reference/a00574.svg --- freetds-1.1.6/doc/reference/a00574.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00574.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,54 @@ + + + + + + +METACOMP + + + +Node1 + + +METACOMP + + + + + +Node2 + + +METADATA + + + + + +Node2->Node1 + + + meta + + + +Node3 + + +DATA + + + + + +Node3->Node1 + + + data + + + diff -Nru freetds-1.1.6/doc/reference/a00575.html freetds-1.2.3/doc/reference/a00575.html --- freetds-1.1.6/doc/reference/a00575.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00575.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _options Member List
    -
    -
    - -

    This is the complete list of members for _options, including all inherited members.

    - - - - - - - - - - - - - - - - -
    appname (defined in _options)_options
    colsep (defined in _options)_options
    database (defined in _options)_options
    error_filename (defined in _options)_options
    fquiet (defined in _options)_options
    fverbose (defined in _options)_options
    headers (defined in _options)_options
    hostname (defined in _options)_options
    input_filename (defined in _options)_options
    odbc_version (defined in _options)_options
    optind (defined in _options)_options
    output_filename (defined in _options)_options
    pivot (defined in _options)_options
    servername (defined in _options)_options
    verbose (defined in _options)_options
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00576.html freetds-1.2.3/doc/reference/a00576.html --- freetds-1.1.6/doc/reference/a00576.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00576.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: METACOMP Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    METACOMP Struct Reference
    +
    +
    +
    +Collaboration diagram for METACOMP:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +struct DATAdata
     
    +struct METADATAmeta
     
    +int numalts
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/apps/bsqldb.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00576.map freetds-1.2.3/doc/reference/a00576.map --- freetds-1.1.6/doc/reference/a00576.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00576.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00576.md5 freetds-1.2.3/doc/reference/a00576.md5 --- freetds-1.1.6/doc/reference/a00576.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00576.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -146a507e77824e82c1af7e0d09570500 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00576.svg freetds-1.2.3/doc/reference/a00576.svg --- freetds-1.1.6/doc/reference/a00576.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00576.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - - -_options - - -Node1 - -_options - - -Node2 - - -_options::pivot_t - - - - -Node2->Node1 - - - pivot - - -Node3 - - -col_t - - - - -Node3->Node2 - - - func - - -Node4 - - -KEY_T - - - - -Node3->Node4 - - - keys - - -Node4->Node2 - - - col_key -row_key - - - diff -Nru freetds-1.1.6/doc/reference/a00577.html freetds-1.2.3/doc/reference/a00577.html --- freetds-1.1.6/doc/reference/a00577.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00577.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    KEY_T Member List
    +
    +
    + +

    This is the complete list of members for KEY_T, including all inherited members.

    + + + + + +
    keys (defined in KEY_T)KEY_T
    keys (defined in KEY_T)KEY_T
    nkeys (defined in KEY_T)KEY_T
    nkeys (defined in KEY_T)KEY_T
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00578.html freetds-1.2.3/doc/reference/a00578.html --- freetds-1.1.6/doc/reference/a00578.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00578.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,142 +0,0 @@ - - - - - - - -FreeTDS API: _options Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _options Struct Reference
    -
    -
    -
    -Collaboration diagram for _options:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Classes

    struct  pivot_t
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -char * appname
     
    -const char * colsep
     
    -char * database
     
    -char * error_filename
     
    -int fquiet
     
    -int fverbose
     
    -FILE * headers
     
    -char hostname [128]
     
    -char * input_filename
     
    -size_t odbc_version
     
    -int optind
     
    -char * output_filename
     
    -struct _options::pivot_t pivot
     
    -char * servername
     
    -FILE * verbose
     
    -
    The documentation for this struct was generated from the following files:
      -
    • src/apps/bsqldb.c
    • -
    • src/apps/bsqlodbc.c
    • -
    • src/apps/defncopy.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00578.map freetds-1.2.3/doc/reference/a00578.map --- freetds-1.1.6/doc/reference/a00578.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00578.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00578.md5 freetds-1.2.3/doc/reference/a00578.md5 --- freetds-1.1.6/doc/reference/a00578.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00578.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ae907ed711c99d67f1056eba1c9ae21e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00578.svg freetds-1.2.3/doc/reference/a00578.svg --- freetds-1.1.6/doc/reference/a00578.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00578.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +KEY_T + + + +Node1 + + +KEY_T + + + + + +Node2 + + +col_t + + + + + +Node2->Node1 + + + keys + + + diff -Nru freetds-1.1.6/doc/reference/a00579.html freetds-1.2.3/doc/reference/a00579.html --- freetds-1.1.6/doc/reference/a00579.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00579.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    _options::pivot_t Member List
    -
    -
    - -

    This is the complete list of members for _options::pivot_t, including all inherited members.

    - - - - - -
    col_key (defined in _options::pivot_t)_options::pivot_t
    func (defined in _options::pivot_t)_options::pivot_t
    row_key (defined in _options::pivot_t)_options::pivot_t
    val_col (defined in _options::pivot_t)_options::pivot_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00580.html freetds-1.2.3/doc/reference/a00580.html --- freetds-1.1.6/doc/reference/a00580.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00580.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,105 @@ + + + + + + + +FreeTDS API: KEY_T Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    KEY_T Struct Reference
    +
    +
    +
    +Collaboration diagram for KEY_T:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +int * keys
     
    +struct col_tkeys
     
    +size_t nkeys
     
    +int nkeys
     
    +
    The documentation for this struct was generated from the following files:
      +
    • src/apps/bsqldb.c
    • +
    • src/dblib/dbpivot.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00580.map freetds-1.2.3/doc/reference/a00580.map --- freetds-1.1.6/doc/reference/a00580.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00580.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00580.md5 freetds-1.2.3/doc/reference/a00580.md5 --- freetds-1.1.6/doc/reference/a00580.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00580.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -332ce8f16c56368bf444b85c005867cf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00580.svg freetds-1.2.3/doc/reference/a00580.svg --- freetds-1.1.6/doc/reference/a00580.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00580.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ - - - - - - -_options::pivot_t - - -Node1 - -_options::pivot_t - - -Node2 - - -col_t - - - - -Node2->Node1 - - - func - - -Node3 - - -KEY_T - - - - -Node2->Node3 - - - keys - - -Node3->Node1 - - - col_key -row_key - - - diff -Nru freetds-1.1.6/doc/reference/a00581.html freetds-1.2.3/doc/reference/a00581.html --- freetds-1.1.6/doc/reference/a00581.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00581.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,94 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _options Member List
    +
    +
    + +

    This is the complete list of members for _options, including all inherited members.

    + + + + + + + + + + + + + + + + +
    appname (defined in _options)_options
    colsep (defined in _options)_options
    database (defined in _options)_options
    error_filename (defined in _options)_options
    fquiet (defined in _options)_options
    fverbose (defined in _options)_options
    headers (defined in _options)_options
    hostname (defined in _options)_options
    input_filename (defined in _options)_options
    odbc_version (defined in _options)_options
    optind (defined in _options)_options
    output_filename (defined in _options)_options
    pivot (defined in _options)_options
    servername (defined in _options)_options
    verbose (defined in _options)_options
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00582.html freetds-1.2.3/doc/reference/a00582.html --- freetds-1.1.6/doc/reference/a00582.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00582.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: _options::pivot_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    _options::pivot_t Struct Reference
    -
    -
    -
    -Collaboration diagram for _options::pivot_t:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -KEY_T col_key
     
    -DBPIVOT_FUNC func
     
    -KEY_T row_key
     
    -int val_col
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/apps/bsqldb.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00582.map freetds-1.2.3/doc/reference/a00582.map --- freetds-1.1.6/doc/reference/a00582.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00582.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00582.md5 freetds-1.2.3/doc/reference/a00582.md5 --- freetds-1.1.6/doc/reference/a00582.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00582.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5df04de2b4bd34f198149c51730a1454 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00582.svg freetds-1.2.3/doc/reference/a00582.svg --- freetds-1.1.6/doc/reference/a00582.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00582.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,78 @@ + + + + + + +_options + + + +Node1 + + +_options + + + + + +Node2 + + +_options::pivot_t + + + + + +Node2->Node1 + + + pivot + + + +Node3 + + +col_t + + + + + +Node3->Node2 + + + func + + + +Node4 + + +KEY_T + + + + + +Node3->Node4 + + + keys + + + +Node4->Node2 + + + col_key +row_key + + + diff -Nru freetds-1.1.6/doc/reference/a00583.html freetds-1.2.3/doc/reference/a00583.html --- freetds-1.1.6/doc/reference/a00583.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00583.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    LOGINREC Member List
    -
    -
    - -

    This is the complete list of members for LOGINREC, including all inherited members.

    - - - - - - - -
    client_charset (defined in LOGINREC)LOGINREC
    client_hostname (defined in LOGINREC)LOGINREC
    connect_timeout (defined in LOGINREC)LOGINREC
    password (defined in LOGINREC)LOGINREC
    query_timeout (defined in LOGINREC)LOGINREC
    username (defined in LOGINREC)LOGINREC
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00584.html freetds-1.2.3/doc/reference/a00584.html --- freetds-1.1.6/doc/reference/a00584.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00584.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,145 @@ + + + + + + + +FreeTDS API: _options Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _options Struct Reference
    +
    +
    +
    +Collaboration diagram for _options:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Classes

    struct  pivot_t
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +char * appname
     
    +const char * colsep
     
    +char * database
     
    +char * error_filename
     
    +int fquiet
     
    +int fverbose
     
    +FILE * headers
     
    +char hostname [128]
     
    +char * input_filename
     
    +size_t odbc_version
     
    +int optind
     
    +char * output_filename
     
    +struct _options::pivot_t pivot
     
    +char * servername
     
    +FILE * verbose
     
    +
    The documentation for this struct was generated from the following files:
      +
    • src/apps/bsqldb.c
    • +
    • src/apps/bsqlodbc.c
    • +
    • src/apps/defncopy.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00585.html freetds-1.2.3/doc/reference/a00585.html --- freetds-1.1.6/doc/reference/a00585.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00585.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    _options::pivot_t Member List
    +
    +
    + +

    This is the complete list of members for _options::pivot_t, including all inherited members.

    + + + + + +
    col_key (defined in _options::pivot_t)_options::pivot_t
    func (defined in _options::pivot_t)_options::pivot_t
    row_key (defined in _options::pivot_t)_options::pivot_t
    val_col (defined in _options::pivot_t)_options::pivot_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00586.html freetds-1.2.3/doc/reference/a00586.html --- freetds-1.1.6/doc/reference/a00586.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00586.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: LOGINREC Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    LOGINREC Struct Reference
    -
    -
    - - - - - - - - - - - - - - -

    -Public Attributes

    -char * client_charset
     
    -char * client_hostname
     
    -int connect_timeout
     
    -char * password
     
    -int query_timeout
     
    -char * username
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/apps/bsqlodbc.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00586.map freetds-1.2.3/doc/reference/a00586.map --- freetds-1.1.6/doc/reference/a00586.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00586.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00586.md5 freetds-1.2.3/doc/reference/a00586.md5 --- freetds-1.1.6/doc/reference/a00586.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00586.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f35d4354c4d5affb68030ef97580b742 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00586.svg freetds-1.2.3/doc/reference/a00586.svg --- freetds-1.1.6/doc/reference/a00586.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00586.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + + +_options::pivot_t + + + +Node1 + + +_options::pivot_t + + + + + +Node2 + + +col_t + + + + + +Node2->Node1 + + + func + + + +Node3 + + +KEY_T + + + + + +Node2->Node3 + + + keys + + + +Node3->Node1 + + + col_key +row_key + + + diff -Nru freetds-1.1.6/doc/reference/a00587.html freetds-1.2.3/doc/reference/a00587.html --- freetds-1.1.6/doc/reference/a00587.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00587.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    OBJECTINFO Member List
    -
    -
    - -

    This is the complete list of members for OBJECTINFO, including all inherited members.

    - - - - - - -
    db (defined in OBJECTINFO)OBJECTINFO
    dbobject (defined in OBJECTINFO)OBJECTINFO
    pass (defined in OBJECTINFO)OBJECTINFO
    server (defined in OBJECTINFO)OBJECTINFO
    user (defined in OBJECTINFO)OBJECTINFO
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00588.html freetds-1.2.3/doc/reference/a00588.html --- freetds-1.1.6/doc/reference/a00588.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00588.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: _options::pivot_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    _options::pivot_t Struct Reference
    +
    +
    +
    +Collaboration diagram for _options::pivot_t:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +KEY_T col_key
     
    +DBPIVOT_FUNC func
     
    +KEY_T row_key
     
    +int val_col
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/apps/bsqldb.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00589.html freetds-1.2.3/doc/reference/a00589.html --- freetds-1.1.6/doc/reference/a00589.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00589.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    LOGINREC Member List
    +
    +
    + +

    This is the complete list of members for LOGINREC, including all inherited members.

    + + + + + + + +
    client_charset (defined in LOGINREC)LOGINREC
    client_hostname (defined in LOGINREC)LOGINREC
    connect_timeout (defined in LOGINREC)LOGINREC
    password (defined in LOGINREC)LOGINREC
    query_timeout (defined in LOGINREC)LOGINREC
    username (defined in LOGINREC)LOGINREC
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00590.html freetds-1.2.3/doc/reference/a00590.html --- freetds-1.1.6/doc/reference/a00590.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00590.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: OBJECTINFO Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    OBJECTINFO Struct Reference
    -
    -
    - - - - - - - - - - - - -

    -Public Attributes

    -char * db
     
    -char * dbobject
     
    -char * pass
     
    -char * server
     
    -char * user
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/apps/datacopy.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00591.html freetds-1.2.3/doc/reference/a00591.html --- freetds-1.1.6/doc/reference/a00591.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00591.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    pd Member List
    -
    -
    - -

    This is the complete list of members for pd, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    aflag (defined in pd)pd
    Aflag (defined in pd)pd
    batchsize (defined in pd)pd
    bflag (defined in pd)pd
    cflag (defined in pd)pd
    charset (defined in pd)pd
    dbdirection (defined in pd)pd
    dbname (defined in pd)pd
    dbobject (defined in pd)pd
    dest (defined in pd)pd
    Dflag (defined in pd)pd
    direction (defined in pd)pd
    eflag (defined in pd)pd
    Eflag (defined in pd)pd
    errorfile (defined in pd)pd
    fflag (defined in pd)pd
    Fflag (defined in pd)pd
    fieldterm (defined in pd)pd
    fieldtermlen (defined in pd)pd
    firstrow (defined in pd)pd
    formatfile (defined in pd)pd
    hint (defined in pd)pd
    hostfilename (defined in pd)pd
    Iflag (defined in pd)pd
    inputfile (defined in pd)pd
    interfacesfile (defined in pd)pd
    lastrow (defined in pd)pd
    Lflag (defined in pd)pd
    maxerrors (defined in pd)pd
    mflag (defined in pd)pd
    nflag (defined in pd)pd
    options (defined in pd)pd
    outputfile (defined in pd)pd
    owner (defined in pd)pd
    packetsize (defined in pd)pd
    pass (defined in pd)pd
    pflag (defined in pd)pd
    Pflag (defined in pd)pd
    rflag (defined in pd)pd
    rowterm (defined in pd)pd
    rowtermlen (defined in pd)pd
    server (defined in pd)pd
    Sflag (defined in pd)pd
    src (defined in pd)pd
    textsize (defined in pd)pd
    Tflag (defined in pd)pd
    tflag (defined in pd)pd
    Uflag (defined in pd)pd
    user (defined in pd)pd
    vflag (defined in pd)pd
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00592.html freetds-1.2.3/doc/reference/a00592.html --- freetds-1.1.6/doc/reference/a00592.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00592.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: LOGINREC Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    LOGINREC Struct Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Attributes

    +char * client_charset
     
    +char * client_hostname
     
    +int connect_timeout
     
    +char * password
     
    +int query_timeout
     
    +char * username
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/apps/bsqlodbc.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00592.map freetds-1.2.3/doc/reference/a00592.map --- freetds-1.1.6/doc/reference/a00592.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00592.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00592.md5 freetds-1.2.3/doc/reference/a00592.md5 --- freetds-1.1.6/doc/reference/a00592.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00592.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -62e1e4ea90330fb5f49ec764c44e6f71 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00592.svg freetds-1.2.3/doc/reference/a00592.svg --- freetds-1.1.6/doc/reference/a00592.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00592.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - - -pd - - -Node1 - -pd - - -Node2 - - -OBJECTINFO - - - - -Node2->Node1 - - - dest -src - - - diff -Nru freetds-1.1.6/doc/reference/a00593.html freetds-1.2.3/doc/reference/a00593.html --- freetds-1.1.6/doc/reference/a00593.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00593.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    OBJECTINFO Member List
    +
    +
    + +

    This is the complete list of members for OBJECTINFO, including all inherited members.

    + + + + + + +
    db (defined in OBJECTINFO)OBJECTINFO
    dbobject (defined in OBJECTINFO)OBJECTINFO
    pass (defined in OBJECTINFO)OBJECTINFO
    server (defined in OBJECTINFO)OBJECTINFO
    user (defined in OBJECTINFO)OBJECTINFO
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00594.html freetds-1.2.3/doc/reference/a00594.html --- freetds-1.1.6/doc/reference/a00594.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00594.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,240 +0,0 @@ - - - - - - - -FreeTDS API: pd Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    pd Struct Reference
    -
    -
    -
    -Collaboration diagram for pd:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int aflag
     
    -int Aflag
     
    -int batchsize
     
    -int bflag
     
    -int cflag
     
    -char * charset
     
    -char dbdirection [10]
     
    -char * dbname
     
    -char * dbobject
     
    -OBJECTINFO dest
     
    -int Dflag
     
    -DBINT direction
     
    -int eflag
     
    -int Eflag
     
    -char * errorfile
     
    -int fflag
     
    -int Fflag
     
    -char * fieldterm
     
    -int fieldtermlen
     
    -int firstrow
     
    -char * formatfile
     
    -char * hint
     
    -char * hostfilename
     
    -int Iflag
     
    -char * inputfile
     
    -char * interfacesfile
     
    -int lastrow
     
    -int Lflag
     
    -int maxerrors
     
    -int mflag
     
    -int nflag
     
    -char * options
     
    -char * outputfile
     
    -char * owner
     
    -int packetsize
     
    -char * pass
     
    -int Pflag
     
    -int pflag
     
    -int rflag
     
    -char * rowterm
     
    -int rowtermlen
     
    -char * server
     
    -int Sflag
     
    -OBJECTINFO src
     
    -int textsize
     
    -int tflag
     
    -int Tflag
     
    -int Uflag
     
    -char * user
     
    -int vflag
     
    -
    The documentation for this struct was generated from the following files: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00595.html freetds-1.2.3/doc/reference/a00595.html --- freetds-1.1.6/doc/reference/a00595.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00595.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _procedure Member List
    -
    -
    - -

    This is the complete list of members for _procedure, including all inherited members.

    - - - -
    name (defined in _procedure)_procedure
    owner (defined in _procedure)_procedure
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00596.html freetds-1.2.3/doc/reference/a00596.html --- freetds-1.1.6/doc/reference/a00596.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00596.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: OBJECTINFO Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    OBJECTINFO Struct Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Attributes

    +char * db
     
    +char * dbobject
     
    +char * pass
     
    +char * server
     
    +char * user
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/apps/datacopy.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00597.html freetds-1.2.3/doc/reference/a00597.html --- freetds-1.1.6/doc/reference/a00597.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00597.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,129 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    pd Member List
    +
    +
    + +

    This is the complete list of members for pd, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    aflag (defined in pd)pd
    Aflag (defined in pd)pd
    batchsize (defined in pd)pd
    bflag (defined in pd)pd
    cflag (defined in pd)pd
    charset (defined in pd)pd
    dbdirection (defined in pd)pd
    dbname (defined in pd)pd
    dbobject (defined in pd)pd
    dest (defined in pd)pd
    Dflag (defined in pd)pd
    direction (defined in pd)pd
    eflag (defined in pd)pd
    Eflag (defined in pd)pd
    errorfile (defined in pd)pd
    fflag (defined in pd)pd
    Fflag (defined in pd)pd
    fieldterm (defined in pd)pd
    fieldtermlen (defined in pd)pd
    firstrow (defined in pd)pd
    formatfile (defined in pd)pd
    hint (defined in pd)pd
    hostfilename (defined in pd)pd
    Iflag (defined in pd)pd
    inputfile (defined in pd)pd
    interfacesfile (defined in pd)pd
    lastrow (defined in pd)pd
    Lflag (defined in pd)pd
    maxerrors (defined in pd)pd
    mflag (defined in pd)pd
    nflag (defined in pd)pd
    options (defined in pd)pd
    outputfile (defined in pd)pd
    owner (defined in pd)pd
    packetsize (defined in pd)pd
    pass (defined in pd)pd
    pflag (defined in pd)pd
    Pflag (defined in pd)pd
    rflag (defined in pd)pd
    rowterm (defined in pd)pd
    rowtermlen (defined in pd)pd
    server (defined in pd)pd
    Sflag (defined in pd)pd
    src (defined in pd)pd
    textsize (defined in pd)pd
    Tflag (defined in pd)pd
    tflag (defined in pd)pd
    Uflag (defined in pd)pd
    user (defined in pd)pd
    vflag (defined in pd)pd
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00598.html freetds-1.2.3/doc/reference/a00598.html --- freetds-1.1.6/doc/reference/a00598.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00598.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _procedure Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _procedure Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -char name [512]
     
    -char owner [512]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/apps/defncopy.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00598.map freetds-1.2.3/doc/reference/a00598.map --- freetds-1.1.6/doc/reference/a00598.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00598.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00598.md5 freetds-1.2.3/doc/reference/a00598.md5 --- freetds-1.1.6/doc/reference/a00598.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00598.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f5d4e3015673a5288a0d6db6bc1e0af5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00598.svg freetds-1.2.3/doc/reference/a00598.svg --- freetds-1.1.6/doc/reference/a00598.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00598.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,39 @@ + + + + + + +pd + + + +Node1 + + +pd + + + + + +Node2 + + +OBJECTINFO + + + + + +Node2->Node1 + + + dest +src + + + diff -Nru freetds-1.1.6/doc/reference/a00599.html freetds-1.2.3/doc/reference/a00599.html --- freetds-1.1.6/doc/reference/a00599.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00599.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    dblib_buffer_row Member List
    -
    -
    - -

    This is the complete list of members for dblib_buffer_row, including all inherited members.

    - - - - - -
    resinfodblib_buffer_row
    rowdblib_buffer_row
    row_datadblib_buffer_row
    sizesdblib_buffer_row
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00600.html freetds-1.2.3/doc/reference/a00600.html --- freetds-1.1.6/doc/reference/a00600.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00600.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,243 @@ + + + + + + + +FreeTDS API: pd Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    pd Struct Reference
    +
    +
    +
    +Collaboration diagram for pd:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +int aflag
     
    +int Aflag
     
    +int batchsize
     
    +int bflag
     
    +int cflag
     
    +char * charset
     
    +char dbdirection [10]
     
    +char * dbname
     
    +char * dbobject
     
    +OBJECTINFO dest
     
    +int Dflag
     
    +DBINT direction
     
    +int eflag
     
    +int Eflag
     
    +char * errorfile
     
    +int fflag
     
    +int Fflag
     
    +char * fieldterm
     
    +int fieldtermlen
     
    +int firstrow
     
    +char * formatfile
     
    +char * hint
     
    +char * hostfilename
     
    +int Iflag
     
    +char * inputfile
     
    +char * interfacesfile
     
    +int lastrow
     
    +int Lflag
     
    +int maxerrors
     
    +int mflag
     
    +int nflag
     
    +char * options
     
    +char * outputfile
     
    +char * owner
     
    +int packetsize
     
    +char * pass
     
    +int Pflag
     
    +int pflag
     
    +int rflag
     
    +char * rowterm
     
    +int rowtermlen
     
    +char * server
     
    +int Sflag
     
    +OBJECTINFO src
     
    +int textsize
     
    +int tflag
     
    +int Tflag
     
    +int Uflag
     
    +char * user
     
    +int vflag
     
    +
    The documentation for this struct was generated from the following files: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00600.map freetds-1.2.3/doc/reference/a00600.map --- freetds-1.1.6/doc/reference/a00600.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00600.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00600.md5 freetds-1.2.3/doc/reference/a00600.md5 --- freetds-1.1.6/doc/reference/a00600.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00600.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3d88b012a678ddfa59adfaed142a622a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00600.svg freetds-1.2.3/doc/reference/a00600.svg --- freetds-1.1.6/doc/reference/a00600.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00600.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ - - - - - - -dblib_buffer_row - - -Node1 - -dblib_buffer_row - - -Node2 - - -tds_result_info - - - - -Node2->Node1 - - - resinfo - - -Node3 - - -tds_socket - - - - -Node2->Node3 - - - param_info -current_results -res_info -comp_info - - -Node9 - - -tds_dynamic - - - - -Node2->Node9 - - - res_info -params - - -Node10 - - -tds_cursor - - - - -Node2->Node10 - - - res_info - - -Node3->Node2 - - - attached_to - - -Node4 - - -tds_login - - - - -Node4->Node3 - - - login - - -Node7 - - -tds_dstr - - - - -Node7->Node4 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node22 - - -tds_column - - - - -Node7->Node22 - - - column_name -table_name -table_column_name - - -Node8 - - -tds_packet - - - - -Node8->Node3 - - - recv_packet -send_packet - - -Node8->Node8 - - - next - - -Node9->Node3 - - - cur_dyn - - -Node9->Node9 - - - next - - -Node12 - - -tds_connection - - - - -Node9->Node12 - - - dyns - - -Node10->Node3 - - - cur_cursor - - -Node10->Node10 - - - next - - -Node10->Node12 - - - cursors - - -Node12->Node3 - - - conn - - -Node18 - - -tdsiconvinfo - - - - -Node18->Node12 - - - char_convs - - -Node18->Node22 - - - char_conv - - -Node22->Node2 - - - columns - - -Node23 - - -tds_column_funcs - - - - -Node23->Node22 - - - funcs - - -Node24 - - -tds_bcpcoldata - - - - -Node24->Node22 - - - bcp_column_data - - - diff -Nru freetds-1.1.6/doc/reference/a00601.html freetds-1.2.3/doc/reference/a00601.html --- freetds-1.1.6/doc/reference/a00601.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00601.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _procedure Member List
    +
    +
    + +

    This is the complete list of members for _procedure, including all inherited members.

    + + + +
    name (defined in _procedure)_procedure
    owner (defined in _procedure)_procedure
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00602.html freetds-1.2.3/doc/reference/a00602.html --- freetds-1.1.6/doc/reference/a00602.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00602.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: dblib_buffer_row Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    dblib_buffer_row Struct Reference
    -
    -
    -
    -Collaboration diagram for dblib_buffer_row:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - -

    -Public Attributes

    -TDSRESULTINFOresinfo
     pointer to result informations
     
    -DBINT row
     row number
     
    -unsigned char * row_data
     row data, NULL for resinfo->current_row
     
    -TDS_INT * sizes
     save old sizes
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00603.html freetds-1.2.3/doc/reference/a00603.html --- freetds-1.1.6/doc/reference/a00603.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00603.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    dblib_context Member List
    -
    -
    - -

    This is the complete list of members for dblib_context, including all inherited members.

    - - - - - - - - - - - -
    connection_list (defined in dblib_context)dblib_context
    connection_list_size (defined in dblib_context)dblib_context
    connection_list_size_represented (defined in dblib_context)dblib_context
    login_timeoutdblib_context
    query_timeoutdblib_context
    recftos_filename (defined in dblib_context)dblib_context
    recftos_filenum (defined in dblib_context)dblib_context
    ref_countdblib_context
    tds_ctxdblib_context
    tds_ctx_ref_countdblib_context
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00604.html freetds-1.2.3/doc/reference/a00604.html --- freetds-1.1.6/doc/reference/a00604.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00604.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _procedure Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _procedure Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +char name [512]
     
    +char owner [512]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/apps/defncopy.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00604.map freetds-1.2.3/doc/reference/a00604.map --- freetds-1.1.6/doc/reference/a00604.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00604.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00604.md5 freetds-1.2.3/doc/reference/a00604.md5 --- freetds-1.1.6/doc/reference/a00604.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00604.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4069ff5e8c511eeb44a236a125fb9524 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00604.svg freetds-1.2.3/doc/reference/a00604.svg --- freetds-1.1.6/doc/reference/a00604.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00604.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,304 +0,0 @@ - - - - - - -dblib_context - - -Node1 - -dblib_context - - -Node2 - - -tds_socket - - - - -Node2->Node1 - - - connection_list - - -Node9 - - -tds_result_info - - - - -Node2->Node9 - - - attached_to - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node19 - - -tds_connection - - - - -Node4->Node19 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8 - - -tds_dynamic - - - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node19 - - - dyns - - -Node9->Node2 - - - param_info -current_results -res_info -comp_info - - -Node9->Node8 - - - res_info -params - - -Node17 - - -tds_cursor - - - - -Node9->Node17 - - - res_info - - -Node17->Node2 - - - cur_cursor - - -Node17->Node17 - - - next - - -Node17->Node19 - - - cursors - - -Node18 - - -tds_cursor_status - - - - -Node18->Node17 - - - status - - -Node19->Node2 - - - conn - - -Node20 - - -tds_poll_wakeup - - - - -Node20->Node19 - - - wakeup - - -Node21 - - -tds_env - - - - -Node21->Node19 - - - env - - -Node22 - - -tds_context - - - - -Node22->Node1 - - - tds_ctx - - -Node22->Node19 - - - tds_ctx - - -Node24 - - -tds_authentication - - - - -Node24->Node19 - - - authentication - - -Node11 - - -tdsiconvinfo - - - - -Node11->Node19 - - - char_convs - - - diff -Nru freetds-1.1.6/doc/reference/a00605.html freetds-1.2.3/doc/reference/a00605.html --- freetds-1.1.6/doc/reference/a00605.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00605.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dblib_buffer_row Member List
    +
    +
    + +

    This is the complete list of members for dblib_buffer_row, including all inherited members.

    + + + + + +
    resinfodblib_buffer_row
    rowdblib_buffer_row
    row_datadblib_buffer_row
    sizesdblib_buffer_row
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00606.html freetds-1.2.3/doc/reference/a00606.html --- freetds-1.1.6/doc/reference/a00606.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00606.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ - - - - - - - -FreeTDS API: dblib_context Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    dblib_context Struct Reference
    -
    -
    -
    -Collaboration diagram for dblib_context:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDSSOCKET ** connection_list
     
    -int connection_list_size
     
    -int connection_list_size_represented
     
    -int login_timeout
     not used unless positive
     
    -int query_timeout
     not used unless positive
     
    -char * recftos_filename
     
    -int recftos_filenum
     
    -int ref_count
     reference count, time dbinit called
     
    -TDSCONTEXTtds_ctx
     libTDS context
     
    -int tds_ctx_ref_count
     libTDS context reference counter
     
    -

    Detailed Description

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

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00606.map freetds-1.2.3/doc/reference/a00606.map --- freetds-1.1.6/doc/reference/a00606.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00606.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00606.md5 freetds-1.2.3/doc/reference/a00606.md5 --- freetds-1.1.6/doc/reference/a00606.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00606.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +88fb4702d4a2a363bfbb9552e53bfdae \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00606.svg freetds-1.2.3/doc/reference/a00606.svg --- freetds-1.1.6/doc/reference/a00606.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00606.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,310 @@ + + + + + + +dblib_buffer_row + + + +Node1 + + +dblib_buffer_row + + + + + +Node2 + + +tds_result_info + + + + + +Node2->Node1 + + + resinfo + + + +Node3 + + +tds_socket + + + + + +Node2->Node3 + + + param_info +current_results +res_info +comp_info + + + +Node9 + + +tds_dynamic + + + + + +Node2->Node9 + + + res_info +params + + + +Node10 + + +tds_cursor + + + + + +Node2->Node10 + + + res_info + + + +Node3->Node2 + + + attached_to + + + +Node4 + + +tds_login + + + + + +Node4->Node3 + + + login + + + +Node7 + + +tds_dstr + + + + + +Node7->Node4 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node22 + + +tds_column + + + + + +Node7->Node22 + + + column_name +table_name +table_column_name + + + +Node8 + + +tds_packet + + + + + +Node8->Node3 + + + frozen_packets +recv_packet +send_packet + + + +Node8->Node8 + + + next + + + +Node12 + + +tds_connection + + + + + +Node8->Node12 + + + packet_cache + + + +Node9->Node3 + + + cur_dyn + + + +Node9->Node9 + + + next + + + +Node9->Node12 + + + dyns + + + +Node10->Node3 + + + cur_cursor + + + +Node10->Node10 + + + next + + + +Node10->Node12 + + + cursors + + + +Node12->Node3 + + + conn + + + +Node18 + + +tdsiconvinfo + + + + + +Node18->Node12 + + + char_convs + + + +Node18->Node22 + + + char_conv + + + +Node22->Node2 + + + columns + + + +Node23 + + +tds_column_funcs + + + + + +Node23->Node22 + + + funcs + + + +Node24 + + +tds_bcpcoldata + + + + + +Node24->Node22 + + + bcp_column_data + + + diff -Nru freetds-1.1.6/doc/reference/a00607.html freetds-1.2.3/doc/reference/a00607.html --- freetds-1.1.6/doc/reference/a00607.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00607.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _dblib_error_message Member List
    -
    -
    - -

    This is the complete list of members for _dblib_error_message, including all inherited members.

    - - - - -
    msgno (defined in _dblib_error_message)_dblib_error_message
    msgtext (defined in _dblib_error_message)_dblib_error_message
    severity (defined in _dblib_error_message)_dblib_error_message
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00608.html freetds-1.2.3/doc/reference/a00608.html --- freetds-1.1.6/doc/reference/a00608.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00608.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: dblib_buffer_row Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dblib_buffer_row Struct Reference
    +
    +
    +
    +Collaboration diagram for dblib_buffer_row:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + +

    +Public Attributes

    +TDSRESULTINFOresinfo
     pointer to result informations
     
    +DBINT row
     row number
     
    +unsigned char * row_data
     row data, NULL for resinfo->current_row
     
    +TDS_INT * sizes
     save old sizes
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00609.html freetds-1.2.3/doc/reference/a00609.html --- freetds-1.1.6/doc/reference/a00609.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00609.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dblib_context Member List
    +
    +
    + +

    This is the complete list of members for dblib_context, including all inherited members.

    + + + + + + + + + + + +
    connection_list (defined in dblib_context)dblib_context
    connection_list_size (defined in dblib_context)dblib_context
    connection_list_size_represented (defined in dblib_context)dblib_context
    login_timeoutdblib_context
    query_timeoutdblib_context
    recftos_filename (defined in dblib_context)dblib_context
    recftos_filenum (defined in dblib_context)dblib_context
    ref_countdblib_context
    tds_ctxdblib_context
    tds_ctx_ref_countdblib_context
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00610.html freetds-1.2.3/doc/reference/a00610.html --- freetds-1.1.6/doc/reference/a00610.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00610.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: _dblib_error_message Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _dblib_error_message Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -DBINT msgno
     
    -const char * msgtext
     
    -int severity
     
    -

    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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00610.map freetds-1.2.3/doc/reference/a00610.map --- freetds-1.1.6/doc/reference/a00610.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00610.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00610.md5 freetds-1.2.3/doc/reference/a00610.md5 --- freetds-1.1.6/doc/reference/a00610.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00610.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ed33f2f09ac6345c69b72b6b4bbe35f8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00610.svg freetds-1.2.3/doc/reference/a00610.svg --- freetds-1.1.6/doc/reference/a00610.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00610.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,356 @@ + + + + + + +dblib_context + + + +Node1 + + +dblib_context + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + connection_list + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node1 + + + tds_ctx + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + diff -Nru freetds-1.1.6/doc/reference/a00611.html freetds-1.2.3/doc/reference/a00611.html --- freetds-1.1.6/doc/reference/a00611.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00611.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    col_t Member List
    -
    -
    - -

    This is the complete list of members for col_t, including all inherited members.

    - - - - - - - - - - - -
    data (defined in col_t)col_t
    f (defined in col_t)col_t
    i (defined in col_t)col_t
    len (defined in col_t)col_t
    null_indicator (defined in col_t)col_t
    r (defined in col_t)col_t
    s (defined in col_t)col_t
    si (defined in col_t)col_t
    ti (defined in col_t)col_t
    type (defined in col_t)col_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00612.html freetds-1.2.3/doc/reference/a00612.html --- freetds-1.1.6/doc/reference/a00612.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00612.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,129 @@ + + + + + + + +FreeTDS API: dblib_context Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dblib_context Struct Reference
    +
    +
    +
    +Collaboration diagram for dblib_context:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDSSOCKET ** connection_list
     
    +int connection_list_size
     
    +int connection_list_size_represented
     
    +int login_timeout
     not used unless positive
     
    +int query_timeout
     not used unless positive
     
    +char * recftos_filename
     
    +int recftos_filenum
     
    +int ref_count
     reference count, time dbinit called
     
    +TDSCONTEXTtds_ctx
     libTDS context
     
    +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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00613.html freetds-1.2.3/doc/reference/a00613.html --- freetds-1.1.6/doc/reference/a00613.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00613.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _dblib_error_message Member List
    +
    +
    + +

    This is the complete list of members for _dblib_error_message, including all inherited members.

    + + + + +
    msgno (defined in _dblib_error_message)_dblib_error_message
    msgtext (defined in _dblib_error_message)_dblib_error_message
    severity (defined in _dblib_error_message)_dblib_error_message
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00614.html freetds-1.2.3/doc/reference/a00614.html --- freetds-1.1.6/doc/reference/a00614.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00614.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ - - - - - - - -FreeTDS API: col_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    col_t Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -union {
    -   DBFLT8   f
     
    -   DBINT   i
     
    -   DBREAL   r
     
    -   DBSMALLINT   si
     
    -   DBTINYINT   ti
     
    data
     
    -size_t len
     
    -int null_indicator
     
    -char * s
     
    -TDS_SERVER_TYPE type
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/dblib/dbpivot.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00616.html freetds-1.2.3/doc/reference/a00616.html --- freetds-1.1.6/doc/reference/a00616.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00616.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: _dblib_error_message Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _dblib_error_message Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +DBINT msgno
     
    +const char * msgtext
     
    +int severity
     
    +

    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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00617.html freetds-1.2.3/doc/reference/a00617.html --- freetds-1.1.6/doc/reference/a00617.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00617.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    col_t Member List
    +
    +
    + +

    This is the complete list of members for col_t, including all inherited members.

    + + + + + + + + + + + +
    data (defined in col_t)col_t
    f (defined in col_t)col_t
    i (defined in col_t)col_t
    len (defined in col_t)col_t
    null_indicator (defined in col_t)col_t
    r (defined in col_t)col_t
    s (defined in col_t)col_t
    si (defined in col_t)col_t
    ti (defined in col_t)col_t
    type (defined in col_t)col_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00619.html freetds-1.2.3/doc/reference/a00619.html --- freetds-1.1.6/doc/reference/a00619.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00619.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    agg_t Member List
    -
    -
    - -

    This is the complete list of members for agg_t, including all inherited members.

    - - - - -
    col_key (defined in agg_t)agg_t
    row_key (defined in agg_t)agg_t
    value (defined in agg_t)agg_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00620.html freetds-1.2.3/doc/reference/a00620.html --- freetds-1.1.6/doc/reference/a00620.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00620.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,117 @@ + + + + + + + +FreeTDS API: col_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    col_t Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +union {
    +   DBFLT8   f
     
    +   DBINT   i
     
    +   DBREAL   r
     
    +   DBSMALLINT   si
     
    +   DBTINYINT   ti
     
    data
     
    +size_t len
     
    +int null_indicator
     
    +char * s
     
    +TDS_SERVER_TYPE type
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/dblib/dbpivot.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00620.map freetds-1.2.3/doc/reference/a00620.map --- freetds-1.1.6/doc/reference/a00620.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00620.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00620.md5 freetds-1.2.3/doc/reference/a00620.md5 --- freetds-1.1.6/doc/reference/a00620.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00620.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6e37f8ba1362f38d3d7270eb882c2e50 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00620.svg freetds-1.2.3/doc/reference/a00620.svg --- freetds-1.1.6/doc/reference/a00620.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00620.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ - - - - - - -agg_t - - -Node1 - -agg_t - - -Node2 - - -col_t - - - - -Node2->Node1 - - - value - - -Node3 - - -KEY_T - - - - -Node2->Node3 - - - keys - - -Node3->Node1 - - - col_key -row_key - - - diff -Nru freetds-1.1.6/doc/reference/a00622.html freetds-1.2.3/doc/reference/a00622.html --- freetds-1.1.6/doc/reference/a00622.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00622.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: agg_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    agg_t Struct Reference
    -
    -
    -
    -Collaboration diagram for agg_t:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -KEY_T col_key
     
    -KEY_T row_key
     
    -struct col_t value
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/dblib/dbpivot.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00623.html freetds-1.2.3/doc/reference/a00623.html --- freetds-1.1.6/doc/reference/a00623.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00623.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    metadata_t Member List
    -
    -
    - -

    This is the complete list of members for metadata_t, including all inherited members.

    - - - - -
    col (defined in metadata_t)metadata_t
    name (defined in metadata_t)metadata_t
    pacross (defined in metadata_t)metadata_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00624.map freetds-1.2.3/doc/reference/a00624.map --- freetds-1.1.6/doc/reference/a00624.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00624.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00624.md5 freetds-1.2.3/doc/reference/a00624.md5 --- freetds-1.1.6/doc/reference/a00624.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00624.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d5a3395887e19f5abe6b17bb9c71cdde \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00624.svg freetds-1.2.3/doc/reference/a00624.svg --- freetds-1.1.6/doc/reference/a00624.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00624.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ - - - - - - -metadata_t - - -Node1 - -metadata_t - - -Node2 - - -col_t - - - - -Node2->Node1 - - - col - - -Node3 - - -KEY_T - - - - -Node2->Node3 - - - keys - - -Node3->Node1 - - - pacross - - - diff -Nru freetds-1.1.6/doc/reference/a00625.html freetds-1.2.3/doc/reference/a00625.html --- freetds-1.1.6/doc/reference/a00625.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00625.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    agg_t Member List
    +
    +
    + +

    This is the complete list of members for agg_t, including all inherited members.

    + + + + +
    col_key (defined in agg_t)agg_t
    row_key (defined in agg_t)agg_t
    value (defined in agg_t)agg_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00626.html freetds-1.2.3/doc/reference/a00626.html --- freetds-1.1.6/doc/reference/a00626.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00626.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: metadata_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    metadata_t Struct Reference
    -
    -
    -
    -Collaboration diagram for metadata_t:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -struct col_t col
     
    -char * name
     
    -KEY_Tpacross
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/dblib/dbpivot.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00626.map freetds-1.2.3/doc/reference/a00626.map --- freetds-1.1.6/doc/reference/a00626.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00626.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00626.md5 freetds-1.2.3/doc/reference/a00626.md5 --- freetds-1.1.6/doc/reference/a00626.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00626.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +a5ac00cfbd253ef8ec24f5b8e4be4961 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00626.svg freetds-1.2.3/doc/reference/a00626.svg --- freetds-1.1.6/doc/reference/a00626.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00626.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + + +agg_t + + + +Node1 + + +agg_t + + + + + +Node2 + + +col_t + + + + + +Node2->Node1 + + + value + + + +Node3 + + +KEY_T + + + + + +Node2->Node3 + + + keys + + + +Node3->Node1 + + + col_key +row_key + + + diff -Nru freetds-1.1.6/doc/reference/a00627.html freetds-1.2.3/doc/reference/a00627.html --- freetds-1.1.6/doc/reference/a00627.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00627.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    pivot_t Member List
    -
    -
    - -

    This is the complete list of members for pivot_t, including all inherited members.

    - - - - - - - - -
    across (defined in pivot_t)pivot_t
    dbproc (defined in pivot_t)pivot_t
    dbresults_state (defined in pivot_t)pivot_t
    nacross (defined in pivot_t)pivot_t
    nout (defined in pivot_t)pivot_t
    output (defined in pivot_t)pivot_t
    status (defined in pivot_t)pivot_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00628.html freetds-1.2.3/doc/reference/a00628.html --- freetds-1.1.6/doc/reference/a00628.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00628.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: agg_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    agg_t Struct Reference
    +
    +
    +
    +Collaboration diagram for agg_t:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +KEY_T col_key
     
    +KEY_T row_key
     
    +struct col_t value
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/dblib/dbpivot.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00628.map freetds-1.2.3/doc/reference/a00628.map --- freetds-1.1.6/doc/reference/a00628.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00628.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00628.md5 freetds-1.2.3/doc/reference/a00628.md5 --- freetds-1.1.6/doc/reference/a00628.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00628.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -42c2e2b39f1f579405112e16f6c207cf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00628.svg freetds-1.2.3/doc/reference/a00628.svg --- freetds-1.1.6/doc/reference/a00628.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00628.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,328 +0,0 @@ - - - - - - -pivot_t - - -Node1 - -pivot_t - - -Node2 - - -KEY_T - - - - -Node2->Node1 - - - across - - -Node4 - - -agg_t - - - - -Node2->Node4 - - - col_key -row_key - - -Node3 - - -col_t - - - - -Node3->Node2 - - - keys - - -Node3->Node4 - - - value - - -Node4->Node1 - - - output - - -Node5 - - -tds_dblib_dbprocess - - - - -Node5->Node1 - - - dbproc - - -Node6 - - -tag_DBPROC_ROWBUF - - - - -Node6->Node5 - - - row_buf - - -Node7 - - -dblib_buffer_row - - - - -Node7->Node6 - - - rows - - -Node8 - - -tds_result_info - - - - -Node8->Node7 - - - resinfo - - -Node9 - - -tds_socket - - - - -Node8->Node9 - - - param_info -current_results -res_info -comp_info - - -Node35 - - -tds_bcpinfo - - - - -Node8->Node35 - - - bindinfo - - -Node9->Node5 - - - tds_socket - - -Node9->Node8 - - - attached_to - - -Node31 - - -BCP_HOSTFILEINFO - - - - -Node31->Node5 - - - hostfileinfo - - -Node32 - - -BCP_HOSTCOLINFO - - - - -Node32->Node31 - - - host_columns - - -Node33 - - -_DBREMOTE_PROC - - - - -Node33->Node5 - - - rpc - - -Node33->Node33 - - - next - - -Node34 - - -_DBREMOTE_PROC_PARAM - - - - -Node34->Node33 - - - param_list - - -Node34->Node34 - - - next - - -Node35->Node5 - - - bcpinfo - - -Node13 - - -tds_dstr - - - - -Node13->Node35 - - - tablename - - -Node36 - - -dbstring - - - - -Node36->Node5 - - - dboptcmd - - -Node36->Node36 - - - strnext - - -Node37 - - -dboption - - - - -Node36->Node37 - - - param - - -Node37->Node5 - - - dbopts - - -Node38 - - -_null_representation - - - - -Node38->Node5 - - - nullreps - - -Node39 - - -dbtypeinfo - - - - -Node39->Node5 - - - typeinfo - - - diff -Nru freetds-1.1.6/doc/reference/a00629.html freetds-1.2.3/doc/reference/a00629.html --- freetds-1.1.6/doc/reference/a00629.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00629.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    metadata_t Member List
    +
    +
    + +

    This is the complete list of members for metadata_t, including all inherited members.

    + + + + +
    col (defined in metadata_t)metadata_t
    name (defined in metadata_t)metadata_t
    pacross (defined in metadata_t)metadata_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00630.html freetds-1.2.3/doc/reference/a00630.html --- freetds-1.1.6/doc/reference/a00630.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00630.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: pivot_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    pivot_t Struct Reference
    -
    -
    -
    -Collaboration diagram for pivot_t:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - -

    -Public Attributes

    -KEY_Tacross
     
    -DBPROCESSdbproc
     
    -DB_RESULT_STATE dbresults_state
     
    -size_t nacross
     
    -size_t nout
     
    -AGG_Toutput
     
    -STATUS status
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/dblib/dbpivot.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00630.map freetds-1.2.3/doc/reference/a00630.map --- freetds-1.1.6/doc/reference/a00630.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00630.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a00630.md5 freetds-1.2.3/doc/reference/a00630.md5 --- freetds-1.1.6/doc/reference/a00630.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00630.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +85908c64970f262793d370558394a002 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00630.svg freetds-1.2.3/doc/reference/a00630.svg --- freetds-1.1.6/doc/reference/a00630.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00630.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,61 @@ + + + + + + +metadata_t + + + +Node1 + + +metadata_t + + + + + +Node2 + + +col_t + + + + + +Node2->Node1 + + + col + + + +Node3 + + +KEY_T + + + + + +Node2->Node3 + + + keys + + + +Node3->Node1 + + + pacross + + + diff -Nru freetds-1.1.6/doc/reference/a00631.html freetds-1.2.3/doc/reference/a00631.html --- freetds-1.1.6/doc/reference/a00631.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00631.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    name_t Member List
    -
    -
    - -

    This is the complete list of members for name_t, including all inherited members.

    - - - -
    func (defined in name_t)name_t
    name (defined in name_t)name_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00632.html freetds-1.2.3/doc/reference/a00632.html --- freetds-1.1.6/doc/reference/a00632.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00632.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: metadata_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    metadata_t Struct Reference
    +
    +
    +
    +Collaboration diagram for metadata_t:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +struct col_t col
     
    +char * name
     
    +KEY_Tpacross
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/dblib/dbpivot.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00632.map freetds-1.2.3/doc/reference/a00632.map --- freetds-1.1.6/doc/reference/a00632.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00632.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00632.md5 freetds-1.2.3/doc/reference/a00632.md5 --- freetds-1.1.6/doc/reference/a00632.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00632.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2a2d6f8c388483ea237368eba447dfac \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00632.svg freetds-1.2.3/doc/reference/a00632.svg --- freetds-1.1.6/doc/reference/a00632.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00632.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -name_t - - -Node1 - -name_t - - -Node2 - - -col_t - - - - -Node2->Node1 - - - func - - - diff -Nru freetds-1.1.6/doc/reference/a00633.html freetds-1.2.3/doc/reference/a00633.html --- freetds-1.1.6/doc/reference/a00633.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00633.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    pivot_t Member List
    +
    +
    + +

    This is the complete list of members for pivot_t, including all inherited members.

    + + + + + + + + +
    across (defined in pivot_t)pivot_t
    dbproc (defined in pivot_t)pivot_t
    dbresults_state (defined in pivot_t)pivot_t
    nacross (defined in pivot_t)pivot_t
    nout (defined in pivot_t)pivot_t
    output (defined in pivot_t)pivot_t
    status (defined in pivot_t)pivot_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00634.html freetds-1.2.3/doc/reference/a00634.html --- freetds-1.1.6/doc/reference/a00634.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00634.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: name_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    name_t Struct Reference
    -
    -
    -
    -Collaboration diagram for name_t:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -DBPIVOT_FUNC func
     
    -char name [14]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/dblib/dbpivot.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00634.map freetds-1.2.3/doc/reference/a00634.map --- freetds-1.1.6/doc/reference/a00634.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00634.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00634.md5 freetds-1.2.3/doc/reference/a00634.md5 --- freetds-1.1.6/doc/reference/a00634.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00634.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5bdc9b8bf85e5d2a2eb1c2d6722985b7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00634.svg freetds-1.2.3/doc/reference/a00634.svg --- freetds-1.1.6/doc/reference/a00634.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00634.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,534 @@ + + + + + + +pivot_t + + + +Node1 + + +pivot_t + + + + + +Node2 + + +KEY_T + + + + + +Node2->Node1 + + + across + + + +Node4 + + +agg_t + + + + + +Node2->Node4 + + + col_key +row_key + + + +Node3 + + +col_t + + + + + +Node3->Node2 + + + keys + + + +Node3->Node4 + + + value + + + +Node4->Node1 + + + output + + + +Node5 + + +tds_dblib_dbprocess + + + + + +Node5->Node1 + + + dbproc + + + +Node6 + + +NULLREP + + + + + +Node6->Node5 + + + nullreps + + + +Node7 + + +BCP_HOSTFILEINFO + + + + + +Node7->Node5 + + + hostfileinfo + + + +Node8 + + +BCP_HOSTCOLINFO + + + + + +Node8->Node7 + + + host_columns + + + +Node9 + + +tds_socket + + + + + +Node9->Node5 + + + tds_socket + + + +Node16 + + +tds_result_info + + + + + +Node9->Node16 + + + attached_to + + + +Node10 + + +tds_login + + + + + +Node10->Node9 + + + login + + + +Node13 + + +tds_dstr + + + + + +Node13->Node10 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node32 + + +tds_bcpinfo + + + + + +Node13->Node32 + + + tablename + + + +Node14 + + +tds_packet + + + + + +Node14->Node9 + + + frozen_packets +recv_packet +send_packet + + + +Node14->Node14 + + + next + + + +Node26 + + +tds_connection + + + + + +Node14->Node26 + + + packet_cache + + + +Node15 + + +tds_dynamic + + + + + +Node15->Node9 + + + cur_dyn + + + +Node15->Node15 + + + next + + + +Node15->Node26 + + + dyns + + + +Node16->Node9 + + + param_info +current_results +res_info +comp_info + + + +Node16->Node15 + + + res_info +params + + + +Node24 + + +tds_cursor + + + + + +Node16->Node24 + + + res_info + + + +Node16->Node32 + + + bindinfo + + + +Node35 + + +dblib_buffer_row + + + + + +Node16->Node35 + + + resinfo + + + +Node24->Node9 + + + cur_cursor + + + +Node24->Node24 + + + next + + + +Node24->Node26 + + + cursors + + + +Node26->Node9 + + + conn + + + +Node32->Node5 + + + bcpinfo + + + +Node33 + + +dbstring + + + + + +Node33->Node5 + + + dboptcmd + + + +Node33->Node33 + + + strnext + + + +Node36 + + +dboption + + + + + +Node33->Node36 + + + param + + + +Node34 + + +DBPROC_ROWBUF + + + + + +Node34->Node5 + + + row_buf + + + +Node35->Node34 + + + rows + + + +Node36->Node5 + + + dbopts + + + +Node37 + + +DBREMOTE_PROC + + + + + +Node37->Node5 + + + rpc + + + +Node37->Node37 + + + next + + + +Node38 + + +DBREMOTE_PROC_PARAM + + + + + +Node38->Node37 + + + param_list + + + +Node38->Node38 + + + next + + + +Node39 + + +dbtypeinfo + + + + + +Node39->Node5 + + + typeinfo + + + diff -Nru freetds-1.1.6/doc/reference/a00635.html freetds-1.2.3/doc/reference/a00635.html --- freetds-1.1.6/doc/reference/a00635.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00635.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    ProfileParam Member List
    -
    -
    - -

    This is the complete list of members for ProfileParam, including all inherited members.

    - - - - - - -
    buffer (defined in ProfileParam)ProfileParam
    buffer_len (defined in ProfileParam)ProfileParam
    entry (defined in ProfileParam)ProfileParam
    found (defined in ProfileParam)ProfileParam
    ret_val (defined in ProfileParam)ProfileParam
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00636.html freetds-1.2.3/doc/reference/a00636.html --- freetds-1.1.6/doc/reference/a00636.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00636.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: pivot_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    pivot_t Struct Reference
    +
    +
    +
    +Collaboration diagram for pivot_t:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +KEY_Tacross
     
    +DBPROCESSdbproc
     
    +DB_RESULT_STATE dbresults_state
     
    +size_t nacross
     
    +size_t nout
     
    +AGG_Toutput
     
    +STATUS status
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/dblib/dbpivot.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00637.html freetds-1.2.3/doc/reference/a00637.html --- freetds-1.1.6/doc/reference/a00637.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00637.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    name_t Member List
    +
    +
    + +

    This is the complete list of members for name_t, including all inherited members.

    + + + +
    func (defined in name_t)name_t
    name (defined in name_t)name_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00638.html freetds-1.2.3/doc/reference/a00638.html --- freetds-1.1.6/doc/reference/a00638.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00638.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: ProfileParam Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    ProfileParam Struct Reference
    -
    -
    - - - - - - - - - - - - -

    -Public Attributes

    -LPSTR buffer
     
    -int buffer_len
     
    -LPCSTR entry
     
    -int found
     
    -int ret_val
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/odbc/connectparams.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00638.map freetds-1.2.3/doc/reference/a00638.map --- freetds-1.1.6/doc/reference/a00638.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00638.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00638.md5 freetds-1.2.3/doc/reference/a00638.md5 --- freetds-1.1.6/doc/reference/a00638.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00638.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b2c447d490784ba333d9cbcca67bb00e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00638.svg freetds-1.2.3/doc/reference/a00638.svg --- freetds-1.1.6/doc/reference/a00638.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00638.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +name_t + + + +Node1 + + +name_t + + + + + +Node2 + + +col_t + + + + + +Node2->Node1 + + + func + + + diff -Nru freetds-1.1.6/doc/reference/a00639.html freetds-1.2.3/doc/reference/a00639.html --- freetds-1.1.6/doc/reference/a00639.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00639.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    s_SqlMsgMap Member List
    -
    -
    - -

    This is the complete list of members for s_SqlMsgMap, including all inherited members.

    - - - -
    msg (defined in s_SqlMsgMap)s_SqlMsgMap
    sqlstate (defined in s_SqlMsgMap)s_SqlMsgMap
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00640.html freetds-1.2.3/doc/reference/a00640.html --- freetds-1.1.6/doc/reference/a00640.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00640.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: name_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    name_t Struct Reference
    +
    +
    +
    +Collaboration diagram for name_t:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +DBPIVOT_FUNC func
     
    +char name [14]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/dblib/dbpivot.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00641.html freetds-1.2.3/doc/reference/a00641.html --- freetds-1.1.6/doc/reference/a00641.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00641.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    ProfileParam Member List
    +
    +
    + +

    This is the complete list of members for ProfileParam, including all inherited members.

    + + + + + + +
    buffer (defined in ProfileParam)ProfileParam
    buffer_len (defined in ProfileParam)ProfileParam
    entry (defined in ProfileParam)ProfileParam
    found (defined in ProfileParam)ProfileParam
    ret_val (defined in ProfileParam)ProfileParam
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00642.html freetds-1.2.3/doc/reference/a00642.html --- freetds-1.1.6/doc/reference/a00642.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00642.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: s_SqlMsgMap Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    s_SqlMsgMap Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -const char * msg
     
    -char sqlstate [6]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/odbc/error.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00643.html freetds-1.2.3/doc/reference/a00643.html --- freetds-1.1.6/doc/reference/a00643.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00643.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    s_v3to2map Member List
    -
    -
    - -

    This is the complete list of members for s_v3to2map, including all inherited members.

    - - - -
    v2 (defined in s_v3to2map)s_v3to2map
    v3 (defined in s_v3to2map)s_v3to2map
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00644.html freetds-1.2.3/doc/reference/a00644.html --- freetds-1.1.6/doc/reference/a00644.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00644.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: ProfileParam Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ProfileParam Struct Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Attributes

    +LPSTR buffer
     
    +int buffer_len
     
    +LPCSTR entry
     
    +int found
     
    +int ret_val
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/odbc/connectparams.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00645.html freetds-1.2.3/doc/reference/a00645.html --- freetds-1.1.6/doc/reference/a00645.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00645.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    s_SqlMsgMap Member List
    +
    +
    + +

    This is the complete list of members for s_SqlMsgMap, including all inherited members.

    + + + +
    msg (defined in s_SqlMsgMap)s_SqlMsgMap
    sqlstate (defined in s_SqlMsgMap)s_SqlMsgMap
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00646.html freetds-1.2.3/doc/reference/a00646.html --- freetds-1.1.6/doc/reference/a00646.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00646.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: s_v3to2map Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    s_v3to2map Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -char v2 [6]
     
    -char v3 [6]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/odbc/error.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00647.html freetds-1.2.3/doc/reference/a00647.html --- freetds-1.1.6/doc/reference/a00647.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00647.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    func_info Member List
    -
    -
    - -

    This is the complete list of members for func_info, including all inherited members.

    - - - - - -
    name (defined in func_info)func_info
    num_param (defined in func_info)func_info
    special (defined in func_info)func_info
    sql_name (defined in func_info)func_info
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00648.html freetds-1.2.3/doc/reference/a00648.html --- freetds-1.1.6/doc/reference/a00648.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00648.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: s_SqlMsgMap Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    s_SqlMsgMap Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +const char * msg
     
    +char sqlstate [6]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/odbc/error.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00648.map freetds-1.2.3/doc/reference/a00648.map --- freetds-1.1.6/doc/reference/a00648.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00648.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00648.md5 freetds-1.2.3/doc/reference/a00648.md5 --- freetds-1.1.6/doc/reference/a00648.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00648.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -51c649b2d6a8cbbbdb429bd5f3f0f204 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00648.svg freetds-1.2.3/doc/reference/a00648.svg --- freetds-1.1.6/doc/reference/a00648.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00648.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -func_info - - -Node1 - -func_info - - -Node2 - - -native_info - - - - -Node2->Node1 - - - special - - - diff -Nru freetds-1.1.6/doc/reference/a00649.html freetds-1.2.3/doc/reference/a00649.html --- freetds-1.1.6/doc/reference/a00649.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00649.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    s_v3to2map Member List
    +
    +
    + +

    This is the complete list of members for s_v3to2map, including all inherited members.

    + + + +
    v2 (defined in s_v3to2map)s_v3to2map
    v3 (defined in s_v3to2map)s_v3to2map
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00650.html freetds-1.2.3/doc/reference/a00650.html --- freetds-1.1.6/doc/reference/a00650.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00650.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: func_info Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    func_info Struct Reference
    -
    -
    -
    -Collaboration diagram for func_info:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -const char * name
     
    -int num_param
     
    -special_fn special
     
    -const char * sql_name
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/odbc/native.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00651.html freetds-1.2.3/doc/reference/a00651.html --- freetds-1.1.6/doc/reference/a00651.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00651.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    native_info Member List
    -
    -
    - -

    This is the complete list of members for native_info, including all inherited members.

    - - - -
    d (defined in native_info)native_info
    length (defined in native_info)native_info
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00652.html freetds-1.2.3/doc/reference/a00652.html --- freetds-1.1.6/doc/reference/a00652.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00652.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: s_v3to2map Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    s_v3to2map Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +char v2 [6]
     
    +char v3 [6]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/odbc/error.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00653.html freetds-1.2.3/doc/reference/a00653.html --- freetds-1.1.6/doc/reference/a00653.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00653.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    func_info Member List
    +
    +
    + +

    This is the complete list of members for func_info, including all inherited members.

    + + + + + +
    name (defined in func_info)func_info
    num_param (defined in func_info)func_info
    special (defined in func_info)func_info
    sql_name (defined in func_info)func_info
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00654.html freetds-1.2.3/doc/reference/a00654.html --- freetds-1.1.6/doc/reference/a00654.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00654.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: native_info Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    native_info Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -char * d
     
    -int length
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/odbc/native.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00654.map freetds-1.2.3/doc/reference/a00654.map --- freetds-1.1.6/doc/reference/a00654.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00654.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00654.md5 freetds-1.2.3/doc/reference/a00654.md5 --- freetds-1.1.6/doc/reference/a00654.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00654.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +a006c7edd902e14d172defb5b90c2010 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00654.svg freetds-1.2.3/doc/reference/a00654.svg --- freetds-1.1.6/doc/reference/a00654.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00654.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +func_info + + + +Node1 + + +func_info + + + + + +Node2 + + +native_info + + + + + +Node2->Node1 + + + special + + + diff -Nru freetds-1.1.6/doc/reference/a00655.html freetds-1.2.3/doc/reference/a00655.html --- freetds-1.1.6/doc/reference/a00655.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00655.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DSNINFO Member List
    -
    -
    - -

    This is the complete list of members for DSNINFO, including all inherited members.

    - - - - -
    dsnDSNINFO
    loginDSNINFO
    origdsnDSNINFO
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00656.html freetds-1.2.3/doc/reference/a00656.html --- freetds-1.1.6/doc/reference/a00656.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00656.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: func_info Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    func_info Struct Reference
    +
    +
    +
    +Collaboration diagram for func_info:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +const char * name
     
    +int num_param
     
    +special_fn special
     
    +const char * sql_name
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/odbc/native.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00656.map freetds-1.2.3/doc/reference/a00656.map --- freetds-1.1.6/doc/reference/a00656.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00656.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00656.md5 freetds-1.2.3/doc/reference/a00656.md5 --- freetds-1.1.6/doc/reference/a00656.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00656.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -549a06e345555dee4430637f1bdb7c54 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00656.svg freetds-1.2.3/doc/reference/a00656.svg --- freetds-1.1.6/doc/reference/a00656.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00656.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - -DSNINFO - - -Node1 - -DSNINFO - - -Node2 - - -tds_login - - - - -Node2->Node1 - - - login - - -Node3 - - -tds_capabilities - - - - -Node3->Node2 - - - capabilities - - -Node4 - - -tds_capability_type - - - - -Node4->Node3 - - - types - - -Node5 - - -tds_dstr - - - - -Node5->Node1 - - - dsn -origdsn - - -Node5->Node2 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - - diff -Nru freetds-1.1.6/doc/reference/a00657.html freetds-1.2.3/doc/reference/a00657.html --- freetds-1.1.6/doc/reference/a00657.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00657.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    native_info Member List
    +
    +
    + +

    This is the complete list of members for native_info, including all inherited members.

    + + + +
    d (defined in native_info)native_info
    length (defined in native_info)native_info
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00658.html freetds-1.2.3/doc/reference/a00658.html --- freetds-1.1.6/doc/reference/a00658.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00658.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: DSNINFO Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DSNINFO Struct Reference
    -
    -
    -
    -Collaboration diagram for DSNINFO:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - -

    -Public Attributes

    -DSTR dsn
     edited name of the data source
     
    -TDSLOGINlogin
     everything else
     
    -DSTR origdsn
     original name of the data source
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/odbc/winsetup.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00659.html freetds-1.2.3/doc/reference/a00659.html --- freetds-1.1.6/doc/reference/a00659.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00659.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    conf_params Member List
    -
    -
    - -

    This is the complete list of members for conf_params, including all inherited members.

    - - - -
    err (defined in conf_params)conf_params
    pool (defined in conf_params)conf_params
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00660.html freetds-1.2.3/doc/reference/a00660.html --- freetds-1.1.6/doc/reference/a00660.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00660.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: native_info Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    native_info Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +char * d
     
    +int length
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/odbc/native.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00660.map freetds-1.2.3/doc/reference/a00660.map --- freetds-1.1.6/doc/reference/a00660.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00660.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00660.md5 freetds-1.2.3/doc/reference/a00660.md5 --- freetds-1.1.6/doc/reference/a00660.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00660.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3dcc4e0a6f8a183fbcbc1c69616df87b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00660.svg freetds-1.2.3/doc/reference/a00660.svg --- freetds-1.1.6/doc/reference/a00660.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00660.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - -conf_params - - -Node1 - -conf_params - - -Node2 - - -tds_pool - - - - -Node2->Node1 - - - pool - - -Node3 - - -tds_context - - - - -Node3->Node2 - - - ctx - - -Node4 - - -tds_locale - - - - -Node4->Node3 - - - locale - - -Node5 - - -tds_pool_event - - - - -Node5->Node2 - - - events - - -Node5->Node5 - - - execute -next - - - diff -Nru freetds-1.1.6/doc/reference/a00661.html freetds-1.2.3/doc/reference/a00661.html --- freetds-1.1.6/doc/reference/a00661.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00661.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DSNINFO Member List
    +
    +
    + +

    This is the complete list of members for DSNINFO, including all inherited members.

    + + + + +
    dsnDSNINFO
    loginDSNINFO
    origdsnDSNINFO
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00662.html freetds-1.2.3/doc/reference/a00662.html --- freetds-1.1.6/doc/reference/a00662.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00662.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: conf_params Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    conf_params Struct Reference
    -
    -
    -
    -Collaboration diagram for conf_params:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -char ** err
     
    -TDS_POOLpool
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/pool/config.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00662.map freetds-1.2.3/doc/reference/a00662.map --- freetds-1.1.6/doc/reference/a00662.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00662.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00662.md5 freetds-1.2.3/doc/reference/a00662.md5 --- freetds-1.1.6/doc/reference/a00662.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00662.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +d3a35003785f7c074a7d20f6a20f67a0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00662.svg freetds-1.2.3/doc/reference/a00662.svg --- freetds-1.1.6/doc/reference/a00662.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00662.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,105 @@ + + + + + + +DSNINFO + + + +Node1 + + +DSNINFO + + + + + +Node2 + + +tds_login + + + + + +Node2->Node1 + + + login + + + +Node3 + + +tds_capabilities + + + + + +Node3->Node2 + + + capabilities + + + +Node4 + + +tds_capability_type + + + + + +Node4->Node3 + + + types + + + +Node5 + + +tds_dstr + + + + + +Node5->Node1 + + + dsn +origdsn + + + +Node5->Node2 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + diff -Nru freetds-1.1.6/doc/reference/a00663.html freetds-1.2.3/doc/reference/a00663.html --- freetds-1.1.6/doc/reference/a00663.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00663.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    select_info Member List
    -
    -
    - -

    This is the complete list of members for select_info, including all inherited members.

    - - - - -
    maxfd (defined in select_info)select_info
    rfds (defined in select_info)select_info
    wfds (defined in select_info)select_info
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00664.html freetds-1.2.3/doc/reference/a00664.html --- freetds-1.1.6/doc/reference/a00664.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00664.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: DSNINFO Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DSNINFO Struct Reference
    +
    +
    +
    +Collaboration diagram for DSNINFO:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + +

    +Public Attributes

    +DSTR dsn
     edited name of the data source
     
    +TDSLOGINlogin
     everything else
     
    +DSTR origdsn
     original name of the data source
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/odbc/winsetup.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00665.html freetds-1.2.3/doc/reference/a00665.html --- freetds-1.1.6/doc/reference/a00665.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00665.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    conf_params Member List
    +
    +
    + +

    This is the complete list of members for conf_params, including all inherited members.

    + + + +
    err (defined in conf_params)conf_params
    pool (defined in conf_params)conf_params
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00666.html freetds-1.2.3/doc/reference/a00666.html --- freetds-1.1.6/doc/reference/a00666.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00666.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: select_info Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    select_info Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -TDS_SYS_SOCKET maxfd
     
    -fd_set rfds
     
    -fd_set wfds
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/pool/main.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00666.map freetds-1.2.3/doc/reference/a00666.map --- freetds-1.1.6/doc/reference/a00666.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00666.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00666.md5 freetds-1.2.3/doc/reference/a00666.md5 --- freetds-1.1.6/doc/reference/a00666.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00666.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +64cf0d50c5be140fafd13ee348dd5ace \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00666.svg freetds-1.2.3/doc/reference/a00666.svg --- freetds-1.1.6/doc/reference/a00666.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00666.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,94 @@ + + + + + + +conf_params + + + +Node1 + + +conf_params + + + + + +Node2 + + +tds_pool + + + + + +Node2->Node1 + + + pool + + + +Node3 + + +tds_context + + + + + +Node3->Node2 + + + ctx + + + +Node4 + + +tds_locale + + + + + +Node4->Node3 + + + locale + + + +Node5 + + +tds_pool_event + + + + + +Node5->Node2 + + + events + + + +Node5->Node5 + + + execute +next + + + diff -Nru freetds-1.1.6/doc/reference/a00667.html freetds-1.2.3/doc/reference/a00667.html --- freetds-1.1.6/doc/reference/a00667.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00667.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    CONNECT_EVENT Member List
    -
    -
    - -

    This is the complete list of members for CONNECT_EVENT, including all inherited members.

    - - - - - -
    common (defined in CONNECT_EVENT)CONNECT_EVENT
    pmbr (defined in CONNECT_EVENT)CONNECT_EVENT
    pool (defined in CONNECT_EVENT)CONNECT_EVENT
    tds_version (defined in CONNECT_EVENT)CONNECT_EVENT
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00668.html freetds-1.2.3/doc/reference/a00668.html --- freetds-1.1.6/doc/reference/a00668.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00668.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: conf_params Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    conf_params Struct Reference
    +
    +
    +
    +Collaboration diagram for conf_params:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +char ** err
     
    +TDS_POOLpool
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/pool/config.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00668.map freetds-1.2.3/doc/reference/a00668.map --- freetds-1.1.6/doc/reference/a00668.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00668.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00668.md5 freetds-1.2.3/doc/reference/a00668.md5 --- freetds-1.1.6/doc/reference/a00668.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00668.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -cac56443e7d90ae881eff2fabb2aa30d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00668.svg freetds-1.2.3/doc/reference/a00668.svg --- freetds-1.1.6/doc/reference/a00668.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00668.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,141 +0,0 @@ - - - - - - -CONNECT_EVENT - - -Node1 - -CONNECT_EVENT - - -Node2 - - -tds_pool_member - - - - -Node2->Node1 - - - pmbr - - -Node3 - - -tds_pool_user - - - - -Node2->Node3 - - - assigned_member - - -Node3->Node2 - - - current_user - - -Node4 - - -tds_login - - - - -Node4->Node3 - - - login - - -Node8 - - -tds_pool_socket - - - - -Node8->Node2 - - - sock - - -Node8->Node3 - - - sock - - -Node28 - - -tds_pool - - - - -Node28->Node1 - - - pool - - -Node25 - - -tds_context - - - - -Node25->Node28 - - - ctx - - -Node29 - - -tds_pool_event - - - - -Node29->Node1 - - - common - - -Node29->Node28 - - - events - - -Node29->Node29 - - - execute -next - - - diff -Nru freetds-1.1.6/doc/reference/a00669.html freetds-1.2.3/doc/reference/a00669.html --- freetds-1.1.6/doc/reference/a00669.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00669.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    select_info Member List
    +
    +
    + +

    This is the complete list of members for select_info, including all inherited members.

    + + + + +
    maxfd (defined in select_info)select_info
    rfds (defined in select_info)select_info
    wfds (defined in select_info)select_info
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00670.html freetds-1.2.3/doc/reference/a00670.html --- freetds-1.1.6/doc/reference/a00670.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00670.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: CONNECT_EVENT Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    CONNECT_EVENT Struct Reference
    -
    -
    -
    -Collaboration diagram for CONNECT_EVENT:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -TDS_POOL_EVENT common
     
    -TDS_POOL_MEMBERpmbr
     
    -TDS_POOLpool
     
    -int tds_version
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/pool/member.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00671.html freetds-1.2.3/doc/reference/a00671.html --- freetds-1.1.6/doc/reference/a00671.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00671.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_pool_event Member List
    -
    -
    - -

    This is the complete list of members for tds_pool_event, including all inherited members.

    - - - -
    execute (defined in tds_pool_event)tds_pool_event
    next (defined in tds_pool_event)tds_pool_event
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00672.html freetds-1.2.3/doc/reference/a00672.html --- freetds-1.1.6/doc/reference/a00672.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00672.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: select_info Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    select_info Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +TDS_SYS_SOCKET maxfd
     
    +fd_set rfds
     
    +fd_set wfds
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/pool/main.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00672.map freetds-1.2.3/doc/reference/a00672.map --- freetds-1.1.6/doc/reference/a00672.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00672.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00672.md5 freetds-1.2.3/doc/reference/a00672.md5 --- freetds-1.1.6/doc/reference/a00672.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00672.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -62af346a41509c7c93f1b36dc89cc87e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00672.svg freetds-1.2.3/doc/reference/a00672.svg --- freetds-1.1.6/doc/reference/a00672.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00672.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - - -tds_pool_event - - -Node1 - -tds_pool_event - - -Node1->Node1 - - - execute -next - - - diff -Nru freetds-1.1.6/doc/reference/a00673.html freetds-1.2.3/doc/reference/a00673.html --- freetds-1.1.6/doc/reference/a00673.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00673.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CONNECT_EVENT Member List
    +
    +
    + +

    This is the complete list of members for CONNECT_EVENT, including all inherited members.

    + + + + + +
    common (defined in CONNECT_EVENT)CONNECT_EVENT
    pmbr (defined in CONNECT_EVENT)CONNECT_EVENT
    pool (defined in CONNECT_EVENT)CONNECT_EVENT
    tds_version (defined in CONNECT_EVENT)CONNECT_EVENT
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00674.html freetds-1.2.3/doc/reference/a00674.html --- freetds-1.1.6/doc/reference/a00674.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00674.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tds_pool_event Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_pool_event Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_pool_event:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -TDS_POOL_EXECUTE execute
     
    -TDS_POOL_EVENTnext
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00674.map freetds-1.2.3/doc/reference/a00674.map --- freetds-1.1.6/doc/reference/a00674.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00674.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00674.md5 freetds-1.2.3/doc/reference/a00674.md5 --- freetds-1.1.6/doc/reference/a00674.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00674.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +8ec23a5326d30cfa88ab3f6f12372efa \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00674.svg freetds-1.2.3/doc/reference/a00674.svg --- freetds-1.1.6/doc/reference/a00674.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00674.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,163 @@ + + + + + + +CONNECT_EVENT + + + +Node1 + + +CONNECT_EVENT + + + + + +Node2 + + +tds_pool_member + + + + + +Node2->Node1 + + + pmbr + + + +Node3 + + +tds_pool_user + + + + + +Node2->Node3 + + + assigned_member + + + +Node3->Node2 + + + current_user + + + +Node4 + + +tds_login + + + + + +Node4->Node3 + + + login + + + +Node8 + + +tds_pool_socket + + + + + +Node8->Node2 + + + sock + + + +Node8->Node3 + + + sock + + + +Node28 + + +tds_pool + + + + + +Node28->Node1 + + + pool + + + +Node25 + + +tds_context + + + + + +Node25->Node28 + + + ctx + + + +Node29 + + +tds_pool_event + + + + + +Node29->Node1 + + + common + + + +Node29->Node28 + + + events + + + +Node29->Node29 + + + execute +next + + + diff -Nru freetds-1.1.6/doc/reference/a00675.html freetds-1.2.3/doc/reference/a00675.html --- freetds-1.1.6/doc/reference/a00675.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00675.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_pool_socket Member List
    -
    -
    - -

    This is the complete list of members for tds_pool_socket, including all inherited members.

    - - - - -
    poll_recv (defined in tds_pool_socket)tds_pool_socket
    poll_send (defined in tds_pool_socket)tds_pool_socket
    tds (defined in tds_pool_socket)tds_pool_socket
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00676.html freetds-1.2.3/doc/reference/a00676.html --- freetds-1.1.6/doc/reference/a00676.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00676.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: CONNECT_EVENT Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    CONNECT_EVENT Struct Reference
    +
    +
    +
    +Collaboration diagram for CONNECT_EVENT:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +TDS_POOL_EVENT common
     
    +TDS_POOL_MEMBERpmbr
     
    +TDS_POOLpool
     
    +int tds_version
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/pool/member.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00676.map freetds-1.2.3/doc/reference/a00676.map --- freetds-1.1.6/doc/reference/a00676.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00676.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00676.md5 freetds-1.2.3/doc/reference/a00676.md5 --- freetds-1.1.6/doc/reference/a00676.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00676.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -20e0032964eb7be30877e391b1234724 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00676.svg freetds-1.2.3/doc/reference/a00676.svg --- freetds-1.1.6/doc/reference/a00676.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00676.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,298 +0,0 @@ - - - - - - -tds_pool_socket - - -Node1 - -tds_pool_socket - - -Node2 - - -tds_socket - - - - -Node2->Node1 - - - tds - - -Node9 - - -tds_result_info - - - - -Node2->Node9 - - - attached_to - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node19 - - -tds_connection - - - - -Node4->Node19 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8 - - -tds_dynamic - - - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node19 - - - dyns - - -Node9->Node2 - - - param_info -current_results -res_info -comp_info - - -Node9->Node8 - - - res_info -params - - -Node17 - - -tds_cursor - - - - -Node9->Node17 - - - res_info - - -Node17->Node2 - - - cur_cursor - - -Node17->Node17 - - - next - - -Node17->Node19 - - - cursors - - -Node18 - - -tds_cursor_status - - - - -Node18->Node17 - - - status - - -Node19->Node2 - - - conn - - -Node20 - - -tds_poll_wakeup - - - - -Node20->Node19 - - - wakeup - - -Node21 - - -tds_env - - - - -Node21->Node19 - - - env - - -Node22 - - -tds_context - - - - -Node22->Node19 - - - tds_ctx - - -Node24 - - -tds_authentication - - - - -Node24->Node19 - - - authentication - - -Node11 - - -tdsiconvinfo - - - - -Node11->Node19 - - - char_convs - - - diff -Nru freetds-1.1.6/doc/reference/a00677.html freetds-1.2.3/doc/reference/a00677.html --- freetds-1.1.6/doc/reference/a00677.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00677.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_pool_event Member List
    +
    +
    + +

    This is the complete list of members for tds_pool_event, including all inherited members.

    + + + +
    execute (defined in tds_pool_event)tds_pool_event
    next (defined in tds_pool_event)tds_pool_event
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00678.html freetds-1.2.3/doc/reference/a00678.html --- freetds-1.1.6/doc/reference/a00678.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00678.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: tds_pool_socket Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_pool_socket Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_pool_socket:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -bool poll_recv
     
    -bool poll_send
     
    -TDSSOCKETtds
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00678.map freetds-1.2.3/doc/reference/a00678.map --- freetds-1.1.6/doc/reference/a00678.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00678.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00678.md5 freetds-1.2.3/doc/reference/a00678.md5 --- freetds-1.1.6/doc/reference/a00678.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00678.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b0918bc1cd6606b3aa9908cdd56a8bcf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00678.svg freetds-1.2.3/doc/reference/a00678.svg --- freetds-1.1.6/doc/reference/a00678.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00678.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + +tds_pool_event + + + +Node1 + + +tds_pool_event + + + + + +Node1->Node1 + + + execute +next + + + diff -Nru freetds-1.1.6/doc/reference/a00679.html freetds-1.2.3/doc/reference/a00679.html --- freetds-1.1.6/doc/reference/a00679.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00679.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_pool_user Member List
    -
    -
    - -

    This is the complete list of members for tds_pool_user, including all inherited members.

    - - - - - - -
    assigned_member (defined in tds_pool_user)tds_pool_user
    DLIST_FIELDS(dlist_user_item) (defined in tds_pool_user)tds_pool_user
    login (defined in tds_pool_user)tds_pool_user
    sock (defined in tds_pool_user)tds_pool_user
    user_state (defined in tds_pool_user)tds_pool_user
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00680.html freetds-1.2.3/doc/reference/a00680.html --- freetds-1.1.6/doc/reference/a00680.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00680.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tds_pool_event Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_pool_event Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_pool_event:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +TDS_POOL_EXECUTE execute
     
    +TDS_POOL_EVENTnext
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00680.map freetds-1.2.3/doc/reference/a00680.map --- freetds-1.1.6/doc/reference/a00680.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00680.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00680.md5 freetds-1.2.3/doc/reference/a00680.md5 --- freetds-1.1.6/doc/reference/a00680.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00680.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -734ae3b22aa922eb45691733598c74b6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00680.svg freetds-1.2.3/doc/reference/a00680.svg --- freetds-1.1.6/doc/reference/a00680.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00680.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - -tds_pool_user - - -Node1 - -tds_pool_user - - -Node2 - - -tds_pool_member - - - - -Node1->Node2 - - - current_user - - -Node2->Node1 - - - assigned_member - - -Node3 - - -tds_pool_socket - - - - -Node3->Node1 - - - sock - - -Node3->Node2 - - - sock - - -Node4 - - -tds_socket - - - - -Node4->Node3 - - - tds - - -Node5 - - -tds_login - - - - -Node5->Node1 - - - login - - -Node5->Node4 - - - login - - - diff -Nru freetds-1.1.6/doc/reference/a00681.html freetds-1.2.3/doc/reference/a00681.html --- freetds-1.1.6/doc/reference/a00681.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00681.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_pool_socket Member List
    +
    +
    + +

    This is the complete list of members for tds_pool_socket, including all inherited members.

    + + + + +
    poll_recv (defined in tds_pool_socket)tds_pool_socket
    poll_send (defined in tds_pool_socket)tds_pool_socket
    tds (defined in tds_pool_socket)tds_pool_socket
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00682.html freetds-1.2.3/doc/reference/a00682.html --- freetds-1.1.6/doc/reference/a00682.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00682.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - -FreeTDS API: tds_pool_user Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_pool_user Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_pool_user:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Member Functions

    DLIST_FIELDS (dlist_user_item)
     
    - - - - - - - - - -

    -Public Attributes

    -TDS_POOL_MEMBERassigned_member
     
    -TDSLOGINlogin
     
    -TDS_POOL_SOCKET sock
     
    -TDS_USER_STATE user_state
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00682.map freetds-1.2.3/doc/reference/a00682.map --- freetds-1.1.6/doc/reference/a00682.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00682.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00682.md5 freetds-1.2.3/doc/reference/a00682.md5 --- freetds-1.1.6/doc/reference/a00682.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00682.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +e7ba4327779d8dd1df3cf7a691aebc62 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00682.svg freetds-1.2.3/doc/reference/a00682.svg --- freetds-1.1.6/doc/reference/a00682.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00682.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,349 @@ + + + + + + +tds_pool_socket + + + +Node1 + + +tds_pool_socket + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + diff -Nru freetds-1.1.6/doc/reference/a00683.html freetds-1.2.3/doc/reference/a00683.html --- freetds-1.1.6/doc/reference/a00683.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00683.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_pool_member Member List
    -
    -
    - -

    This is the complete list of members for tds_pool_member, including all inherited members.

    - - - - - - -
    current_user (defined in tds_pool_member)tds_pool_member
    DLIST_FIELDS(dlist_member_item) (defined in tds_pool_member)tds_pool_member
    doing_async (defined in tds_pool_member)tds_pool_member
    last_used_tm (defined in tds_pool_member)tds_pool_member
    sock (defined in tds_pool_member)tds_pool_member
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00684.html freetds-1.2.3/doc/reference/a00684.html --- freetds-1.1.6/doc/reference/a00684.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00684.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: tds_pool_socket Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_pool_socket Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_pool_socket:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +bool poll_recv
     
    +bool poll_send
     
    +TDSSOCKETtds
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00684.map freetds-1.2.3/doc/reference/a00684.map --- freetds-1.1.6/doc/reference/a00684.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00684.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00684.md5 freetds-1.2.3/doc/reference/a00684.md5 --- freetds-1.1.6/doc/reference/a00684.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00684.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6d8e116e922efe98a70357771930bc6b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00684.svg freetds-1.2.3/doc/reference/a00684.svg --- freetds-1.1.6/doc/reference/a00684.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00684.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,131 +0,0 @@ - - - - - - -tds_pool_member - - -Node1 - -tds_pool_member - - -Node2 - - -tds_pool_user - - - - -Node1->Node2 - - - assigned_member - - -Node2->Node1 - - - current_user - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node8 - - -tds_socket - - - - -Node3->Node8 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node7 - - -tds_pool_socket - - - - -Node7->Node1 - - - sock - - -Node7->Node2 - - - sock - - -Node8->Node7 - - - tds - - - diff -Nru freetds-1.1.6/doc/reference/a00685.html freetds-1.2.3/doc/reference/a00685.html --- freetds-1.1.6/doc/reference/a00685.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00685.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_pool_user Member List
    +
    +
    + +

    This is the complete list of members for tds_pool_user, including all inherited members.

    + + + + + + +
    assigned_member (defined in tds_pool_user)tds_pool_user
    DLIST_FIELDS(dlist_user_item) (defined in tds_pool_user)tds_pool_user
    login (defined in tds_pool_user)tds_pool_user
    sock (defined in tds_pool_user)tds_pool_user
    user_state (defined in tds_pool_user)tds_pool_user
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00686.html freetds-1.2.3/doc/reference/a00686.html --- freetds-1.1.6/doc/reference/a00686.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00686.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - -FreeTDS API: tds_pool_member Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_pool_member Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_pool_member:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Member Functions

    DLIST_FIELDS (dlist_member_item)
     
    - - - - - - - - - -

    -Public Attributes

    -TDS_POOL_USERcurrent_user
     
    -bool doing_async
     
    -time_t last_used_tm
     
    -TDS_POOL_SOCKET sock
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00686.map freetds-1.2.3/doc/reference/a00686.map --- freetds-1.1.6/doc/reference/a00686.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00686.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00686.md5 freetds-1.2.3/doc/reference/a00686.md5 --- freetds-1.1.6/doc/reference/a00686.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00686.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c136caff73b601a11b2d588a0a429f48 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00686.svg freetds-1.2.3/doc/reference/a00686.svg --- freetds-1.1.6/doc/reference/a00686.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00686.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + +tds_pool_user + + + +Node1 + + +tds_pool_user + + + + + +Node2 + + +tds_pool_member + + + + + +Node1->Node2 + + + current_user + + + +Node2->Node1 + + + assigned_member + + + +Node3 + + +tds_pool_socket + + + + + +Node3->Node1 + + + sock + + + +Node3->Node2 + + + sock + + + +Node4 + + +tds_socket + + + + + +Node4->Node3 + + + tds + + + +Node5 + + +tds_login + + + + + +Node5->Node1 + + + login + + + +Node5->Node4 + + + login + + + diff -Nru freetds-1.1.6/doc/reference/a00687.html freetds-1.2.3/doc/reference/a00687.html --- freetds-1.1.6/doc/reference/a00687.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00687.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_pool Member List
    -
    -
    - -

    This is the complete list of members for tds_pool, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    active_members (defined in tds_pool)tds_pool
    ctx (defined in tds_pool)tds_pool
    database (defined in tds_pool)tds_pool
    event_fd (defined in tds_pool)tds_pool
    events (defined in tds_pool)tds_pool
    events_mtx (defined in tds_pool)tds_pool
    idle_members (defined in tds_pool)tds_pool
    listen_fd (defined in tds_pool)tds_pool
    max_member_age (defined in tds_pool)tds_pool
    max_open_conn (defined in tds_pool)tds_pool
    member_logins (defined in tds_pool)tds_pool
    min_open_conn (defined in tds_pool)tds_pool
    name (defined in tds_pool)tds_pool
    num_active_members (defined in tds_pool)tds_pool
    num_users (defined in tds_pool)tds_pool
    password (defined in tds_pool)tds_pool
    port (defined in tds_pool)tds_pool
    server (defined in tds_pool)tds_pool
    server_password (defined in tds_pool)tds_pool
    server_user (defined in tds_pool)tds_pool
    user (defined in tds_pool)tds_pool
    user_logins (defined in tds_pool)tds_pool
    users (defined in tds_pool)tds_pool
    waiterstds_pool
    wakeup_fd (defined in tds_pool)tds_pool
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00688.html freetds-1.2.3/doc/reference/a00688.html --- freetds-1.1.6/doc/reference/a00688.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00688.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,111 @@ + + + + + + + +FreeTDS API: tds_pool_user Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_pool_user Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_pool_user:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Public Member Functions

    DLIST_FIELDS (dlist_user_item)
     
    + + + + + + + + + +

    +Public Attributes

    +TDS_POOL_MEMBERassigned_member
     
    +TDSLOGINlogin
     
    +TDS_POOL_SOCKET sock
     
    +TDS_USER_STATE user_state
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00688.map freetds-1.2.3/doc/reference/a00688.map --- freetds-1.1.6/doc/reference/a00688.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00688.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00688.md5 freetds-1.2.3/doc/reference/a00688.md5 --- freetds-1.1.6/doc/reference/a00688.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00688.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e637118e66ab7577496950e91bbe6e96 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00688.svg freetds-1.2.3/doc/reference/a00688.svg --- freetds-1.1.6/doc/reference/a00688.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00688.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - - -tds_pool - - -Node1 - -tds_pool - - -Node2 - - -tds_context - - - - -Node2->Node1 - - - ctx - - -Node3 - - -tds_locale - - - - -Node3->Node2 - - - locale - - -Node4 - - -tds_pool_event - - - - -Node4->Node1 - - - events - - -Node4->Node4 - - - execute -next - - - diff -Nru freetds-1.1.6/doc/reference/a00689.html freetds-1.2.3/doc/reference/a00689.html --- freetds-1.1.6/doc/reference/a00689.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00689.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_pool_member Member List
    +
    +
    + +

    This is the complete list of members for tds_pool_member, including all inherited members.

    + + + + + + +
    current_user (defined in tds_pool_member)tds_pool_member
    DLIST_FIELDS(dlist_member_item) (defined in tds_pool_member)tds_pool_member
    doing_async (defined in tds_pool_member)tds_pool_member
    last_used_tm (defined in tds_pool_member)tds_pool_member
    sock (defined in tds_pool_member)tds_pool_member
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00690.html freetds-1.2.3/doc/reference/a00690.html --- freetds-1.1.6/doc/reference/a00690.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00690.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,165 +0,0 @@ - - - - - - - -FreeTDS API: tds_pool Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_pool Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_pool:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -dlist_members active_members
     
    -TDSCONTEXTctx
     
    -char * database
     
    -TDS_SYS_SOCKET event_fd
     
    -TDS_POOL_EVENTevents
     
    -tds_mutex events_mtx
     
    -dlist_members idle_members
     
    -TDS_SYS_SOCKET listen_fd
     
    -int max_member_age
     
    -int max_open_conn
     
    -unsigned long member_logins
     
    -int min_open_conn
     
    -char * name
     
    -int num_active_members
     
    -int num_users
     
    -char * password
     
    -int port
     
    -char * server
     
    -char * server_password
     
    -char * server_user
     
    -char * user
     
    -unsigned long user_logins
     
    -dlist_users users
     
    -dlist_users waiters
     users in wait state
     
    -TDS_SYS_SOCKET wakeup_fd
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00690.map freetds-1.2.3/doc/reference/a00690.map --- freetds-1.1.6/doc/reference/a00690.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00690.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,9 @@ + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00690.md5 freetds-1.2.3/doc/reference/a00690.md5 --- freetds-1.1.6/doc/reference/a00690.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00690.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +47f15290f443f97e9d1cbdf32b4f473c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00690.svg freetds-1.2.3/doc/reference/a00690.svg --- freetds-1.1.6/doc/reference/a00690.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00690.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,150 @@ + + + + + + +tds_pool_member + + + +Node1 + + +tds_pool_member + + + + + +Node2 + + +tds_pool_user + + + + + +Node1->Node2 + + + assigned_member + + + +Node2->Node1 + + + current_user + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node8 + + +tds_socket + + + + + +Node3->Node8 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_pool_socket + + + + + +Node7->Node1 + + + sock + + + +Node7->Node2 + + + sock + + + +Node8->Node7 + + + tds + + + diff -Nru freetds-1.1.6/doc/reference/a00691.html freetds-1.2.3/doc/reference/a00691.html --- freetds-1.1.6/doc/reference/a00691.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00691.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tmp_col_struct Member List
    -
    -
    - -

    This is the complete list of members for tmp_col_struct, including all inherited members.

    - - - -
    column_name (defined in tmp_col_struct)tmp_col_struct
    next (defined in tmp_col_struct)tmp_col_struct
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00692.html freetds-1.2.3/doc/reference/a00692.html --- freetds-1.1.6/doc/reference/a00692.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00692.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,111 @@ + + + + + + + +FreeTDS API: tds_pool_member Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_pool_member Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_pool_member:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Public Member Functions

    DLIST_FIELDS (dlist_member_item)
     
    + + + + + + + + + +

    +Public Attributes

    +TDS_POOL_USERcurrent_user
     
    +bool doing_async
     
    +time_t last_used_tm
     
    +TDS_POOL_SOCKET sock
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00692.map freetds-1.2.3/doc/reference/a00692.map --- freetds-1.1.6/doc/reference/a00692.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00692.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00692.md5 freetds-1.2.3/doc/reference/a00692.md5 --- freetds-1.1.6/doc/reference/a00692.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00692.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -48e42e22b0b04d874e943712cf97a5ff \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00692.svg freetds-1.2.3/doc/reference/a00692.svg --- freetds-1.1.6/doc/reference/a00692.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00692.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -tmp_col_struct - - -Node1 - -tmp_col_struct - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00693.html freetds-1.2.3/doc/reference/a00693.html --- freetds-1.1.6/doc/reference/a00693.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00693.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_pool Member List
    +
    +
    + +

    This is the complete list of members for tds_pool, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    active_members (defined in tds_pool)tds_pool
    ctx (defined in tds_pool)tds_pool
    database (defined in tds_pool)tds_pool
    event_fd (defined in tds_pool)tds_pool
    events (defined in tds_pool)tds_pool
    events_mtx (defined in tds_pool)tds_pool
    idle_members (defined in tds_pool)tds_pool
    listen_fd (defined in tds_pool)tds_pool
    max_member_age (defined in tds_pool)tds_pool
    max_open_conn (defined in tds_pool)tds_pool
    member_logins (defined in tds_pool)tds_pool
    min_open_conn (defined in tds_pool)tds_pool
    name (defined in tds_pool)tds_pool
    num_active_members (defined in tds_pool)tds_pool
    num_users (defined in tds_pool)tds_pool
    password (defined in tds_pool)tds_pool
    port (defined in tds_pool)tds_pool
    server (defined in tds_pool)tds_pool
    server_password (defined in tds_pool)tds_pool
    server_user (defined in tds_pool)tds_pool
    user (defined in tds_pool)tds_pool
    user_logins (defined in tds_pool)tds_pool
    users (defined in tds_pool)tds_pool
    waiterstds_pool
    wakeup_fd (defined in tds_pool)tds_pool
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00694.html freetds-1.2.3/doc/reference/a00694.html --- freetds-1.1.6/doc/reference/a00694.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00694.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tmp_col_struct Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tmp_col_struct Struct Reference
    -
    -
    -
    -Collaboration diagram for tmp_col_struct:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -char * column_name
     
    -struct tmp_col_structnext
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/pool/stream.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00694.map freetds-1.2.3/doc/reference/a00694.map --- freetds-1.1.6/doc/reference/a00694.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00694.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00694.md5 freetds-1.2.3/doc/reference/a00694.md5 --- freetds-1.1.6/doc/reference/a00694.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00694.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +69c595e1c4404f4ae5e0680478153c31 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00694.svg freetds-1.2.3/doc/reference/a00694.svg --- freetds-1.1.6/doc/reference/a00694.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00694.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,78 @@ + + + + + + +tds_pool + + + +Node1 + + +tds_pool + + + + + +Node2 + + +tds_context + + + + + +Node2->Node1 + + + ctx + + + +Node3 + + +tds_locale + + + + + +Node3->Node2 + + + locale + + + +Node4 + + +tds_pool_event + + + + + +Node4->Node1 + + + events + + + +Node4->Node4 + + + execute +next + + + diff -Nru freetds-1.1.6/doc/reference/a00695.html freetds-1.2.3/doc/reference/a00695.html --- freetds-1.1.6/doc/reference/a00695.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00695.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    LOGIN_EVENT Member List
    -
    -
    - -

    This is the complete list of members for LOGIN_EVENT, including all inherited members.

    - - - - - -
    common (defined in LOGIN_EVENT)LOGIN_EVENT
    pool (defined in LOGIN_EVENT)LOGIN_EVENT
    puser (defined in LOGIN_EVENT)LOGIN_EVENT
    success (defined in LOGIN_EVENT)LOGIN_EVENT
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00696.html freetds-1.2.3/doc/reference/a00696.html --- freetds-1.1.6/doc/reference/a00696.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00696.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,168 @@ + + + + + + + +FreeTDS API: tds_pool Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_pool Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_pool:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +dlist_members active_members
     
    +TDSCONTEXTctx
     
    +char * database
     
    +TDS_SYS_SOCKET event_fd
     
    +TDS_POOL_EVENTevents
     
    +tds_mutex events_mtx
     
    +dlist_members idle_members
     
    +TDS_SYS_SOCKET listen_fd
     
    +int max_member_age
     
    +int max_open_conn
     
    +unsigned long member_logins
     
    +int min_open_conn
     
    +char * name
     
    +int num_active_members
     
    +int num_users
     
    +char * password
     
    +int port
     
    +char * server
     
    +char * server_password
     
    +char * server_user
     
    +char * user
     
    +unsigned long user_logins
     
    +dlist_users users
     
    +dlist_users waiters
     users in wait state
     
    +TDS_SYS_SOCKET wakeup_fd
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00696.map freetds-1.2.3/doc/reference/a00696.map --- freetds-1.1.6/doc/reference/a00696.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00696.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00696.md5 freetds-1.2.3/doc/reference/a00696.md5 --- freetds-1.1.6/doc/reference/a00696.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00696.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2d768c148cb44f8eb4bed4662695f4b9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00696.svg freetds-1.2.3/doc/reference/a00696.svg --- freetds-1.1.6/doc/reference/a00696.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00696.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,155 +0,0 @@ - - - - - - -LOGIN_EVENT - - -Node1 - -LOGIN_EVENT - - -Node2 - - -tds_pool - - - - -Node2->Node1 - - - pool - - -Node3 - - -tds_context - - - - -Node3->Node2 - - - ctx - - -Node4 - - -tds_locale - - - - -Node4->Node3 - - - locale - - -Node5 - - -tds_pool_event - - - - -Node5->Node1 - - - common - - -Node5->Node2 - - - events - - -Node5->Node5 - - - execute -next - - -Node6 - - -tds_pool_user - - - - -Node6->Node1 - - - puser - - -Node7 - - -tds_pool_member - - - - -Node6->Node7 - - - current_user - - -Node7->Node6 - - - assigned_member - - -Node8 - - -tds_pool_socket - - - - -Node8->Node6 - - - sock - - -Node8->Node7 - - - sock - - -Node10 - - -tds_login - - - - -Node10->Node6 - - - login - - - diff -Nru freetds-1.1.6/doc/reference/a00697.html freetds-1.2.3/doc/reference/a00697.html --- freetds-1.1.6/doc/reference/a00697.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00697.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tmp_col_struct Member List
    +
    +
    + +

    This is the complete list of members for tmp_col_struct, including all inherited members.

    + + + +
    column_name (defined in tmp_col_struct)tmp_col_struct
    next (defined in tmp_col_struct)tmp_col_struct
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00698.html freetds-1.2.3/doc/reference/a00698.html --- freetds-1.1.6/doc/reference/a00698.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00698.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: LOGIN_EVENT Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    LOGIN_EVENT Struct Reference
    -
    -
    -
    -Collaboration diagram for LOGIN_EVENT:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -TDS_POOL_EVENT common
     
    -TDS_POOLpool
     
    -TDS_POOL_USERpuser
     
    -bool success
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/pool/user.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00698.map freetds-1.2.3/doc/reference/a00698.map --- freetds-1.1.6/doc/reference/a00698.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00698.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00698.md5 freetds-1.2.3/doc/reference/a00698.md5 --- freetds-1.1.6/doc/reference/a00698.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00698.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +cd9a0c5dabae7bfaeecc6f3e1751a4a9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00698.svg freetds-1.2.3/doc/reference/a00698.svg --- freetds-1.1.6/doc/reference/a00698.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00698.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +tmp_col_struct + + + +Node1 + + +tmp_col_struct + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00699.html freetds-1.2.3/doc/reference/a00699.html --- freetds-1.1.6/doc/reference/a00699.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00699.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    END_LOGIN_EVENT Member List
    -
    -
    - -

    This is the complete list of members for END_LOGIN_EVENT, including all inherited members.

    - - - - - -
    common (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    pool (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    puser (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    success (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00700.html freetds-1.2.3/doc/reference/a00700.html --- freetds-1.1.6/doc/reference/a00700.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00700.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tmp_col_struct Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tmp_col_struct Struct Reference
    +
    +
    +
    +Collaboration diagram for tmp_col_struct:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +char * column_name
     
    +struct tmp_col_structnext
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/pool/stream.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00700.map freetds-1.2.3/doc/reference/a00700.map --- freetds-1.1.6/doc/reference/a00700.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00700.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00700.md5 freetds-1.2.3/doc/reference/a00700.md5 --- freetds-1.1.6/doc/reference/a00700.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00700.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a2d50c6f27df6ac5162cfe639e06f0cb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00700.svg freetds-1.2.3/doc/reference/a00700.svg --- freetds-1.1.6/doc/reference/a00700.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00700.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,155 +0,0 @@ - - - - - - -END_LOGIN_EVENT - - -Node1 - -END_LOGIN_EVENT - - -Node2 - - -tds_pool - - - - -Node2->Node1 - - - pool - - -Node3 - - -tds_context - - - - -Node3->Node2 - - - ctx - - -Node4 - - -tds_locale - - - - -Node4->Node3 - - - locale - - -Node5 - - -tds_pool_event - - - - -Node5->Node1 - - - common - - -Node5->Node2 - - - events - - -Node5->Node5 - - - execute -next - - -Node6 - - -tds_pool_user - - - - -Node6->Node1 - - - puser - - -Node7 - - -tds_pool_member - - - - -Node6->Node7 - - - current_user - - -Node7->Node6 - - - assigned_member - - -Node8 - - -tds_pool_socket - - - - -Node8->Node6 - - - sock - - -Node8->Node7 - - - sock - - -Node10 - - -tds_login - - - - -Node10->Node6 - - - login - - - diff -Nru freetds-1.1.6/doc/reference/a00701.html freetds-1.2.3/doc/reference/a00701.html --- freetds-1.1.6/doc/reference/a00701.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00701.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    LOGIN_EVENT Member List
    +
    +
    + +

    This is the complete list of members for LOGIN_EVENT, including all inherited members.

    + + + + + +
    common (defined in LOGIN_EVENT)LOGIN_EVENT
    pool (defined in LOGIN_EVENT)LOGIN_EVENT
    puser (defined in LOGIN_EVENT)LOGIN_EVENT
    success (defined in LOGIN_EVENT)LOGIN_EVENT
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00702.html freetds-1.2.3/doc/reference/a00702.html --- freetds-1.1.6/doc/reference/a00702.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00702.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: END_LOGIN_EVENT Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    END_LOGIN_EVENT Struct Reference
    -
    -
    -
    -Collaboration diagram for END_LOGIN_EVENT:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -TDS_POOL_EVENT common
     
    -TDS_POOLpool
     
    -TDS_POOL_USERpuser
     
    -bool success
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/pool/user.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00702.map freetds-1.2.3/doc/reference/a00702.map --- freetds-1.1.6/doc/reference/a00702.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00702.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00702.md5 freetds-1.2.3/doc/reference/a00702.md5 --- freetds-1.1.6/doc/reference/a00702.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00702.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +14a7bf8a48a7c1ec1ae532d38a83e528 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00702.svg freetds-1.2.3/doc/reference/a00702.svg --- freetds-1.1.6/doc/reference/a00702.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00702.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,179 @@ + + + + + + +LOGIN_EVENT + + + +Node1 + + +LOGIN_EVENT + + + + + +Node2 + + +tds_pool + + + + + +Node2->Node1 + + + pool + + + +Node3 + + +tds_context + + + + + +Node3->Node2 + + + ctx + + + +Node4 + + +tds_locale + + + + + +Node4->Node3 + + + locale + + + +Node5 + + +tds_pool_event + + + + + +Node5->Node1 + + + common + + + +Node5->Node2 + + + events + + + +Node5->Node5 + + + execute +next + + + +Node6 + + +tds_pool_user + + + + + +Node6->Node1 + + + puser + + + +Node7 + + +tds_pool_member + + + + + +Node6->Node7 + + + current_user + + + +Node7->Node6 + + + assigned_member + + + +Node8 + + +tds_pool_socket + + + + + +Node8->Node6 + + + sock + + + +Node8->Node7 + + + sock + + + +Node10 + + +tds_login + + + + + +Node10->Node6 + + + login + + + diff -Nru freetds-1.1.6/doc/reference/a00703.html freetds-1.2.3/doc/reference/a00703.html --- freetds-1.1.6/doc/reference/a00703.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00703.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_pbcb Member List
    -
    -
    - -

    This is the complete list of members for tds_pbcb, including all inherited members.

    - - - - -
    cbtds_pbcb
    from_malloctds_pbcb
    pbtds_pbcb
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00704.html freetds-1.2.3/doc/reference/a00704.html --- freetds-1.1.6/doc/reference/a00704.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00704.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: LOGIN_EVENT Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    LOGIN_EVENT Struct Reference
    +
    +
    +
    +Collaboration diagram for LOGIN_EVENT:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +TDS_POOL_EVENT common
     
    +TDS_POOLpool
     
    +TDS_POOL_USERpuser
     
    +bool success
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/pool/user.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00705.html freetds-1.2.3/doc/reference/a00705.html --- freetds-1.1.6/doc/reference/a00705.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00705.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    END_LOGIN_EVENT Member List
    +
    +
    + +

    This is the complete list of members for END_LOGIN_EVENT, including all inherited members.

    + + + + + +
    common (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    pool (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    puser (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    success (defined in END_LOGIN_EVENT)END_LOGIN_EVENT
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00706.html freetds-1.2.3/doc/reference/a00706.html --- freetds-1.1.6/doc/reference/a00706.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00706.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - - - - - -FreeTDS API: tds_pbcb Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_pbcb Struct Reference
    -
    -
    - -

    Holds clause buffer. - More...

    - - - - - - - - - - - -

    -Public Attributes

    -unsigned int cb
     buffer length
     
    -unsigned int from_malloc
     true is buffer came from malloc
     
    -char * pb
     buffer
     
    -

    Detailed Description

    -

    Holds clause buffer.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00706.map freetds-1.2.3/doc/reference/a00706.map --- freetds-1.1.6/doc/reference/a00706.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00706.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00706.md5 freetds-1.2.3/doc/reference/a00706.md5 --- freetds-1.1.6/doc/reference/a00706.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00706.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +179c07b87db9f707f48a1ecea0636d53 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00706.svg freetds-1.2.3/doc/reference/a00706.svg --- freetds-1.1.6/doc/reference/a00706.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00706.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,179 @@ + + + + + + +END_LOGIN_EVENT + + + +Node1 + + +END_LOGIN_EVENT + + + + + +Node2 + + +tds_pool + + + + + +Node2->Node1 + + + pool + + + +Node3 + + +tds_context + + + + + +Node3->Node2 + + + ctx + + + +Node4 + + +tds_locale + + + + + +Node4->Node3 + + + locale + + + +Node5 + + +tds_pool_event + + + + + +Node5->Node1 + + + common + + + +Node5->Node2 + + + events + + + +Node5->Node5 + + + execute +next + + + +Node6 + + +tds_pool_user + + + + + +Node6->Node1 + + + puser + + + +Node7 + + +tds_pool_member + + + + + +Node6->Node7 + + + current_user + + + +Node7->Node6 + + + assigned_member + + + +Node8 + + +tds_pool_socket + + + + + +Node8->Node6 + + + sock + + + +Node8->Node7 + + + sock + + + +Node10 + + +tds_login + + + + + +Node10->Node6 + + + login + + + diff -Nru freetds-1.1.6/doc/reference/a00707.html freetds-1.2.3/doc/reference/a00707.html --- freetds-1.1.6/doc/reference/a00707.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00707.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_file_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_file_stream, including all inherited members.

    - - - - - - - -
    ftds_file_stream
    lefttds_file_stream
    left_pos (defined in tds_file_stream)tds_file_stream
    streamtds_file_stream
    term_lentds_file_stream
    terminatortds_file_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00708.html freetds-1.2.3/doc/reference/a00708.html --- freetds-1.1.6/doc/reference/a00708.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00708.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: END_LOGIN_EVENT Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    END_LOGIN_EVENT Struct Reference
    +
    +
    +
    +Collaboration diagram for END_LOGIN_EVENT:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +TDS_POOL_EVENT common
     
    +TDS_POOLpool
     
    +TDS_POOL_USERpuser
     
    +bool success
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/pool/user.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00708.map freetds-1.2.3/doc/reference/a00708.map --- freetds-1.1.6/doc/reference/a00708.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00708.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00708.md5 freetds-1.2.3/doc/reference/a00708.md5 --- freetds-1.1.6/doc/reference/a00708.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00708.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -19cbc03c781b1d67e7d75479b171fced \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00708.svg freetds-1.2.3/doc/reference/a00708.svg --- freetds-1.1.6/doc/reference/a00708.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00708.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_file_stream - - -Node1 - -tds_file_stream - - -Node2 - - -tds_input_stream - - - - -Node2->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a00709.html freetds-1.2.3/doc/reference/a00709.html --- freetds-1.1.6/doc/reference/a00709.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00709.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_pbcb Member List
    +
    +
    + +

    This is the complete list of members for tds_pbcb, including all inherited members.

    + + + + +
    cbtds_pbcb
    from_malloctds_pbcb
    pbtds_pbcb
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00710.html freetds-1.2.3/doc/reference/a00710.html --- freetds-1.1.6/doc/reference/a00710.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00710.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ - - - - - - - -FreeTDS API: tds_file_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_file_stream Struct Reference
    -
    -
    - -

    input stream to read a file - More...

    -
    -Collaboration diagram for tds_file_stream:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -FILE * f
     file to read from
     
    -char * left
     buffer for store bytes readed that could be the terminator
     
    -size_t left_pos
     
    -TDSINSTREAM stream
     common fields, must be the first field
     
    -size_t term_len
     terminator length in bytes
     
    -const char * terminator
     terminator
     
    -

    Detailed Description

    -

    input stream to read a file

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00711.html freetds-1.2.3/doc/reference/a00711.html --- freetds-1.1.6/doc/reference/a00711.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00711.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_answer Member List
    -
    -
    - -

    This is the complete list of members for tds_answer, including all inherited members.

    - - - -
    lm_resp (defined in tds_answer)tds_answer
    nt_resp (defined in tds_answer)tds_answer
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00712.html freetds-1.2.3/doc/reference/a00712.html --- freetds-1.1.6/doc/reference/a00712.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00712.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + + + +FreeTDS API: tds_pbcb Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_pbcb Struct Reference
    +
    +
    + +

    Holds clause buffer. + More...

    + + + + + + + + + + + +

    +Public Attributes

    +unsigned int cb
     buffer length
     
    +unsigned int from_malloc
     true is buffer came from malloc
     
    +char * pb
     buffer
     
    +

    Detailed Description

    +

    Holds clause buffer.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00713.html freetds-1.2.3/doc/reference/a00713.html --- freetds-1.1.6/doc/reference/a00713.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00713.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_file_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_file_stream, including all inherited members.

    + + + + + + + +
    ftds_file_stream
    lefttds_file_stream
    left_pos (defined in tds_file_stream)tds_file_stream
    streamtds_file_stream
    term_lentds_file_stream
    terminatortds_file_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00714.html freetds-1.2.3/doc/reference/a00714.html --- freetds-1.1.6/doc/reference/a00714.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00714.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tds_answer Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_answer Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -unsigned char lm_resp [24]
     
    -unsigned char nt_resp [24]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/challenge.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00714.map freetds-1.2.3/doc/reference/a00714.map --- freetds-1.1.6/doc/reference/a00714.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00714.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00714.md5 freetds-1.2.3/doc/reference/a00714.md5 --- freetds-1.1.6/doc/reference/a00714.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00714.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ba1c9fc42081dda0e3d829e8910772da \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00714.svg freetds-1.2.3/doc/reference/a00714.svg --- freetds-1.1.6/doc/reference/a00714.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00714.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_file_stream + + + +Node1 + + +tds_file_stream + + + + + +Node2 + + +tds_input_stream + + + + + +Node2->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a00715.html freetds-1.2.3/doc/reference/a00715.html --- freetds-1.1.6/doc/reference/a00715.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00715.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    names_blob_prefix_t Member List
    -
    -
    - -

    This is the complete list of members for names_blob_prefix_t, including all inherited members.

    - - - - - - - - - -
    challenge (defined in names_blob_prefix_t)names_blob_prefix_t
    max_response_type (defined in names_blob_prefix_t)names_blob_prefix_t
    reserved1 (defined in names_blob_prefix_t)names_blob_prefix_t
    reserved2 (defined in names_blob_prefix_t)names_blob_prefix_t
    response_type (defined in names_blob_prefix_t)names_blob_prefix_t
    target_info (defined in names_blob_prefix_t)names_blob_prefix_t
    timestamp (defined in names_blob_prefix_t)names_blob_prefix_t
    unknown (defined in names_blob_prefix_t)names_blob_prefix_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00716.html freetds-1.2.3/doc/reference/a00716.html --- freetds-1.1.6/doc/reference/a00716.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00716.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,120 @@ + + + + + + + +FreeTDS API: tds_file_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_file_stream Struct Reference
    +
    +
    + +

    input stream to read a file + More...

    +
    +Collaboration diagram for tds_file_stream:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +FILE * f
     file to read from
     
    +char * left
     buffer for store bytes readed that could be the terminator
     
    +size_t left_pos
     
    +TDSINSTREAM stream
     common fields, must be the first field
     
    +size_t term_len
     terminator length in bytes
     
    +const char * terminator
     terminator
     
    +

    Detailed Description

    +

    input stream to read a file

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00717.html freetds-1.2.3/doc/reference/a00717.html --- freetds-1.1.6/doc/reference/a00717.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00717.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_answer Member List
    +
    +
    + +

    This is the complete list of members for tds_answer, including all inherited members.

    + + + +
    lm_resp (defined in tds_answer)tds_answer
    nt_resp (defined in tds_answer)tds_answer
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00718.html freetds-1.2.3/doc/reference/a00718.html --- freetds-1.1.6/doc/reference/a00718.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00718.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - - -FreeTDS API: names_blob_prefix_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    names_blob_prefix_t Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -uint8_t challenge [8]
     
    -uint8_t max_response_type
     
    -uint16_t reserved1
     
    -uint32_t reserved2
     
    -uint8_t response_type
     
    -uint8_t target_info [4]
     
    -uint64_t timestamp
     
    -uint32_t unknown
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/challenge.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00719.html freetds-1.2.3/doc/reference/a00719.html --- freetds-1.1.6/doc/reference/a00719.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00719.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_ntlm_auth Member List
    -
    -
    - -

    This is the complete list of members for tds_ntlm_auth, including all inherited members.

    - - -
    tds_auth (defined in tds_ntlm_auth)tds_ntlm_auth
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00720.html freetds-1.2.3/doc/reference/a00720.html --- freetds-1.1.6/doc/reference/a00720.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00720.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tds_answer Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_answer Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +unsigned char lm_resp [24]
     
    +unsigned char nt_resp [24]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/challenge.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00720.map freetds-1.2.3/doc/reference/a00720.map --- freetds-1.1.6/doc/reference/a00720.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00720.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00720.md5 freetds-1.2.3/doc/reference/a00720.md5 --- freetds-1.1.6/doc/reference/a00720.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00720.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -69c622fee1d5a3158dba0e2818623036 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00720.svg freetds-1.2.3/doc/reference/a00720.svg --- freetds-1.1.6/doc/reference/a00720.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00720.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_ntlm_auth - - -Node1 - -tds_ntlm_auth - - -Node2 - - -tds_authentication - - - - -Node2->Node1 - - - tds_auth - - - diff -Nru freetds-1.1.6/doc/reference/a00721.html freetds-1.2.3/doc/reference/a00721.html --- freetds-1.1.6/doc/reference/a00721.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00721.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    names_blob_prefix_t Member List
    +
    +
    + +

    This is the complete list of members for names_blob_prefix_t, including all inherited members.

    + + + + + + + + + +
    challenge (defined in names_blob_prefix_t)names_blob_prefix_t
    max_response_type (defined in names_blob_prefix_t)names_blob_prefix_t
    reserved1 (defined in names_blob_prefix_t)names_blob_prefix_t
    reserved2 (defined in names_blob_prefix_t)names_blob_prefix_t
    response_type (defined in names_blob_prefix_t)names_blob_prefix_t
    target_info (defined in names_blob_prefix_t)names_blob_prefix_t
    timestamp (defined in names_blob_prefix_t)names_blob_prefix_t
    unknown (defined in names_blob_prefix_t)names_blob_prefix_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00722.html freetds-1.2.3/doc/reference/a00722.html --- freetds-1.1.6/doc/reference/a00722.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00722.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_ntlm_auth Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_ntlm_auth Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_ntlm_auth:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Attributes

    -TDSAUTHENTICATION tds_auth
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/challenge.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00724.html freetds-1.2.3/doc/reference/a00724.html --- freetds-1.1.6/doc/reference/a00724.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00724.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,110 @@ + + + + + + + +FreeTDS API: names_blob_prefix_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    names_blob_prefix_t Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +uint8_t challenge [8]
     
    +uint8_t max_response_type
     
    +uint16_t reserved1
     
    +uint32_t reserved2
     
    +uint8_t response_type
     
    +uint8_t target_info [4]
     
    +uint64_t timestamp
     
    +uint32_t unknown
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/challenge.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00725.html freetds-1.2.3/doc/reference/a00725.html --- freetds-1.1.6/doc/reference/a00725.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00725.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_ntlm_auth Member List
    +
    +
    + +

    This is the complete list of members for tds_ntlm_auth, including all inherited members.

    + + +
    tds_auth (defined in tds_ntlm_auth)tds_ntlm_auth
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00726.map freetds-1.2.3/doc/reference/a00726.map --- freetds-1.1.6/doc/reference/a00726.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00726.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00726.md5 freetds-1.2.3/doc/reference/a00726.md5 --- freetds-1.1.6/doc/reference/a00726.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00726.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +e57c93c78258cded011e3b8f9b772e32 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00726.svg freetds-1.2.3/doc/reference/a00726.svg --- freetds-1.1.6/doc/reference/a00726.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00726.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_ntlm_auth + + + +Node1 + + +tds_ntlm_auth + + + + + +Node2 + + +tds_authentication + + + + + +Node2->Node1 + + + tds_auth + + + diff -Nru freetds-1.1.6/doc/reference/a00727.html freetds-1.2.3/doc/reference/a00727.html --- freetds-1.1.6/doc/reference/a00727.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00727.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsvername_t Member List
    -
    -
    - -

    This is the complete list of members for tdsvername_t, including all inherited members.

    - - - -
    name (defined in tdsvername_t)tdsvername_t
    version (defined in tdsvername_t)tdsvername_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00728.html freetds-1.2.3/doc/reference/a00728.html --- freetds-1.1.6/doc/reference/a00728.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00728.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_ntlm_auth Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_ntlm_auth Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_ntlm_auth:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Public Attributes

    +TDSAUTHENTICATION tds_auth
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/challenge.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00730.html freetds-1.2.3/doc/reference/a00730.html --- freetds-1.1.6/doc/reference/a00730.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00730.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tdsvername_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsvername_t Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -const char name [6]
     
    -TDS_USMALLINT version
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/config.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00731.html freetds-1.2.3/doc/reference/a00731.html --- freetds-1.1.6/doc/reference/a00731.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00731.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_time Member List
    -
    -
    - -

    This is the complete list of members for tds_time, including all inherited members.

    - - - - - - - - -
    tm_hourtds_time
    tm_mdaytds_time
    tm_mintds_time
    tm_montds_time
    tm_nstds_time
    tm_sectds_time
    tm_yeartds_time
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00733.html freetds-1.2.3/doc/reference/a00733.html --- freetds-1.1.6/doc/reference/a00733.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00733.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsvername_t Member List
    +
    +
    + +

    This is the complete list of members for tdsvername_t, including all inherited members.

    + + + +
    name (defined in tdsvername_t)tdsvername_t
    version (defined in tdsvername_t)tdsvername_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00734.html freetds-1.2.3/doc/reference/a00734.html --- freetds-1.1.6/doc/reference/a00734.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00734.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,111 +0,0 @@ - - - - - - - -FreeTDS API: tds_time Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_time Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int tm_hour
     hours (0-23)
     
    -int tm_mday
     month day (1-31)
     
    -int tm_min
     minutes (0-59)
     
    -int tm_mon
     month (0-11)
     
    -int tm_ns
     nanoseconds (0-999999999)
     
    -int tm_sec
     seconds (0-59)
     
    -int tm_year
     year (0=1900)
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/convert.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00735.html freetds-1.2.3/doc/reference/a00735.html --- freetds-1.1.6/doc/reference/a00735.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00735.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_varmax_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_varmax_stream, including all inherited members.

    - - - - -
    chunk_left (defined in tds_varmax_stream)tds_varmax_stream
    stream (defined in tds_varmax_stream)tds_varmax_stream
    tds (defined in tds_varmax_stream)tds_varmax_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00736.html freetds-1.2.3/doc/reference/a00736.html --- freetds-1.1.6/doc/reference/a00736.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00736.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tdsvername_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsvername_t Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +const char name [6]
     
    +TDS_USMALLINT version
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/config.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00736.map freetds-1.2.3/doc/reference/a00736.map --- freetds-1.1.6/doc/reference/a00736.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00736.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00736.md5 freetds-1.2.3/doc/reference/a00736.md5 --- freetds-1.1.6/doc/reference/a00736.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00736.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -00abf22a7b9c3b9fac1f95630fd31ace \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00736.svg freetds-1.2.3/doc/reference/a00736.svg --- freetds-1.1.6/doc/reference/a00736.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00736.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,312 +0,0 @@ - - - - - - -tds_varmax_stream - - -Node1 - -tds_varmax_stream - - -Node2 - - -tds_socket - - - - -Node2->Node1 - - - tds - - -Node9 - - -tds_result_info - - - - -Node2->Node9 - - - attached_to - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node19 - - -tds_connection - - - - -Node4->Node19 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8 - - -tds_dynamic - - - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node19 - - - dyns - - -Node9->Node2 - - - param_info -current_results -res_info -comp_info - - -Node9->Node8 - - - res_info -params - - -Node17 - - -tds_cursor - - - - -Node9->Node17 - - - res_info - - -Node17->Node2 - - - cur_cursor - - -Node17->Node17 - - - next - - -Node17->Node19 - - - cursors - - -Node18 - - -tds_cursor_status - - - - -Node18->Node17 - - - status - - -Node19->Node2 - - - conn - - -Node20 - - -tds_poll_wakeup - - - - -Node20->Node19 - - - wakeup - - -Node21 - - -tds_env - - - - -Node21->Node19 - - - env - - -Node22 - - -tds_context - - - - -Node22->Node19 - - - tds_ctx - - -Node24 - - -tds_authentication - - - - -Node24->Node19 - - - authentication - - -Node11 - - -tdsiconvinfo - - - - -Node11->Node19 - - - char_convs - - -Node25 - - -tds_input_stream - - - - -Node25->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a00737.html freetds-1.2.3/doc/reference/a00737.html --- freetds-1.1.6/doc/reference/a00737.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00737.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_time Member List
    +
    +
    + +

    This is the complete list of members for tds_time, including all inherited members.

    + + + + + + + + +
    tm_hourtds_time
    tm_mdaytds_time
    tm_mintds_time
    tm_montds_time
    tm_nstds_time
    tm_sectds_time
    tm_yeartds_time
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00738.html freetds-1.2.3/doc/reference/a00738.html --- freetds-1.1.6/doc/reference/a00738.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00738.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: tds_varmax_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_varmax_stream Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_varmax_stream:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -TDS_INT chunk_left
     
    -TDSINSTREAM stream
     
    -TDSSOCKETtds
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00739.html freetds-1.2.3/doc/reference/a00739.html --- freetds-1.1.6/doc/reference/a00739.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00739.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_save_msg Member List
    -
    -
    - -

    This is the complete list of members for tds_save_msg, including all inherited members.

    - - - -
    msg (defined in tds_save_msg)tds_save_msg
    type (defined in tds_save_msg)tds_save_msg
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00740.html freetds-1.2.3/doc/reference/a00740.html --- freetds-1.1.6/doc/reference/a00740.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00740.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,114 @@ + + + + + + + +FreeTDS API: tds_time Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_time Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +int tm_hour
     hours (0-23)
     
    +int tm_mday
     month day (1-31)
     
    +int tm_min
     minutes (0-59)
     
    +int tm_mon
     month (0-11)
     
    +int tm_ns
     nanoseconds (0-999999999)
     
    +int tm_sec
     seconds (0-59)
     
    +int tm_year
     year (0=1900)
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/convert.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00740.map freetds-1.2.3/doc/reference/a00740.map --- freetds-1.1.6/doc/reference/a00740.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00740.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00740.md5 freetds-1.2.3/doc/reference/a00740.md5 --- freetds-1.1.6/doc/reference/a00740.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00740.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6cdc3513dc263a842a1a17d8ace3c1c5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00740.svg freetds-1.2.3/doc/reference/a00740.svg --- freetds-1.1.6/doc/reference/a00740.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00740.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_save_msg - - -Node1 - -tds_save_msg - - -Node2 - - -tds_message - - - - -Node2->Node1 - - - msg - - - diff -Nru freetds-1.1.6/doc/reference/a00741.html freetds-1.2.3/doc/reference/a00741.html --- freetds-1.1.6/doc/reference/a00741.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00741.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_varmax_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_varmax_stream, including all inherited members.

    + + + + +
    chunk_left (defined in tds_varmax_stream)tds_varmax_stream
    stream (defined in tds_varmax_stream)tds_varmax_stream
    tds (defined in tds_varmax_stream)tds_varmax_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00742.html freetds-1.2.3/doc/reference/a00742.html --- freetds-1.1.6/doc/reference/a00742.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00742.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tds_save_msg Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_save_msg Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_save_msg:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -TDSMESSAGE msg
     
    -char type
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/login.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00742.map freetds-1.2.3/doc/reference/a00742.map --- freetds-1.1.6/doc/reference/a00742.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00742.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00742.md5 freetds-1.2.3/doc/reference/a00742.md5 --- freetds-1.1.6/doc/reference/a00742.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00742.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +374fde7ce8f018a2ee7b4c211f504d96 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00742.svg freetds-1.2.3/doc/reference/a00742.svg --- freetds-1.1.6/doc/reference/a00742.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00742.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,365 @@ + + + + + + +tds_varmax_stream + + + +Node1 + + +tds_varmax_stream + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + +Node25 + + +tds_input_stream + + + + + +Node25->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a00743.html freetds-1.2.3/doc/reference/a00743.html --- freetds-1.1.6/doc/reference/a00743.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00743.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_save_env Member List
    -
    -
    - -

    This is the complete list of members for tds_save_env, including all inherited members.

    - - - - -
    newval (defined in tds_save_env)tds_save_env
    oldval (defined in tds_save_env)tds_save_env
    type (defined in tds_save_env)tds_save_env
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00744.html freetds-1.2.3/doc/reference/a00744.html --- freetds-1.1.6/doc/reference/a00744.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00744.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: tds_varmax_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_varmax_stream Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_varmax_stream:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +TDS_INT chunk_left
     
    +TDSINSTREAM stream
     
    +TDSSOCKETtds
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00746.html freetds-1.2.3/doc/reference/a00746.html --- freetds-1.1.6/doc/reference/a00746.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00746.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_save_env Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_save_env Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -char * newval
     
    -char * oldval
     
    -int type
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/login.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00747.html freetds-1.2.3/doc/reference/a00747.html --- freetds-1.1.6/doc/reference/a00747.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00747.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_save_context Member List
    -
    -
    - -

    This is the complete list of members for tds_save_context, including all inherited members.

    - - - - - - -
    ctx (defined in tds_save_context)tds_save_context
    envs (defined in tds_save_context)tds_save_context
    msgs (defined in tds_save_context)tds_save_context
    num_env (defined in tds_save_context)tds_save_context
    num_msg (defined in tds_save_context)tds_save_context
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00748.map freetds-1.2.3/doc/reference/a00748.map --- freetds-1.1.6/doc/reference/a00748.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00748.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00748.md5 freetds-1.2.3/doc/reference/a00748.md5 --- freetds-1.1.6/doc/reference/a00748.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00748.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fa333afc52e88f66af63c05e10ccbe38 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00748.svg freetds-1.2.3/doc/reference/a00748.svg --- freetds-1.1.6/doc/reference/a00748.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00748.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - -tds_save_context - - -Node1 - -tds_save_context - - -Node2 - - -tds_context - - - - -Node2->Node1 - - - ctx - - -Node3 - - -tds_locale - - - - -Node3->Node2 - - - locale - - -Node4 - - -tds_save_env - - - - -Node4->Node1 - - - envs - - -Node5 - - -tds_save_msg - - - - -Node5->Node1 - - - msgs - - -Node6 - - -tds_message - - - - -Node6->Node5 - - - msg - - - diff -Nru freetds-1.1.6/doc/reference/a00749.html freetds-1.2.3/doc/reference/a00749.html --- freetds-1.1.6/doc/reference/a00749.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00749.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_save_msg Member List
    +
    +
    + +

    This is the complete list of members for tds_save_msg, including all inherited members.

    + + + +
    msg (defined in tds_save_msg)tds_save_msg
    type (defined in tds_save_msg)tds_save_msg
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00750.html freetds-1.2.3/doc/reference/a00750.html --- freetds-1.1.6/doc/reference/a00750.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00750.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - - - - - - - -FreeTDS API: tds_save_context Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_save_context Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_save_context:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - -

    -Public Attributes

    -TDSCONTEXT ctx
     
    -struct tds_save_env envs [10]
     
    -struct tds_save_msg msgs [10]
     
    -unsigned num_env
     
    -unsigned num_msg
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/login.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00750.map freetds-1.2.3/doc/reference/a00750.map --- freetds-1.1.6/doc/reference/a00750.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00750.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00750.md5 freetds-1.2.3/doc/reference/a00750.md5 --- freetds-1.1.6/doc/reference/a00750.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00750.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6ae7da85167fefddadfddfb77546cec8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00750.svg freetds-1.2.3/doc/reference/a00750.svg --- freetds-1.1.6/doc/reference/a00750.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00750.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_save_msg + + + +Node1 + + +tds_save_msg + + + + + +Node2 + + +tds_message + + + + + +Node2->Node1 + + + msg + + + diff -Nru freetds-1.1.6/doc/reference/a00751.html freetds-1.2.3/doc/reference/a00751.html --- freetds-1.1.6/doc/reference/a00751.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00751.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    retry_addr Member List
    -
    -
    - -

    This is the complete list of members for retry_addr, including all inherited members.

    - - - - -
    addr (defined in retry_addr)retry_addr
    next_retry_time (defined in retry_addr)retry_addr
    retry_count (defined in retry_addr)retry_addr
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00752.html freetds-1.2.3/doc/reference/a00752.html --- freetds-1.1.6/doc/reference/a00752.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00752.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tds_save_msg Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_save_msg Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_save_msg:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +TDSMESSAGE msg
     
    +char type
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/login.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00753.html freetds-1.2.3/doc/reference/a00753.html --- freetds-1.1.6/doc/reference/a00753.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00753.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_save_env Member List
    +
    +
    + +

    This is the complete list of members for tds_save_env, including all inherited members.

    + + + + +
    newval (defined in tds_save_env)tds_save_env
    oldval (defined in tds_save_env)tds_save_env
    type (defined in tds_save_env)tds_save_env
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00754.html freetds-1.2.3/doc/reference/a00754.html --- freetds-1.1.6/doc/reference/a00754.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00754.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: retry_addr Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    retry_addr Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -struct addrinfo * addr
     
    -unsigned next_retry_time
     
    -unsigned retry_count
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/net.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00755.html freetds-1.2.3/doc/reference/a00755.html --- freetds-1.1.6/doc/reference/a00755.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00755.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    mpz_t Member List
    -
    -
    - -

    This is the complete list of members for mpz_t, including all inherited members.

    - - -
    num (defined in mpz_t)mpz_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00756.html freetds-1.2.3/doc/reference/a00756.html --- freetds-1.1.6/doc/reference/a00756.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00756.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_save_env Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_save_env Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +char * newval
     
    +char * oldval
     
    +int type
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/login.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00757.html freetds-1.2.3/doc/reference/a00757.html --- freetds-1.1.6/doc/reference/a00757.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00757.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_save_context Member List
    +
    +
    + +

    This is the complete list of members for tds_save_context, including all inherited members.

    + + + + + + +
    ctx (defined in tds_save_context)tds_save_context
    envs (defined in tds_save_context)tds_save_context
    msgs (defined in tds_save_context)tds_save_context
    num_env (defined in tds_save_context)tds_save_context
    num_msg (defined in tds_save_context)tds_save_context
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00758.html freetds-1.2.3/doc/reference/a00758.html --- freetds-1.1.6/doc/reference/a00758.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00758.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: mpz_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    mpz_t Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -gcry_mpi_t num
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00758.map freetds-1.2.3/doc/reference/a00758.map --- freetds-1.1.6/doc/reference/a00758.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00758.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00758.md5 freetds-1.2.3/doc/reference/a00758.md5 --- freetds-1.1.6/doc/reference/a00758.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00758.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +65a3b4dd935853b466baff660883c91a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00758.svg freetds-1.2.3/doc/reference/a00758.svg --- freetds-1.1.6/doc/reference/a00758.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00758.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,102 @@ + + + + + + +tds_save_context + + + +Node1 + + +tds_save_context + + + + + +Node2 + + +tds_context + + + + + +Node2->Node1 + + + ctx + + + +Node3 + + +tds_locale + + + + + +Node3->Node2 + + + locale + + + +Node4 + + +tds_save_env + + + + + +Node4->Node1 + + + envs + + + +Node5 + + +tds_save_msg + + + + + +Node5->Node1 + + + msgs + + + +Node6 + + +tds_message + + + + + +Node6->Node5 + + + msg + + + diff -Nru freetds-1.1.6/doc/reference/a00759.html freetds-1.2.3/doc/reference/a00759.html --- freetds-1.1.6/doc/reference/a00759.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00759.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    asn1_der_iterator Member List
    -
    -
    - -

    This is the complete list of members for asn1_der_iterator, including all inherited members.

    - - - - - -
    data (defined in asn1_der_iterator)asn1_der_iterator
    data_end (defined in asn1_der_iterator)asn1_der_iterator
    length (defined in asn1_der_iterator)asn1_der_iterator
    type (defined in asn1_der_iterator)asn1_der_iterator
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00760.html freetds-1.2.3/doc/reference/a00760.html --- freetds-1.1.6/doc/reference/a00760.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00760.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + + +FreeTDS API: tds_save_context Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_save_context Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_save_context:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + +

    +Public Attributes

    +TDSCONTEXT ctx
     
    +struct tds_save_env envs [10]
     
    +struct tds_save_msg msgs [10]
     
    +unsigned num_env
     
    +unsigned num_msg
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/login.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00761.html freetds-1.2.3/doc/reference/a00761.html --- freetds-1.1.6/doc/reference/a00761.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00761.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    retry_addr Member List
    +
    +
    + +

    This is the complete list of members for retry_addr, including all inherited members.

    + + + + +
    addr (defined in retry_addr)retry_addr
    next_retry_time (defined in retry_addr)retry_addr
    retry_count (defined in retry_addr)retry_addr
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00762.html freetds-1.2.3/doc/reference/a00762.html --- freetds-1.1.6/doc/reference/a00762.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00762.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: asn1_der_iterator Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    asn1_der_iterator Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -const unsigned char * data
     
    -const unsigned char * data_end
     
    -unsigned long length
     
    -unsigned long type
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00763.html freetds-1.2.3/doc/reference/a00763.html --- freetds-1.1.6/doc/reference/a00763.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00763.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    rsa_public_key Member List
    -
    -
    - -

    This is the complete list of members for rsa_public_key, including all inherited members.

    - - - - -
    e (defined in rsa_public_key)rsa_public_key
    n (defined in rsa_public_key)rsa_public_key
    size (defined in rsa_public_key)rsa_public_key
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00764.html freetds-1.2.3/doc/reference/a00764.html --- freetds-1.1.6/doc/reference/a00764.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00764.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: retry_addr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    retry_addr Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +struct addrinfo * addr
     
    +unsigned next_retry_time
     
    +unsigned retry_count
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/net.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00764.map freetds-1.2.3/doc/reference/a00764.map --- freetds-1.1.6/doc/reference/a00764.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00764.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00764.md5 freetds-1.2.3/doc/reference/a00764.md5 --- freetds-1.1.6/doc/reference/a00764.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00764.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -16d093929246a3b32378c369f10aff91 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00764.svg freetds-1.2.3/doc/reference/a00764.svg --- freetds-1.1.6/doc/reference/a00764.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00764.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - - -rsa_public_key - - -Node1 - -rsa_public_key - - -Node2 - - -mpz_t - - - - -Node2->Node1 - - - n -e - - - diff -Nru freetds-1.1.6/doc/reference/a00765.html freetds-1.2.3/doc/reference/a00765.html --- freetds-1.1.6/doc/reference/a00765.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00765.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_quoteout_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_quoteout_stream, including all inherited members.

    + + + + +
    buffer (defined in tds_quoteout_stream)tds_quoteout_stream
    stream (defined in tds_quoteout_stream)tds_quoteout_stream
    tds (defined in tds_quoteout_stream)tds_quoteout_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00766.html freetds-1.2.3/doc/reference/a00766.html --- freetds-1.1.6/doc/reference/a00766.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00766.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: rsa_public_key Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    rsa_public_key Struct Reference
    -
    -
    -
    -Collaboration diagram for rsa_public_key:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -mpz_t e
     
    -mpz_t n
     
    -unsigned size
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00766.map freetds-1.2.3/doc/reference/a00766.map --- freetds-1.1.6/doc/reference/a00766.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00766.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00766.md5 freetds-1.2.3/doc/reference/a00766.md5 --- freetds-1.1.6/doc/reference/a00766.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00766.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +62d9a8ca935808378b7de0be07f470b3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00766.svg freetds-1.2.3/doc/reference/a00766.svg --- freetds-1.1.6/doc/reference/a00766.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00766.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,365 @@ + + + + + + +tds_quoteout_stream + + + +Node1 + + +tds_quoteout_stream + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + +Node25 + + +tds_output_stream + + + + + +Node25->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a00767.html freetds-1.2.3/doc/reference/a00767.html --- freetds-1.1.6/doc/reference/a00767.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00767.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    namelist Member List
    -
    -
    - -

    This is the complete list of members for namelist, including all inherited members.

    - - - -
    namenamelist
    nextnamelist
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00768.html freetds-1.2.3/doc/reference/a00768.html --- freetds-1.1.6/doc/reference/a00768.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00768.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: tds_quoteout_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_quoteout_stream Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_quoteout_stream:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +char buffer [2048]
     
    +TDSOUTSTREAM stream
     
    +TDSSOCKETtds
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/query.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00768.map freetds-1.2.3/doc/reference/a00768.map --- freetds-1.1.6/doc/reference/a00768.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00768.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00768.md5 freetds-1.2.3/doc/reference/a00768.md5 --- freetds-1.1.6/doc/reference/a00768.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00768.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c1765a7a64c6b49cdfe2a364c6a25a02 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00768.svg freetds-1.2.3/doc/reference/a00768.svg --- freetds-1.1.6/doc/reference/a00768.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00768.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -namelist - - -Node1 - -namelist - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00769.html freetds-1.2.3/doc/reference/a00769.html --- freetds-1.1.6/doc/reference/a00769.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00769.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    mpz_t Member List
    +
    +
    + +

    This is the complete list of members for mpz_t, including all inherited members.

    + + +
    num (defined in mpz_t)mpz_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00770.html freetds-1.2.3/doc/reference/a00770.html --- freetds-1.1.6/doc/reference/a00770.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00770.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,102 +0,0 @@ - - - - - - - -FreeTDS API: namelist Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    namelist Struct Reference
    -
    -
    - -

    Holds list of names. - More...

    -
    -Collaboration diagram for namelist:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -char * name
     string name
     
    -struct namelistnext
     next element in the list
     
    -

    Detailed Description

    -

    Holds list of names.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00771.html freetds-1.2.3/doc/reference/a00771.html --- freetds-1.1.6/doc/reference/a00771.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00771.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_error_message Member List
    -
    -
    - -

    This is the complete list of members for tds_error_message, including all inherited members.

    - - - - -
    msgno (defined in tds_error_message)tds_error_message
    msgtext (defined in tds_error_message)tds_error_message
    severity (defined in tds_error_message)tds_error_message
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00772.html freetds-1.2.3/doc/reference/a00772.html --- freetds-1.1.6/doc/reference/a00772.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00772.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: mpz_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    mpz_t Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +gcry_mpi_t num
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00773.html freetds-1.2.3/doc/reference/a00773.html --- freetds-1.1.6/doc/reference/a00773.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00773.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    asn1_der_iterator Member List
    +
    +
    + +

    This is the complete list of members for asn1_der_iterator, including all inherited members.

    + + + + + +
    data (defined in asn1_der_iterator)asn1_der_iterator
    data_end (defined in asn1_der_iterator)asn1_der_iterator
    length (defined in asn1_der_iterator)asn1_der_iterator
    type (defined in asn1_der_iterator)asn1_der_iterator
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00774.html freetds-1.2.3/doc/reference/a00774.html --- freetds-1.1.6/doc/reference/a00774.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00774.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_error_message Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_error_message Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -TDSERRNO msgno
     
    -const char * msgtext
     
    -int severity
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/util.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00775.html freetds-1.2.3/doc/reference/a00775.html --- freetds-1.1.6/doc/reference/a00775.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00775.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    string_linked_list Member List
    -
    -
    - -

    This is the complete list of members for string_linked_list, including all inherited members.

    - - - -
    next (defined in string_linked_list)string_linked_list
    str (defined in string_linked_list)string_linked_list
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00776.html freetds-1.2.3/doc/reference/a00776.html --- freetds-1.1.6/doc/reference/a00776.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00776.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: asn1_der_iterator Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    asn1_der_iterator Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    +const unsigned char * data
     
    +const unsigned char * data_end
     
    +unsigned long length
     
    +unsigned long type
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00776.map freetds-1.2.3/doc/reference/a00776.map --- freetds-1.1.6/doc/reference/a00776.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00776.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00776.md5 freetds-1.2.3/doc/reference/a00776.md5 --- freetds-1.1.6/doc/reference/a00776.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00776.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -beb0510133082ca0f07edde073c548e5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00776.svg freetds-1.2.3/doc/reference/a00776.svg --- freetds-1.1.6/doc/reference/a00776.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00776.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -string_linked_list - - -Node1 - -string_linked_list - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00777.html freetds-1.2.3/doc/reference/a00777.html --- freetds-1.1.6/doc/reference/a00777.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00777.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    rsa_public_key Member List
    +
    +
    + +

    This is the complete list of members for rsa_public_key, including all inherited members.

    + + + + +
    e (defined in rsa_public_key)rsa_public_key
    n (defined in rsa_public_key)rsa_public_key
    size (defined in rsa_public_key)rsa_public_key
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00778.html freetds-1.2.3/doc/reference/a00778.html --- freetds-1.1.6/doc/reference/a00778.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00778.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: string_linked_list Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    string_linked_list Struct Reference
    -
    -
    -
    -Collaboration diagram for string_linked_list:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -struct string_linked_listnext
     
    -char * str
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/tds/vstrbuild.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00778.map freetds-1.2.3/doc/reference/a00778.map --- freetds-1.1.6/doc/reference/a00778.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00778.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00778.md5 freetds-1.2.3/doc/reference/a00778.md5 --- freetds-1.1.6/doc/reference/a00778.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00778.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6a15b5f085ccc87e8a3be2e82f98d8e2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00778.svg freetds-1.2.3/doc/reference/a00778.svg --- freetds-1.1.6/doc/reference/a00778.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00778.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,39 @@ + + + + + + +rsa_public_key + + + +Node1 + + +rsa_public_key + + + + + +Node2 + + +mpz_t + + + + + +Node2->Node1 + + + n +e + + + diff -Nru freetds-1.1.6/doc/reference/a00779.html freetds-1.2.3/doc/reference/a00779.html --- freetds-1.1.6/doc/reference/a00779.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00779.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    ptw32_mcs_node_t_ Member List
    -
    -
    - -

    This is the complete list of members for ptw32_mcs_node_t_, including all inherited members.

    - - - - - -
    lock (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    next (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    nextFlag (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    readyFlag (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00780.html freetds-1.2.3/doc/reference/a00780.html --- freetds-1.1.6/doc/reference/a00780.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00780.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: rsa_public_key Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    rsa_public_key Struct Reference
    +
    +
    +
    +Collaboration diagram for rsa_public_key:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +mpz_t e
     
    +mpz_t n
     
    +unsigned size
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00780.map freetds-1.2.3/doc/reference/a00780.map --- freetds-1.1.6/doc/reference/a00780.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00780.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00780.md5 freetds-1.2.3/doc/reference/a00780.md5 --- freetds-1.1.6/doc/reference/a00780.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00780.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f9720156ca3a3e4b2e4c318370bfd2a2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00780.svg freetds-1.2.3/doc/reference/a00780.svg --- freetds-1.1.6/doc/reference/a00780.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00780.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - - -ptw32_mcs_node_t_ - - -Node1 - -ptw32_mcs_node_t_ - - -Node1->Node1 - - - next -lock - - - diff -Nru freetds-1.1.6/doc/reference/a00781.html freetds-1.2.3/doc/reference/a00781.html --- freetds-1.1.6/doc/reference/a00781.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00781.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    namelist Member List
    +
    +
    + +

    This is the complete list of members for namelist, including all inherited members.

    + + + +
    namenamelist
    nextnamelist
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00782.html freetds-1.2.3/doc/reference/a00782.html --- freetds-1.1.6/doc/reference/a00782.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00782.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: ptw32_mcs_node_t_ Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    ptw32_mcs_node_t_ Struct Reference
    -
    -
    -
    -Collaboration diagram for ptw32_mcs_node_t_:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -struct ptw32_mcs_node_t_ ** lock
     
    -struct ptw32_mcs_node_t_next
     
    -void * nextFlag
     
    -void * readyFlag
     
    -
    The documentation for this struct was generated from the following file:
      -
    • src/utils/ptw32_MCS_lock.c
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00782.map freetds-1.2.3/doc/reference/a00782.map --- freetds-1.1.6/doc/reference/a00782.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00782.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00782.md5 freetds-1.2.3/doc/reference/a00782.md5 --- freetds-1.1.6/doc/reference/a00782.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00782.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +93c0bdcdb037434c99f4fdfd084ea5ef \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00782.svg freetds-1.2.3/doc/reference/a00782.svg --- freetds-1.1.6/doc/reference/a00782.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00782.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +namelist + + + +Node1 + + +namelist + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00783.html freetds-1.2.3/doc/reference/a00783.html --- freetds-1.1.6/doc/reference/a00783.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00783.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_objname Member List
    -
    -
    - -

    This is the complete list of members for _cs_objname, including all inherited members.

    - - - - - - - - - - - -
    first_name (defined in _cs_objname)_cs_objname
    fnlen (defined in _cs_objname)_cs_objname
    last_name (defined in _cs_objname)_cs_objname
    lnlen (defined in _cs_objname)_cs_objname
    object_type (defined in _cs_objname)_cs_objname
    scope (defined in _cs_objname)_cs_objname
    scopelen (defined in _cs_objname)_cs_objname
    thinkexists (defined in _cs_objname)_cs_objname
    thread (defined in _cs_objname)_cs_objname
    threadlen (defined in _cs_objname)_cs_objname
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00784.html freetds-1.2.3/doc/reference/a00784.html --- freetds-1.1.6/doc/reference/a00784.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00784.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,105 @@ + + + + + + + +FreeTDS API: namelist Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    namelist Struct Reference
    +
    +
    + +

    Holds list of names. + More...

    +
    +Collaboration diagram for namelist:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +char * name
     string name
     
    +struct namelistnext
     next element in the list
     
    +

    Detailed Description

    +

    Holds list of names.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00785.html freetds-1.2.3/doc/reference/a00785.html --- freetds-1.1.6/doc/reference/a00785.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00785.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_error_message Member List
    +
    +
    + +

    This is the complete list of members for tds_error_message, including all inherited members.

    + + + + +
    msgno (defined in tds_error_message)tds_error_message
    msgtext (defined in tds_error_message)tds_error_message
    severity (defined in tds_error_message)tds_error_message
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00786.html freetds-1.2.3/doc/reference/a00786.html --- freetds-1.1.6/doc/reference/a00786.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00786.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ - - - - - - - -FreeTDS API: _cs_objname Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_objname Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_CHAR first_name [CS_MAX_NAME]
     
    -CS_INT fnlen
     
    -CS_CHAR last_name [CS_MAX_NAME]
     
    -CS_INT lnlen
     
    -CS_INT object_type
     
    -CS_VOID * scope
     
    -CS_INT scopelen
     
    -CS_BOOL thinkexists
     
    -CS_VOID * thread
     
    -CS_INT threadlen
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00787.html freetds-1.2.3/doc/reference/a00787.html --- freetds-1.1.6/doc/reference/a00787.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00787.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_objdata Member List
    -
    -
    - -

    This is the complete list of members for _cs_objdata, including all inherited members.

    - - - - - - -
    actuallyexists (defined in _cs_objdata)_cs_objdata
    buffer (defined in _cs_objdata)_cs_objdata
    buflen (defined in _cs_objdata)_cs_objdata
    command (defined in _cs_objdata)_cs_objdata
    connection (defined in _cs_objdata)_cs_objdata
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00788.html freetds-1.2.3/doc/reference/a00788.html --- freetds-1.1.6/doc/reference/a00788.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00788.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_error_message Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_error_message Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +TDSERRNO msgno
     
    +const char * msgtext
     
    +int severity
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/util.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00788.map freetds-1.2.3/doc/reference/a00788.map --- freetds-1.1.6/doc/reference/a00788.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00788.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00788.md5 freetds-1.2.3/doc/reference/a00788.md5 --- freetds-1.1.6/doc/reference/a00788.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00788.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -97b7cae42dee55b1465df2170a5c7cc4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00788.svg freetds-1.2.3/doc/reference/a00788.svg --- freetds-1.1.6/doc/reference/a00788.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00788.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,0 @@ - - - - - - -_cs_objdata - - -Node1 - -_cs_objdata - - -Node2 - - -_cs_command - - - - -Node2->Node1 - - - command - - -Node2->Node2 - - - next - - -Node30 - - -_cs_connection - - - - -Node2->Node30 - - - cmds - - -Node3 - - -_cs_iodesc - - - - -Node3->Node2 - - - iodesc - - -Node4 - - -_cs_locale - - - - -Node4->Node3 - - - locale - - -Node4->Node30 - - - locale - - -Node5 - - -_cs_param - - - - -Node5->Node2 - - - input_params - - -Node5->Node5 - - - next - - -Node6 - - -_cs_dynamic - - - - -Node5->Node6 - - - param_list - - -Node38 - - -_csremote_proc - - - - -Node5->Node38 - - - param_list - - -Node6->Node2 - - - dyn - - -Node6->Node6 - - - next - - -Node6->Node30 - - - dynlist - - -Node7 - - -tds_dynamic - - - - -Node7->Node6 - - - tdsdyn - - -Node7->Node7 - - - next - - -Node9 - - -tds_socket - - - - -Node7->Node9 - - - cur_dyn - - -Node15 - - -tds_cursor - - - - -Node15->Node2 - - - cursor - - -Node15->Node15 - - - next - - -Node15->Node9 - - - cur_cursor - - -Node30->Node1 - - - connection - - -Node30->Node2 - - - con - - -Node9->Node30 - - - tds_socket - - -Node10 - - -tds_login - - - - -Node10->Node30 - - - tds_login - - -Node10->Node9 - - - login - - -Node31 - - -_cs_context - - - - -Node31->Node30 - - - ctx -_clientmsg_cb -_servermsg_cb - - -Node31->Node31 - - - _clientmsg_cb -_servermsg_cb -_cslibmsg_cb - - -Node38->Node2 - - - rpc - - - diff -Nru freetds-1.1.6/doc/reference/a00789.html freetds-1.2.3/doc/reference/a00789.html --- freetds-1.1.6/doc/reference/a00789.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00789.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    string_linked_list Member List
    +
    +
    + +

    This is the complete list of members for string_linked_list, including all inherited members.

    + + + +
    next (defined in string_linked_list)string_linked_list
    str (defined in string_linked_list)string_linked_list
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00790.html freetds-1.2.3/doc/reference/a00790.html --- freetds-1.1.6/doc/reference/a00790.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00790.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - - - - - - - -FreeTDS API: _cs_objdata Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_objdata Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_objdata:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - -

    -Public Attributes

    -CS_BOOL actuallyexists
     
    -CS_VOID * buffer
     
    -CS_INT buflen
     
    -CS_COMMANDcommand
     
    -CS_CONNECTIONconnection
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00790.map freetds-1.2.3/doc/reference/a00790.map --- freetds-1.1.6/doc/reference/a00790.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00790.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00790.md5 freetds-1.2.3/doc/reference/a00790.md5 --- freetds-1.1.6/doc/reference/a00790.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00790.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +0f87629ed2717c687e5cac8be9b7a0cf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00790.svg freetds-1.2.3/doc/reference/a00790.svg --- freetds-1.1.6/doc/reference/a00790.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00790.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +string_linked_list + + + +Node1 + + +string_linked_list + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00791.html freetds-1.2.3/doc/reference/a00791.html --- freetds-1.1.6/doc/reference/a00791.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00791.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_numeric Member List
    -
    -
    - -

    This is the complete list of members for _cs_numeric, including all inherited members.

    - - - - -
    array (defined in _cs_numeric)_cs_numeric
    precision (defined in _cs_numeric)_cs_numeric
    scale (defined in _cs_numeric)_cs_numeric
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00792.html freetds-1.2.3/doc/reference/a00792.html --- freetds-1.1.6/doc/reference/a00792.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00792.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: string_linked_list Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    string_linked_list Struct Reference
    +
    +
    +
    +Collaboration diagram for string_linked_list:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +struct string_linked_listnext
     
    +char * str
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/tds/vstrbuild.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00793.html freetds-1.2.3/doc/reference/a00793.html --- freetds-1.1.6/doc/reference/a00793.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00793.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    ptw32_mcs_node_t_ Member List
    +
    +
    + +

    This is the complete list of members for ptw32_mcs_node_t_, including all inherited members.

    + + + + + +
    lock (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    next (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    nextFlag (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    readyFlag (defined in ptw32_mcs_node_t_)ptw32_mcs_node_t_
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00794.html freetds-1.2.3/doc/reference/a00794.html --- freetds-1.1.6/doc/reference/a00794.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00794.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: _cs_numeric Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_numeric Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -unsigned char array [CS_MAX_NUMLEN]
     
    -unsigned char precision
     
    -unsigned char scale
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00794.map freetds-1.2.3/doc/reference/a00794.map --- freetds-1.1.6/doc/reference/a00794.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00794.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00794.md5 freetds-1.2.3/doc/reference/a00794.md5 --- freetds-1.1.6/doc/reference/a00794.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00794.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +a40362c2a4e3029003edba0b050695ff \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00794.svg freetds-1.2.3/doc/reference/a00794.svg --- freetds-1.1.6/doc/reference/a00794.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00794.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + +ptw32_mcs_node_t_ + + + +Node1 + + +ptw32_mcs_node_t_ + + + + + +Node1->Node1 + + + next +lock + + + diff -Nru freetds-1.1.6/doc/reference/a00795.html freetds-1.2.3/doc/reference/a00795.html --- freetds-1.1.6/doc/reference/a00795.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00795.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_varbinary Member List
    -
    -
    - -

    This is the complete list of members for _cs_varbinary, including all inherited members.

    - - - -
    array (defined in _cs_varbinary)_cs_varbinary
    len (defined in _cs_varbinary)_cs_varbinary
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00796.html freetds-1.2.3/doc/reference/a00796.html --- freetds-1.1.6/doc/reference/a00796.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00796.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: ptw32_mcs_node_t_ Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ptw32_mcs_node_t_ Struct Reference
    +
    +
    +
    +Collaboration diagram for ptw32_mcs_node_t_:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +struct ptw32_mcs_node_t_ ** lock
     
    +struct ptw32_mcs_node_t_next
     
    +void * nextFlag
     
    +void * readyFlag
     
    +
    The documentation for this struct was generated from the following file:
      +
    • src/utils/ptw32_MCS_lock.c
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00797.html freetds-1.2.3/doc/reference/a00797.html --- freetds-1.1.6/doc/reference/a00797.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00797.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_objname Member List
    +
    +
    + +

    This is the complete list of members for _cs_objname, including all inherited members.

    + + + + + + + + + + + +
    first_name (defined in _cs_objname)_cs_objname
    fnlen (defined in _cs_objname)_cs_objname
    last_name (defined in _cs_objname)_cs_objname
    lnlen (defined in _cs_objname)_cs_objname
    object_type (defined in _cs_objname)_cs_objname
    scope (defined in _cs_objname)_cs_objname
    scopelen (defined in _cs_objname)_cs_objname
    thinkexists (defined in _cs_objname)_cs_objname
    thread (defined in _cs_objname)_cs_objname
    threadlen (defined in _cs_objname)_cs_objname
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00798.html freetds-1.2.3/doc/reference/a00798.html --- freetds-1.1.6/doc/reference/a00798.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00798.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _cs_varbinary Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_varbinary Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -CS_CHAR array [256]
     
    -CS_SMALLINT len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00799.html freetds-1.2.3/doc/reference/a00799.html --- freetds-1.1.6/doc/reference/a00799.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00799.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_varchar Member List
    -
    -
    - -

    This is the complete list of members for _cs_varchar, including all inherited members.

    - - - -
    len (defined in _cs_varchar)_cs_varchar
    str (defined in _cs_varchar)_cs_varchar
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00800.html freetds-1.2.3/doc/reference/a00800.html --- freetds-1.1.6/doc/reference/a00800.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00800.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,116 @@ + + + + + + + +FreeTDS API: _cs_objname Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_objname Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_CHAR first_name [CS_MAX_NAME]
     
    +CS_INT fnlen
     
    +CS_CHAR last_name [CS_MAX_NAME]
     
    +CS_INT lnlen
     
    +CS_INT object_type
     
    +CS_VOID * scope
     
    +CS_INT scopelen
     
    +CS_BOOL thinkexists
     
    +CS_VOID * thread
     
    +CS_INT threadlen
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00801.html freetds-1.2.3/doc/reference/a00801.html --- freetds-1.1.6/doc/reference/a00801.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00801.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_objdata Member List
    +
    +
    + +

    This is the complete list of members for _cs_objdata, including all inherited members.

    + + + + + + +
    actuallyexists (defined in _cs_objdata)_cs_objdata
    buffer (defined in _cs_objdata)_cs_objdata
    buflen (defined in _cs_objdata)_cs_objdata
    command (defined in _cs_objdata)_cs_objdata
    connection (defined in _cs_objdata)_cs_objdata
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00802.html freetds-1.2.3/doc/reference/a00802.html --- freetds-1.1.6/doc/reference/a00802.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00802.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _cs_varchar Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_varchar Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -CS_SMALLINT len
     
    -CS_CHAR str [256]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00802.map freetds-1.2.3/doc/reference/a00802.map --- freetds-1.1.6/doc/reference/a00802.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00802.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00802.md5 freetds-1.2.3/doc/reference/a00802.md5 --- freetds-1.1.6/doc/reference/a00802.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00802.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +16c3557113f08bff3f612aa827013f94 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00802.svg freetds-1.2.3/doc/reference/a00802.svg --- freetds-1.1.6/doc/reference/a00802.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00802.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,323 @@ + + + + + + +_cs_objdata + + + +Node1 + + +_cs_objdata + + + + + +Node2 + + +_cs_command + + + + + +Node2->Node1 + + + command + + + +Node2->Node2 + + + next + + + +Node30 + + +_cs_connection + + + + + +Node2->Node30 + + + cmds + + + +Node3 + + +_cs_iodesc + + + + + +Node3->Node2 + + + iodesc + + + +Node4 + + +_cs_locale + + + + + +Node4->Node3 + + + locale + + + +Node4->Node30 + + + locale + + + +Node5 + + +_cs_param + + + + + +Node5->Node2 + + + input_params + + + +Node5->Node5 + + + next + + + +Node6 + + +_cs_dynamic + + + + + +Node5->Node6 + + + param_list + + + +Node38 + + +_csremote_proc + + + + + +Node5->Node38 + + + param_list + + + +Node6->Node2 + + + dyn + + + +Node6->Node6 + + + next + + + +Node6->Node30 + + + dynlist + + + +Node7 + + +tds_dynamic + + + + + +Node7->Node6 + + + tdsdyn + + + +Node7->Node7 + + + next + + + +Node9 + + +tds_socket + + + + + +Node7->Node9 + + + cur_dyn + + + +Node15 + + +tds_cursor + + + + + +Node15->Node2 + + + cursor + + + +Node15->Node15 + + + next + + + +Node15->Node9 + + + cur_cursor + + + +Node30->Node1 + + + connection + + + +Node30->Node2 + + + con + + + +Node9->Node30 + + + tds_socket + + + +Node10 + + +tds_login + + + + + +Node10->Node30 + + + tds_login + + + +Node10->Node9 + + + login + + + +Node31 + + +_cs_context + + + + + +Node31->Node30 + + + ctx +_clientmsg_cb +_servermsg_cb + + + +Node31->Node31 + + + _clientmsg_cb +_servermsg_cb +_cslibmsg_cb + + + +Node38->Node2 + + + rpc + + + diff -Nru freetds-1.1.6/doc/reference/a00803.html freetds-1.2.3/doc/reference/a00803.html --- freetds-1.1.6/doc/reference/a00803.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00803.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_iodesc Member List
    -
    -
    - -

    This is the complete list of members for _cs_iodesc, including all inherited members.

    - - - - - - - - - - - - - - -
    datatype (defined in _cs_iodesc)_cs_iodesc
    iotype (defined in _cs_iodesc)_cs_iodesc
    locale (defined in _cs_iodesc)_cs_iodesc
    log_on_update (defined in _cs_iodesc)_cs_iodesc
    name (defined in _cs_iodesc)_cs_iodesc
    namelen (defined in _cs_iodesc)_cs_iodesc
    offset (defined in _cs_iodesc)_cs_iodesc
    textptr (defined in _cs_iodesc)_cs_iodesc
    textptrlen (defined in _cs_iodesc)_cs_iodesc
    timestamp (defined in _cs_iodesc)_cs_iodesc
    timestamplen (defined in _cs_iodesc)_cs_iodesc
    total_txtlen (defined in _cs_iodesc)_cs_iodesc
    usertype (defined in _cs_iodesc)_cs_iodesc
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00804.html freetds-1.2.3/doc/reference/a00804.html --- freetds-1.1.6/doc/reference/a00804.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00804.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + + +FreeTDS API: _cs_objdata Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_objdata Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_objdata:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + +

    +Public Attributes

    +CS_BOOL actuallyexists
     
    +CS_VOID * buffer
     
    +CS_INT buflen
     
    +CS_COMMANDcommand
     
    +CS_CONNECTIONconnection
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00804.map freetds-1.2.3/doc/reference/a00804.map --- freetds-1.1.6/doc/reference/a00804.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00804.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00804.md5 freetds-1.2.3/doc/reference/a00804.md5 --- freetds-1.1.6/doc/reference/a00804.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00804.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -40d65fbe0e536b9530a097b6d26ed95f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00804.svg freetds-1.2.3/doc/reference/a00804.svg --- freetds-1.1.6/doc/reference/a00804.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00804.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -_cs_iodesc - - -Node1 - -_cs_iodesc - - -Node2 - - -_cs_locale - - - - -Node2->Node1 - - - locale - - - diff -Nru freetds-1.1.6/doc/reference/a00805.html freetds-1.2.3/doc/reference/a00805.html --- freetds-1.1.6/doc/reference/a00805.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00805.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_numeric Member List
    +
    +
    + +

    This is the complete list of members for _cs_numeric, including all inherited members.

    + + + + +
    array (defined in _cs_numeric)_cs_numeric
    precision (defined in _cs_numeric)_cs_numeric
    scale (defined in _cs_numeric)_cs_numeric
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00806.html freetds-1.2.3/doc/reference/a00806.html --- freetds-1.1.6/doc/reference/a00806.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00806.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,128 +0,0 @@ - - - - - - - -FreeTDS API: _cs_iodesc Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_iodesc Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_iodesc:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_INT datatype
     
    -CS_INT iotype
     
    -CS_LOCALElocale
     
    -CS_BOOL log_on_update
     
    -CS_CHAR name [CS_OBJ_NAME]
     
    -CS_INT namelen
     
    -CS_INT offset
     
    -CS_BYTE textptr [CS_TP_SIZE]
     
    -CS_INT textptrlen
     
    -CS_BYTE timestamp [CS_TS_SIZE]
     
    -CS_INT timestamplen
     
    -CS_INT total_txtlen
     
    -CS_INT usertype
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00807.html freetds-1.2.3/doc/reference/a00807.html --- freetds-1.1.6/doc/reference/a00807.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00807.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_datafmt Member List
    -
    -
    - -

    This is the complete list of members for _cs_datafmt, including all inherited members.

    - - - - - - - - - - - - -
    count (defined in _cs_datafmt)_cs_datafmt
    datatype (defined in _cs_datafmt)_cs_datafmt
    format (defined in _cs_datafmt)_cs_datafmt
    locale (defined in _cs_datafmt)_cs_datafmt
    maxlength (defined in _cs_datafmt)_cs_datafmt
    name (defined in _cs_datafmt)_cs_datafmt
    namelen (defined in _cs_datafmt)_cs_datafmt
    precision (defined in _cs_datafmt)_cs_datafmt
    scale (defined in _cs_datafmt)_cs_datafmt
    status (defined in _cs_datafmt)_cs_datafmt
    usertype (defined in _cs_datafmt)_cs_datafmt
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00808.html freetds-1.2.3/doc/reference/a00808.html --- freetds-1.1.6/doc/reference/a00808.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00808.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: _cs_numeric Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_numeric Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +unsigned char array [CS_MAX_NUMLEN]
     
    +unsigned char precision
     
    +unsigned char scale
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00808.map freetds-1.2.3/doc/reference/a00808.map --- freetds-1.1.6/doc/reference/a00808.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00808.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00808.md5 freetds-1.2.3/doc/reference/a00808.md5 --- freetds-1.1.6/doc/reference/a00808.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00808.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3d51060185db247be8c9d688430dd766 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00808.svg freetds-1.2.3/doc/reference/a00808.svg --- freetds-1.1.6/doc/reference/a00808.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00808.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -_cs_datafmt - - -Node1 - -_cs_datafmt - - -Node2 - - -_cs_locale - - - - -Node2->Node1 - - - locale - - - diff -Nru freetds-1.1.6/doc/reference/a00809.html freetds-1.2.3/doc/reference/a00809.html --- freetds-1.1.6/doc/reference/a00809.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00809.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_varbinary Member List
    +
    +
    + +

    This is the complete list of members for _cs_varbinary, including all inherited members.

    + + + +
    array (defined in _cs_varbinary)_cs_varbinary
    len (defined in _cs_varbinary)_cs_varbinary
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00810.html freetds-1.2.3/doc/reference/a00810.html --- freetds-1.1.6/doc/reference/a00810.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00810.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ - - - - - - - -FreeTDS API: _cs_datafmt Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_datafmt Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_datafmt:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_INT count
     
    -CS_INT datatype
     
    -CS_INT format
     
    -CS_LOCALElocale
     
    -CS_INT maxlength
     
    -CS_CHAR name [CS_MAX_NAME]
     
    -CS_INT namelen
     
    -CS_INT precision
     
    -CS_INT scale
     
    -CS_INT status
     
    -CS_INT usertype
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00811.html freetds-1.2.3/doc/reference/a00811.html --- freetds-1.1.6/doc/reference/a00811.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00811.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_money Member List
    -
    -
    - -

    This is the complete list of members for _cs_money, including all inherited members.

    - - - -
    mnyhigh (defined in _cs_money)_cs_money
    mnylow (defined in _cs_money)_cs_money
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00812.html freetds-1.2.3/doc/reference/a00812.html --- freetds-1.1.6/doc/reference/a00812.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00812.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _cs_varbinary Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_varbinary Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +CS_CHAR array [256]
     
    +CS_SMALLINT len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00813.html freetds-1.2.3/doc/reference/a00813.html --- freetds-1.1.6/doc/reference/a00813.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00813.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_varchar Member List
    +
    +
    + +

    This is the complete list of members for _cs_varchar, including all inherited members.

    + + + +
    len (defined in _cs_varchar)_cs_varchar
    str (defined in _cs_varchar)_cs_varchar
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00814.html freetds-1.2.3/doc/reference/a00814.html --- freetds-1.1.6/doc/reference/a00814.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00814.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _cs_money Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_money Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -CS_INT mnyhigh
     
    -CS_UINT mnylow
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00815.html freetds-1.2.3/doc/reference/a00815.html --- freetds-1.1.6/doc/reference/a00815.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00815.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_money4 Member List
    -
    -
    - -

    This is the complete list of members for _cs_money4, including all inherited members.

    - - -
    mny4 (defined in _cs_money4)_cs_money4
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00816.html freetds-1.2.3/doc/reference/a00816.html --- freetds-1.1.6/doc/reference/a00816.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00816.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _cs_varchar Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_varchar Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +CS_SMALLINT len
     
    +CS_CHAR str [256]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00817.html freetds-1.2.3/doc/reference/a00817.html --- freetds-1.1.6/doc/reference/a00817.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00817.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_iodesc Member List
    +
    +
    + +

    This is the complete list of members for _cs_iodesc, including all inherited members.

    + + + + + + + + + + + + + + +
    datatype (defined in _cs_iodesc)_cs_iodesc
    iotype (defined in _cs_iodesc)_cs_iodesc
    locale (defined in _cs_iodesc)_cs_iodesc
    log_on_update (defined in _cs_iodesc)_cs_iodesc
    name (defined in _cs_iodesc)_cs_iodesc
    namelen (defined in _cs_iodesc)_cs_iodesc
    offset (defined in _cs_iodesc)_cs_iodesc
    textptr (defined in _cs_iodesc)_cs_iodesc
    textptrlen (defined in _cs_iodesc)_cs_iodesc
    timestamp (defined in _cs_iodesc)_cs_iodesc
    timestamplen (defined in _cs_iodesc)_cs_iodesc
    total_txtlen (defined in _cs_iodesc)_cs_iodesc
    usertype (defined in _cs_iodesc)_cs_iodesc
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00818.html freetds-1.2.3/doc/reference/a00818.html --- freetds-1.1.6/doc/reference/a00818.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00818.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: _cs_money4 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_money4 Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -CS_INT mny4
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00818.map freetds-1.2.3/doc/reference/a00818.map --- freetds-1.1.6/doc/reference/a00818.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00818.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00818.md5 freetds-1.2.3/doc/reference/a00818.md5 --- freetds-1.1.6/doc/reference/a00818.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00818.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +af44a7a7112099d48017c8664a3adc28 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00818.svg freetds-1.2.3/doc/reference/a00818.svg --- freetds-1.1.6/doc/reference/a00818.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00818.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +_cs_iodesc + + + +Node1 + + +_cs_iodesc + + + + + +Node2 + + +_cs_locale + + + + + +Node2->Node1 + + + locale + + + diff -Nru freetds-1.1.6/doc/reference/a00819.html freetds-1.2.3/doc/reference/a00819.html --- freetds-1.1.6/doc/reference/a00819.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00819.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_datetime Member List
    -
    -
    - -

    This is the complete list of members for _cs_datetime, including all inherited members.

    - - - -
    dtdays (defined in _cs_datetime)_cs_datetime
    dttime (defined in _cs_datetime)_cs_datetime
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00820.html freetds-1.2.3/doc/reference/a00820.html --- freetds-1.1.6/doc/reference/a00820.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00820.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,131 @@ + + + + + + + +FreeTDS API: _cs_iodesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_iodesc Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_iodesc:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_INT datatype
     
    +CS_INT iotype
     
    +CS_LOCALElocale
     
    +CS_BOOL log_on_update
     
    +CS_CHAR name [CS_OBJ_NAME]
     
    +CS_INT namelen
     
    +CS_INT offset
     
    +CS_BYTE textptr [CS_TP_SIZE]
     
    +CS_INT textptrlen
     
    +CS_BYTE timestamp [CS_TS_SIZE]
     
    +CS_INT timestamplen
     
    +CS_INT total_txtlen
     
    +CS_INT usertype
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00821.html freetds-1.2.3/doc/reference/a00821.html --- freetds-1.1.6/doc/reference/a00821.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00821.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,90 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_datafmt Member List
    +
    +
    + +

    This is the complete list of members for _cs_datafmt, including all inherited members.

    + + + + + + + + + + + + +
    count (defined in _cs_datafmt)_cs_datafmt
    datatype (defined in _cs_datafmt)_cs_datafmt
    format (defined in _cs_datafmt)_cs_datafmt
    locale (defined in _cs_datafmt)_cs_datafmt
    maxlength (defined in _cs_datafmt)_cs_datafmt
    name (defined in _cs_datafmt)_cs_datafmt
    namelen (defined in _cs_datafmt)_cs_datafmt
    precision (defined in _cs_datafmt)_cs_datafmt
    scale (defined in _cs_datafmt)_cs_datafmt
    status (defined in _cs_datafmt)_cs_datafmt
    usertype (defined in _cs_datafmt)_cs_datafmt
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00822.html freetds-1.2.3/doc/reference/a00822.html --- freetds-1.1.6/doc/reference/a00822.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00822.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _cs_datetime Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_datetime Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -CS_INT dtdays
     
    -CS_INT dttime
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00822.map freetds-1.2.3/doc/reference/a00822.map --- freetds-1.1.6/doc/reference/a00822.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00822.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00822.md5 freetds-1.2.3/doc/reference/a00822.md5 --- freetds-1.1.6/doc/reference/a00822.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00822.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f74b1fc7f471acf1afee6168ba61acff \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00822.svg freetds-1.2.3/doc/reference/a00822.svg --- freetds-1.1.6/doc/reference/a00822.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00822.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +_cs_datafmt + + + +Node1 + + +_cs_datafmt + + + + + +Node2 + + +_cs_locale + + + + + +Node2->Node1 + + + locale + + + diff -Nru freetds-1.1.6/doc/reference/a00823.html freetds-1.2.3/doc/reference/a00823.html --- freetds-1.1.6/doc/reference/a00823.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00823.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_datetime4 Member List
    -
    -
    - -

    This is the complete list of members for _cs_datetime4, including all inherited members.

    - - - -
    days (defined in _cs_datetime4)_cs_datetime4
    minutes (defined in _cs_datetime4)_cs_datetime4
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00824.html freetds-1.2.3/doc/reference/a00824.html --- freetds-1.1.6/doc/reference/a00824.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00824.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,125 @@ + + + + + + + +FreeTDS API: _cs_datafmt Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_datafmt Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_datafmt:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_INT count
     
    +CS_INT datatype
     
    +CS_INT format
     
    +CS_LOCALElocale
     
    +CS_INT maxlength
     
    +CS_CHAR name [CS_MAX_NAME]
     
    +CS_INT namelen
     
    +CS_INT precision
     
    +CS_INT scale
     
    +CS_INT status
     
    +CS_INT usertype
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00825.html freetds-1.2.3/doc/reference/a00825.html --- freetds-1.1.6/doc/reference/a00825.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00825.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_money Member List
    +
    +
    + +

    This is the complete list of members for _cs_money, including all inherited members.

    + + + +
    mnyhigh (defined in _cs_money)_cs_money
    mnylow (defined in _cs_money)_cs_money
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00826.html freetds-1.2.3/doc/reference/a00826.html --- freetds-1.1.6/doc/reference/a00826.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00826.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _cs_datetime4 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_datetime4 Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -CS_USHORT days
     
    -CS_USHORT minutes
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00827.html freetds-1.2.3/doc/reference/a00827.html --- freetds-1.1.6/doc/reference/a00827.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00827.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_daterec Member List
    -
    -
    - -

    This is the complete list of members for _cs_daterec, including all inherited members.

    - - - - - - - - - - - - - -
    datedmonth (defined in _cs_daterec)_cs_daterec
    datedweek (defined in _cs_daterec)_cs_daterec
    datedyear (defined in _cs_daterec)_cs_daterec
    datehour (defined in _cs_daterec)_cs_daterec
    dateminute (defined in _cs_daterec)_cs_daterec
    datemonth (defined in _cs_daterec)_cs_daterec
    datemsecond (defined in _cs_daterec)_cs_daterec
    datesecfrac (defined in _cs_daterec)_cs_daterec
    datesecond (defined in _cs_daterec)_cs_daterec
    datesecprec (defined in _cs_daterec)_cs_daterec
    datetzone (defined in _cs_daterec)_cs_daterec
    dateyear (defined in _cs_daterec)_cs_daterec
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00828.html freetds-1.2.3/doc/reference/a00828.html --- freetds-1.1.6/doc/reference/a00828.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00828.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _cs_money Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_money Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +CS_INT mnyhigh
     
    +CS_UINT mnylow
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00829.html freetds-1.2.3/doc/reference/a00829.html --- freetds-1.1.6/doc/reference/a00829.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00829.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_money4 Member List
    +
    +
    + +

    This is the complete list of members for _cs_money4, including all inherited members.

    + + +
    mny4 (defined in _cs_money4)_cs_money4
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00830.html freetds-1.2.3/doc/reference/a00830.html --- freetds-1.1.6/doc/reference/a00830.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00830.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ - - - - - - - -FreeTDS API: _cs_daterec Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_daterec Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_INT datedmonth
     
    -CS_INT datedweek
     
    -CS_INT datedyear
     
    -CS_INT datehour
     
    -CS_INT dateminute
     
    -CS_INT datemonth
     
    -CS_INT datemsecond
     
    -CS_INT datesecfrac
     
    -CS_INT datesecond
     
    -CS_INT datesecprec
     
    -CS_INT datetzone
     
    -CS_INT dateyear
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00831.html freetds-1.2.3/doc/reference/a00831.html --- freetds-1.1.6/doc/reference/a00831.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00831.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_clientmsg Member List
    -
    -
    - -

    This is the complete list of members for _cs_clientmsg, including all inherited members.

    - - - - - - - - - - - -
    msgnumber (defined in _cs_clientmsg)_cs_clientmsg
    msgstring (defined in _cs_clientmsg)_cs_clientmsg
    msgstringlen (defined in _cs_clientmsg)_cs_clientmsg
    osnumber (defined in _cs_clientmsg)_cs_clientmsg
    osstring (defined in _cs_clientmsg)_cs_clientmsg
    osstringlen (defined in _cs_clientmsg)_cs_clientmsg
    severity (defined in _cs_clientmsg)_cs_clientmsg
    sqlstate (defined in _cs_clientmsg)_cs_clientmsg
    sqlstatelen (defined in _cs_clientmsg)_cs_clientmsg
    status (defined in _cs_clientmsg)_cs_clientmsg
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00832.html freetds-1.2.3/doc/reference/a00832.html --- freetds-1.1.6/doc/reference/a00832.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00832.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: _cs_money4 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_money4 Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +CS_INT mny4
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00833.html freetds-1.2.3/doc/reference/a00833.html --- freetds-1.1.6/doc/reference/a00833.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00833.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_datetime Member List
    +
    +
    + +

    This is the complete list of members for _cs_datetime, including all inherited members.

    + + + +
    dtdays (defined in _cs_datetime)_cs_datetime
    dttime (defined in _cs_datetime)_cs_datetime
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00834.html freetds-1.2.3/doc/reference/a00834.html --- freetds-1.1.6/doc/reference/a00834.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00834.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ - - - - - - - -FreeTDS API: _cs_clientmsg Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_clientmsg Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_MSGNUM msgnumber
     
    -CS_CHAR msgstring [CS_MAX_MSG]
     
    -CS_INT msgstringlen
     
    -CS_INT osnumber
     
    -CS_CHAR osstring [CS_MAX_MSG]
     
    -CS_INT osstringlen
     
    -CS_INT severity
     
    -CS_BYTE sqlstate [CS_SQLSTATE_SIZE]
     
    -CS_INT sqlstatelen
     
    -CS_INT status
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00835.html freetds-1.2.3/doc/reference/a00835.html --- freetds-1.1.6/doc/reference/a00835.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00835.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_servermsg Member List
    -
    -
    - -

    This is the complete list of members for _cs_servermsg, including all inherited members.

    - - - - - - - - - - - - - - -
    line (defined in _cs_servermsg)_cs_servermsg
    msgnumber (defined in _cs_servermsg)_cs_servermsg
    proc (defined in _cs_servermsg)_cs_servermsg
    proclen (defined in _cs_servermsg)_cs_servermsg
    severity (defined in _cs_servermsg)_cs_servermsg
    sqlstate (defined in _cs_servermsg)_cs_servermsg
    sqlstatelen (defined in _cs_servermsg)_cs_servermsg
    state (defined in _cs_servermsg)_cs_servermsg
    status (defined in _cs_servermsg)_cs_servermsg
    svrname (defined in _cs_servermsg)_cs_servermsg
    svrnlen (defined in _cs_servermsg)_cs_servermsg
    text (defined in _cs_servermsg)_cs_servermsg
    textlen (defined in _cs_servermsg)_cs_servermsg
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00836.html freetds-1.2.3/doc/reference/a00836.html --- freetds-1.1.6/doc/reference/a00836.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00836.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _cs_datetime Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_datetime Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +CS_INT dtdays
     
    +CS_INT dttime
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00837.html freetds-1.2.3/doc/reference/a00837.html --- freetds-1.1.6/doc/reference/a00837.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00837.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_datetime4 Member List
    +
    +
    + +

    This is the complete list of members for _cs_datetime4, including all inherited members.

    + + + +
    days (defined in _cs_datetime4)_cs_datetime4
    minutes (defined in _cs_datetime4)_cs_datetime4
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00838.html freetds-1.2.3/doc/reference/a00838.html --- freetds-1.1.6/doc/reference/a00838.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00838.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ - - - - - - - -FreeTDS API: _cs_servermsg Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_servermsg Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_INT line
     
    -CS_MSGNUM msgnumber
     
    -CS_CHAR proc [CS_MAX_NAME]
     
    -CS_INT proclen
     
    -CS_INT severity
     
    -CS_BYTE sqlstate [CS_SQLSTATE_SIZE]
     
    -CS_INT sqlstatelen
     
    -CS_INT state
     
    -CS_INT status
     
    -CS_CHAR svrname [CS_MAX_NAME]
     
    -CS_INT svrnlen
     
    -CS_CHAR text [CS_MAX_MSG]
     
    -CS_INT textlen
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00839.html freetds-1.2.3/doc/reference/a00839.html --- freetds-1.1.6/doc/reference/a00839.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00839.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_config Member List
    -
    -
    - -

    This is the complete list of members for _cs_config, including all inherited members.

    - - -
    cs_expose_formats (defined in _cs_config)_cs_config
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00840.html freetds-1.2.3/doc/reference/a00840.html --- freetds-1.1.6/doc/reference/a00840.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00840.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _cs_datetime4 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_datetime4 Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +CS_USHORT days
     
    +CS_USHORT minutes
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00841.html freetds-1.2.3/doc/reference/a00841.html --- freetds-1.1.6/doc/reference/a00841.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00841.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_daterec Member List
    +
    +
    + +

    This is the complete list of members for _cs_daterec, including all inherited members.

    + + + + + + + + + + + + + +
    datedmonth (defined in _cs_daterec)_cs_daterec
    datedweek (defined in _cs_daterec)_cs_daterec
    datedyear (defined in _cs_daterec)_cs_daterec
    datehour (defined in _cs_daterec)_cs_daterec
    dateminute (defined in _cs_daterec)_cs_daterec
    datemonth (defined in _cs_daterec)_cs_daterec
    datemsecond (defined in _cs_daterec)_cs_daterec
    datesecfrac (defined in _cs_daterec)_cs_daterec
    datesecond (defined in _cs_daterec)_cs_daterec
    datesecprec (defined in _cs_daterec)_cs_daterec
    datetzone (defined in _cs_daterec)_cs_daterec
    dateyear (defined in _cs_daterec)_cs_daterec
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00842.html freetds-1.2.3/doc/reference/a00842.html --- freetds-1.1.6/doc/reference/a00842.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00842.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: _cs_config Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_config Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -short cs_expose_formats
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00843.html freetds-1.2.3/doc/reference/a00843.html --- freetds-1.1.6/doc/reference/a00843.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00843.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    cs_diag_msg_client Member List
    -
    -
    - -

    This is the complete list of members for cs_diag_msg_client, including all inherited members.

    - - - -
    clientmsg (defined in cs_diag_msg_client)cs_diag_msg_client
    next (defined in cs_diag_msg_client)cs_diag_msg_client
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00844.html freetds-1.2.3/doc/reference/a00844.html --- freetds-1.1.6/doc/reference/a00844.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00844.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,122 @@ + + + + + + + +FreeTDS API: _cs_daterec Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_daterec Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_INT datedmonth
     
    +CS_INT datedweek
     
    +CS_INT datedyear
     
    +CS_INT datehour
     
    +CS_INT dateminute
     
    +CS_INT datemonth
     
    +CS_INT datemsecond
     
    +CS_INT datesecfrac
     
    +CS_INT datesecond
     
    +CS_INT datesecprec
     
    +CS_INT datetzone
     
    +CS_INT dateyear
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00844.map freetds-1.2.3/doc/reference/a00844.map --- freetds-1.1.6/doc/reference/a00844.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00844.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00844.md5 freetds-1.2.3/doc/reference/a00844.md5 --- freetds-1.1.6/doc/reference/a00844.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00844.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a54d07b596d53061e62d1c169768cc01 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00844.svg freetds-1.2.3/doc/reference/a00844.svg --- freetds-1.1.6/doc/reference/a00844.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00844.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - - - - - - -cs_diag_msg_client - - -Node1 - -cs_diag_msg_client - - -Node1->Node1 - - - next - - -Node2 - - -_cs_clientmsg - - - - -Node2->Node1 - - - clientmsg - - - diff -Nru freetds-1.1.6/doc/reference/a00845.html freetds-1.2.3/doc/reference/a00845.html --- freetds-1.1.6/doc/reference/a00845.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00845.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_clientmsg Member List
    +
    +
    + +

    This is the complete list of members for _cs_clientmsg, including all inherited members.

    + + + + + + + + + + + +
    msgnumber (defined in _cs_clientmsg)_cs_clientmsg
    msgstring (defined in _cs_clientmsg)_cs_clientmsg
    msgstringlen (defined in _cs_clientmsg)_cs_clientmsg
    osnumber (defined in _cs_clientmsg)_cs_clientmsg
    osstring (defined in _cs_clientmsg)_cs_clientmsg
    osstringlen (defined in _cs_clientmsg)_cs_clientmsg
    severity (defined in _cs_clientmsg)_cs_clientmsg
    sqlstate (defined in _cs_clientmsg)_cs_clientmsg
    sqlstatelen (defined in _cs_clientmsg)_cs_clientmsg
    status (defined in _cs_clientmsg)_cs_clientmsg
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00846.html freetds-1.2.3/doc/reference/a00846.html --- freetds-1.1.6/doc/reference/a00846.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00846.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: cs_diag_msg_client Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    cs_diag_msg_client Struct Reference
    -
    -
    -
    -Collaboration diagram for cs_diag_msg_client:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -CS_CLIENTMSGclientmsg
     
    -struct cs_diag_msg_clientnext
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00847.html freetds-1.2.3/doc/reference/a00847.html --- freetds-1.1.6/doc/reference/a00847.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00847.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    cs_diag_msg_svr Member List
    -
    -
    - -

    This is the complete list of members for cs_diag_msg_svr, including all inherited members.

    - - - -
    next (defined in cs_diag_msg_svr)cs_diag_msg_svr
    servermsg (defined in cs_diag_msg_svr)cs_diag_msg_svr
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00848.html freetds-1.2.3/doc/reference/a00848.html --- freetds-1.1.6/doc/reference/a00848.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00848.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,116 @@ + + + + + + + +FreeTDS API: _cs_clientmsg Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_clientmsg Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_MSGNUM msgnumber
     
    +CS_CHAR msgstring [CS_MAX_MSG]
     
    +CS_INT msgstringlen
     
    +CS_INT osnumber
     
    +CS_CHAR osstring [CS_MAX_MSG]
     
    +CS_INT osstringlen
     
    +CS_INT severity
     
    +CS_BYTE sqlstate [CS_SQLSTATE_SIZE]
     
    +CS_INT sqlstatelen
     
    +CS_INT status
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00848.map freetds-1.2.3/doc/reference/a00848.map --- freetds-1.1.6/doc/reference/a00848.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00848.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00848.md5 freetds-1.2.3/doc/reference/a00848.md5 --- freetds-1.1.6/doc/reference/a00848.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00848.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -07c3a831476f207c3617fc5bd172bb61 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00848.svg freetds-1.2.3/doc/reference/a00848.svg --- freetds-1.1.6/doc/reference/a00848.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00848.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - - - - - - -cs_diag_msg_svr - - -Node1 - -cs_diag_msg_svr - - -Node1->Node1 - - - next - - -Node2 - - -_cs_servermsg - - - - -Node2->Node1 - - - servermsg - - - diff -Nru freetds-1.1.6/doc/reference/a00849.html freetds-1.2.3/doc/reference/a00849.html --- freetds-1.1.6/doc/reference/a00849.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00849.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_servermsg Member List
    +
    +
    + +

    This is the complete list of members for _cs_servermsg, including all inherited members.

    + + + + + + + + + + + + + + +
    line (defined in _cs_servermsg)_cs_servermsg
    msgnumber (defined in _cs_servermsg)_cs_servermsg
    proc (defined in _cs_servermsg)_cs_servermsg
    proclen (defined in _cs_servermsg)_cs_servermsg
    severity (defined in _cs_servermsg)_cs_servermsg
    sqlstate (defined in _cs_servermsg)_cs_servermsg
    sqlstatelen (defined in _cs_servermsg)_cs_servermsg
    state (defined in _cs_servermsg)_cs_servermsg
    status (defined in _cs_servermsg)_cs_servermsg
    svrname (defined in _cs_servermsg)_cs_servermsg
    svrnlen (defined in _cs_servermsg)_cs_servermsg
    text (defined in _cs_servermsg)_cs_servermsg
    textlen (defined in _cs_servermsg)_cs_servermsg
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00850.html freetds-1.2.3/doc/reference/a00850.html --- freetds-1.1.6/doc/reference/a00850.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00850.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: cs_diag_msg_svr Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    cs_diag_msg_svr Struct Reference
    -
    -
    -
    -Collaboration diagram for cs_diag_msg_svr:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -struct cs_diag_msg_svrnext
     
    -CS_SERVERMSGservermsg
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00851.html freetds-1.2.3/doc/reference/a00851.html --- freetds-1.1.6/doc/reference/a00851.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00851.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    cs_diag_msg Member List
    -
    -
    - -

    This is the complete list of members for cs_diag_msg, including all inherited members.

    - - - -
    msg (defined in cs_diag_msg)cs_diag_msg
    next (defined in cs_diag_msg)cs_diag_msg
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00852.html freetds-1.2.3/doc/reference/a00852.html --- freetds-1.1.6/doc/reference/a00852.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00852.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,125 @@ + + + + + + + +FreeTDS API: _cs_servermsg Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_servermsg Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_INT line
     
    +CS_MSGNUM msgnumber
     
    +CS_CHAR proc [CS_MAX_NAME]
     
    +CS_INT proclen
     
    +CS_INT severity
     
    +CS_BYTE sqlstate [CS_SQLSTATE_SIZE]
     
    +CS_INT sqlstatelen
     
    +CS_INT state
     
    +CS_INT status
     
    +CS_CHAR svrname [CS_MAX_NAME]
     
    +CS_INT svrnlen
     
    +CS_CHAR text [CS_MAX_MSG]
     
    +CS_INT textlen
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00852.map freetds-1.2.3/doc/reference/a00852.map --- freetds-1.1.6/doc/reference/a00852.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00852.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00852.md5 freetds-1.2.3/doc/reference/a00852.md5 --- freetds-1.1.6/doc/reference/a00852.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00852.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -08d3aeed631f897f96089ceb828dde4e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00852.svg freetds-1.2.3/doc/reference/a00852.svg --- freetds-1.1.6/doc/reference/a00852.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00852.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - - - - - - -cs_diag_msg - - -Node1 - -cs_diag_msg - - -Node1->Node1 - - - next - - -Node2 - - -_cs_clientmsg - - - - -Node2->Node1 - - - msg - - - diff -Nru freetds-1.1.6/doc/reference/a00853.html freetds-1.2.3/doc/reference/a00853.html --- freetds-1.1.6/doc/reference/a00853.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00853.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_config Member List
    +
    +
    + +

    This is the complete list of members for _cs_config, including all inherited members.

    + + +
    cs_expose_formats (defined in _cs_config)_cs_config
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00854.html freetds-1.2.3/doc/reference/a00854.html --- freetds-1.1.6/doc/reference/a00854.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00854.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: cs_diag_msg Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    cs_diag_msg Struct Reference
    -
    -
    -
    -Collaboration diagram for cs_diag_msg:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -CS_CLIENTMSGmsg
     
    -struct cs_diag_msgnext
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00855.html freetds-1.2.3/doc/reference/a00855.html --- freetds-1.1.6/doc/reference/a00855.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00855.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_context Member List
    -
    -
    - -

    This is the complete list of members for _cs_context, including all inherited members.

    - - - - - - - - - - - - - - - - - - - -
    _clientmsg_cb (defined in _cs_context)_cs_context
    _cslibmsg_cb (defined in _cs_context)_cs_context
    _servermsg_cb (defined in _cs_context)_cs_context
    clientstore (defined in _cs_context)_cs_context
    config (defined in _cs_context)_cs_context
    cs_diag_msglimit (defined in _cs_context)_cs_context
    cs_diag_msglimit_client (defined in _cs_context)_cs_context
    cs_diag_msglimit_server (defined in _cs_context)_cs_context
    cs_diag_msglimit_total (defined in _cs_context)_cs_context
    cs_errhandletype (defined in _cs_context)_cs_context
    date_convert_fmt (defined in _cs_context)_cs_context
    login_timeout_cs_context
    msgstore (defined in _cs_context)_cs_context
    query_timeout_cs_context
    svrstore (defined in _cs_context)_cs_context
    tds_ctx (defined in _cs_context)_cs_context
    userdata (defined in _cs_context)_cs_context
    userdata_len (defined in _cs_context)_cs_context
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00856.html freetds-1.2.3/doc/reference/a00856.html --- freetds-1.1.6/doc/reference/a00856.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00856.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: _cs_config Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_config Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +short cs_expose_formats
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00856.map freetds-1.2.3/doc/reference/a00856.map --- freetds-1.1.6/doc/reference/a00856.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00856.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,10 +0,0 @@ - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00856.md5 freetds-1.2.3/doc/reference/a00856.md5 --- freetds-1.1.6/doc/reference/a00856.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00856.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dcc9798948071a28c25b6a10cb0b87e5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00856.svg freetds-1.2.3/doc/reference/a00856.svg --- freetds-1.1.6/doc/reference/a00856.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00856.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,162 +0,0 @@ - - - - - - -_cs_context - - -Node1 - -_cs_context - - -Node1->Node1 - - - _clientmsg_cb -_servermsg_cb -_cslibmsg_cb - - -Node2 - - -cs_diag_msg_client - - - - -Node2->Node1 - - - clientstore - - -Node2->Node2 - - - next - - -Node3 - - -_cs_clientmsg - - - - -Node3->Node2 - - - clientmsg - - -Node9 - - -cs_diag_msg - - - - -Node3->Node9 - - - msg - - -Node4 - - -tds_context - - - - -Node4->Node1 - - - tds_ctx - - -Node5 - - -tds_locale - - - - -Node5->Node4 - - - locale - - -Node6 - - -_cs_config - - - - -Node6->Node1 - - - config - - -Node7 - - -cs_diag_msg_svr - - - - -Node7->Node1 - - - svrstore - - -Node7->Node7 - - - next - - -Node8 - - -_cs_servermsg - - - - -Node8->Node7 - - - servermsg - - -Node9->Node1 - - - msgstore - - -Node9->Node9 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00857.html freetds-1.2.3/doc/reference/a00857.html --- freetds-1.1.6/doc/reference/a00857.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00857.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    cs_diag_msg_client Member List
    +
    +
    + +

    This is the complete list of members for cs_diag_msg_client, including all inherited members.

    + + + +
    clientmsg (defined in cs_diag_msg_client)cs_diag_msg_client
    next (defined in cs_diag_msg_client)cs_diag_msg_client
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00858.html freetds-1.2.3/doc/reference/a00858.html --- freetds-1.1.6/doc/reference/a00858.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00858.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ - - - - - - - -FreeTDS API: _cs_context Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_context Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_context:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_CLIENTMSG_FUNC _clientmsg_cb
     
    -CS_CSLIBMSG_FUNC _cslibmsg_cb
     
    -CS_SERVERMSG_FUNC _servermsg_cb
     
    -struct cs_diag_msg_clientclientstore
     
    -CS_CONFIG config
     
    -CS_INT cs_diag_msglimit
     
    -CS_INT cs_diag_msglimit_client
     
    -CS_INT cs_diag_msglimit_server
     
    -CS_INT cs_diag_msglimit_total
     
    -CS_INT cs_errhandletype
     
    -CS_INT date_convert_fmt
     
    -int login_timeout
     not used unless positive
     
    -struct cs_diag_msgmsgstore
     
    -int query_timeout
     not used unless positive
     
    -struct cs_diag_msg_svrsvrstore
     
    -TDSCONTEXTtds_ctx
     
    -void * userdata
     
    -int userdata_len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00858.map freetds-1.2.3/doc/reference/a00858.map --- freetds-1.1.6/doc/reference/a00858.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00858.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00858.md5 freetds-1.2.3/doc/reference/a00858.md5 --- freetds-1.1.6/doc/reference/a00858.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00858.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f8133e2cd29e89182b12fe2831a658e5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00858.svg freetds-1.2.3/doc/reference/a00858.svg --- freetds-1.1.6/doc/reference/a00858.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00858.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + + +cs_diag_msg_client + + + +Node1 + + +cs_diag_msg_client + + + + + +Node1->Node1 + + + next + + + +Node2 + + +_cs_clientmsg + + + + + +Node2->Node1 + + + clientmsg + + + diff -Nru freetds-1.1.6/doc/reference/a00859.html freetds-1.2.3/doc/reference/a00859.html --- freetds-1.1.6/doc/reference/a00859.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00859.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _ct_colinfo Member List
    -
    -
    - -

    This is the complete list of members for _ct_colinfo, including all inherited members.

    - - -
    indicator (defined in _ct_colinfo)_ct_colinfo
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00860.html freetds-1.2.3/doc/reference/a00860.html --- freetds-1.1.6/doc/reference/a00860.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00860.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: cs_diag_msg_client Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    cs_diag_msg_client Struct Reference
    +
    +
    +
    +Collaboration diagram for cs_diag_msg_client:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +CS_CLIENTMSGclientmsg
     
    +struct cs_diag_msg_clientnext
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00861.html freetds-1.2.3/doc/reference/a00861.html --- freetds-1.1.6/doc/reference/a00861.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00861.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    cs_diag_msg_svr Member List
    +
    +
    + +

    This is the complete list of members for cs_diag_msg_svr, including all inherited members.

    + + + +
    next (defined in cs_diag_msg_svr)cs_diag_msg_svr
    servermsg (defined in cs_diag_msg_svr)cs_diag_msg_svr
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00862.html freetds-1.2.3/doc/reference/a00862.html --- freetds-1.1.6/doc/reference/a00862.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00862.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: _ct_colinfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _ct_colinfo Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -TDS_SMALLINT * indicator
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00862.map freetds-1.2.3/doc/reference/a00862.map --- freetds-1.1.6/doc/reference/a00862.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00862.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00862.md5 freetds-1.2.3/doc/reference/a00862.md5 --- freetds-1.1.6/doc/reference/a00862.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00862.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6680a3bfde9aad883069a25a050eaf19 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00862.svg freetds-1.2.3/doc/reference/a00862.svg --- freetds-1.1.6/doc/reference/a00862.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00862.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + + +cs_diag_msg_svr + + + +Node1 + + +cs_diag_msg_svr + + + + + +Node1->Node1 + + + next + + + +Node2 + + +_cs_servermsg + + + + + +Node2->Node1 + + + servermsg + + + diff -Nru freetds-1.1.6/doc/reference/a00863.html freetds-1.2.3/doc/reference/a00863.html --- freetds-1.1.6/doc/reference/a00863.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00863.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_connection Member List
    -
    -
    - -

    This is the complete list of members for _cs_connection, including all inherited members.

    - - - - - - - - - - - - -
    _clientmsg_cb (defined in _cs_connection)_cs_connection
    _servermsg_cb (defined in _cs_connection)_cs_connection
    cmds (defined in _cs_connection)_cs_connection
    ctx (defined in _cs_connection)_cs_connection
    dynlist (defined in _cs_connection)_cs_connection
    locale (defined in _cs_connection)_cs_connection
    server_addr (defined in _cs_connection)_cs_connection
    tds_login (defined in _cs_connection)_cs_connection
    tds_socket (defined in _cs_connection)_cs_connection
    userdata (defined in _cs_connection)_cs_connection
    userdata_len (defined in _cs_connection)_cs_connection
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00864.html freetds-1.2.3/doc/reference/a00864.html --- freetds-1.1.6/doc/reference/a00864.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00864.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: cs_diag_msg_svr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    cs_diag_msg_svr Struct Reference
    +
    +
    +
    +Collaboration diagram for cs_diag_msg_svr:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +struct cs_diag_msg_svrnext
     
    +CS_SERVERMSGservermsg
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00864.map freetds-1.2.3/doc/reference/a00864.map --- freetds-1.1.6/doc/reference/a00864.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00864.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00864.md5 freetds-1.2.3/doc/reference/a00864.md5 --- freetds-1.1.6/doc/reference/a00864.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00864.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -44337b6c5b4f9f98022a8c3b6f9002ae \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00864.svg freetds-1.2.3/doc/reference/a00864.svg --- freetds-1.1.6/doc/reference/a00864.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00864.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,586 +0,0 @@ - - - - - - -_cs_connection - - -Node1 - -_cs_connection - - -Node26 - - -_cs_command - - - - -Node1->Node26 - - - con - - -Node2 - - -_cs_locale - - - - -Node2->Node1 - - - locale - - -Node27 - - -_cs_iodesc - - - - -Node2->Node27 - - - locale - - -Node3 - - -tds_socket - - - - -Node3->Node1 - - - tds_socket - - -Node10 - - -tds_result_info - - - - -Node3->Node10 - - - attached_to - - -Node4 - - -tds_login - - - - -Node4->Node1 - - - tds_login - - -Node4->Node3 - - - login - - -Node5 - - -tds_capabilities - - - - -Node5->Node4 - - - capabilities - - -Node20 - - -tds_connection - - - - -Node5->Node20 - - - capabilities - - -Node7 - - -tds_dstr - - - - -Node7->Node4 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node8 - - -tds_packet - - - - -Node8->Node3 - - - recv_packet -send_packet - - -Node8->Node8 - - - next - - -Node9 - - -tds_dynamic - - - - -Node9->Node3 - - - cur_dyn - - -Node9->Node9 - - - next - - -Node9->Node20 - - - dyns - - -Node29 - - -_cs_dynamic - - - - -Node9->Node29 - - - tdsdyn - - -Node10->Node3 - - - param_info -current_results -res_info -comp_info - - -Node10->Node9 - - - res_info -params - - -Node18 - - -tds_cursor - - - - -Node10->Node18 - - - res_info - - -Node18->Node3 - - - cur_cursor - - -Node18->Node18 - - - next - - -Node18->Node20 - - - cursors - - -Node18->Node26 - - - cursor - - -Node19 - - -tds_cursor_status - - - - -Node19->Node18 - - - status - - -Node20->Node3 - - - conn - - -Node21 - - -tds_poll_wakeup - - - - -Node21->Node20 - - - wakeup - - -Node22 - - -tds_env - - - - -Node22->Node20 - - - env - - -Node23 - - -tds_context - - - - -Node23->Node20 - - - tds_ctx - - -Node31 - - -_cs_context - - - - -Node23->Node31 - - - tds_ctx - - -Node25 - - -tds_authentication - - - - -Node25->Node20 - - - authentication - - -Node12 - - -tdsiconvinfo - - - - -Node12->Node20 - - - char_convs - - -Node26->Node1 - - - cmds - - -Node26->Node26 - - - next - - -Node27->Node26 - - - iodesc - - -Node28 - - -_cs_param - - - - -Node28->Node26 - - - input_params - - -Node28->Node28 - - - next - - -Node28->Node29 - - - param_list - - -Node30 - - -_csremote_proc - - - - -Node28->Node30 - - - param_list - - -Node29->Node1 - - - dynlist - - -Node29->Node26 - - - dyn - - -Node29->Node29 - - - next - - -Node30->Node26 - - - rpc - - -Node31->Node1 - - - ctx -_clientmsg_cb -_servermsg_cb - - -Node31->Node31 - - - _clientmsg_cb -_servermsg_cb -_cslibmsg_cb - - -Node32 - - -cs_diag_msg_client - - - - -Node32->Node31 - - - clientstore - - -Node32->Node32 - - - next - - -Node33 - - -_cs_clientmsg - - - - -Node33->Node32 - - - clientmsg - - -Node37 - - -cs_diag_msg - - - - -Node33->Node37 - - - msg - - -Node34 - - -_cs_config - - - - -Node34->Node31 - - - config - - -Node35 - - -cs_diag_msg_svr - - - - -Node35->Node31 - - - svrstore - - -Node35->Node35 - - - next - - -Node36 - - -_cs_servermsg - - - - -Node36->Node35 - - - servermsg - - -Node37->Node31 - - - msgstore - - -Node37->Node37 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00865.html freetds-1.2.3/doc/reference/a00865.html --- freetds-1.1.6/doc/reference/a00865.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00865.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    cs_diag_msg Member List
    +
    +
    + +

    This is the complete list of members for cs_diag_msg, including all inherited members.

    + + + +
    msg (defined in cs_diag_msg)cs_diag_msg
    next (defined in cs_diag_msg)cs_diag_msg
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00866.html freetds-1.2.3/doc/reference/a00866.html --- freetds-1.1.6/doc/reference/a00866.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00866.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ - - - - - - - -FreeTDS API: _cs_connection Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_connection Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_connection:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_CLIENTMSG_FUNC _clientmsg_cb
     
    -CS_SERVERMSG_FUNC _servermsg_cb
     
    -CS_COMMANDcmds
     
    -CS_CONTEXTctx
     
    -CS_DYNAMICdynlist
     
    -CS_LOCALElocale
     
    -char * server_addr
     
    -TDSLOGINtds_login
     
    -TDSSOCKETtds_socket
     
    -void * userdata
     
    -int userdata_len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00866.map freetds-1.2.3/doc/reference/a00866.map --- freetds-1.1.6/doc/reference/a00866.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00866.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00866.md5 freetds-1.2.3/doc/reference/a00866.md5 --- freetds-1.1.6/doc/reference/a00866.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00866.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +8c93cabc69557a779a8d285fd9e55f8d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00866.svg freetds-1.2.3/doc/reference/a00866.svg --- freetds-1.1.6/doc/reference/a00866.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00866.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + + +cs_diag_msg + + + +Node1 + + +cs_diag_msg + + + + + +Node1->Node1 + + + next + + + +Node2 + + +_cs_clientmsg + + + + + +Node2->Node1 + + + msg + + + diff -Nru freetds-1.1.6/doc/reference/a00867.html freetds-1.2.3/doc/reference/a00867.html --- freetds-1.1.6/doc/reference/a00867.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00867.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_param Member List
    -
    -
    - -

    This is the complete list of members for _cs_param, including all inherited members.

    - - - - - - - - - - - - - - -
    datalen (defined in _cs_param)_cs_param
    datalen_value (defined in _cs_param)_cs_param
    datatype (defined in _cs_param)_cs_param
    ind (defined in _cs_param)_cs_param
    indicator_value (defined in _cs_param)_cs_param
    maxlen (defined in _cs_param)_cs_param
    name (defined in _cs_param)_cs_param
    next (defined in _cs_param)_cs_param
    param_by_value (defined in _cs_param)_cs_param
    precision (defined in _cs_param)_cs_param
    scale (defined in _cs_param)_cs_param
    status (defined in _cs_param)_cs_param
    value (defined in _cs_param)_cs_param
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00868.html freetds-1.2.3/doc/reference/a00868.html --- freetds-1.1.6/doc/reference/a00868.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00868.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: cs_diag_msg Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    cs_diag_msg Struct Reference
    +
    +
    +
    +Collaboration diagram for cs_diag_msg:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +CS_CLIENTMSGmsg
     
    +struct cs_diag_msgnext
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00868.map freetds-1.2.3/doc/reference/a00868.map --- freetds-1.1.6/doc/reference/a00868.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00868.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00868.md5 freetds-1.2.3/doc/reference/a00868.md5 --- freetds-1.1.6/doc/reference/a00868.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00868.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ba4bc67f10abdfacdac45ca329461304 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00868.svg freetds-1.2.3/doc/reference/a00868.svg --- freetds-1.1.6/doc/reference/a00868.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00868.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -_cs_param - - -Node1 - -_cs_param - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00869.html freetds-1.2.3/doc/reference/a00869.html --- freetds-1.1.6/doc/reference/a00869.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00869.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,97 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_context Member List
    +
    +
    + +

    This is the complete list of members for _cs_context, including all inherited members.

    + + + + + + + + + + + + + + + + + + + +
    _clientmsg_cb (defined in _cs_context)_cs_context
    _cslibmsg_cb (defined in _cs_context)_cs_context
    _servermsg_cb (defined in _cs_context)_cs_context
    clientstore (defined in _cs_context)_cs_context
    config (defined in _cs_context)_cs_context
    cs_diag_msglimit (defined in _cs_context)_cs_context
    cs_diag_msglimit_client (defined in _cs_context)_cs_context
    cs_diag_msglimit_server (defined in _cs_context)_cs_context
    cs_diag_msglimit_total (defined in _cs_context)_cs_context
    cs_errhandletype (defined in _cs_context)_cs_context
    date_convert_fmt (defined in _cs_context)_cs_context
    login_timeout_cs_context
    msgstore (defined in _cs_context)_cs_context
    query_timeout_cs_context
    svrstore (defined in _cs_context)_cs_context
    tds_ctx (defined in _cs_context)_cs_context
    userdata (defined in _cs_context)_cs_context
    userdata_len (defined in _cs_context)_cs_context
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00870.html freetds-1.2.3/doc/reference/a00870.html --- freetds-1.1.6/doc/reference/a00870.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00870.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,128 +0,0 @@ - - - - - - - -FreeTDS API: _cs_param Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_param Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_param:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -CS_INT * datalen
     
    -CS_INT datalen_value
     
    -int datatype
     
    -CS_SMALLINT * ind
     
    -CS_SMALLINT indicator_value
     
    -CS_INT maxlen
     
    -char * name
     
    -struct _cs_paramnext
     
    -int param_by_value
     
    -CS_INT precision
     
    -CS_INT scale
     
    -int status
     
    -CS_BYTE * value
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00870.map freetds-1.2.3/doc/reference/a00870.map --- freetds-1.1.6/doc/reference/a00870.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00870.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00870.md5 freetds-1.2.3/doc/reference/a00870.md5 --- freetds-1.1.6/doc/reference/a00870.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00870.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +bbc978ee390f69419ed56a974f2f6dee \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00870.svg freetds-1.2.3/doc/reference/a00870.svg --- freetds-1.1.6/doc/reference/a00870.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00870.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,187 @@ + + + + + + +_cs_context + + + +Node1 + + +_cs_context + + + + + +Node1->Node1 + + + _clientmsg_cb +_servermsg_cb +_cslibmsg_cb + + + +Node2 + + +cs_diag_msg_client + + + + + +Node2->Node1 + + + clientstore + + + +Node2->Node2 + + + next + + + +Node3 + + +_cs_clientmsg + + + + + +Node3->Node2 + + + clientmsg + + + +Node9 + + +cs_diag_msg + + + + + +Node3->Node9 + + + msg + + + +Node4 + + +tds_context + + + + + +Node4->Node1 + + + tds_ctx + + + +Node5 + + +tds_locale + + + + + +Node5->Node4 + + + locale + + + +Node6 + + +_cs_config + + + + + +Node6->Node1 + + + config + + + +Node7 + + +cs_diag_msg_svr + + + + + +Node7->Node1 + + + svrstore + + + +Node7->Node7 + + + next + + + +Node8 + + +_cs_servermsg + + + + + +Node8->Node7 + + + servermsg + + + +Node9->Node1 + + + msgstore + + + +Node9->Node9 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00871.html freetds-1.2.3/doc/reference/a00871.html --- freetds-1.1.6/doc/reference/a00871.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00871.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _csremote_proc Member List
    -
    -
    - -

    This is the complete list of members for _csremote_proc, including all inherited members.

    - - - - -
    name (defined in _csremote_proc)_csremote_proc
    options (defined in _csremote_proc)_csremote_proc
    param_list (defined in _csremote_proc)_csremote_proc
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00872.html freetds-1.2.3/doc/reference/a00872.html --- freetds-1.1.6/doc/reference/a00872.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00872.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,148 @@ + + + + + + + +FreeTDS API: _cs_context Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_context Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_context:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_CLIENTMSG_FUNC _clientmsg_cb
     
    +CS_CSLIBMSG_FUNC _cslibmsg_cb
     
    +CS_SERVERMSG_FUNC _servermsg_cb
     
    +struct cs_diag_msg_clientclientstore
     
    +CS_CONFIG config
     
    +CS_INT cs_diag_msglimit
     
    +CS_INT cs_diag_msglimit_client
     
    +CS_INT cs_diag_msglimit_server
     
    +CS_INT cs_diag_msglimit_total
     
    +CS_INT cs_errhandletype
     
    +CS_INT date_convert_fmt
     
    +int login_timeout
     not used unless positive
     
    +struct cs_diag_msgmsgstore
     
    +int query_timeout
     not used unless positive
     
    +struct cs_diag_msg_svrsvrstore
     
    +TDSCONTEXTtds_ctx
     
    +void * userdata
     
    +int userdata_len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00872.map freetds-1.2.3/doc/reference/a00872.map --- freetds-1.1.6/doc/reference/a00872.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00872.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00872.md5 freetds-1.2.3/doc/reference/a00872.md5 --- freetds-1.1.6/doc/reference/a00872.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00872.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e967bdba41e1c493c300c4550d11a1b2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00872.svg freetds-1.2.3/doc/reference/a00872.svg --- freetds-1.1.6/doc/reference/a00872.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00872.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - - - - - - -_csremote_proc - - -Node1 - -_csremote_proc - - -Node2 - - -_cs_param - - - - -Node2->Node1 - - - param_list - - -Node2->Node2 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00873.html freetds-1.2.3/doc/reference/a00873.html --- freetds-1.1.6/doc/reference/a00873.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00873.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _ct_colinfo Member List
    +
    +
    + +

    This is the complete list of members for _ct_colinfo, including all inherited members.

    + + +
    indicator (defined in _ct_colinfo)_ct_colinfo
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00874.html freetds-1.2.3/doc/reference/a00874.html --- freetds-1.1.6/doc/reference/a00874.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00874.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: _csremote_proc Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _csremote_proc Struct Reference
    -
    -
    -
    -Collaboration diagram for _csremote_proc:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -char * name
     
    -CS_SMALLINT options
     
    -CSREMOTE_PROC_PARAMparam_list
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00875.html freetds-1.2.3/doc/reference/a00875.html --- freetds-1.1.6/doc/reference/a00875.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00875.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_dynamic Member List
    -
    -
    - -

    This is the complete list of members for _cs_dynamic, including all inherited members.

    - - - - - - -
    id (defined in _cs_dynamic)_cs_dynamic
    next (defined in _cs_dynamic)_cs_dynamic
    param_list (defined in _cs_dynamic)_cs_dynamic
    stmt (defined in _cs_dynamic)_cs_dynamic
    tdsdyn (defined in _cs_dynamic)_cs_dynamic
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00876.html freetds-1.2.3/doc/reference/a00876.html --- freetds-1.1.6/doc/reference/a00876.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00876.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: _ct_colinfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _ct_colinfo Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +TDS_SMALLINT * indicator
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00876.map freetds-1.2.3/doc/reference/a00876.map --- freetds-1.1.6/doc/reference/a00876.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00876.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00876.md5 freetds-1.2.3/doc/reference/a00876.md5 --- freetds-1.1.6/doc/reference/a00876.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00876.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c65395c0620a84e5f9bdab3ab30914d1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00876.svg freetds-1.2.3/doc/reference/a00876.svg --- freetds-1.1.6/doc/reference/a00876.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00876.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ - - - - - - -_cs_dynamic - - -Node1 - -_cs_dynamic - - -Node1->Node1 - - - next - - -Node2 - - -tds_dynamic - - - - -Node2->Node1 - - - tdsdyn - - -Node2->Node2 - - - next - - -Node4 - - -tds_socket - - - - -Node2->Node4 - - - cur_dyn - - -Node3 - - -tds_result_info - - - - -Node3->Node2 - - - res_info -params - - -Node3->Node4 - - - param_info -current_results -res_info -comp_info - - -Node4->Node3 - - - attached_to - - -Node22 - - -tds_column - - - - -Node22->Node3 - - - columns - - -Node25 - - -_cs_param - - - - -Node25->Node1 - - - param_list - - -Node25->Node25 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00877.html freetds-1.2.3/doc/reference/a00877.html --- freetds-1.1.6/doc/reference/a00877.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00877.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_connection Member List
    +
    +
    + +

    This is the complete list of members for _cs_connection, including all inherited members.

    + + + + + + + + + + + + + +
    _clientmsg_cb (defined in _cs_connection)_cs_connection
    _servermsg_cb (defined in _cs_connection)_cs_connection
    cmds (defined in _cs_connection)_cs_connection
    ctx (defined in _cs_connection)_cs_connection
    dynlist (defined in _cs_connection)_cs_connection
    locale (defined in _cs_connection)_cs_connection
    network_auth (defined in _cs_connection)_cs_connection
    server_addr (defined in _cs_connection)_cs_connection
    tds_login (defined in _cs_connection)_cs_connection
    tds_socket (defined in _cs_connection)_cs_connection
    userdata (defined in _cs_connection)_cs_connection
    userdata_len (defined in _cs_connection)_cs_connection
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00878.html freetds-1.2.3/doc/reference/a00878.html --- freetds-1.1.6/doc/reference/a00878.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00878.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - - - - - - - -FreeTDS API: _cs_dynamic Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_dynamic Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_dynamic:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - -

    -Public Attributes

    -char * id
     
    -struct _cs_dynamicnext
     
    -CS_DYNAMIC_PARAMparam_list
     
    -char * stmt
     
    -TDSDYNAMICtdsdyn
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00878.map freetds-1.2.3/doc/reference/a00878.map --- freetds-1.1.6/doc/reference/a00878.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00878.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00878.md5 freetds-1.2.3/doc/reference/a00878.md5 --- freetds-1.1.6/doc/reference/a00878.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00878.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +90a30f64578afee5f6f148ffe7795f20 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00878.svg freetds-1.2.3/doc/reference/a00878.svg --- freetds-1.1.6/doc/reference/a00878.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00878.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,680 @@ + + + + + + +_cs_connection + + + +Node1 + + +_cs_connection + + + + + +Node26 + + +_cs_command + + + + + +Node1->Node26 + + + con + + + +Node2 + + +_cs_locale + + + + + +Node2->Node1 + + + locale + + + +Node27 + + +_cs_iodesc + + + + + +Node2->Node27 + + + locale + + + +Node3 + + +tds_socket + + + + + +Node3->Node1 + + + tds_socket + + + +Node10 + + +tds_result_info + + + + + +Node3->Node10 + + + attached_to + + + +Node4 + + +tds_login + + + + + +Node4->Node1 + + + tds_login + + + +Node4->Node3 + + + login + + + +Node5 + + +tds_capabilities + + + + + +Node5->Node4 + + + capabilities + + + +Node20 + + +tds_connection + + + + + +Node5->Node20 + + + capabilities + + + +Node7 + + +tds_dstr + + + + + +Node7->Node4 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node8 + + +tds_packet + + + + + +Node8->Node3 + + + frozen_packets +recv_packet +send_packet + + + +Node8->Node8 + + + next + + + +Node8->Node20 + + + packet_cache + + + +Node9 + + +tds_dynamic + + + + + +Node9->Node3 + + + cur_dyn + + + +Node9->Node9 + + + next + + + +Node9->Node20 + + + dyns + + + +Node29 + + +_cs_dynamic + + + + + +Node9->Node29 + + + tdsdyn + + + +Node10->Node3 + + + param_info +current_results +res_info +comp_info + + + +Node10->Node9 + + + res_info +params + + + +Node18 + + +tds_cursor + + + + + +Node10->Node18 + + + res_info + + + +Node18->Node3 + + + cur_cursor + + + +Node18->Node18 + + + next + + + +Node18->Node20 + + + cursors + + + +Node18->Node26 + + + cursor + + + +Node19 + + +tds_cursor_status + + + + + +Node19->Node18 + + + status + + + +Node20->Node3 + + + conn + + + +Node21 + + +tds_poll_wakeup + + + + + +Node21->Node20 + + + wakeup + + + +Node22 + + +tds_env + + + + + +Node22->Node20 + + + env + + + +Node23 + + +tds_context + + + + + +Node23->Node20 + + + tds_ctx + + + +Node31 + + +_cs_context + + + + + +Node23->Node31 + + + tds_ctx + + + +Node25 + + +tds_authentication + + + + + +Node25->Node20 + + + authentication + + + +Node12 + + +tdsiconvinfo + + + + + +Node12->Node20 + + + char_convs + + + +Node26->Node1 + + + cmds + + + +Node26->Node26 + + + next + + + +Node27->Node26 + + + iodesc + + + +Node28 + + +_cs_param + + + + + +Node28->Node26 + + + input_params + + + +Node28->Node28 + + + next + + + +Node28->Node29 + + + param_list + + + +Node30 + + +_csremote_proc + + + + + +Node28->Node30 + + + param_list + + + +Node29->Node1 + + + dynlist + + + +Node29->Node26 + + + dyn + + + +Node29->Node29 + + + next + + + +Node30->Node26 + + + rpc + + + +Node31->Node1 + + + ctx +_clientmsg_cb +_servermsg_cb + + + +Node31->Node31 + + + _clientmsg_cb +_servermsg_cb +_cslibmsg_cb + + + +Node32 + + +cs_diag_msg_client + + + + + +Node32->Node31 + + + clientstore + + + +Node32->Node32 + + + next + + + +Node33 + + +_cs_clientmsg + + + + + +Node33->Node32 + + + clientmsg + + + +Node37 + + +cs_diag_msg + + + + + +Node33->Node37 + + + msg + + + +Node34 + + +_cs_config + + + + + +Node34->Node31 + + + config + + + +Node35 + + +cs_diag_msg_svr + + + + + +Node35->Node31 + + + svrstore + + + +Node35->Node35 + + + next + + + +Node36 + + +_cs_servermsg + + + + + +Node36->Node35 + + + servermsg + + + +Node37->Node31 + + + msgstore + + + +Node37->Node37 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00879.html freetds-1.2.3/doc/reference/a00879.html --- freetds-1.1.6/doc/reference/a00879.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00879.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_command Member List
    -
    -
    - -

    This is the complete list of members for _cs_command, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - -
    bind_count (defined in _cs_command)_cs_command
    cancel_state (defined in _cs_command)_cs_command
    client_cursor_id (defined in _cs_command)_cs_command
    command_state (defined in _cs_command)_cs_command
    command_type (defined in _cs_command)_cs_command
    con (defined in _cs_command)_cs_command
    curr_result_type (defined in _cs_command)_cs_command
    cursor (defined in _cs_command)_cs_command
    cursor_state (defined in _cs_command)_cs_command
    dyn (defined in _cs_command)_cs_command
    dynamic_cmd (defined in _cs_command)_cs_command
    get_data_bytes_returned (defined in _cs_command)_cs_command
    get_data_item (defined in _cs_command)_cs_command
    input_params (defined in _cs_command)_cs_command
    iodesc (defined in _cs_command)_cs_command
    next (defined in _cs_command)_cs_command
    query (defined in _cs_command)_cs_command
    results_state (defined in _cs_command)_cs_command
    row_prefetched (defined in _cs_command)_cs_command
    rpc (defined in _cs_command)_cs_command
    send_data_started (defined in _cs_command)_cs_command
    userdata (defined in _cs_command)_cs_command
    userdata_len (defined in _cs_command)_cs_command
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00880.html freetds-1.2.3/doc/reference/a00880.html --- freetds-1.1.6/doc/reference/a00880.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00880.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,128 @@ + + + + + + + +FreeTDS API: _cs_connection Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_connection Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_connection:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_CLIENTMSG_FUNC _clientmsg_cb
     
    +CS_SERVERMSG_FUNC _servermsg_cb
     
    +CS_COMMANDcmds
     
    +CS_CONTEXTctx
     
    +CS_DYNAMICdynlist
     
    +CS_LOCALElocale
     
    +bool network_auth
     
    +char * server_addr
     
    +TDSLOGINtds_login
     
    +TDSSOCKETtds_socket
     
    +void * userdata
     
    +int userdata_len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00880.map freetds-1.2.3/doc/reference/a00880.map --- freetds-1.1.6/doc/reference/a00880.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00880.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00880.md5 freetds-1.2.3/doc/reference/a00880.md5 --- freetds-1.1.6/doc/reference/a00880.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00880.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1c9c026340d954ebd2e17000ec5532b7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00880.svg freetds-1.2.3/doc/reference/a00880.svg --- freetds-1.1.6/doc/reference/a00880.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00880.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,384 +0,0 @@ - - - - - - -_cs_command - - -Node1 - -_cs_command - - -Node1->Node1 - - - next - - -Node29 - - -_cs_connection - - - - -Node1->Node29 - - - cmds - - -Node2 - - -_cs_iodesc - - - - -Node2->Node1 - - - iodesc - - -Node3 - - -_cs_locale - - - - -Node3->Node2 - - - locale - - -Node3->Node29 - - - locale - - -Node4 - - -_cs_param - - - - -Node4->Node1 - - - input_params - - -Node4->Node4 - - - next - - -Node5 - - -_cs_dynamic - - - - -Node4->Node5 - - - param_list - - -Node37 - - -_csremote_proc - - - - -Node4->Node37 - - - param_list - - -Node5->Node1 - - - dyn - - -Node5->Node5 - - - next - - -Node5->Node29 - - - dynlist - - -Node6 - - -tds_dynamic - - - - -Node6->Node5 - - - tdsdyn - - -Node6->Node6 - - - next - - -Node8 - - -tds_socket - - - - -Node6->Node8 - - - cur_dyn - - -Node7 - - -tds_result_info - - - - -Node7->Node6 - - - res_info -params - - -Node7->Node8 - - - param_info -current_results -res_info -comp_info - - -Node14 - - -tds_cursor - - - - -Node7->Node14 - - - res_info - - -Node8->Node7 - - - attached_to - - -Node8->Node29 - - - tds_socket - - -Node9 - - -tds_login - - - - -Node9->Node8 - - - login - - -Node9->Node29 - - - tds_login - - -Node14->Node1 - - - cursor - - -Node14->Node8 - - - cur_cursor - - -Node14->Node14 - - - next - - -Node29->Node1 - - - con - - -Node30 - - -_cs_context - - - - -Node30->Node29 - - - ctx -_clientmsg_cb -_servermsg_cb - - -Node30->Node30 - - - _clientmsg_cb -_servermsg_cb -_cslibmsg_cb - - -Node31 - - -cs_diag_msg_client - - - - -Node31->Node30 - - - clientstore - - -Node31->Node31 - - - next - - -Node19 - - -tds_context - - - - -Node19->Node30 - - - tds_ctx - - -Node33 - - -_cs_config - - - - -Node33->Node30 - - - config - - -Node34 - - -cs_diag_msg_svr - - - - -Node34->Node30 - - - svrstore - - -Node34->Node34 - - - next - - -Node36 - - -cs_diag_msg - - - - -Node36->Node30 - - - msgstore - - -Node36->Node36 - - - next - - -Node37->Node1 - - - rpc - - - diff -Nru freetds-1.1.6/doc/reference/a00881.html freetds-1.2.3/doc/reference/a00881.html --- freetds-1.1.6/doc/reference/a00881.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00881.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_param Member List
    +
    +
    + +

    This is the complete list of members for _cs_param, including all inherited members.

    + + + + + + + + + + + + + + +
    datalen (defined in _cs_param)_cs_param
    datalen_value (defined in _cs_param)_cs_param
    datatype (defined in _cs_param)_cs_param
    ind (defined in _cs_param)_cs_param
    indicator_value (defined in _cs_param)_cs_param
    maxlen (defined in _cs_param)_cs_param
    name (defined in _cs_param)_cs_param
    next (defined in _cs_param)_cs_param
    param_by_value (defined in _cs_param)_cs_param
    precision (defined in _cs_param)_cs_param
    scale (defined in _cs_param)_cs_param
    status (defined in _cs_param)_cs_param
    value (defined in _cs_param)_cs_param
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00882.html freetds-1.2.3/doc/reference/a00882.html --- freetds-1.1.6/doc/reference/a00882.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00882.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,158 +0,0 @@ - - - - - - - -FreeTDS API: _cs_command Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_command Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_command:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int bind_count
     
    -CS_INT cancel_state
     
    -CS_INT client_cursor_id
     
    -CS_INT command_state
     
    -CS_INT command_type
     
    -CS_CONNECTIONcon
     
    -int curr_result_type
     
    -TDSCURSORcursor
     
    -CS_INT cursor_state
     
    -CS_DYNAMICdyn
     
    -short dynamic_cmd
     
    -int get_data_bytes_returned
     
    -int get_data_item
     
    -CS_PARAMinput_params
     
    -CS_IODESCiodesc
     
    -struct _cs_commandnext
     
    -CS_CHAR * query
     
    -CS_INT results_state
     
    -int row_prefetched
     
    -CSREMOTE_PROCrpc
     
    -CS_INT send_data_started
     
    -void * userdata
     
    -int userdata_len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00882.map freetds-1.2.3/doc/reference/a00882.map --- freetds-1.1.6/doc/reference/a00882.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00882.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00882.md5 freetds-1.2.3/doc/reference/a00882.md5 --- freetds-1.1.6/doc/reference/a00882.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00882.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +2eca8758efdfc23145f585ff4f5a7507 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00882.svg freetds-1.2.3/doc/reference/a00882.svg --- freetds-1.1.6/doc/reference/a00882.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00882.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +_cs_param + + + +Node1 + + +_cs_param + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00883.html freetds-1.2.3/doc/reference/a00883.html --- freetds-1.1.6/doc/reference/a00883.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00883.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_blkdesc Member List
    -
    -
    - -

    This is the complete list of members for _cs_blkdesc, including all inherited members.

    - - -
    bcpinfo (defined in _cs_blkdesc)_cs_blkdesc
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00884.html freetds-1.2.3/doc/reference/a00884.html --- freetds-1.1.6/doc/reference/a00884.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00884.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,131 @@ + + + + + + + +FreeTDS API: _cs_param Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_param Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_param:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +CS_INT * datalen
     
    +CS_INT datalen_value
     
    +int datatype
     
    +CS_SMALLINT * ind
     
    +CS_SMALLINT indicator_value
     
    +CS_INT maxlen
     
    +char * name
     
    +struct _cs_paramnext
     
    +int param_by_value
     
    +CS_INT precision
     
    +CS_INT scale
     
    +int status
     
    +CS_BYTE * value
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00884.map freetds-1.2.3/doc/reference/a00884.map --- freetds-1.1.6/doc/reference/a00884.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00884.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00884.md5 freetds-1.2.3/doc/reference/a00884.md5 --- freetds-1.1.6/doc/reference/a00884.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00884.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -20dde081d7667db500c504acbff93010 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00884.svg freetds-1.2.3/doc/reference/a00884.svg --- freetds-1.1.6/doc/reference/a00884.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00884.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - -_cs_blkdesc - - -Node1 - -_cs_blkdesc - - -Node2 - - -tds_bcpinfo - - - - -Node2->Node1 - - - bcpinfo - - -Node3 - - -tds_result_info - - - - -Node3->Node2 - - - bindinfo - - -Node4 - - -tds_socket - - - - -Node3->Node4 - - - param_info -current_results -res_info -comp_info - - -Node4->Node3 - - - attached_to - - -Node23 - - -tds_column - - - - -Node23->Node3 - - - columns - - -Node8 - - -tds_dstr - - - - -Node8->Node2 - - - tablename - - -Node8->Node23 - - - column_name -table_name -table_column_name - - - diff -Nru freetds-1.1.6/doc/reference/a00885.html freetds-1.2.3/doc/reference/a00885.html --- freetds-1.1.6/doc/reference/a00885.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00885.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _csremote_proc Member List
    +
    +
    + +

    This is the complete list of members for _csremote_proc, including all inherited members.

    + + + + +
    name (defined in _csremote_proc)_csremote_proc
    options (defined in _csremote_proc)_csremote_proc
    param_list (defined in _csremote_proc)_csremote_proc
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00886.html freetds-1.2.3/doc/reference/a00886.html --- freetds-1.1.6/doc/reference/a00886.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00886.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: _cs_blkdesc Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_blkdesc Struct Reference
    -
    -
    -
    -Collaboration diagram for _cs_blkdesc:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Attributes

    -TDSBCPINFO bcpinfo
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00886.map freetds-1.2.3/doc/reference/a00886.map --- freetds-1.1.6/doc/reference/a00886.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00886.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00886.md5 freetds-1.2.3/doc/reference/a00886.md5 --- freetds-1.1.6/doc/reference/a00886.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00886.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +286e875cf6bc98652ac342964a2f457c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00886.svg freetds-1.2.3/doc/reference/a00886.svg --- freetds-1.1.6/doc/reference/a00886.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00886.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + + +_csremote_proc + + + +Node1 + + +_csremote_proc + + + + + +Node2 + + +_cs_param + + + + + +Node2->Node1 + + + param_list + + + +Node2->Node2 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00887.html freetds-1.2.3/doc/reference/a00887.html --- freetds-1.1.6/doc/reference/a00887.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00887.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _cs_locale Member List
    -
    -
    - -

    This is the complete list of members for _cs_locale, including all inherited members.

    - - - - - -
    charset (defined in _cs_locale)_cs_locale
    collate (defined in _cs_locale)_cs_locale
    language (defined in _cs_locale)_cs_locale
    time (defined in _cs_locale)_cs_locale
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00888.html freetds-1.2.3/doc/reference/a00888.html --- freetds-1.1.6/doc/reference/a00888.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00888.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: _csremote_proc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _csremote_proc Struct Reference
    +
    +
    +
    +Collaboration diagram for _csremote_proc:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +char * name
     
    +CS_SMALLINT options
     
    +CSREMOTE_PROC_PARAMparam_list
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00889.html freetds-1.2.3/doc/reference/a00889.html --- freetds-1.1.6/doc/reference/a00889.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00889.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_dynamic Member List
    +
    +
    + +

    This is the complete list of members for _cs_dynamic, including all inherited members.

    + + + + + + +
    id (defined in _cs_dynamic)_cs_dynamic
    next (defined in _cs_dynamic)_cs_dynamic
    param_list (defined in _cs_dynamic)_cs_dynamic
    stmt (defined in _cs_dynamic)_cs_dynamic
    tdsdyn (defined in _cs_dynamic)_cs_dynamic
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00890.html freetds-1.2.3/doc/reference/a00890.html --- freetds-1.1.6/doc/reference/a00890.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00890.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: _cs_locale Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _cs_locale Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -char * charset
     
    -char * collate
     
    -char * language
     
    -char * time
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00890.map freetds-1.2.3/doc/reference/a00890.map --- freetds-1.1.6/doc/reference/a00890.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00890.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00890.md5 freetds-1.2.3/doc/reference/a00890.md5 --- freetds-1.1.6/doc/reference/a00890.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00890.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +daa746cffb3e07da5f86f0264982fe32 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00890.svg freetds-1.2.3/doc/reference/a00890.svg --- freetds-1.1.6/doc/reference/a00890.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00890.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,141 @@ + + + + + + +_cs_dynamic + + + +Node1 + + +_cs_dynamic + + + + + +Node1->Node1 + + + next + + + +Node2 + + +tds_dynamic + + + + + +Node2->Node1 + + + tdsdyn + + + +Node2->Node2 + + + next + + + +Node4 + + +tds_socket + + + + + +Node2->Node4 + + + cur_dyn + + + +Node3 + + +tds_result_info + + + + + +Node3->Node2 + + + res_info +params + + + +Node3->Node4 + + + param_info +current_results +res_info +comp_info + + + +Node4->Node3 + + + attached_to + + + +Node22 + + +tds_column + + + + + +Node22->Node3 + + + columns + + + +Node25 + + +_cs_param + + + + + +Node25->Node1 + + + param_list + + + +Node25->Node25 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00891.html freetds-1.2.3/doc/reference/a00891.html --- freetds-1.1.6/doc/reference/a00891.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00891.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_dblib_loginrec Member List
    -
    -
    - -

    This is the complete list of members for tds_dblib_loginrec, including all inherited members.

    - - -
    tds_login (defined in tds_dblib_loginrec)tds_dblib_loginrec
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00892.html freetds-1.2.3/doc/reference/a00892.html --- freetds-1.1.6/doc/reference/a00892.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00892.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + + +FreeTDS API: _cs_dynamic Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_dynamic Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_dynamic:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + +

    +Public Attributes

    +char * id
     
    +struct _cs_dynamicnext
     
    +CS_DYNAMIC_PARAMparam_list
     
    +char * stmt
     
    +TDSDYNAMICtdsdyn
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00892.map freetds-1.2.3/doc/reference/a00892.map --- freetds-1.1.6/doc/reference/a00892.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00892.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00892.md5 freetds-1.2.3/doc/reference/a00892.md5 --- freetds-1.1.6/doc/reference/a00892.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00892.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -41f0290e7f901a3e1d1c7203f68e589c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00892.svg freetds-1.2.3/doc/reference/a00892.svg --- freetds-1.1.6/doc/reference/a00892.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00892.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - -tds_dblib_loginrec - - -Node1 - -tds_dblib_loginrec - - -Node2 - - -tds_login - - - - -Node2->Node1 - - - tds_login - - -Node3 - - -tds_capabilities - - - - -Node3->Node2 - - - capabilities - - -Node4 - - -tds_capability_type - - - - -Node4->Node3 - - - types - - -Node5 - - -tds_dstr - - - - -Node5->Node2 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - - diff -Nru freetds-1.1.6/doc/reference/a00893.html freetds-1.2.3/doc/reference/a00893.html --- freetds-1.1.6/doc/reference/a00893.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00893.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,102 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_command Member List
    +
    +
    + +

    This is the complete list of members for _cs_command, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    bind_count (defined in _cs_command)_cs_command
    cancel_state (defined in _cs_command)_cs_command
    client_cursor_id (defined in _cs_command)_cs_command
    command_state (defined in _cs_command)_cs_command
    command_type (defined in _cs_command)_cs_command
    con (defined in _cs_command)_cs_command
    curr_result_type (defined in _cs_command)_cs_command
    cursor (defined in _cs_command)_cs_command
    cursor_state (defined in _cs_command)_cs_command
    dyn (defined in _cs_command)_cs_command
    dynamic_cmd (defined in _cs_command)_cs_command
    get_data_bytes_returned (defined in _cs_command)_cs_command
    get_data_item (defined in _cs_command)_cs_command
    input_params (defined in _cs_command)_cs_command
    iodesc (defined in _cs_command)_cs_command
    next (defined in _cs_command)_cs_command
    query (defined in _cs_command)_cs_command
    results_state (defined in _cs_command)_cs_command
    row_prefetched (defined in _cs_command)_cs_command
    rpc (defined in _cs_command)_cs_command
    send_data_started (defined in _cs_command)_cs_command
    userdata (defined in _cs_command)_cs_command
    userdata_len (defined in _cs_command)_cs_command
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00894.html freetds-1.2.3/doc/reference/a00894.html --- freetds-1.1.6/doc/reference/a00894.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00894.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_dblib_loginrec Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_dblib_loginrec Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_dblib_loginrec:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Attributes

    -TDSLOGINtds_login
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00894.map freetds-1.2.3/doc/reference/a00894.map --- freetds-1.1.6/doc/reference/a00894.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00894.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00894.md5 freetds-1.2.3/doc/reference/a00894.md5 --- freetds-1.1.6/doc/reference/a00894.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00894.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5eb49a40fc01f94bc7cd3965842032ed \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00894.svg freetds-1.2.3/doc/reference/a00894.svg --- freetds-1.1.6/doc/reference/a00894.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00894.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,442 @@ + + + + + + +_cs_command + + + +Node1 + + +_cs_command + + + + + +Node1->Node1 + + + next + + + +Node29 + + +_cs_connection + + + + + +Node1->Node29 + + + cmds + + + +Node2 + + +_cs_iodesc + + + + + +Node2->Node1 + + + iodesc + + + +Node3 + + +_cs_locale + + + + + +Node3->Node2 + + + locale + + + +Node3->Node29 + + + locale + + + +Node4 + + +_cs_param + + + + + +Node4->Node1 + + + input_params + + + +Node4->Node4 + + + next + + + +Node5 + + +_cs_dynamic + + + + + +Node4->Node5 + + + param_list + + + +Node37 + + +_csremote_proc + + + + + +Node4->Node37 + + + param_list + + + +Node5->Node1 + + + dyn + + + +Node5->Node5 + + + next + + + +Node5->Node29 + + + dynlist + + + +Node6 + + +tds_dynamic + + + + + +Node6->Node5 + + + tdsdyn + + + +Node6->Node6 + + + next + + + +Node8 + + +tds_socket + + + + + +Node6->Node8 + + + cur_dyn + + + +Node7 + + +tds_result_info + + + + + +Node7->Node6 + + + res_info +params + + + +Node7->Node8 + + + param_info +current_results +res_info +comp_info + + + +Node14 + + +tds_cursor + + + + + +Node7->Node14 + + + res_info + + + +Node8->Node7 + + + attached_to + + + +Node8->Node29 + + + tds_socket + + + +Node9 + + +tds_login + + + + + +Node9->Node8 + + + login + + + +Node9->Node29 + + + tds_login + + + +Node14->Node1 + + + cursor + + + +Node14->Node8 + + + cur_cursor + + + +Node14->Node14 + + + next + + + +Node29->Node1 + + + con + + + +Node30 + + +_cs_context + + + + + +Node30->Node29 + + + ctx +_clientmsg_cb +_servermsg_cb + + + +Node30->Node30 + + + _clientmsg_cb +_servermsg_cb +_cslibmsg_cb + + + +Node31 + + +cs_diag_msg_client + + + + + +Node31->Node30 + + + clientstore + + + +Node31->Node31 + + + next + + + +Node19 + + +tds_context + + + + + +Node19->Node30 + + + tds_ctx + + + +Node33 + + +_cs_config + + + + + +Node33->Node30 + + + config + + + +Node34 + + +cs_diag_msg_svr + + + + + +Node34->Node30 + + + svrstore + + + +Node34->Node34 + + + next + + + +Node36 + + +cs_diag_msg + + + + + +Node36->Node30 + + + msgstore + + + +Node36->Node36 + + + next + + + +Node37->Node1 + + + rpc + + + diff -Nru freetds-1.1.6/doc/reference/a00895.html freetds-1.2.3/doc/reference/a00895.html --- freetds-1.1.6/doc/reference/a00895.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00895.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tag_DBPROC_ROWBUF Member List
    -
    -
    - -

    This is the complete list of members for tag_DBPROC_ROWBUF, including all inherited members.

    - - - - - - - -
    capacity (defined in tag_DBPROC_ROWBUF)tag_DBPROC_ROWBUF
    current (defined in tag_DBPROC_ROWBUF)tag_DBPROC_ROWBUF
    head (defined in tag_DBPROC_ROWBUF)tag_DBPROC_ROWBUF
    received (defined in tag_DBPROC_ROWBUF)tag_DBPROC_ROWBUF
    rows (defined in tag_DBPROC_ROWBUF)tag_DBPROC_ROWBUF
    tail (defined in tag_DBPROC_ROWBUF)tag_DBPROC_ROWBUF
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00896.html freetds-1.2.3/doc/reference/a00896.html --- freetds-1.1.6/doc/reference/a00896.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00896.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,161 @@ + + + + + + + +FreeTDS API: _cs_command Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_command Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_command:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +int bind_count
     
    +CS_INT cancel_state
     
    +CS_INT client_cursor_id
     
    +CS_INT command_state
     
    +CS_INT command_type
     
    +CS_CONNECTIONcon
     
    +int curr_result_type
     
    +TDSCURSORcursor
     
    +CS_INT cursor_state
     
    +CS_DYNAMICdyn
     
    +short dynamic_cmd
     
    +int get_data_bytes_returned
     
    +int get_data_item
     
    +CS_PARAMinput_params
     
    +CS_IODESCiodesc
     
    +struct _cs_commandnext
     
    +CS_CHAR * query
     
    +CS_INT results_state
     
    +int row_prefetched
     
    +CSREMOTE_PROCrpc
     
    +CS_INT send_data_started
     
    +void * userdata
     
    +int userdata_len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00896.map freetds-1.2.3/doc/reference/a00896.map --- freetds-1.1.6/doc/reference/a00896.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00896.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00896.md5 freetds-1.2.3/doc/reference/a00896.md5 --- freetds-1.1.6/doc/reference/a00896.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00896.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -da77c684caf74de21088cbfa6d0e966f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00896.svg freetds-1.2.3/doc/reference/a00896.svg --- freetds-1.1.6/doc/reference/a00896.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00896.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - -tag_DBPROC_ROWBUF - - -Node1 - -tag_DBPROC_ROWBUF - - -Node2 - - -dblib_buffer_row - - - - -Node2->Node1 - - - rows - - -Node3 - - -tds_result_info - - - - -Node3->Node2 - - - resinfo - - -Node4 - - -tds_socket - - - - -Node3->Node4 - - - param_info -current_results -res_info -comp_info - - -Node4->Node3 - - - attached_to - - -Node23 - - -tds_column - - - - -Node23->Node3 - - - columns - - - diff -Nru freetds-1.1.6/doc/reference/a00897.html freetds-1.2.3/doc/reference/a00897.html --- freetds-1.1.6/doc/reference/a00897.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00897.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_blkdesc Member List
    +
    +
    + +

    This is the complete list of members for _cs_blkdesc, including all inherited members.

    + + +
    bcpinfo (defined in _cs_blkdesc)_cs_blkdesc
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00898.html freetds-1.2.3/doc/reference/a00898.html --- freetds-1.1.6/doc/reference/a00898.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00898.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - - -FreeTDS API: tag_DBPROC_ROWBUF Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tag_DBPROC_ROWBUF Struct Reference
    -
    -
    -
    -Collaboration diagram for tag_DBPROC_ROWBUF:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - -

    -Public Attributes

    -int capacity
     
    -int current
     
    -int head
     
    -int received
     
    -struct dblib_buffer_rowrows
     
    -int tail
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00898.map freetds-1.2.3/doc/reference/a00898.map --- freetds-1.1.6/doc/reference/a00898.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00898.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00898.md5 freetds-1.2.3/doc/reference/a00898.md5 --- freetds-1.1.6/doc/reference/a00898.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00898.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b894b31a433d6326a73f81427f328912 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00898.svg freetds-1.2.3/doc/reference/a00898.svg --- freetds-1.1.6/doc/reference/a00898.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00898.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,121 @@ + + + + + + +_cs_blkdesc + + + +Node1 + + +_cs_blkdesc + + + + + +Node2 + + +tds_bcpinfo + + + + + +Node2->Node1 + + + bcpinfo + + + +Node3 + + +tds_result_info + + + + + +Node3->Node2 + + + bindinfo + + + +Node4 + + +tds_socket + + + + + +Node3->Node4 + + + param_info +current_results +res_info +comp_info + + + +Node4->Node3 + + + attached_to + + + +Node23 + + +tds_column + + + + + +Node23->Node3 + + + columns + + + +Node8 + + +tds_dstr + + + + + +Node8->Node2 + + + tablename + + + +Node8->Node23 + + + column_name +table_name +table_column_name + + + diff -Nru freetds-1.1.6/doc/reference/a00899.html freetds-1.2.3/doc/reference/a00899.html --- freetds-1.1.6/doc/reference/a00899.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00899.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    BCP_HOSTCOLINFO Member List
    -
    -
    - -

    This is the complete list of members for BCP_HOSTCOLINFO, including all inherited members.

    - - - - - - - - - -
    column_error (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    column_len (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    datatype (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    host_column (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    prefix_len (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    tab_colnum (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    term_len (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    terminator (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00900.html freetds-1.2.3/doc/reference/a00900.html --- freetds-1.1.6/doc/reference/a00900.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00900.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: _cs_blkdesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_blkdesc Struct Reference
    +
    +
    +
    +Collaboration diagram for _cs_blkdesc:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Public Attributes

    +TDSBCPINFO bcpinfo
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00901.html freetds-1.2.3/doc/reference/a00901.html --- freetds-1.1.6/doc/reference/a00901.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00901.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _cs_locale Member List
    +
    +
    + +

    This is the complete list of members for _cs_locale, including all inherited members.

    + + + + + +
    charset (defined in _cs_locale)_cs_locale
    collate (defined in _cs_locale)_cs_locale
    language (defined in _cs_locale)_cs_locale
    time (defined in _cs_locale)_cs_locale
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00902.html freetds-1.2.3/doc/reference/a00902.html --- freetds-1.1.6/doc/reference/a00902.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00902.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - - -FreeTDS API: BCP_HOSTCOLINFO Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    BCP_HOSTCOLINFO Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int column_error
     
    -DBINT column_len
     
    -TDS_SERVER_TYPE datatype
     
    -int host_column
     
    -int prefix_len
     
    -int tab_colnum
     
    -int term_len
     
    -BYTE * terminator
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00903.html freetds-1.2.3/doc/reference/a00903.html --- freetds-1.1.6/doc/reference/a00903.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00903.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    BCP_HOSTFILEINFO Member List
    -
    -
    - -

    This is the complete list of members for BCP_HOSTFILEINFO, including all inherited members.

    - - - - - - - - - - -
    batch (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    bcp_errfileptr (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    errorfile (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    firstrow (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    host_colcount (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    host_columns (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    hostfile (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    lastrow (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    maxerrs (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00904.html freetds-1.2.3/doc/reference/a00904.html --- freetds-1.1.6/doc/reference/a00904.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00904.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: _cs_locale Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _cs_locale Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    +char * charset
     
    +char * collate
     
    +char * language
     
    +char * time
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00904.map freetds-1.2.3/doc/reference/a00904.map --- freetds-1.1.6/doc/reference/a00904.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00904.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00904.md5 freetds-1.2.3/doc/reference/a00904.md5 --- freetds-1.1.6/doc/reference/a00904.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00904.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -d2e49cf30659164120e29cd19c5ba6ba \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00904.svg freetds-1.2.3/doc/reference/a00904.svg --- freetds-1.1.6/doc/reference/a00904.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00904.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -BCP_HOSTFILEINFO - - -Node1 - -BCP_HOSTFILEINFO - - -Node2 - - -BCP_HOSTCOLINFO - - - - -Node2->Node1 - - - host_columns - - - diff -Nru freetds-1.1.6/doc/reference/a00905.html freetds-1.2.3/doc/reference/a00905.html --- freetds-1.1.6/doc/reference/a00905.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00905.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_dblib_loginrec Member List
    +
    +
    + +

    This is the complete list of members for tds_dblib_loginrec, including all inherited members.

    + + + +
    network_auth (defined in tds_dblib_loginrec)tds_dblib_loginrec
    tds_login (defined in tds_dblib_loginrec)tds_dblib_loginrec
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00906.html freetds-1.2.3/doc/reference/a00906.html --- freetds-1.1.6/doc/reference/a00906.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00906.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,116 +0,0 @@ - - - - - - - -FreeTDS API: BCP_HOSTFILEINFO Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    BCP_HOSTFILEINFO Struct Reference
    -
    -
    -
    -Collaboration diagram for BCP_HOSTFILEINFO:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_INT batch
     
    -FILE * bcp_errfileptr
     
    -TDS_CHAR * errorfile
     
    -TDS_INT firstrow
     
    -TDS_INT host_colcount
     
    -BCP_HOSTCOLINFO ** host_columns
     
    -TDS_CHAR * hostfile
     
    -TDS_INT lastrow
     
    -TDS_INT maxerrs
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00906.map freetds-1.2.3/doc/reference/a00906.map --- freetds-1.1.6/doc/reference/a00906.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00906.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00906.md5 freetds-1.2.3/doc/reference/a00906.md5 --- freetds-1.1.6/doc/reference/a00906.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00906.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6334f1aa7e39b433cebf0ae074e55f4d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00906.svg freetds-1.2.3/doc/reference/a00906.svg --- freetds-1.1.6/doc/reference/a00906.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00906.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,97 @@ + + + + + + +tds_dblib_loginrec + + + +Node1 + + +tds_dblib_loginrec + + + + + +Node2 + + +tds_login + + + + + +Node2->Node1 + + + tds_login + + + +Node3 + + +tds_capabilities + + + + + +Node3->Node2 + + + capabilities + + + +Node4 + + +tds_capability_type + + + + + +Node4->Node3 + + + types + + + +Node5 + + +tds_dstr + + + + + +Node5->Node2 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + diff -Nru freetds-1.1.6/doc/reference/a00907.html freetds-1.2.3/doc/reference/a00907.html --- freetds-1.1.6/doc/reference/a00907.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00907.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _DBREMOTE_PROC_PARAM Member List
    -
    -
    - -

    This is the complete list of members for _DBREMOTE_PROC_PARAM, including all inherited members.

    - - - - - - - - -
    datalen (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    maxlen (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    name (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    next (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    status (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    type (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    value (defined in _DBREMOTE_PROC_PARAM)_DBREMOTE_PROC_PARAM
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00908.html freetds-1.2.3/doc/reference/a00908.html --- freetds-1.1.6/doc/reference/a00908.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00908.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tds_dblib_loginrec Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_dblib_loginrec Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_dblib_loginrec:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +bool network_auth
     
    +TDSLOGINtds_login
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00908.map freetds-1.2.3/doc/reference/a00908.map --- freetds-1.1.6/doc/reference/a00908.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00908.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a00908.md5 freetds-1.2.3/doc/reference/a00908.md5 --- freetds-1.1.6/doc/reference/a00908.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00908.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3715267871a6d98b91cc7afe25bb70c6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00908.svg freetds-1.2.3/doc/reference/a00908.svg --- freetds-1.1.6/doc/reference/a00908.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00908.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -_DBREMOTE_PROC_PARAM - - -Node1 - -_DBREMOTE_PROC_PARAM - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00909.html freetds-1.2.3/doc/reference/a00909.html --- freetds-1.1.6/doc/reference/a00909.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00909.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBPROC_ROWBUF Member List
    +
    +
    + +

    This is the complete list of members for DBPROC_ROWBUF, including all inherited members.

    + + + + + + + +
    capacity (defined in DBPROC_ROWBUF)DBPROC_ROWBUF
    current (defined in DBPROC_ROWBUF)DBPROC_ROWBUF
    head (defined in DBPROC_ROWBUF)DBPROC_ROWBUF
    received (defined in DBPROC_ROWBUF)DBPROC_ROWBUF
    rows (defined in DBPROC_ROWBUF)DBPROC_ROWBUF
    tail (defined in DBPROC_ROWBUF)DBPROC_ROWBUF
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00910.html freetds-1.2.3/doc/reference/a00910.html --- freetds-1.1.6/doc/reference/a00910.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00910.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: _DBREMOTE_PROC_PARAM Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _DBREMOTE_PROC_PARAM Struct Reference
    -
    -
    -
    -Collaboration diagram for _DBREMOTE_PROC_PARAM:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBINT datalen
     
    -DBINT maxlen
     
    -char * name
     
    -struct _DBREMOTE_PROC_PARAMnext
     
    -BYTE status
     
    -TDS_SERVER_TYPE type
     
    -BYTE * value
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00910.map freetds-1.2.3/doc/reference/a00910.map --- freetds-1.1.6/doc/reference/a00910.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00910.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00910.md5 freetds-1.2.3/doc/reference/a00910.md5 --- freetds-1.1.6/doc/reference/a00910.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00910.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +697dbb4e0c56fd1184750c36ff4dd61e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00910.svg freetds-1.2.3/doc/reference/a00910.svg --- freetds-1.1.6/doc/reference/a00910.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00910.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + +DBPROC_ROWBUF + + + +Node1 + + +DBPROC_ROWBUF + + + + + +Node2 + + +dblib_buffer_row + + + + + +Node2->Node1 + + + rows + + + +Node3 + + +tds_result_info + + + + + +Node3->Node2 + + + resinfo + + + +Node4 + + +tds_socket + + + + + +Node3->Node4 + + + param_info +current_results +res_info +comp_info + + + +Node4->Node3 + + + attached_to + + + +Node23 + + +tds_column + + + + + +Node23->Node3 + + + columns + + + diff -Nru freetds-1.1.6/doc/reference/a00911.html freetds-1.2.3/doc/reference/a00911.html --- freetds-1.1.6/doc/reference/a00911.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00911.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _DBREMOTE_PROC Member List
    -
    -
    - -

    This is the complete list of members for _DBREMOTE_PROC, including all inherited members.

    - - - - - -
    name (defined in _DBREMOTE_PROC)_DBREMOTE_PROC
    next (defined in _DBREMOTE_PROC)_DBREMOTE_PROC
    options (defined in _DBREMOTE_PROC)_DBREMOTE_PROC
    param_list (defined in _DBREMOTE_PROC)_DBREMOTE_PROC
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00912.html freetds-1.2.3/doc/reference/a00912.html --- freetds-1.1.6/doc/reference/a00912.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00912.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,110 @@ + + + + + + + +FreeTDS API: DBPROC_ROWBUF Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBPROC_ROWBUF Struct Reference
    +
    +
    +
    +Collaboration diagram for DBPROC_ROWBUF:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + +

    +Public Attributes

    +int capacity
     
    +int current
     
    +int head
     
    +int received
     
    +struct dblib_buffer_rowrows
     
    +int tail
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00912.map freetds-1.2.3/doc/reference/a00912.map --- freetds-1.1.6/doc/reference/a00912.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00912.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00912.md5 freetds-1.2.3/doc/reference/a00912.md5 --- freetds-1.1.6/doc/reference/a00912.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00912.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3ea947e29bf9f2bfb119068d636404c4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00912.svg freetds-1.2.3/doc/reference/a00912.svg --- freetds-1.1.6/doc/reference/a00912.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00912.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -_DBREMOTE_PROC - - -Node1 - -_DBREMOTE_PROC - - -Node1->Node1 - - - next - - -Node2 - - -_DBREMOTE_PROC_PARAM - - - - -Node2->Node1 - - - param_list - - -Node2->Node2 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a00913.html freetds-1.2.3/doc/reference/a00913.html --- freetds-1.1.6/doc/reference/a00913.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00913.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    BCP_HOSTCOLINFO Member List
    +
    +
    + +

    This is the complete list of members for BCP_HOSTCOLINFO, including all inherited members.

    + + + + + + + + + +
    column_error (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    column_len (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    datatype (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    host_column (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    prefix_len (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    tab_colnum (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    term_len (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    terminator (defined in BCP_HOSTCOLINFO)BCP_HOSTCOLINFO
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00914.html freetds-1.2.3/doc/reference/a00914.html --- freetds-1.1.6/doc/reference/a00914.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00914.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: _DBREMOTE_PROC Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _DBREMOTE_PROC Struct Reference
    -
    -
    -
    -Collaboration diagram for _DBREMOTE_PROC:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -char * name
     
    -struct _DBREMOTE_PROCnext
     
    -DBSMALLINT options
     
    -DBREMOTE_PROC_PARAMparam_list
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00915.html freetds-1.2.3/doc/reference/a00915.html --- freetds-1.1.6/doc/reference/a00915.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00915.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    dboption Member List
    -
    -
    - -

    This is the complete list of members for dboption, including all inherited members.

    - - - - -
    factive (defined in dboption)dboption
    param (defined in dboption)dboption
    text (defined in dboption)dboption
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00916.html freetds-1.2.3/doc/reference/a00916.html --- freetds-1.1.6/doc/reference/a00916.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00916.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,110 @@ + + + + + + + +FreeTDS API: BCP_HOSTCOLINFO Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    BCP_HOSTCOLINFO Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +int column_error
     
    +DBINT column_len
     
    +TDS_SERVER_TYPE datatype
     
    +int host_column
     
    +int prefix_len
     
    +int tab_colnum
     
    +int term_len
     
    +BYTE * terminator
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00916.map freetds-1.2.3/doc/reference/a00916.map --- freetds-1.1.6/doc/reference/a00916.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00916.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00916.md5 freetds-1.2.3/doc/reference/a00916.md5 --- freetds-1.1.6/doc/reference/a00916.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00916.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -590abd2039c77084ef0d7f4aa9a905b8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00916.svg freetds-1.2.3/doc/reference/a00916.svg --- freetds-1.1.6/doc/reference/a00916.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00916.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ - - - - - - -dboption - - -Node1 - -dboption - - -Node2 - - -dbstring - - - - -Node2->Node1 - - - param - - -Node2->Node2 - - - strnext - - - diff -Nru freetds-1.1.6/doc/reference/a00917.html freetds-1.2.3/doc/reference/a00917.html --- freetds-1.1.6/doc/reference/a00917.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00917.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,88 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    BCP_HOSTFILEINFO Member List
    +
    +
    + +

    This is the complete list of members for BCP_HOSTFILEINFO, including all inherited members.

    + + + + + + + + + + +
    batch (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    bcp_errfileptr (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    errorfile (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    firstrow (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    host_colcount (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    host_columns (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    hostfile (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    lastrow (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    maxerrs (defined in BCP_HOSTFILEINFO)BCP_HOSTFILEINFO
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00918.html freetds-1.2.3/doc/reference/a00918.html --- freetds-1.1.6/doc/reference/a00918.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00918.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: dboption Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    dboption Struct Reference
    -
    -
    -
    -Collaboration diagram for dboption:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -DBBOOL factive
     
    -DBSTRINGparam
     
    -const char * text
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00918.map freetds-1.2.3/doc/reference/a00918.map --- freetds-1.1.6/doc/reference/a00918.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00918.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00918.md5 freetds-1.2.3/doc/reference/a00918.md5 --- freetds-1.1.6/doc/reference/a00918.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00918.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f89577f690ad58db72edfc2679b9c3f8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00918.svg freetds-1.2.3/doc/reference/a00918.svg --- freetds-1.1.6/doc/reference/a00918.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00918.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +BCP_HOSTFILEINFO + + + +Node1 + + +BCP_HOSTFILEINFO + + + + + +Node2 + + +BCP_HOSTCOLINFO + + + + + +Node2->Node1 + + + host_columns + + + diff -Nru freetds-1.1.6/doc/reference/a00919.html freetds-1.2.3/doc/reference/a00919.html --- freetds-1.1.6/doc/reference/a00919.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00919.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _null_representation Member List
    -
    -
    - -

    This is the complete list of members for _null_representation, including all inherited members.

    - - - -
    bindval (defined in _null_representation)_null_representation
    len (defined in _null_representation)_null_representation
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00920.html freetds-1.2.3/doc/reference/a00920.html --- freetds-1.1.6/doc/reference/a00920.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00920.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,119 @@ + + + + + + + +FreeTDS API: BCP_HOSTFILEINFO Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    BCP_HOSTFILEINFO Struct Reference
    +
    +
    +
    +Collaboration diagram for BCP_HOSTFILEINFO:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_INT batch
     
    +FILE * bcp_errfileptr
     
    +TDS_CHAR * errorfile
     
    +TDS_INT firstrow
     
    +TDS_INT host_colcount
     
    +BCP_HOSTCOLINFO ** host_columns
     
    +TDS_CHAR * hostfile
     
    +TDS_INT lastrow
     
    +TDS_INT maxerrs
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00921.html freetds-1.2.3/doc/reference/a00921.html --- freetds-1.1.6/doc/reference/a00921.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00921.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBREMOTE_PROC_PARAM Member List
    +
    +
    + +

    This is the complete list of members for DBREMOTE_PROC_PARAM, including all inherited members.

    + + + + + + + + +
    datalen (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    maxlen (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    name (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    next (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    status (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    type (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    value (defined in DBREMOTE_PROC_PARAM)DBREMOTE_PROC_PARAM
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00922.html freetds-1.2.3/doc/reference/a00922.html --- freetds-1.1.6/doc/reference/a00922.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00922.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _null_representation Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _null_representation Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -const BYTE * bindval
     
    -size_t len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00922.map freetds-1.2.3/doc/reference/a00922.map --- freetds-1.1.6/doc/reference/a00922.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00922.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a00922.md5 freetds-1.2.3/doc/reference/a00922.md5 --- freetds-1.1.6/doc/reference/a00922.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00922.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +4a339a92a39c37ad00c1c704566652ee \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00922.svg freetds-1.2.3/doc/reference/a00922.svg --- freetds-1.1.6/doc/reference/a00922.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00922.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +DBREMOTE_PROC_PARAM + + + +Node1 + + +DBREMOTE_PROC_PARAM + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00923.html freetds-1.2.3/doc/reference/a00923.html --- freetds-1.1.6/doc/reference/a00923.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00923.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_dblib_dbprocess Member List
    -
    -
    - -

    This is the complete list of members for tds_dblib_dbprocess, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    avail_flag (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    bcpinfo (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    chkintr (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    command_state (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbbuf (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbbufsz (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbcurdb (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dboptcmd (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbopts (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbresults_retcode (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbresults_state (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    envchange_rcv (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    ftos (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    hndlintr (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    hostfileinfo (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    more_results (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    msdblibtds_dblib_dbprocess
    noautofree (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    ntimeouts (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    nullrepstds_dblib_dbprocess
    row_buf (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    row_type (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    rpc (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    servcharset (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    tds_socket (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    text_sent (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    text_size (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    typeinfo (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    user_data (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00924.html freetds-1.2.3/doc/reference/a00924.html --- freetds-1.1.6/doc/reference/a00924.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00924.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: DBREMOTE_PROC_PARAM Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBREMOTE_PROC_PARAM Struct Reference
    +
    +
    +
    +Collaboration diagram for DBREMOTE_PROC_PARAM:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBINT datalen
     
    +DBINT maxlen
     
    +char * name
     
    +struct DBREMOTE_PROC_PARAMnext
     
    +BYTE status
     
    +TDS_SERVER_TYPE type
     
    +BYTE * value
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00924.map freetds-1.2.3/doc/reference/a00924.map --- freetds-1.1.6/doc/reference/a00924.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00924.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00924.md5 freetds-1.2.3/doc/reference/a00924.md5 --- freetds-1.1.6/doc/reference/a00924.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00924.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1dd57a0162fed8d025185871efca36b3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00924.svg freetds-1.2.3/doc/reference/a00924.svg --- freetds-1.1.6/doc/reference/a00924.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00924.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,259 +0,0 @@ - - - - - - -tds_dblib_dbprocess - - -Node1 - -tds_dblib_dbprocess - - -Node2 - - -tag_DBPROC_ROWBUF - - - - -Node2->Node1 - - - row_buf - - -Node3 - - -dblib_buffer_row - - - - -Node3->Node2 - - - rows - - -Node4 - - -tds_result_info - - - - -Node4->Node3 - - - resinfo - - -Node5 - - -tds_socket - - - - -Node4->Node5 - - - param_info -current_results -res_info -comp_info - - -Node31 - - -tds_bcpinfo - - - - -Node4->Node31 - - - bindinfo - - -Node5->Node1 - - - tds_socket - - -Node5->Node4 - - - attached_to - - -Node27 - - -BCP_HOSTFILEINFO - - - - -Node27->Node1 - - - hostfileinfo - - -Node28 - - -BCP_HOSTCOLINFO - - - - -Node28->Node27 - - - host_columns - - -Node29 - - -_DBREMOTE_PROC - - - - -Node29->Node1 - - - rpc - - -Node29->Node29 - - - next - - -Node30 - - -_DBREMOTE_PROC_PARAM - - - - -Node30->Node29 - - - param_list - - -Node30->Node30 - - - next - - -Node31->Node1 - - - bcpinfo - - -Node9 - - -tds_dstr - - - - -Node9->Node31 - - - tablename - - -Node32 - - -dbstring - - - - -Node32->Node1 - - - dboptcmd - - -Node32->Node32 - - - strnext - - -Node33 - - -dboption - - - - -Node32->Node33 - - - param - - -Node33->Node1 - - - dbopts - - -Node34 - - -_null_representation - - - - -Node34->Node1 - - - nullreps - - -Node35 - - -dbtypeinfo - - - - -Node35->Node1 - - - typeinfo - - - diff -Nru freetds-1.1.6/doc/reference/a00925.html freetds-1.2.3/doc/reference/a00925.html --- freetds-1.1.6/doc/reference/a00925.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00925.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBREMOTE_PROC Member List
    +
    +
    + +

    This is the complete list of members for DBREMOTE_PROC, including all inherited members.

    + + + + + +
    name (defined in DBREMOTE_PROC)DBREMOTE_PROC
    next (defined in DBREMOTE_PROC)DBREMOTE_PROC
    options (defined in DBREMOTE_PROC)DBREMOTE_PROC
    param_list (defined in DBREMOTE_PROC)DBREMOTE_PROC
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00926.html freetds-1.2.3/doc/reference/a00926.html --- freetds-1.1.6/doc/reference/a00926.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00926.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,178 +0,0 @@ - - - - - - - -FreeTDS API: tds_dblib_dbprocess Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_dblib_dbprocess Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_dblib_dbprocess:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -unsigned char avail_flag
     
    -TDSBCPINFObcpinfo
     
    -DB_DBCHKINTR_FUNC chkintr
     
    -int command_state
     
    -unsigned char * dbbuf
     
    -int dbbufsz
     
    -char dbcurdb [DBMAXNAME+1]
     
    -DBSTRINGdboptcmd
     
    -DBOPTIONdbopts
     
    -int dbresults_retcode
     
    -DB_RESULT_STATE dbresults_state
     
    -DBUSMALLINT envchange_rcv
     
    -FILE * ftos
     
    -DB_DBHNDLINTR_FUNC hndlintr
     
    -BCP_HOSTFILEINFOhostfileinfo
     
    -int more_results
     
    -int msdblib
     boolean use ms behaviour
     
    -int noautofree
     
    -int ntimeouts
     
    -NULLREP nullreps [MAXBINDTYPES]
     default null values
     
    -DBPROC_ROWBUF row_buf
     
    -STATUS row_type
     
    -DBREMOTE_PROCrpc
     
    -char servcharset [DBMAXNAME+1]
     
    -TDSSOCKETtds_socket
     
    -TDS_INT text_sent
     
    -TDS_INT text_size
     
    -DBTYPEINFO typeinfo
     
    -BYTE * user_data
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00926.map freetds-1.2.3/doc/reference/a00926.map --- freetds-1.1.6/doc/reference/a00926.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00926.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00926.md5 freetds-1.2.3/doc/reference/a00926.md5 --- freetds-1.1.6/doc/reference/a00926.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00926.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +331e6188ad8233178087edba4432725b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00926.svg freetds-1.2.3/doc/reference/a00926.svg --- freetds-1.1.6/doc/reference/a00926.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00926.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + +DBREMOTE_PROC + + + +Node1 + + +DBREMOTE_PROC + + + + + +Node1->Node1 + + + next + + + +Node2 + + +DBREMOTE_PROC_PARAM + + + + + +Node2->Node1 + + + param_list + + + +Node2->Node2 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a00927.html freetds-1.2.3/doc/reference/a00927.html --- freetds-1.1.6/doc/reference/a00927.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00927.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    TDS_MAY_ALIAS Member List
    -
    -
    - -

    This is the complete list of members for TDS_MAY_ALIAS, including all inherited members.

    - - - - -
    uc (defined in TDS_MAY_ALIAS)TDS_MAY_ALIAS
    ui (defined in TDS_MAY_ALIAS)TDS_MAY_ALIAS
    usi (defined in TDS_MAY_ALIAS)TDS_MAY_ALIAS
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00928.html freetds-1.2.3/doc/reference/a00928.html --- freetds-1.1.6/doc/reference/a00928.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00928.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: DBREMOTE_PROC Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBREMOTE_PROC Struct Reference
    +
    +
    +
    +Collaboration diagram for DBREMOTE_PROC:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +char * name
     
    +struct DBREMOTE_PROCnext
     
    +DBSMALLINT options
     
    +DBREMOTE_PROC_PARAMparam_list
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00929.html freetds-1.2.3/doc/reference/a00929.html --- freetds-1.1.6/doc/reference/a00929.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00929.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dboption Member List
    +
    +
    + +

    This is the complete list of members for dboption, including all inherited members.

    + + + + +
    factive (defined in dboption)dboption
    param (defined in dboption)dboption
    text (defined in dboption)dboption
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00930.html freetds-1.2.3/doc/reference/a00930.html --- freetds-1.1.6/doc/reference/a00930.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00930.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: TDS_MAY_ALIAS Union Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    TDS_MAY_ALIAS Union Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -uint8_t uc [2]
     
    -uint32_t ui
     
    -uint16_t usi
     
    -
    The documentation for this union was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00930.map freetds-1.2.3/doc/reference/a00930.map --- freetds-1.1.6/doc/reference/a00930.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00930.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00930.md5 freetds-1.2.3/doc/reference/a00930.md5 --- freetds-1.1.6/doc/reference/a00930.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00930.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b0e27294896834cc623ed15cada50768 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00930.svg freetds-1.2.3/doc/reference/a00930.svg --- freetds-1.1.6/doc/reference/a00930.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00930.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + + +dboption + + + +Node1 + + +dboption + + + + + +Node2 + + +dbstring + + + + + +Node2->Node1 + + + param + + + +Node2->Node2 + + + strnext + + + diff -Nru freetds-1.1.6/doc/reference/a00931.html freetds-1.2.3/doc/reference/a00931.html --- freetds-1.1.6/doc/reference/a00931.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00931.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    conv_result Member List
    -
    -
    - -

    This is the complete list of members for conv_result, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    bi (defined in conv_result)conv_result
    bigdatetime (defined in conv_result)conv_result
    bigtime (defined in conv_result)conv_result
    c (defined in conv_result)conv_result
    cb (defined in conv_result)conv_result
    cc (defined in conv_result)conv_result
    date (defined in conv_result)conv_result
    dt (defined in conv_result)conv_result
    dt4 (defined in conv_result)conv_result
    dta (defined in conv_result)conv_result
    f (defined in conv_result)conv_result
    i (defined in conv_result)conv_result
    ib (defined in conv_result)conv_result
    m (defined in conv_result)conv_result
    m4 (defined in conv_result)conv_result
    n (defined in conv_result)conv_result
    r (defined in conv_result)conv_result
    si (defined in conv_result)conv_result
    ti (defined in conv_result)conv_result
    time (defined in conv_result)conv_result
    u (defined in conv_result)conv_result
    ubi (defined in conv_result)conv_result
    ui (defined in conv_result)conv_result
    usi (defined in conv_result)conv_result
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00932.html freetds-1.2.3/doc/reference/a00932.html --- freetds-1.1.6/doc/reference/a00932.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00932.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: dboption Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dboption Struct Reference
    +
    +
    +
    +Collaboration diagram for dboption:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +DBBOOL factive
     
    +DBSTRINGparam
     
    +const char * text
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00932.map freetds-1.2.3/doc/reference/a00932.map --- freetds-1.1.6/doc/reference/a00932.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00932.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00932.md5 freetds-1.2.3/doc/reference/a00932.md5 --- freetds-1.1.6/doc/reference/a00932.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00932.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f37a791e7f2e1318d908c871048c8728 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00932.svg freetds-1.2.3/doc/reference/a00932.svg --- freetds-1.1.6/doc/reference/a00932.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00932.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,158 +0,0 @@ - - - - - - -conv_result - - -Node1 - -conv_result - - -Node2 - - -TDS_DATETIMEALL - - - - -Node2->Node1 - - - dta - - -Node3 - - -conv_result::cc_t - - - - -Node3->Node1 - - - cc - - -Node4 - - -conv_result::cb_t - - - - -Node4->Node1 - - - cb - - -Node5 - - -tdsunique - - - - -Node5->Node1 - - - u - - -Node6 - - -tdsdatetime - - - - -Node6->Node1 - - - dt - - -Node7 - - -tdsmoney - - - - -Node7->Node1 - - - m - - -Node8 - - -tdsoldmoney - - - - -Node8->Node7 - - - tdsoldmoney - - -Node9 - - -tdsnumeric - - - - -Node9->Node1 - - - n - - -Node10 - - -tdsmoney4 - - - - -Node10->Node1 - - - m4 - - -Node11 - - -tdsdatetime4 - - - - -Node11->Node1 - - - dt4 - - - diff -Nru freetds-1.1.6/doc/reference/a00933.html freetds-1.2.3/doc/reference/a00933.html --- freetds-1.1.6/doc/reference/a00933.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00933.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    NULLREP Member List
    +
    +
    + +

    This is the complete list of members for NULLREP, including all inherited members.

    + + + +
    bindval (defined in NULLREP)NULLREP
    len (defined in NULLREP)NULLREP
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00934.html freetds-1.2.3/doc/reference/a00934.html --- freetds-1.1.6/doc/reference/a00934.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00934.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ - - - - - - - -FreeTDS API: conv_result Union Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    conv_result Union Reference
    -
    -
    -
    -Collaboration diagram for conv_result:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Classes

    struct  cb_t
     
    struct  cc_t
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_INT8 bi
     
    -TDS_BIGDATETIME bigdatetime
     
    -TDS_BIGTIME bigtime
     
    -TDS_CHAR * c
     
    -struct conv_result::cb_t cb
     
    -struct conv_result::cc_t cc
     
    -TDS_DATE date
     
    -TDS_DATETIME dt
     
    -TDS_DATETIME4 dt4
     
    -TDS_DATETIMEALL dta
     
    -TDS_FLOAT f
     
    -TDS_INT i
     
    -TDS_CHAR * ib
     
    -TDS_MONEY m
     
    -TDS_MONEY4 m4
     
    -TDS_NUMERIC n
     
    -TDS_REAL r
     
    -TDS_SMALLINT si
     
    -TDS_TINYINT ti
     
    -TDS_TIME time
     
    -TDS_UNIQUE u
     
    -TDS_UINT8 ubi
     
    -TDS_UINT ui
     
    -TDS_USMALLINT usi
     
    -
    The documentation for this union was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00935.html freetds-1.2.3/doc/reference/a00935.html --- freetds-1.1.6/doc/reference/a00935.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00935.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    conv_result::cc_t Member List
    -
    -
    - -

    This is the complete list of members for conv_result::cc_t, including all inherited members.

    - - - -
    c (defined in conv_result::cc_t)conv_result::cc_t
    len (defined in conv_result::cc_t)conv_result::cc_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00936.html freetds-1.2.3/doc/reference/a00936.html --- freetds-1.1.6/doc/reference/a00936.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00936.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: NULLREP Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    NULLREP Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +const BYTE * bindval
     
    +size_t len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00937.html freetds-1.2.3/doc/reference/a00937.html --- freetds-1.1.6/doc/reference/a00937.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00937.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_dblib_dbprocess Member List
    +
    +
    + +

    This is the complete list of members for tds_dblib_dbprocess, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    avail_flag (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    bcpinfo (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    chkintr (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    command_state (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbbuf (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbbufsz (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbcurdb (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dboptcmd (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbopts (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbresults_retcode (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    dbresults_state (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    envchange_rcv (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    ftos (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    hndlintr (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    hostfileinfo (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    more_results (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    msdblibtds_dblib_dbprocess
    noautofree (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    ntimeouts (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    nullrepstds_dblib_dbprocess
    row_buf (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    row_type (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    rpc (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    servcharset (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    tds_socket (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    text_sent (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    text_size (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    typeinfo (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    user_data (defined in tds_dblib_dbprocess)tds_dblib_dbprocess
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00938.html freetds-1.2.3/doc/reference/a00938.html --- freetds-1.1.6/doc/reference/a00938.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00938.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - - - -FreeTDS API: conv_result::cc_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    conv_result::cc_t Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -TDS_CHAR * c
     
    -TDS_UINT len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00938.map freetds-1.2.3/doc/reference/a00938.map --- freetds-1.1.6/doc/reference/a00938.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00938.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00938.md5 freetds-1.2.3/doc/reference/a00938.md5 --- freetds-1.1.6/doc/reference/a00938.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00938.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +54b0ac50154439b0963b3f8c2d996d5e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00938.svg freetds-1.2.3/doc/reference/a00938.svg --- freetds-1.1.6/doc/reference/a00938.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00938.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,574 @@ + + + + + + +tds_dblib_dbprocess + + + +Node1 + + +tds_dblib_dbprocess + + + + + +Node2 + + +NULLREP + + + + + +Node2->Node1 + + + nullreps + + + +Node3 + + +BCP_HOSTFILEINFO + + + + + +Node3->Node1 + + + hostfileinfo + + + +Node4 + + +BCP_HOSTCOLINFO + + + + + +Node4->Node3 + + + host_columns + + + +Node5 + + +tds_socket + + + + + +Node5->Node1 + + + tds_socket + + + +Node12 + + +tds_result_info + + + + + +Node5->Node12 + + + attached_to + + + +Node6 + + +tds_login + + + + + +Node6->Node5 + + + login + + + +Node7 + + +tds_capabilities + + + + + +Node7->Node6 + + + capabilities + + + +Node22 + + +tds_connection + + + + + +Node7->Node22 + + + capabilities + + + +Node9 + + +tds_dstr + + + + + +Node9->Node6 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node28 + + +tds_bcpinfo + + + + + +Node9->Node28 + + + tablename + + + +Node10 + + +tds_packet + + + + + +Node10->Node5 + + + frozen_packets +recv_packet +send_packet + + + +Node10->Node10 + + + next + + + +Node10->Node22 + + + packet_cache + + + +Node11 + + +tds_dynamic + + + + + +Node11->Node5 + + + cur_dyn + + + +Node11->Node11 + + + next + + + +Node11->Node22 + + + dyns + + + +Node12->Node5 + + + param_info +current_results +res_info +comp_info + + + +Node12->Node11 + + + res_info +params + + + +Node20 + + +tds_cursor + + + + + +Node12->Node20 + + + res_info + + + +Node12->Node28 + + + bindinfo + + + +Node31 + + +dblib_buffer_row + + + + + +Node12->Node31 + + + resinfo + + + +Node20->Node5 + + + cur_cursor + + + +Node20->Node20 + + + next + + + +Node20->Node22 + + + cursors + + + +Node21 + + +tds_cursor_status + + + + + +Node21->Node20 + + + status + + + +Node22->Node5 + + + conn + + + +Node23 + + +tds_poll_wakeup + + + + + +Node23->Node22 + + + wakeup + + + +Node24 + + +tds_env + + + + + +Node24->Node22 + + + env + + + +Node25 + + +tds_context + + + + + +Node25->Node22 + + + tds_ctx + + + +Node27 + + +tds_authentication + + + + + +Node27->Node22 + + + authentication + + + +Node14 + + +tdsiconvinfo + + + + + +Node14->Node22 + + + char_convs + + + +Node28->Node1 + + + bcpinfo + + + +Node29 + + +dbstring + + + + + +Node29->Node1 + + + dboptcmd + + + +Node29->Node29 + + + strnext + + + +Node32 + + +dboption + + + + + +Node29->Node32 + + + param + + + +Node30 + + +DBPROC_ROWBUF + + + + + +Node30->Node1 + + + row_buf + + + +Node31->Node30 + + + rows + + + +Node32->Node1 + + + dbopts + + + +Node33 + + +DBREMOTE_PROC + + + + + +Node33->Node1 + + + rpc + + + +Node33->Node33 + + + next + + + +Node34 + + +DBREMOTE_PROC_PARAM + + + + + +Node34->Node33 + + + param_list + + + +Node34->Node34 + + + next + + + +Node35 + + +dbtypeinfo + + + + + +Node35->Node1 + + + typeinfo + + + diff -Nru freetds-1.1.6/doc/reference/a00939.html freetds-1.2.3/doc/reference/a00939.html --- freetds-1.1.6/doc/reference/a00939.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00939.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    conv_result::cb_t Member List
    -
    -
    - -

    This is the complete list of members for conv_result::cb_t, including all inherited members.

    - - - -
    ib (defined in conv_result::cb_t)conv_result::cb_t
    len (defined in conv_result::cb_t)conv_result::cb_t
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00940.html freetds-1.2.3/doc/reference/a00940.html --- freetds-1.1.6/doc/reference/a00940.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00940.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,181 @@ + + + + + + + +FreeTDS API: tds_dblib_dbprocess Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_dblib_dbprocess Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_dblib_dbprocess:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +unsigned char avail_flag
     
    +TDSBCPINFObcpinfo
     
    +DB_DBCHKINTR_FUNC chkintr
     
    +int command_state
     
    +unsigned char * dbbuf
     
    +int dbbufsz
     
    +char dbcurdb [DBMAXNAME+1]
     
    +DBSTRINGdboptcmd
     
    +DBOPTIONdbopts
     
    +int dbresults_retcode
     
    +DB_RESULT_STATE dbresults_state
     
    +DBUSMALLINT envchange_rcv
     
    +FILE * ftos
     
    +DB_DBHNDLINTR_FUNC hndlintr
     
    +BCP_HOSTFILEINFOhostfileinfo
     
    +int more_results
     
    +int msdblib
     boolean use ms behaviour
     
    +int noautofree
     
    +int ntimeouts
     
    +NULLREP nullreps [MAXBINDTYPES]
     default null values
     
    +DBPROC_ROWBUF row_buf
     
    +STATUS row_type
     
    +DBREMOTE_PROCrpc
     
    +char servcharset [DBMAXNAME+1]
     
    +TDSSOCKETtds_socket
     
    +TDS_INT text_sent
     
    +TDS_INT text_size
     
    +DBTYPEINFO typeinfo
     
    +BYTE * user_data
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00941.html freetds-1.2.3/doc/reference/a00941.html --- freetds-1.1.6/doc/reference/a00941.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00941.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TDS_MAY_ALIAS Member List
    +
    +
    + +

    This is the complete list of members for TDS_MAY_ALIAS, including all inherited members.

    + + + + +
    uc (defined in TDS_MAY_ALIAS)TDS_MAY_ALIAS
    ui (defined in TDS_MAY_ALIAS)TDS_MAY_ALIAS
    usi (defined in TDS_MAY_ALIAS)TDS_MAY_ALIAS
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00942.html freetds-1.2.3/doc/reference/a00942.html --- freetds-1.1.6/doc/reference/a00942.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00942.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - - - -FreeTDS API: conv_result::cb_t Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    conv_result::cb_t Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -TDS_CHAR * ib
     
    -TDS_UINT len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00943.html freetds-1.2.3/doc/reference/a00943.html --- freetds-1.1.6/doc/reference/a00943.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00943.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _character_set_alias Member List
    -
    -
    - -

    This is the complete list of members for _character_set_alias, including all inherited members.

    - - - -
    alias (defined in _character_set_alias)_character_set_alias
    canonic (defined in _character_set_alias)_character_set_alias
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00944.html freetds-1.2.3/doc/reference/a00944.html --- freetds-1.1.6/doc/reference/a00944.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00944.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: TDS_MAY_ALIAS Union Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TDS_MAY_ALIAS Union Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +uint8_t uc [2]
     
    +uint32_t ui
     
    +uint16_t usi
     
    +
    The documentation for this union was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00945.html freetds-1.2.3/doc/reference/a00945.html --- freetds-1.1.6/doc/reference/a00945.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00945.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    charset_alias Member List
    +
    +
    + +

    This is the complete list of members for charset_alias, including all inherited members.

    + + + +
    alias_pos (defined in charset_alias)charset_alias
    canonic (defined in charset_alias)charset_alias
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00946.html freetds-1.2.3/doc/reference/a00946.html --- freetds-1.1.6/doc/reference/a00946.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00946.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: _character_set_alias Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _character_set_alias Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -const char * alias
     
    -int canonic
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00947.html freetds-1.2.3/doc/reference/a00947.html --- freetds-1.1.6/doc/reference/a00947.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00947.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_errno_message_flags Member List
    -
    -
    - -

    This is the complete list of members for tds_errno_message_flags, including all inherited members.

    - - - - -
    e2big (defined in tds_errno_message_flags)tds_errno_message_flags
    eilseq (defined in tds_errno_message_flags)tds_errno_message_flags
    einval (defined in tds_errno_message_flags)tds_errno_message_flags
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00948.html freetds-1.2.3/doc/reference/a00948.html --- freetds-1.1.6/doc/reference/a00948.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00948.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: charset_alias Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    charset_alias Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +short int alias_pos
     
    +short int canonic
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00949.html freetds-1.2.3/doc/reference/a00949.html --- freetds-1.1.6/doc/reference/a00949.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00949.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,453 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    stringpool_t Member List
    +
    +
    + +

    This is the complete list of members for stringpool_t, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    stringpool_str100 (defined in stringpool_t)stringpool_t
    stringpool_str101 (defined in stringpool_t)stringpool_t
    stringpool_str102 (defined in stringpool_t)stringpool_t
    stringpool_str103 (defined in stringpool_t)stringpool_t
    stringpool_str104 (defined in stringpool_t)stringpool_t
    stringpool_str105 (defined in stringpool_t)stringpool_t
    stringpool_str107 (defined in stringpool_t)stringpool_t
    stringpool_str1079 (defined in stringpool_t)stringpool_t
    stringpool_str108 (defined in stringpool_t)stringpool_t
    stringpool_str109 (defined in stringpool_t)stringpool_t
    stringpool_str110 (defined in stringpool_t)stringpool_t
    stringpool_str111 (defined in stringpool_t)stringpool_t
    stringpool_str113 (defined in stringpool_t)stringpool_t
    stringpool_str115 (defined in stringpool_t)stringpool_t
    stringpool_str116 (defined in stringpool_t)stringpool_t
    stringpool_str118 (defined in stringpool_t)stringpool_t
    stringpool_str120 (defined in stringpool_t)stringpool_t
    stringpool_str121 (defined in stringpool_t)stringpool_t
    stringpool_str122 (defined in stringpool_t)stringpool_t
    stringpool_str123 (defined in stringpool_t)stringpool_t
    stringpool_str124 (defined in stringpool_t)stringpool_t
    stringpool_str127 (defined in stringpool_t)stringpool_t
    stringpool_str128 (defined in stringpool_t)stringpool_t
    stringpool_str129 (defined in stringpool_t)stringpool_t
    stringpool_str133 (defined in stringpool_t)stringpool_t
    stringpool_str135 (defined in stringpool_t)stringpool_t
    stringpool_str136 (defined in stringpool_t)stringpool_t
    stringpool_str137 (defined in stringpool_t)stringpool_t
    stringpool_str140 (defined in stringpool_t)stringpool_t
    stringpool_str141 (defined in stringpool_t)stringpool_t
    stringpool_str142 (defined in stringpool_t)stringpool_t
    stringpool_str143 (defined in stringpool_t)stringpool_t
    stringpool_str144 (defined in stringpool_t)stringpool_t
    stringpool_str145 (defined in stringpool_t)stringpool_t
    stringpool_str146 (defined in stringpool_t)stringpool_t
    stringpool_str148 (defined in stringpool_t)stringpool_t
    stringpool_str149 (defined in stringpool_t)stringpool_t
    stringpool_str15 (defined in stringpool_t)stringpool_t
    stringpool_str150 (defined in stringpool_t)stringpool_t
    stringpool_str151 (defined in stringpool_t)stringpool_t
    stringpool_str152 (defined in stringpool_t)stringpool_t
    stringpool_str153 (defined in stringpool_t)stringpool_t
    stringpool_str154 (defined in stringpool_t)stringpool_t
    stringpool_str155 (defined in stringpool_t)stringpool_t
    stringpool_str156 (defined in stringpool_t)stringpool_t
    stringpool_str157 (defined in stringpool_t)stringpool_t
    stringpool_str158 (defined in stringpool_t)stringpool_t
    stringpool_str16 (defined in stringpool_t)stringpool_t
    stringpool_str161 (defined in stringpool_t)stringpool_t
    stringpool_str164 (defined in stringpool_t)stringpool_t
    stringpool_str167 (defined in stringpool_t)stringpool_t
    stringpool_str17 (defined in stringpool_t)stringpool_t
    stringpool_str170 (defined in stringpool_t)stringpool_t
    stringpool_str171 (defined in stringpool_t)stringpool_t
    stringpool_str173 (defined in stringpool_t)stringpool_t
    stringpool_str174 (defined in stringpool_t)stringpool_t
    stringpool_str176 (defined in stringpool_t)stringpool_t
    stringpool_str177 (defined in stringpool_t)stringpool_t
    stringpool_str178 (defined in stringpool_t)stringpool_t
    stringpool_str179 (defined in stringpool_t)stringpool_t
    stringpool_str183 (defined in stringpool_t)stringpool_t
    stringpool_str185 (defined in stringpool_t)stringpool_t
    stringpool_str186 (defined in stringpool_t)stringpool_t
    stringpool_str189 (defined in stringpool_t)stringpool_t
    stringpool_str190 (defined in stringpool_t)stringpool_t
    stringpool_str191 (defined in stringpool_t)stringpool_t
    stringpool_str192 (defined in stringpool_t)stringpool_t
    stringpool_str193 (defined in stringpool_t)stringpool_t
    stringpool_str194 (defined in stringpool_t)stringpool_t
    stringpool_str195 (defined in stringpool_t)stringpool_t
    stringpool_str196 (defined in stringpool_t)stringpool_t
    stringpool_str197 (defined in stringpool_t)stringpool_t
    stringpool_str198 (defined in stringpool_t)stringpool_t
    stringpool_str199 (defined in stringpool_t)stringpool_t
    stringpool_str200 (defined in stringpool_t)stringpool_t
    stringpool_str201 (defined in stringpool_t)stringpool_t
    stringpool_str202 (defined in stringpool_t)stringpool_t
    stringpool_str203 (defined in stringpool_t)stringpool_t
    stringpool_str204 (defined in stringpool_t)stringpool_t
    stringpool_str205 (defined in stringpool_t)stringpool_t
    stringpool_str207 (defined in stringpool_t)stringpool_t
    stringpool_str208 (defined in stringpool_t)stringpool_t
    stringpool_str209 (defined in stringpool_t)stringpool_t
    stringpool_str210 (defined in stringpool_t)stringpool_t
    stringpool_str211 (defined in stringpool_t)stringpool_t
    stringpool_str212 (defined in stringpool_t)stringpool_t
    stringpool_str213 (defined in stringpool_t)stringpool_t
    stringpool_str214 (defined in stringpool_t)stringpool_t
    stringpool_str216 (defined in stringpool_t)stringpool_t
    stringpool_str217 (defined in stringpool_t)stringpool_t
    stringpool_str218 (defined in stringpool_t)stringpool_t
    stringpool_str219 (defined in stringpool_t)stringpool_t
    stringpool_str220 (defined in stringpool_t)stringpool_t
    stringpool_str223 (defined in stringpool_t)stringpool_t
    stringpool_str225 (defined in stringpool_t)stringpool_t
    stringpool_str226 (defined in stringpool_t)stringpool_t
    stringpool_str227 (defined in stringpool_t)stringpool_t
    stringpool_str228 (defined in stringpool_t)stringpool_t
    stringpool_str229 (defined in stringpool_t)stringpool_t
    stringpool_str230 (defined in stringpool_t)stringpool_t
    stringpool_str231 (defined in stringpool_t)stringpool_t
    stringpool_str232 (defined in stringpool_t)stringpool_t
    stringpool_str233 (defined in stringpool_t)stringpool_t
    stringpool_str234 (defined in stringpool_t)stringpool_t
    stringpool_str235 (defined in stringpool_t)stringpool_t
    stringpool_str236 (defined in stringpool_t)stringpool_t
    stringpool_str237 (defined in stringpool_t)stringpool_t
    stringpool_str239 (defined in stringpool_t)stringpool_t
    stringpool_str240 (defined in stringpool_t)stringpool_t
    stringpool_str242 (defined in stringpool_t)stringpool_t
    stringpool_str243 (defined in stringpool_t)stringpool_t
    stringpool_str247 (defined in stringpool_t)stringpool_t
    stringpool_str248 (defined in stringpool_t)stringpool_t
    stringpool_str250 (defined in stringpool_t)stringpool_t
    stringpool_str252 (defined in stringpool_t)stringpool_t
    stringpool_str253 (defined in stringpool_t)stringpool_t
    stringpool_str255 (defined in stringpool_t)stringpool_t
    stringpool_str258 (defined in stringpool_t)stringpool_t
    stringpool_str260 (defined in stringpool_t)stringpool_t
    stringpool_str261 (defined in stringpool_t)stringpool_t
    stringpool_str262 (defined in stringpool_t)stringpool_t
    stringpool_str263 (defined in stringpool_t)stringpool_t
    stringpool_str265 (defined in stringpool_t)stringpool_t
    stringpool_str266 (defined in stringpool_t)stringpool_t
    stringpool_str27 (defined in stringpool_t)stringpool_t
    stringpool_str270 (defined in stringpool_t)stringpool_t
    stringpool_str271 (defined in stringpool_t)stringpool_t
    stringpool_str273 (defined in stringpool_t)stringpool_t
    stringpool_str274 (defined in stringpool_t)stringpool_t
    stringpool_str275 (defined in stringpool_t)stringpool_t
    stringpool_str279 (defined in stringpool_t)stringpool_t
    stringpool_str28 (defined in stringpool_t)stringpool_t
    stringpool_str280 (defined in stringpool_t)stringpool_t
    stringpool_str281 (defined in stringpool_t)stringpool_t
    stringpool_str283 (defined in stringpool_t)stringpool_t
    stringpool_str284 (defined in stringpool_t)stringpool_t
    stringpool_str285 (defined in stringpool_t)stringpool_t
    stringpool_str288 (defined in stringpool_t)stringpool_t
    stringpool_str289 (defined in stringpool_t)stringpool_t
    stringpool_str290 (defined in stringpool_t)stringpool_t
    stringpool_str291 (defined in stringpool_t)stringpool_t
    stringpool_str292 (defined in stringpool_t)stringpool_t
    stringpool_str293 (defined in stringpool_t)stringpool_t
    stringpool_str294 (defined in stringpool_t)stringpool_t
    stringpool_str295 (defined in stringpool_t)stringpool_t
    stringpool_str297 (defined in stringpool_t)stringpool_t
    stringpool_str298 (defined in stringpool_t)stringpool_t
    stringpool_str30 (defined in stringpool_t)stringpool_t
    stringpool_str301 (defined in stringpool_t)stringpool_t
    stringpool_str302 (defined in stringpool_t)stringpool_t
    stringpool_str303 (defined in stringpool_t)stringpool_t
    stringpool_str304 (defined in stringpool_t)stringpool_t
    stringpool_str305 (defined in stringpool_t)stringpool_t
    stringpool_str306 (defined in stringpool_t)stringpool_t
    stringpool_str307 (defined in stringpool_t)stringpool_t
    stringpool_str308 (defined in stringpool_t)stringpool_t
    stringpool_str309 (defined in stringpool_t)stringpool_t
    stringpool_str31 (defined in stringpool_t)stringpool_t
    stringpool_str310 (defined in stringpool_t)stringpool_t
    stringpool_str312 (defined in stringpool_t)stringpool_t
    stringpool_str313 (defined in stringpool_t)stringpool_t
    stringpool_str314 (defined in stringpool_t)stringpool_t
    stringpool_str318 (defined in stringpool_t)stringpool_t
    stringpool_str319 (defined in stringpool_t)stringpool_t
    stringpool_str320 (defined in stringpool_t)stringpool_t
    stringpool_str321 (defined in stringpool_t)stringpool_t
    stringpool_str324 (defined in stringpool_t)stringpool_t
    stringpool_str326 (defined in stringpool_t)stringpool_t
    stringpool_str329 (defined in stringpool_t)stringpool_t
    stringpool_str331 (defined in stringpool_t)stringpool_t
    stringpool_str333 (defined in stringpool_t)stringpool_t
    stringpool_str334 (defined in stringpool_t)stringpool_t
    stringpool_str335 (defined in stringpool_t)stringpool_t
    stringpool_str336 (defined in stringpool_t)stringpool_t
    stringpool_str337 (defined in stringpool_t)stringpool_t
    stringpool_str338 (defined in stringpool_t)stringpool_t
    stringpool_str339 (defined in stringpool_t)stringpool_t
    stringpool_str340 (defined in stringpool_t)stringpool_t
    stringpool_str342 (defined in stringpool_t)stringpool_t
    stringpool_str345 (defined in stringpool_t)stringpool_t
    stringpool_str347 (defined in stringpool_t)stringpool_t
    stringpool_str349 (defined in stringpool_t)stringpool_t
    stringpool_str35 (defined in stringpool_t)stringpool_t
    stringpool_str350 (defined in stringpool_t)stringpool_t
    stringpool_str351 (defined in stringpool_t)stringpool_t
    stringpool_str352 (defined in stringpool_t)stringpool_t
    stringpool_str353 (defined in stringpool_t)stringpool_t
    stringpool_str354 (defined in stringpool_t)stringpool_t
    stringpool_str355 (defined in stringpool_t)stringpool_t
    stringpool_str356 (defined in stringpool_t)stringpool_t
    stringpool_str357 (defined in stringpool_t)stringpool_t
    stringpool_str358 (defined in stringpool_t)stringpool_t
    stringpool_str359 (defined in stringpool_t)stringpool_t
    stringpool_str36 (defined in stringpool_t)stringpool_t
    stringpool_str360 (defined in stringpool_t)stringpool_t
    stringpool_str361 (defined in stringpool_t)stringpool_t
    stringpool_str362 (defined in stringpool_t)stringpool_t
    stringpool_str364 (defined in stringpool_t)stringpool_t
    stringpool_str365 (defined in stringpool_t)stringpool_t
    stringpool_str366 (defined in stringpool_t)stringpool_t
    stringpool_str368 (defined in stringpool_t)stringpool_t
    stringpool_str369 (defined in stringpool_t)stringpool_t
    stringpool_str371 (defined in stringpool_t)stringpool_t
    stringpool_str374 (defined in stringpool_t)stringpool_t
    stringpool_str377 (defined in stringpool_t)stringpool_t
    stringpool_str379 (defined in stringpool_t)stringpool_t
    stringpool_str38 (defined in stringpool_t)stringpool_t
    stringpool_str380 (defined in stringpool_t)stringpool_t
    stringpool_str381 (defined in stringpool_t)stringpool_t
    stringpool_str383 (defined in stringpool_t)stringpool_t
    stringpool_str384 (defined in stringpool_t)stringpool_t
    stringpool_str387 (defined in stringpool_t)stringpool_t
    stringpool_str389 (defined in stringpool_t)stringpool_t
    stringpool_str39 (defined in stringpool_t)stringpool_t
    stringpool_str392 (defined in stringpool_t)stringpool_t
    stringpool_str393 (defined in stringpool_t)stringpool_t
    stringpool_str394 (defined in stringpool_t)stringpool_t
    stringpool_str395 (defined in stringpool_t)stringpool_t
    stringpool_str396 (defined in stringpool_t)stringpool_t
    stringpool_str397 (defined in stringpool_t)stringpool_t
    stringpool_str398 (defined in stringpool_t)stringpool_t
    stringpool_str40 (defined in stringpool_t)stringpool_t
    stringpool_str401 (defined in stringpool_t)stringpool_t
    stringpool_str402 (defined in stringpool_t)stringpool_t
    stringpool_str409 (defined in stringpool_t)stringpool_t
    stringpool_str41 (defined in stringpool_t)stringpool_t
    stringpool_str411 (defined in stringpool_t)stringpool_t
    stringpool_str415 (defined in stringpool_t)stringpool_t
    stringpool_str418 (defined in stringpool_t)stringpool_t
    stringpool_str42 (defined in stringpool_t)stringpool_t
    stringpool_str422 (defined in stringpool_t)stringpool_t
    stringpool_str428 (defined in stringpool_t)stringpool_t
    stringpool_str429 (defined in stringpool_t)stringpool_t
    stringpool_str43 (defined in stringpool_t)stringpool_t
    stringpool_str434 (defined in stringpool_t)stringpool_t
    stringpool_str435 (defined in stringpool_t)stringpool_t
    stringpool_str436 (defined in stringpool_t)stringpool_t
    stringpool_str438 (defined in stringpool_t)stringpool_t
    stringpool_str44 (defined in stringpool_t)stringpool_t
    stringpool_str441 (defined in stringpool_t)stringpool_t
    stringpool_str444 (defined in stringpool_t)stringpool_t
    stringpool_str445 (defined in stringpool_t)stringpool_t
    stringpool_str446 (defined in stringpool_t)stringpool_t
    stringpool_str448 (defined in stringpool_t)stringpool_t
    stringpool_str45 (defined in stringpool_t)stringpool_t
    stringpool_str450 (defined in stringpool_t)stringpool_t
    stringpool_str452 (defined in stringpool_t)stringpool_t
    stringpool_str454 (defined in stringpool_t)stringpool_t
    stringpool_str455 (defined in stringpool_t)stringpool_t
    stringpool_str46 (defined in stringpool_t)stringpool_t
    stringpool_str460 (defined in stringpool_t)stringpool_t
    stringpool_str461 (defined in stringpool_t)stringpool_t
    stringpool_str462 (defined in stringpool_t)stringpool_t
    stringpool_str463 (defined in stringpool_t)stringpool_t
    stringpool_str464 (defined in stringpool_t)stringpool_t
    stringpool_str465 (defined in stringpool_t)stringpool_t
    stringpool_str467 (defined in stringpool_t)stringpool_t
    stringpool_str47 (defined in stringpool_t)stringpool_t
    stringpool_str470 (defined in stringpool_t)stringpool_t
    stringpool_str472 (defined in stringpool_t)stringpool_t
    stringpool_str474 (defined in stringpool_t)stringpool_t
    stringpool_str475 (defined in stringpool_t)stringpool_t
    stringpool_str476 (defined in stringpool_t)stringpool_t
    stringpool_str479 (defined in stringpool_t)stringpool_t
    stringpool_str48 (defined in stringpool_t)stringpool_t
    stringpool_str480 (defined in stringpool_t)stringpool_t
    stringpool_str483 (defined in stringpool_t)stringpool_t
    stringpool_str484 (defined in stringpool_t)stringpool_t
    stringpool_str485 (defined in stringpool_t)stringpool_t
    stringpool_str486 (defined in stringpool_t)stringpool_t
    stringpool_str487 (defined in stringpool_t)stringpool_t
    stringpool_str488 (defined in stringpool_t)stringpool_t
    stringpool_str489 (defined in stringpool_t)stringpool_t
    stringpool_str490 (defined in stringpool_t)stringpool_t
    stringpool_str491 (defined in stringpool_t)stringpool_t
    stringpool_str494 (defined in stringpool_t)stringpool_t
    stringpool_str496 (defined in stringpool_t)stringpool_t
    stringpool_str50 (defined in stringpool_t)stringpool_t
    stringpool_str500 (defined in stringpool_t)stringpool_t
    stringpool_str503 (defined in stringpool_t)stringpool_t
    stringpool_str504 (defined in stringpool_t)stringpool_t
    stringpool_str505 (defined in stringpool_t)stringpool_t
    stringpool_str506 (defined in stringpool_t)stringpool_t
    stringpool_str507 (defined in stringpool_t)stringpool_t
    stringpool_str509 (defined in stringpool_t)stringpool_t
    stringpool_str511 (defined in stringpool_t)stringpool_t
    stringpool_str514 (defined in stringpool_t)stringpool_t
    stringpool_str515 (defined in stringpool_t)stringpool_t
    stringpool_str516 (defined in stringpool_t)stringpool_t
    stringpool_str520 (defined in stringpool_t)stringpool_t
    stringpool_str521 (defined in stringpool_t)stringpool_t
    stringpool_str522 (defined in stringpool_t)stringpool_t
    stringpool_str523 (defined in stringpool_t)stringpool_t
    stringpool_str528 (defined in stringpool_t)stringpool_t
    stringpool_str531 (defined in stringpool_t)stringpool_t
    stringpool_str534 (defined in stringpool_t)stringpool_t
    stringpool_str541 (defined in stringpool_t)stringpool_t
    stringpool_str546 (defined in stringpool_t)stringpool_t
    stringpool_str547 (defined in stringpool_t)stringpool_t
    stringpool_str548 (defined in stringpool_t)stringpool_t
    stringpool_str549 (defined in stringpool_t)stringpool_t
    stringpool_str553 (defined in stringpool_t)stringpool_t
    stringpool_str555 (defined in stringpool_t)stringpool_t
    stringpool_str557 (defined in stringpool_t)stringpool_t
    stringpool_str56 (defined in stringpool_t)stringpool_t
    stringpool_str560 (defined in stringpool_t)stringpool_t
    stringpool_str561 (defined in stringpool_t)stringpool_t
    stringpool_str563 (defined in stringpool_t)stringpool_t
    stringpool_str564 (defined in stringpool_t)stringpool_t
    stringpool_str57 (defined in stringpool_t)stringpool_t
    stringpool_str571 (defined in stringpool_t)stringpool_t
    stringpool_str572 (defined in stringpool_t)stringpool_t
    stringpool_str575 (defined in stringpool_t)stringpool_t
    stringpool_str577 (defined in stringpool_t)stringpool_t
    stringpool_str581 (defined in stringpool_t)stringpool_t
    stringpool_str582 (defined in stringpool_t)stringpool_t
    stringpool_str583 (defined in stringpool_t)stringpool_t
    stringpool_str584 (defined in stringpool_t)stringpool_t
    stringpool_str591 (defined in stringpool_t)stringpool_t
    stringpool_str594 (defined in stringpool_t)stringpool_t
    stringpool_str596 (defined in stringpool_t)stringpool_t
    stringpool_str60 (defined in stringpool_t)stringpool_t
    stringpool_str602 (defined in stringpool_t)stringpool_t
    stringpool_str605 (defined in stringpool_t)stringpool_t
    stringpool_str607 (defined in stringpool_t)stringpool_t
    stringpool_str614 (defined in stringpool_t)stringpool_t
    stringpool_str617 (defined in stringpool_t)stringpool_t
    stringpool_str620 (defined in stringpool_t)stringpool_t
    stringpool_str625 (defined in stringpool_t)stringpool_t
    stringpool_str63 (defined in stringpool_t)stringpool_t
    stringpool_str637 (defined in stringpool_t)stringpool_t
    stringpool_str641 (defined in stringpool_t)stringpool_t
    stringpool_str645 (defined in stringpool_t)stringpool_t
    stringpool_str65 (defined in stringpool_t)stringpool_t
    stringpool_str651 (defined in stringpool_t)stringpool_t
    stringpool_str658 (defined in stringpool_t)stringpool_t
    stringpool_str66 (defined in stringpool_t)stringpool_t
    stringpool_str663 (defined in stringpool_t)stringpool_t
    stringpool_str664 (defined in stringpool_t)stringpool_t
    stringpool_str67 (defined in stringpool_t)stringpool_t
    stringpool_str674 (defined in stringpool_t)stringpool_t
    stringpool_str69 (defined in stringpool_t)stringpool_t
    stringpool_str697 (defined in stringpool_t)stringpool_t
    stringpool_str70 (defined in stringpool_t)stringpool_t
    stringpool_str706 (defined in stringpool_t)stringpool_t
    stringpool_str71 (defined in stringpool_t)stringpool_t
    stringpool_str72 (defined in stringpool_t)stringpool_t
    stringpool_str723 (defined in stringpool_t)stringpool_t
    stringpool_str73 (defined in stringpool_t)stringpool_t
    stringpool_str74 (defined in stringpool_t)stringpool_t
    stringpool_str748 (defined in stringpool_t)stringpool_t
    stringpool_str75 (defined in stringpool_t)stringpool_t
    stringpool_str756 (defined in stringpool_t)stringpool_t
    stringpool_str758 (defined in stringpool_t)stringpool_t
    stringpool_str762 (defined in stringpool_t)stringpool_t
    stringpool_str77 (defined in stringpool_t)stringpool_t
    stringpool_str788 (defined in stringpool_t)stringpool_t
    stringpool_str79 (defined in stringpool_t)stringpool_t
    stringpool_str81 (defined in stringpool_t)stringpool_t
    stringpool_str82 (defined in stringpool_t)stringpool_t
    stringpool_str83 (defined in stringpool_t)stringpool_t
    stringpool_str85 (defined in stringpool_t)stringpool_t
    stringpool_str87 (defined in stringpool_t)stringpool_t
    stringpool_str884 (defined in stringpool_t)stringpool_t
    stringpool_str89 (defined in stringpool_t)stringpool_t
    stringpool_str899 (defined in stringpool_t)stringpool_t
    stringpool_str90 (defined in stringpool_t)stringpool_t
    stringpool_str905 (defined in stringpool_t)stringpool_t
    stringpool_str91 (defined in stringpool_t)stringpool_t
    stringpool_str915 (defined in stringpool_t)stringpool_t
    stringpool_str92 (defined in stringpool_t)stringpool_t
    stringpool_str93 (defined in stringpool_t)stringpool_t
    stringpool_str94 (defined in stringpool_t)stringpool_t
    stringpool_str95 (defined in stringpool_t)stringpool_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00950.html freetds-1.2.3/doc/reference/a00950.html --- freetds-1.1.6/doc/reference/a00950.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00950.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_errno_message_flags Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_errno_message_flags Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -unsigned int e2big:1
     
    -unsigned int eilseq:1
     
    -unsigned int einval:1
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00951.html freetds-1.2.3/doc/reference/a00951.html --- freetds-1.1.6/doc/reference/a00951.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00951.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsiconvdir Member List
    -
    -
    - -

    This is the complete list of members for tdsiconvdir, including all inherited members.

    - - - -
    cd (defined in tdsiconvdir)tdsiconvdir
    charset (defined in tdsiconvdir)tdsiconvdir
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00952.html freetds-1.2.3/doc/reference/a00952.html --- freetds-1.1.6/doc/reference/a00952.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00952.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,1208 @@ + + + + + + + +FreeTDS API: stringpool_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    stringpool_t Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +char stringpool_str100 [sizeof("ISO-IR-159")]
     
    +char stringpool_str101 [sizeof("ISO-IR-199")]
     
    +char stringpool_str102 [sizeof("ISO-IR-6")]
     
    +char stringpool_str103 [sizeof("ISO-8859-6")]
     
    +char stringpool_str104 [sizeof("862")]
     
    +char stringpool_str105 [sizeof("HZ")]
     
    +char stringpool_str107 [sizeof("iso646")]
     
    +char stringpool_str1079 [sizeof("CSEUCPKDFMTJAPANESE")]
     
    +char stringpool_str108 [sizeof("ISO-IR-165")]
     
    +char stringpool_str109 [sizeof("ISO_8859-1")]
     
    +char stringpool_str110 [sizeof("ISO-8859-16")]
     
    +char stringpool_str111 [sizeof("ISO_8859-8")]
     
    +char stringpool_str113 [sizeof("ISO_8859-5")]
     
    +char stringpool_str115 [sizeof("ISO_8859-9")]
     
    +char stringpool_str116 [sizeof("JP")]
     
    +char stringpool_str118 [sizeof("iso82")]
     
    +char stringpool_str120 [sizeof("ISO_8859-15")]
     
    +char stringpool_str121 [sizeof("iso88594")]
     
    +char stringpool_str122 [sizeof("850")]
     
    +char stringpool_str123 [sizeof("ISO-IR-148")]
     
    +char stringpool_str124 [sizeof("ISO_8859-15:1998")]
     
    +char stringpool_str127 [sizeof("ISO-IR-149")]
     
    +char stringpool_str128 [sizeof("ISO-IR-166")]
     
    +char stringpool_str129 [sizeof("ISO8859-4")]
     
    +char stringpool_str133 [sizeof("ISO_8859-6")]
     
    +char stringpool_str135 [sizeof("iso10")]
     
    +char stringpool_str136 [sizeof("CN")]
     
    +char stringpool_str137 [sizeof("ISO-8859-4")]
     
    +char stringpool_str140 [sizeof("ISO_8859-16")]
     
    +char stringpool_str141 [sizeof("KOREAN")]
     
    +char stringpool_str142 [sizeof("ISO-IR-101")]
     
    +char stringpool_str143 [sizeof("ISO-IR-14")]
     
    +char stringpool_str144 [sizeof("ISO-8859-14")]
     
    +char stringpool_str145 [sizeof("iso88592")]
     
    +char stringpool_str146 [sizeof("KOI8-R")]
     
    +char stringpool_str148 [sizeof("ISO-IR-109")]
     
    +char stringpool_str149 [sizeof("C99")]
     
    +char stringpool_str15 [sizeof("L1")]
     
    +char stringpool_str150 [sizeof("iso87")]
     
    +char stringpool_str151 [sizeof("ISO_8859-14:1998")]
     
    +char stringpool_str152 [sizeof("LATIN1")]
     
    +char stringpool_str153 [sizeof("ISO8859-2")]
     
    +char stringpool_str154 [sizeof("LATIN8")]
     
    +char stringpool_str155 [sizeof("ISO-IR-179")]
     
    +char stringpool_str156 [sizeof("LATIN5")]
     
    +char stringpool_str157 [sizeof("ISO-IR-126")]
     
    +char stringpool_str158 [sizeof("ASCII")]
     
    +char stringpool_str16 [sizeof("L8")]
     
    +char stringpool_str161 [sizeof("ISO-8859-2")]
     
    +char stringpool_str164 [sizeof("CP819")]
     
    +char stringpool_str167 [sizeof("ISO_8859-4")]
     
    +char stringpool_str17 [sizeof("L5")]
     
    +char stringpool_str170 [sizeof("TCVN")]
     
    +char stringpool_str171 [sizeof("ISO-IR-138")]
     
    +char stringpool_str173 [sizeof("hp15CN")]
     
    +char stringpool_str174 [sizeof("ISO_8859-14")]
     
    +char stringpool_str176 [sizeof("LATIN6")]
     
    +char stringpool_str177 [sizeof("iso88597")]
     
    +char stringpool_str178 [sizeof("ISO8859-10")]
     
    +char stringpool_str179 [sizeof("ISO-IR-144")]
     
    +char stringpool_str183 [sizeof("ISO_8859-16:2000")]
     
    +char stringpool_str185 [sizeof("ISO8859-7")]
     
    +char stringpool_str186 [sizeof("ISO-8859-10")]
     
    +char stringpool_str189 [sizeof("iso13")]
     
    +char stringpool_str190 [sizeof("iso83")]
     
    +char stringpool_str191 [sizeof("ISO_8859-2")]
     
    +char stringpool_str192 [sizeof("ISO-IR-110")]
     
    +char stringpool_str193 [sizeof("ISO-8859-7")]
     
    +char stringpool_str194 [sizeof("CP866")]
     
    +char stringpool_str195 [sizeof("CP949")]
     
    +char stringpool_str196 [sizeof("tis620")]
     
    +char stringpool_str197 [sizeof("VISCII")]
     
    +char stringpool_str198 [sizeof("ISO-IR-226")]
     
    +char stringpool_str199 [sizeof("US")]
     
    +char stringpool_str200 [sizeof("ISO-IR-87")]
     
    +char stringpool_str201 [sizeof("ISO-IR-57")]
     
    +char stringpool_str202 [sizeof("IBM819")]
     
    +char stringpool_str203 [sizeof("macthai")]
     
    +char stringpool_str204 [sizeof("MS-ANSI")]
     
    +char stringpool_str205 [sizeof("macturk")]
     
    +char stringpool_str207 [sizeof("CP1251")]
     
    +char stringpool_str208 [sizeof("ISO-IR-157")]
     
    +char stringpool_str209 [sizeof("CP1258")]
     
    +char stringpool_str210 [sizeof("LATIN4")]
     
    +char stringpool_str211 [sizeof("CP1255")]
     
    +char stringpool_str212 [sizeof("ISO_8859-10:1992")]
     
    +char stringpool_str213 [sizeof("cp866")]
     
    +char stringpool_str214 [sizeof("cp949")]
     
    +char stringpool_str216 [sizeof("ISO_8859-10")]
     
    +char stringpool_str217 [sizeof("iso88593")]
     
    +char stringpool_str218 [sizeof("ROMAN8")]
     
    +char stringpool_str219 [sizeof("CHINESE")]
     
    +char stringpool_str220 [sizeof("JIS0208")]
     
    +char stringpool_str223 [sizeof("ISO_8859-7")]
     
    +char stringpool_str225 [sizeof("macgreek")]
     
    +char stringpool_str226 [sizeof("cp1251")]
     
    +char stringpool_str227 [sizeof("ascii_8")]
     
    +char stringpool_str228 [sizeof("cp1258")]
     
    +char stringpool_str229 [sizeof("ECMA-118")]
     
    +char stringpool_str230 [sizeof("cp1255")]
     
    +char stringpool_str231 [sizeof("CP1256")]
     
    +char stringpool_str232 [sizeof("IBM866")]
     
    +char stringpool_str233 [sizeof("ISO-8859-3")]
     
    +char stringpool_str234 [sizeof("LATIN2")]
     
    +char stringpool_str235 [sizeof("BIG5")]
     
    +char stringpool_str236 [sizeof("MULELAO-1")]
     
    +char stringpool_str237 [sizeof("MS-EE")]
     
    +char stringpool_str239 [sizeof("ISO646-CN")]
     
    +char stringpool_str240 [sizeof("ISO-8859-13")]
     
    +char stringpool_str242 [sizeof("ISO-IR-100")]
     
    +char stringpool_str243 [sizeof("BIG-5")]
     
    +char stringpool_str247 [sizeof("ISO-IR-127")]
     
    +char stringpool_str248 [sizeof("GREEK8")]
     
    +char stringpool_str250 [sizeof("cp1256")]
     
    +char stringpool_str252 [sizeof("CP862")]
     
    +char stringpool_str253 [sizeof("CP1361")]
     
    +char stringpool_str255 [sizeof("GBK")]
     
    +char stringpool_str258 [sizeof("ELOT_928")]
     
    +char stringpool_str260 [sizeof("CP850")]
     
    +char stringpool_str261 [sizeof("CP936")]
     
    +char stringpool_str262 [sizeof("CP950")]
     
    +char stringpool_str263 [sizeof("ISO_8859-3")]
     
    +char stringpool_str265 [sizeof("CP1254")]
     
    +char stringpool_str266 [sizeof("LATIN7")]
     
    +char stringpool_str27 [sizeof("L6")]
     
    +char stringpool_str270 [sizeof("ISO_8859-13")]
     
    +char stringpool_str271 [sizeof("cp862")]
     
    +char stringpool_str273 [sizeof("CP874")]
     
    +char stringpool_str274 [sizeof("CSKOI8R")]
     
    +char stringpool_str275 [sizeof("EUCKR")]
     
    +char stringpool_str279 [sizeof("cp850")]
     
    +char stringpool_str28 [sizeof("SJIS")]
     
    +char stringpool_str280 [sizeof("cp936")]
     
    +char stringpool_str281 [sizeof("cp950")]
     
    +char stringpool_str283 [sizeof("EUC-KR")]
     
    +char stringpool_str284 [sizeof("cp1254")]
     
    +char stringpool_str285 [sizeof("ECMA-114")]
     
    +char stringpool_str288 [sizeof("eucKR")]
     
    +char stringpool_str289 [sizeof("CP1252")]
     
    +char stringpool_str290 [sizeof("IBM862")]
     
    +char stringpool_str291 [sizeof("CSISO159JISX02121990")]
     
    +char stringpool_str292 [sizeof("cp874")]
     
    +char stringpool_str293 [sizeof("ISO646-JP")]
     
    +char stringpool_str294 [sizeof("CSASCII")]
     
    +char stringpool_str295 [sizeof("EUCCN")]
     
    +char stringpool_str297 [sizeof("UCS-4LE")]
     
    +char stringpool_str298 [sizeof("IBM850")]
     
    +char stringpool_str30 [sizeof("koi8")]
     
    +char stringpool_str301 [sizeof("GREEK")]
     
    +char stringpool_str302 [sizeof("ISO646-US")]
     
    +char stringpool_str303 [sizeof("EUC-CN")]
     
    +char stringpool_str304 [sizeof("TIS620")]
     
    +char stringpool_str305 [sizeof("mac")]
     
    +char stringpool_str306 [sizeof("LATIN3")]
     
    +char stringpool_str307 [sizeof("CP1250")]
     
    +char stringpool_str308 [sizeof("cp1252")]
     
    +char stringpool_str309 [sizeof("UCS-2LE")]
     
    +char stringpool_str31 [sizeof("sjis")]
     
    +char stringpool_str310 [sizeof("CSISOLATIN1")]
     
    +char stringpool_str312 [sizeof("TIS-620")]
     
    +char stringpool_str313 [sizeof("TCVN5712-1")]
     
    +char stringpool_str314 [sizeof("CSISOLATIN5")]
     
    +char stringpool_str318 [sizeof("GB_1988-80")]
     
    +char stringpool_str319 [sizeof("CP932")]
     
    +char stringpool_str320 [sizeof("ASMO-708")]
     
    +char stringpool_str321 [sizeof("CP1257")]
     
    +char stringpool_str324 [sizeof("KOI8-T")]
     
    +char stringpool_str326 [sizeof("cp1250")]
     
    +char stringpool_str329 [sizeof("HP-ROMAN8")]
     
    +char stringpool_str331 [sizeof("MS_KANJI")]
     
    +char stringpool_str333 [sizeof("CSVISCII")]
     
    +char stringpool_str334 [sizeof("CSISOLATIN6")]
     
    +char stringpool_str335 [sizeof("KSC_5601")]
     
    +char stringpool_str336 [sizeof("SHIFT-JIS")]
     
    +char stringpool_str337 [sizeof("ISO-IR-203")]
     
    +char stringpool_str338 [sizeof("cp932")]
     
    +char stringpool_str339 [sizeof("JOHAB")]
     
    +char stringpool_str340 [sizeof("cp1257")]
     
    +char stringpool_str342 [sizeof("ARMSCII-8")]
     
    +char stringpool_str345 [sizeof("ISO_646.IRV:1991")]
     
    +char stringpool_str347 [sizeof("TCVN-5712")]
     
    +char stringpool_str349 [sizeof("EUCJP")]
     
    +char stringpool_str35 [sizeof("R8")]
     
    +char stringpool_str350 [sizeof("UTF8")]
     
    +char stringpool_str351 [sizeof("X0201")]
     
    +char stringpool_str352 [sizeof("GB2312")]
     
    +char stringpool_str353 [sizeof("X0208")]
     
    +char stringpool_str354 [sizeof("ISO-2022-KR")]
     
    +char stringpool_str355 [sizeof("MS-CYRL")]
     
    +char stringpool_str356 [sizeof("ISO-2022-JP-1")]
     
    +char stringpool_str357 [sizeof("EUC-JP")]
     
    +char stringpool_str358 [sizeof("UTF-8")]
     
    +char stringpool_str359 [sizeof("VISCII1.1-1")]
     
    +char stringpool_str36 [sizeof("iso81")]
     
    +char stringpool_str360 [sizeof("CP367")]
     
    +char stringpool_str361 [sizeof("CP1253")]
     
    +char stringpool_str362 [sizeof("eucJP")]
     
    +char stringpool_str364 [sizeof("mac_cyr")]
     
    +char stringpool_str365 [sizeof("US-ASCII")]
     
    +char stringpool_str366 [sizeof("SHIFT_JIS")]
     
    +char stringpool_str368 [sizeof("CSISOLATIN4")]
     
    +char stringpool_str369 [sizeof("TIS620-0")]
     
    +char stringpool_str371 [sizeof("CSBIG5")]
     
    +char stringpool_str374 [sizeof("ISO-2022-CN")]
     
    +char stringpool_str377 [sizeof("CP437")]
     
    +char stringpool_str379 [sizeof("CN-BIG5")]
     
    +char stringpool_str38 [sizeof("iso88")]
     
    +char stringpool_str380 [sizeof("cp1253")]
     
    +char stringpool_str381 [sizeof("ARABIC")]
     
    +char stringpool_str383 [sizeof("X0212")]
     
    +char stringpool_str384 [sizeof("CSISO14JISC6220RO")]
     
    +char stringpool_str387 [sizeof("GB18030")]
     
    +char stringpool_str389 [sizeof("UCS-4BE")]
     
    +char stringpool_str39 [sizeof("iso15")]
     
    +char stringpool_str392 [sizeof("CSISOLATIN2")]
     
    +char stringpool_str393 [sizeof("GEORGIAN-PS")]
     
    +char stringpool_str394 [sizeof("KS_C_5601-1989")]
     
    +char stringpool_str395 [sizeof("CP1133")]
     
    +char stringpool_str396 [sizeof("cp437")]
     
    +char stringpool_str397 [sizeof("ISO-2022-JP-2")]
     
    +char stringpool_str398 [sizeof("IBM367")]
     
    +char stringpool_str40 [sizeof("iso85")]
     
    +char stringpool_str401 [sizeof("UCS-2BE")]
     
    +char stringpool_str402 [sizeof("UNICODE-1-1")]
     
    +char stringpool_str409 [sizeof("JIS_C6220-1969-RO")]
     
    +char stringpool_str41 [sizeof("thai8")]
     
    +char stringpool_str411 [sizeof("MS-ARAB")]
     
    +char stringpool_str415 [sizeof("IBM437")]
     
    +char stringpool_str418 [sizeof("MAC")]
     
    +char stringpool_str42 [sizeof("iso89")]
     
    +char stringpool_str422 [sizeof("UTF-16LE")]
     
    +char stringpool_str428 [sizeof("ISO-2022-JP")]
     
    +char stringpool_str429 [sizeof("CN-GB-ISOIR165")]
     
    +char stringpool_str43 [sizeof("roma8")]
     
    +char stringpool_str434 [sizeof("WINDOWS-1251")]
     
    +char stringpool_str435 [sizeof("WINDOWS-1258")]
     
    +char stringpool_str436 [sizeof("WINDOWS-1255")]
     
    +char stringpool_str438 [sizeof("CSISOLATINARABIC")]
     
    +char stringpool_str44 [sizeof("L4")]
     
    +char stringpool_str441 [sizeof("MS-HEBR")]
     
    +char stringpool_str444 [sizeof("CYRILLIC")]
     
    +char stringpool_str445 [sizeof("JIS_C6226-1983")]
     
    +char stringpool_str446 [sizeof("WINDOWS-1256")]
     
    +char stringpool_str448 [sizeof("KS_C_5601-1987")]
     
    +char stringpool_str45 [sizeof("utf8")]
     
    +char stringpool_str450 [sizeof("UHC")]
     
    +char stringpool_str452 [sizeof("BIGFIVE")]
     
    +char stringpool_str454 [sizeof("CN-GB")]
     
    +char stringpool_str455 [sizeof("GEORGIAN-ACADEMY")]
     
    +char stringpool_str46 [sizeof("866")]
     
    +char stringpool_str460 [sizeof("BIG-FIVE")]
     
    +char stringpool_str461 [sizeof("CSIBM866")]
     
    +char stringpool_str462 [sizeof("UTF7")]
     
    +char stringpool_str463 [sizeof("WINDOWS-1254")]
     
    +char stringpool_str464 [sizeof("CSISOLATIN3")]
     
    +char stringpool_str465 [sizeof("UNICODE-1-1-UTF-7")]
     
    +char stringpool_str467 [sizeof("CSISO57GB1988")]
     
    +char stringpool_str47 [sizeof("iso815")]
     
    +char stringpool_str470 [sizeof("UTF-7")]
     
    +char stringpool_str472 [sizeof("GB_2312-80")]
     
    +char stringpool_str474 [sizeof("CSISO2022KR")]
     
    +char stringpool_str475 [sizeof("WINDOWS-1252")]
     
    +char stringpool_str476 [sizeof("KOI8-U")]
     
    +char stringpool_str479 [sizeof("ISO_8859-8:1988")]
     
    +char stringpool_str48 [sizeof("big5")]
     
    +char stringpool_str480 [sizeof("ISO_8859-5:1988")]
     
    +char stringpool_str483 [sizeof("ISO_8859-9:1989")]
     
    +char stringpool_str484 [sizeof("WINDOWS-1250")]
     
    +char stringpool_str485 [sizeof("MACICELAND")]
     
    +char stringpool_str486 [sizeof("CSISOLATINGREEK")]
     
    +char stringpool_str487 [sizeof("ISO-2022-CN-EXT")]
     
    +char stringpool_str488 [sizeof("JIS_X0201")]
     
    +char stringpool_str489 [sizeof("JISX0201-1976")]
     
    +char stringpool_str490 [sizeof("JIS_X0208")]
     
    +char stringpool_str491 [sizeof("WINDOWS-1257")]
     
    +char stringpool_str494 [sizeof("CSISO2022CN")]
     
    +char stringpool_str496 [sizeof("MS-GREEK")]
     
    +char stringpool_str50 [sizeof("roman8")]
     
    +char stringpool_str500 [sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]
     
    +char stringpool_str503 [sizeof("KOI8-RU")]
     
    +char stringpool_str504 [sizeof("TIS620.2529-1")]
     
    +char stringpool_str505 [sizeof("MACROMAN")]
     
    +char stringpool_str506 [sizeof("WINDOWS-874")]
     
    +char stringpool_str507 [sizeof("ISO_8859-4:1988")]
     
    +char stringpool_str509 [sizeof("CSKSC56011987")]
     
    +char stringpool_str511 [sizeof("WINDOWS-1253")]
     
    +char stringpool_str514 [sizeof("UTF-16BE")]
     
    +char stringpool_str515 [sizeof("CSISO87JISX0208")]
     
    +char stringpool_str516 [sizeof("CSISO2022JP2")]
     
    +char stringpool_str520 [sizeof("JIS_X0212")]
     
    +char stringpool_str521 [sizeof("MACROMANIA")]
     
    +char stringpool_str522 [sizeof("CSUNICODE11")]
     
    +char stringpool_str523 [sizeof("MACTHAI")]
     
    +char stringpool_str528 [sizeof("UTF-32LE")]
     
    +char stringpool_str531 [sizeof("CSHPROMAN8")]
     
    +char stringpool_str534 [sizeof("ISO_8859-1:1987")]
     
    +char stringpool_str541 [sizeof("BIG5HKSCS")]
     
    +char stringpool_str546 [sizeof("ISO_8859-6:1987")]
     
    +char stringpool_str547 [sizeof("JIS_X0212-1990")]
     
    +char stringpool_str548 [sizeof("CSISO2022JP")]
     
    +char stringpool_str549 [sizeof("BIG5-HKSCS")]
     
    +char stringpool_str553 [sizeof("CSSHIFTJIS")]
     
    +char stringpool_str555 [sizeof("ISO_8859-3:1988")]
     
    +char stringpool_str557 [sizeof("JIS_X0208-1990")]
     
    +char stringpool_str56 [sizeof("L2")]
     
    +char stringpool_str560 [sizeof("CSISOLATINHEBREW")]
     
    +char stringpool_str561 [sizeof("CSISOLATINCYRILLIC")]
     
    +char stringpool_str563 [sizeof("ISO-CELTIC")]
     
    +char stringpool_str564 [sizeof("HZ-GB-2312")]
     
    +char stringpool_str57 [sizeof("646")]
     
    +char stringpool_str571 [sizeof("ANSI_X3.4-1968")]
     
    +char stringpool_str572 [sizeof("HEBREW")]
     
    +char stringpool_str575 [sizeof("ISO_8859-2:1987")]
     
    +char stringpool_str577 [sizeof("CSISO58GB231280")]
     
    +char stringpool_str581 [sizeof("CSGB2312")]
     
    +char stringpool_str582 [sizeof("ANSI_X3.4-1986")]
     
    +char stringpool_str583 [sizeof("CSUNICODE11UTF7")]
     
    +char stringpool_str584 [sizeof("JIS_X0208-1983")]
     
    +char stringpool_str591 [sizeof("ISO_8859-7:1987")]
     
    +char stringpool_str594 [sizeof("EUCTW")]
     
    +char stringpool_str596 [sizeof("CSEUCKR")]
     
    +char stringpool_str60 [sizeof("iso86")]
     
    +char stringpool_str602 [sizeof("EUC-TW")]
     
    +char stringpool_str605 [sizeof("MACCROATIAN")]
     
    +char stringpool_str607 [sizeof("eucTW")]
     
    +char stringpool_str614 [sizeof("TIS620.2533-1")]
     
    +char stringpool_str617 [sizeof("MACGREEK")]
     
    +char stringpool_str620 [sizeof("UTF-32BE")]
     
    +char stringpool_str625 [sizeof("MACINTOSH")]
     
    +char stringpool_str63 [sizeof("iso88591")]
     
    +char stringpool_str637 [sizeof("UNICODELITTLE")]
     
    +char stringpool_str641 [sizeof("MS-TURK")]
     
    +char stringpool_str645 [sizeof("MACUKRAINE")]
     
    +char stringpool_str65 [sizeof("iso88598")]
     
    +char stringpool_str651 [sizeof("IBM-CP1133")]
     
    +char stringpool_str658 [sizeof("MACCENTRALEUROPE")]
     
    +char stringpool_str66 [sizeof("iso_1")]
     
    +char stringpool_str663 [sizeof("NEXTSTEP")]
     
    +char stringpool_str664 [sizeof("TIS620.2533-0")]
     
    +char stringpool_str67 [sizeof("iso88595")]
     
    +char stringpool_str674 [sizeof("JIS_X0212.1990-0")]
     
    +char stringpool_str69 [sizeof("iso88599")]
     
    +char stringpool_str697 [sizeof("MACARABIC")]
     
    +char stringpool_str70 [sizeof("greek8")]
     
    +char stringpool_str706 [sizeof("UNICODEBIG")]
     
    +char stringpool_str71 [sizeof("ISO8859-1")]
     
    +char stringpool_str72 [sizeof("L7")]
     
    +char stringpool_str723 [sizeof("CSPC862LATINHEBREW")]
     
    +char stringpool_str73 [sizeof("ISO8859-8")]
     
    +char stringpool_str74 [sizeof("iso885915")]
     
    +char stringpool_str748 [sizeof("MACCYRILLIC")]
     
    +char stringpool_str75 [sizeof("ISO8859-5")]
     
    +char stringpool_str756 [sizeof("WINBALTRIM")]
     
    +char stringpool_str758 [sizeof("TCVN5712-1:1993")]
     
    +char stringpool_str762 [sizeof("CSMACINTOSH")]
     
    +char stringpool_str77 [sizeof("ISO8859-9")]
     
    +char stringpool_str788 [sizeof("CSHALFWIDTHKATAKANA")]
     
    +char stringpool_str79 [sizeof("ISO-8859-1")]
     
    +char stringpool_str81 [sizeof("ISO-8859-8")]
     
    +char stringpool_str82 [sizeof("ISO8859-15")]
     
    +char stringpool_str83 [sizeof("ISO-8859-5")]
     
    +char stringpool_str85 [sizeof("ISO-8859-9")]
     
    +char stringpool_str87 [sizeof("iso88596")]
     
    +char stringpool_str884 [sizeof("MACHEBREW")]
     
    +char stringpool_str89 [sizeof("ISO-IR-58")]
     
    +char stringpool_str899 [sizeof("MACTURKISH")]
     
    +char stringpool_str90 [sizeof("ISO-8859-15")]
     
    +char stringpool_str905 [sizeof("CSPC850MULTILINGUAL")]
     
    +char stringpool_str91 [sizeof("JAVA")]
     
    +char stringpool_str915 [sizeof("CSEUCTW")]
     
    +char stringpool_str92 [sizeof("L3")]
     
    +char stringpool_str93 [sizeof("iso14")]
     
    +char stringpool_str94 [sizeof("iso84")]
     
    +char stringpool_str95 [sizeof("ISO8859-6")]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00952.map freetds-1.2.3/doc/reference/a00952.map --- freetds-1.1.6/doc/reference/a00952.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00952.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00952.md5 freetds-1.2.3/doc/reference/a00952.md5 --- freetds-1.1.6/doc/reference/a00952.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00952.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8ca9db23617d6be096a8c0e5db607944 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00952.svg freetds-1.2.3/doc/reference/a00952.svg --- freetds-1.1.6/doc/reference/a00952.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00952.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tdsiconvdir - - -Node1 - -tdsiconvdir - - -Node2 - - -tds_encoding - - - - -Node2->Node1 - - - charset - - - diff -Nru freetds-1.1.6/doc/reference/a00953.html freetds-1.2.3/doc/reference/a00953.html --- freetds-1.1.6/doc/reference/a00953.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00953.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    conv_result Member List
    +
    +
    + +

    This is the complete list of members for conv_result, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    bi (defined in conv_result)conv_result
    bigdatetime (defined in conv_result)conv_result
    bigtime (defined in conv_result)conv_result
    c (defined in conv_result)conv_result
    cb (defined in conv_result)conv_result
    cc (defined in conv_result)conv_result
    date (defined in conv_result)conv_result
    dt (defined in conv_result)conv_result
    dt4 (defined in conv_result)conv_result
    dta (defined in conv_result)conv_result
    f (defined in conv_result)conv_result
    i (defined in conv_result)conv_result
    ib (defined in conv_result)conv_result
    m (defined in conv_result)conv_result
    m4 (defined in conv_result)conv_result
    n (defined in conv_result)conv_result
    r (defined in conv_result)conv_result
    si (defined in conv_result)conv_result
    ti (defined in conv_result)conv_result
    time (defined in conv_result)conv_result
    u (defined in conv_result)conv_result
    ubi (defined in conv_result)conv_result
    ui (defined in conv_result)conv_result
    usi (defined in conv_result)conv_result
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00954.html freetds-1.2.3/doc/reference/a00954.html --- freetds-1.1.6/doc/reference/a00954.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00954.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tdsiconvdir Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsiconvdir Struct Reference
    -
    -
    -
    -Collaboration diagram for tdsiconvdir:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -iconv_t cd
     
    -TDS_ENCODING charset
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00954.map freetds-1.2.3/doc/reference/a00954.map --- freetds-1.1.6/doc/reference/a00954.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00954.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00954.md5 freetds-1.2.3/doc/reference/a00954.md5 --- freetds-1.1.6/doc/reference/a00954.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00954.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ce70ee10205128615aefb14365febb8b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00954.svg freetds-1.2.3/doc/reference/a00954.svg --- freetds-1.1.6/doc/reference/a00954.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00954.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,182 @@ + + + + + + +conv_result + + + +Node1 + + +conv_result + + + + + +Node2 + + +TDS_DATETIMEALL + + + + + +Node2->Node1 + + + dta + + + +Node3 + + +conv_result::cc_t + + + + + +Node3->Node1 + + + cc + + + +Node4 + + +conv_result::cb_t + + + + + +Node4->Node1 + + + cb + + + +Node5 + + +tdsunique + + + + + +Node5->Node1 + + + u + + + +Node6 + + +tdsdatetime + + + + + +Node6->Node1 + + + dt + + + +Node7 + + +tdsmoney + + + + + +Node7->Node1 + + + m + + + +Node8 + + +tdsoldmoney + + + + + +Node8->Node7 + + + tdsoldmoney + + + +Node9 + + +tdsnumeric + + + + + +Node9->Node1 + + + n + + + +Node10 + + +tdsmoney4 + + + + + +Node10->Node1 + + + m4 + + + +Node11 + + +tdsdatetime4 + + + + + +Node11->Node1 + + + dt4 + + + diff -Nru freetds-1.1.6/doc/reference/a00955.html freetds-1.2.3/doc/reference/a00955.html --- freetds-1.1.6/doc/reference/a00955.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00955.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsiconvinfo Member List
    -
    -
    - -

    This is the complete list of members for tdsiconvinfo, including all inherited members.

    - - - - -
    flags (defined in tdsiconvinfo)tdsiconvinfo
    from (defined in tdsiconvinfo)tdsiconvinfo
    suppress (defined in tdsiconvinfo)tdsiconvinfo
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00956.html freetds-1.2.3/doc/reference/a00956.html --- freetds-1.1.6/doc/reference/a00956.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00956.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,172 @@ + + + + + + + +FreeTDS API: conv_result Union Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    conv_result Union Reference
    +
    +
    +
    +Collaboration diagram for conv_result:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Classes

    struct  cb_t
     
    struct  cc_t
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_INT8 bi
     
    +TDS_BIGDATETIME bigdatetime
     
    +TDS_BIGTIME bigtime
     
    +TDS_CHAR * c
     
    +struct conv_result::cb_t cb
     
    +struct conv_result::cc_t cc
     
    +TDS_DATE date
     
    +TDS_DATETIME dt
     
    +TDS_DATETIME4 dt4
     
    +TDS_DATETIMEALL dta
     
    +TDS_FLOAT f
     
    +TDS_INT i
     
    +TDS_CHAR * ib
     
    +TDS_MONEY m
     
    +TDS_MONEY4 m4
     
    +TDS_NUMERIC n
     
    +TDS_REAL r
     
    +TDS_SMALLINT si
     
    +TDS_TINYINT ti
     
    +TDS_TIME time
     
    +TDS_UNIQUE u
     
    +TDS_UINT8 ubi
     
    +TDS_UINT ui
     
    +TDS_USMALLINT usi
     
    +
    The documentation for this union was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00956.map freetds-1.2.3/doc/reference/a00956.map --- freetds-1.1.6/doc/reference/a00956.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00956.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a00956.md5 freetds-1.2.3/doc/reference/a00956.md5 --- freetds-1.1.6/doc/reference/a00956.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00956.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dfb338d1d6e854e1fe545073a832b1a1 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00956.svg freetds-1.2.3/doc/reference/a00956.svg --- freetds-1.1.6/doc/reference/a00956.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00956.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ - - - - - - -tdsiconvinfo - - -Node1 - -tdsiconvinfo - - -Node2 - - -tds_errno_message_flags - - - - -Node2->Node1 - - - suppress - - -Node3 - - -tdsiconvdir - - - - -Node3->Node1 - - - from - - -Node4 - - -tds_encoding - - - - -Node4->Node3 - - - charset - - - diff -Nru freetds-1.1.6/doc/reference/a00957.html freetds-1.2.3/doc/reference/a00957.html --- freetds-1.1.6/doc/reference/a00957.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00957.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    conv_result::cc_t Member List
    +
    +
    + +

    This is the complete list of members for conv_result::cc_t, including all inherited members.

    + + + +
    c (defined in conv_result::cc_t)conv_result::cc_t
    len (defined in conv_result::cc_t)conv_result::cc_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00958.html freetds-1.2.3/doc/reference/a00958.html --- freetds-1.1.6/doc/reference/a00958.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00958.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: tdsiconvinfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsiconvinfo Struct Reference
    -
    -
    -
    -Collaboration diagram for tdsiconvinfo:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -unsigned int flags
     
    -struct tdsiconvdir to from
     
    -TDS_ERRNO_MESSAGE_FLAGS suppress
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00959.html freetds-1.2.3/doc/reference/a00959.html --- freetds-1.1.6/doc/reference/a00959.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00959.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _sql_error Member List
    -
    -
    - -

    This is the complete list of members for _sql_error, including all inherited members.

    - - - - - - - - - -
    linenum (defined in _sql_error)_sql_error
    msg (defined in _sql_error)_sql_error
    msgstate (defined in _sql_error)_sql_error
    native (defined in _sql_error)_sql_error
    row (defined in _sql_error)_sql_error
    server (defined in _sql_error)_sql_error
    state2 (defined in _sql_error)_sql_error
    state3 (defined in _sql_error)_sql_error
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00960.html freetds-1.2.3/doc/reference/a00960.html --- freetds-1.1.6/doc/reference/a00960.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00960.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + + +FreeTDS API: conv_result::cc_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    conv_result::cc_t Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +TDS_CHAR * c
     
    +TDS_UINT len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00961.html freetds-1.2.3/doc/reference/a00961.html --- freetds-1.1.6/doc/reference/a00961.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00961.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    conv_result::cb_t Member List
    +
    +
    + +

    This is the complete list of members for conv_result::cb_t, including all inherited members.

    + + + +
    ib (defined in conv_result::cb_t)conv_result::cb_t
    len (defined in conv_result::cb_t)conv_result::cb_t
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00962.html freetds-1.2.3/doc/reference/a00962.html --- freetds-1.1.6/doc/reference/a00962.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00962.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - - -FreeTDS API: _sql_error Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _sql_error Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -int linenum
     
    -const char * msg
     
    -int msgstate
     
    -TDS_UINT native
     
    -int row
     
    -char * server
     
    -char state2 [6]
     
    -char state3 [6]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00963.html freetds-1.2.3/doc/reference/a00963.html --- freetds-1.1.6/doc/reference/a00963.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00963.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _sql_errors Member List
    -
    -
    - -

    This is the complete list of members for _sql_errors, including all inherited members.

    - - - - - -
    errs (defined in _sql_errors)_sql_errors
    lastrc (defined in _sql_errors)_sql_errors
    num_errors (defined in _sql_errors)_sql_errors
    ranked (defined in _sql_errors)_sql_errors
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00964.html freetds-1.2.3/doc/reference/a00964.html --- freetds-1.1.6/doc/reference/a00964.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00964.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + + +FreeTDS API: conv_result::cb_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    conv_result::cb_t Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +TDS_CHAR * ib
     
    +TDS_UINT len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00964.map freetds-1.2.3/doc/reference/a00964.map --- freetds-1.1.6/doc/reference/a00964.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00964.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00964.md5 freetds-1.2.3/doc/reference/a00964.md5 --- freetds-1.1.6/doc/reference/a00964.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00964.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a345f33635cf5b8e6c9d7432efb2bb1c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00964.svg freetds-1.2.3/doc/reference/a00964.svg --- freetds-1.1.6/doc/reference/a00964.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00964.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -_sql_errors - - -Node1 - -_sql_errors - - -Node2 - - -_sql_error - - - - -Node2->Node1 - - - errs - - - diff -Nru freetds-1.1.6/doc/reference/a00965.html freetds-1.2.3/doc/reference/a00965.html --- freetds-1.1.6/doc/reference/a00965.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00965.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _character_set_alias Member List
    +
    +
    + +

    This is the complete list of members for _character_set_alias, including all inherited members.

    + + + +
    alias (defined in _character_set_alias)_character_set_alias
    canonic (defined in _character_set_alias)_character_set_alias
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00966.html freetds-1.2.3/doc/reference/a00966.html --- freetds-1.1.6/doc/reference/a00966.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00966.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: _sql_errors Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _sql_errors Struct Reference
    -
    -
    -
    -Collaboration diagram for _sql_errors:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - -

    -Public Attributes

    -struct _sql_errorerrs
     
    -SQLRETURN lastrc
     
    -int num_errors
     
    -char ranked
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00967.html freetds-1.2.3/doc/reference/a00967.html --- freetds-1.1.6/doc/reference/a00967.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00967.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _dheader Member List
    -
    -
    - -

    This is the complete list of members for _dheader, including all inherited members.

    - - - - - - - - -
    sql_desc_alloc_type (defined in _dheader)_dheader
    sql_desc_array_size (defined in _dheader)_dheader
    sql_desc_array_status_ptr (defined in _dheader)_dheader
    sql_desc_bind_offset_ptr (defined in _dheader)_dheader
    sql_desc_bind_type (defined in _dheader)_dheader
    sql_desc_count (defined in _dheader)_dheader
    sql_desc_rows_processed_ptr (defined in _dheader)_dheader
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00968.html freetds-1.2.3/doc/reference/a00968.html --- freetds-1.1.6/doc/reference/a00968.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00968.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: _character_set_alias Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _character_set_alias Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +const char * alias
     
    +int canonic
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00969.html freetds-1.2.3/doc/reference/a00969.html --- freetds-1.1.6/doc/reference/a00969.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00969.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_errno_message_flags Member List
    +
    +
    + +

    This is the complete list of members for tds_errno_message_flags, including all inherited members.

    + + + + +
    e2big (defined in tds_errno_message_flags)tds_errno_message_flags
    eilseq (defined in tds_errno_message_flags)tds_errno_message_flags
    einval (defined in tds_errno_message_flags)tds_errno_message_flags
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00970.html freetds-1.2.3/doc/reference/a00970.html --- freetds-1.1.6/doc/reference/a00970.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00970.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - - - - - - - -FreeTDS API: _dheader Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _dheader Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - -

    -Public Attributes

    -SQLSMALLINT sql_desc_alloc_type
     
    -SQLULEN sql_desc_array_size
     
    -SQLUSMALLINT * sql_desc_array_status_ptr
     
    -SQLLEN * sql_desc_bind_offset_ptr
     
    -SQLINTEGER sql_desc_bind_type
     
    -SQLSMALLINT sql_desc_count
     
    -SQLULEN * sql_desc_rows_processed_ptr
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00971.html freetds-1.2.3/doc/reference/a00971.html --- freetds-1.1.6/doc/reference/a00971.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00971.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _drecord Member List
    -
    -
    - -

    This is the complete list of members for _drecord, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    sql_desc_auto_unique_value (defined in _drecord)_drecord
    sql_desc_base_column_name (defined in _drecord)_drecord
    sql_desc_base_table_name (defined in _drecord)_drecord
    sql_desc_case_sensitive (defined in _drecord)_drecord
    sql_desc_catalog_name (defined in _drecord)_drecord
    sql_desc_concise_type (defined in _drecord)_drecord
    sql_desc_data_ptr (defined in _drecord)_drecord
    sql_desc_datetime_interval_code (defined in _drecord)_drecord
    sql_desc_datetime_interval_precision (defined in _drecord)_drecord
    sql_desc_display_size (defined in _drecord)_drecord
    sql_desc_fixed_prec_scale (defined in _drecord)_drecord
    sql_desc_indicator_ptr (defined in _drecord)_drecord
    sql_desc_label (defined in _drecord)_drecord
    sql_desc_length (defined in _drecord)_drecord
    sql_desc_literal_prefix (defined in _drecord)_drecord
    sql_desc_literal_suffix (defined in _drecord)_drecord
    sql_desc_local_type_name (defined in _drecord)_drecord
    sql_desc_name (defined in _drecord)_drecord
    sql_desc_nullable (defined in _drecord)_drecord
    sql_desc_num_prec_radix (defined in _drecord)_drecord
    sql_desc_octet_length (defined in _drecord)_drecord
    sql_desc_octet_length_ptr (defined in _drecord)_drecord
    sql_desc_parameter_type (defined in _drecord)_drecord
    sql_desc_precision (defined in _drecord)_drecord
    sql_desc_rowver (defined in _drecord)_drecord
    sql_desc_scale (defined in _drecord)_drecord
    sql_desc_schema_name (defined in _drecord)_drecord
    sql_desc_searchable (defined in _drecord)_drecord
    sql_desc_table_name (defined in _drecord)_drecord
    sql_desc_type (defined in _drecord)_drecord
    sql_desc_type_name (defined in _drecord)_drecord
    sql_desc_unnamed (defined in _drecord)_drecord
    sql_desc_unsigned (defined in _drecord)_drecord
    sql_desc_updatable (defined in _drecord)_drecord
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00972.html freetds-1.2.3/doc/reference/a00972.html --- freetds-1.1.6/doc/reference/a00972.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00972.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_errno_message_flags Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_errno_message_flags Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +unsigned int e2big:1
     
    +unsigned int eilseq:1
     
    +unsigned int einval:1
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00972.map freetds-1.2.3/doc/reference/a00972.map --- freetds-1.1.6/doc/reference/a00972.map 2019-04-29 09:00:48.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00972.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00972.md5 freetds-1.2.3/doc/reference/a00972.md5 --- freetds-1.1.6/doc/reference/a00972.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00972.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -308cc1117f42a0d15aa60c8736717e2c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00972.svg freetds-1.2.3/doc/reference/a00972.svg --- freetds-1.1.6/doc/reference/a00972.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00972.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - -_drecord - - -Node1 - -_drecord - - -Node2 - - -tds_dstr - - - - -Node2->Node1 - - - sql_desc_schema_name -sql_desc_name -sql_desc_base_column -_name -sql_desc_base_table -_name -sql_desc_catalog -_name -sql_desc_table -_name -sql_desc_label -sql_desc_local -_type_name - - - diff -Nru freetds-1.1.6/doc/reference/a00973.html freetds-1.2.3/doc/reference/a00973.html --- freetds-1.1.6/doc/reference/a00973.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00973.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsiconvdir Member List
    +
    +
    + +

    This is the complete list of members for tdsiconvdir, including all inherited members.

    + + + +
    cd (defined in tdsiconvdir)tdsiconvdir
    charset (defined in tdsiconvdir)tdsiconvdir
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00974.html freetds-1.2.3/doc/reference/a00974.html --- freetds-1.1.6/doc/reference/a00974.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00974.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,191 +0,0 @@ - - - - - - - -FreeTDS API: _drecord Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _drecord Struct Reference
    -
    -
    -
    -Collaboration diagram for _drecord:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -SQLUINTEGER sql_desc_auto_unique_value
     
    -DSTR sql_desc_base_column_name
     
    -DSTR sql_desc_base_table_name
     
    -SQLINTEGER sql_desc_case_sensitive
     
    -DSTR sql_desc_catalog_name
     
    -SQLSMALLINT sql_desc_concise_type
     
    -SQLPOINTER sql_desc_data_ptr
     
    -SQLSMALLINT sql_desc_datetime_interval_code
     
    -SQLINTEGER sql_desc_datetime_interval_precision
     
    -SQLLEN sql_desc_display_size
     
    -SQLSMALLINT sql_desc_fixed_prec_scale
     
    -SQLLEN * sql_desc_indicator_ptr
     
    -DSTR sql_desc_label
     
    -SQLULEN sql_desc_length
     
    -const char * sql_desc_literal_prefix
     
    -const char * sql_desc_literal_suffix
     
    -DSTR sql_desc_local_type_name
     
    -DSTR sql_desc_name
     
    -SQLSMALLINT sql_desc_nullable
     
    -SQLINTEGER sql_desc_num_prec_radix
     
    -SQLLEN sql_desc_octet_length
     
    -SQLLEN * sql_desc_octet_length_ptr
     
    -SQLSMALLINT sql_desc_parameter_type
     
    -SQLSMALLINT sql_desc_precision
     
    -SQLSMALLINT sql_desc_rowver
     
    -SQLSMALLINT sql_desc_scale
     
    -DSTR sql_desc_schema_name
     
    -SQLSMALLINT sql_desc_searchable
     
    -DSTR sql_desc_table_name
     
    -SQLSMALLINT sql_desc_type
     
    -const char * sql_desc_type_name
     
    -SQLSMALLINT sql_desc_unnamed
     
    -SQLSMALLINT sql_desc_unsigned
     
    -SQLSMALLINT sql_desc_updatable
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00974.map freetds-1.2.3/doc/reference/a00974.map --- freetds-1.1.6/doc/reference/a00974.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00974.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00974.md5 freetds-1.2.3/doc/reference/a00974.md5 --- freetds-1.1.6/doc/reference/a00974.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00974.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +4c9ed817a369a5acb5375953774dd714 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00974.svg freetds-1.2.3/doc/reference/a00974.svg --- freetds-1.1.6/doc/reference/a00974.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00974.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tdsiconvdir + + + +Node1 + + +tdsiconvdir + + + + + +Node2 + + +tds_encoding + + + + + +Node2->Node1 + + + charset + + + diff -Nru freetds-1.1.6/doc/reference/a00975.html freetds-1.2.3/doc/reference/a00975.html --- freetds-1.1.6/doc/reference/a00975.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00975.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _hdesc Member List
    -
    -
    - -

    This is the complete list of members for _hdesc, including all inherited members.

    - - - - - - - - -
    errs (defined in _hdesc)_hdesc
    header (defined in _hdesc)_hdesc
    htype (defined in _hdesc)_hdesc
    mtx (defined in _hdesc)_hdesc
    parent (defined in _hdesc)_hdesc
    records (defined in _hdesc)_hdesc
    type (defined in _hdesc)_hdesc
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00976.html freetds-1.2.3/doc/reference/a00976.html --- freetds-1.1.6/doc/reference/a00976.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00976.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tdsiconvdir Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsiconvdir Struct Reference
    +
    +
    +
    +Collaboration diagram for tdsiconvdir:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +iconv_t cd
     
    +TDS_ENCODING charset
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00976.map freetds-1.2.3/doc/reference/a00976.map --- freetds-1.1.6/doc/reference/a00976.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00976.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00976.md5 freetds-1.2.3/doc/reference/a00976.md5 --- freetds-1.1.6/doc/reference/a00976.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00976.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1b6a83bbe06bab9afc1b7466154f0ab6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00976.svg freetds-1.2.3/doc/reference/a00976.svg --- freetds-1.1.6/doc/reference/a00976.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00976.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - - - - -_hdesc - - -Node1 - -_hdesc - - -Node2 - - -_dheader - - - - -Node2->Node1 - - - header - - -Node3 - - -_drecord - - - - -Node3->Node1 - - - records - - -Node4 - - -tds_dstr - - - - -Node4->Node3 - - - sql_desc_schema_name -sql_desc_name -sql_desc_base_column -_name -sql_desc_base_table -_name -sql_desc_catalog -_name -sql_desc_table -_name -sql_desc_label -sql_desc_local -_type_name - - -Node5 - - -_sql_errors - - - - -Node5->Node1 - - - errs - - -Node6 - - -_sql_error - - - - -Node6->Node5 - - - errs - - - diff -Nru freetds-1.1.6/doc/reference/a00977.html freetds-1.2.3/doc/reference/a00977.html --- freetds-1.1.6/doc/reference/a00977.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00977.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsiconvinfo Member List
    +
    +
    + +

    This is the complete list of members for tdsiconvinfo, including all inherited members.

    + + + + +
    flags (defined in tdsiconvinfo)tdsiconvinfo
    from (defined in tdsiconvinfo)tdsiconvinfo
    suppress (defined in tdsiconvinfo)tdsiconvinfo
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00978.html freetds-1.2.3/doc/reference/a00978.html --- freetds-1.1.6/doc/reference/a00978.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00978.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: _hdesc Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _hdesc Struct Reference
    -
    -
    -
    -Collaboration diagram for _hdesc:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - -

    -Public Attributes

    -struct _sql_errors errs
     
    -struct _dheader header
     
    -SQLSMALLINT htype
     
    -tds_mutex mtx
     
    -SQLHANDLE parent
     
    -struct _drecordrecords
     
    -int type
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00978.map freetds-1.2.3/doc/reference/a00978.map --- freetds-1.1.6/doc/reference/a00978.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00978.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00978.md5 freetds-1.2.3/doc/reference/a00978.md5 --- freetds-1.1.6/doc/reference/a00978.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00978.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +aacee07a1d60c88180cd5358cfadcad4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00978.svg freetds-1.2.3/doc/reference/a00978.svg --- freetds-1.1.6/doc/reference/a00978.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00978.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,70 @@ + + + + + + +tdsiconvinfo + + + +Node1 + + +tdsiconvinfo + + + + + +Node2 + + +tds_errno_message_flags + + + + + +Node2->Node1 + + + suppress + + + +Node3 + + +tdsiconvdir + + + + + +Node3->Node1 + + + from + + + +Node4 + + +tds_encoding + + + + + +Node4->Node3 + + + charset + + + diff -Nru freetds-1.1.6/doc/reference/a00979.html freetds-1.2.3/doc/reference/a00979.html --- freetds-1.1.6/doc/reference/a00979.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00979.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _heattr Member List
    -
    -
    - -

    This is the complete list of members for _heattr, including all inherited members.

    - - - - - -
    connection_pooling (defined in _heattr)_heattr
    cp_match (defined in _heattr)_heattr
    odbc_version (defined in _heattr)_heattr
    output_nts (defined in _heattr)_heattr
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00980.html freetds-1.2.3/doc/reference/a00980.html --- freetds-1.1.6/doc/reference/a00980.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00980.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: tdsiconvinfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsiconvinfo Struct Reference
    +
    +
    +
    +Collaboration diagram for tdsiconvinfo:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +unsigned int flags
     
    +struct tdsiconvdir to from
     
    +TDS_ERRNO_MESSAGE_FLAGS suppress
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00981.html freetds-1.2.3/doc/reference/a00981.html --- freetds-1.1.6/doc/reference/a00981.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00981.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _sql_error Member List
    +
    +
    + +

    This is the complete list of members for _sql_error, including all inherited members.

    + + + + + + + + + +
    linenum (defined in _sql_error)_sql_error
    msg (defined in _sql_error)_sql_error
    msgstate (defined in _sql_error)_sql_error
    native (defined in _sql_error)_sql_error
    row (defined in _sql_error)_sql_error
    server (defined in _sql_error)_sql_error
    state2 (defined in _sql_error)_sql_error
    state3 (defined in _sql_error)_sql_error
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00982.html freetds-1.2.3/doc/reference/a00982.html --- freetds-1.1.6/doc/reference/a00982.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00982.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: _heattr Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _heattr Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -SQLUINTEGER connection_pooling
     
    -SQLUINTEGER cp_match
     
    -SQLINTEGER odbc_version
     
    -SQLINTEGER output_nts
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00983.html freetds-1.2.3/doc/reference/a00983.html --- freetds-1.1.6/doc/reference/a00983.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00983.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _hchk Member List
    -
    -
    - -

    This is the complete list of members for _hchk, including all inherited members.

    - - - - -
    errs (defined in _hchk)_hchk
    htype (defined in _hchk)_hchk
    mtx (defined in _hchk)_hchk
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00984.html freetds-1.2.3/doc/reference/a00984.html --- freetds-1.1.6/doc/reference/a00984.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00984.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,110 @@ + + + + + + + +FreeTDS API: _sql_error Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _sql_error Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +int linenum
     
    +const char * msg
     
    +int msgstate
     
    +TDS_UINT native
     
    +int row
     
    +char * server
     
    +char state2 [6]
     
    +char state3 [6]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00984.map freetds-1.2.3/doc/reference/a00984.map --- freetds-1.1.6/doc/reference/a00984.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00984.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a00984.md5 freetds-1.2.3/doc/reference/a00984.md5 --- freetds-1.1.6/doc/reference/a00984.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00984.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -edc7697b3ca22c80c49d21b1649e9d62 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00984.svg freetds-1.2.3/doc/reference/a00984.svg --- freetds-1.1.6/doc/reference/a00984.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00984.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - -_hchk - - -Node1 - -_hchk - - -Node2 - - -_sql_errors - - - - -Node2->Node1 - - - errs - - -Node3 - - -_sql_error - - - - -Node3->Node2 - - - errs - - - diff -Nru freetds-1.1.6/doc/reference/a00985.html freetds-1.2.3/doc/reference/a00985.html --- freetds-1.1.6/doc/reference/a00985.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00985.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _sql_errors Member List
    +
    +
    + +

    This is the complete list of members for _sql_errors, including all inherited members.

    + + + + + +
    errs (defined in _sql_errors)_sql_errors
    lastrc (defined in _sql_errors)_sql_errors
    num_errors (defined in _sql_errors)_sql_errors
    ranked (defined in _sql_errors)_sql_errors
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00986.html freetds-1.2.3/doc/reference/a00986.html --- freetds-1.1.6/doc/reference/a00986.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00986.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: _hchk Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _hchk Struct Reference
    -
    -
    -
    -Collaboration diagram for _hchk:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -struct _sql_errors errs
     
    -SQLSMALLINT htype
     
    -tds_mutex mtx
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00986.map freetds-1.2.3/doc/reference/a00986.map --- freetds-1.1.6/doc/reference/a00986.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00986.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00986.md5 freetds-1.2.3/doc/reference/a00986.md5 --- freetds-1.1.6/doc/reference/a00986.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00986.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +af774545aee4cfcaa125120b934884a6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00986.svg freetds-1.2.3/doc/reference/a00986.svg --- freetds-1.1.6/doc/reference/a00986.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00986.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +_sql_errors + + + +Node1 + + +_sql_errors + + + + + +Node2 + + +_sql_error + + + + + +Node2->Node1 + + + errs + + + diff -Nru freetds-1.1.6/doc/reference/a00987.html freetds-1.2.3/doc/reference/a00987.html --- freetds-1.1.6/doc/reference/a00987.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00987.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _henv Member List
    -
    -
    - -

    This is the complete list of members for _henv, including all inherited members.

    - - - - - - -
    attr (defined in _henv)_henv
    errs (defined in _henv)_henv
    htype (defined in _henv)_henv
    mtx (defined in _henv)_henv
    tds_ctx (defined in _henv)_henv
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00988.html freetds-1.2.3/doc/reference/a00988.html --- freetds-1.1.6/doc/reference/a00988.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00988.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: _sql_errors Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _sql_errors Struct Reference
    +
    +
    +
    +Collaboration diagram for _sql_errors:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + +

    +Public Attributes

    +struct _sql_errorerrs
     
    +SQLRETURN lastrc
     
    +int num_errors
     
    +char ranked
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00988.map freetds-1.2.3/doc/reference/a00988.map --- freetds-1.1.6/doc/reference/a00988.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00988.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00988.md5 freetds-1.2.3/doc/reference/a00988.md5 --- freetds-1.1.6/doc/reference/a00988.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00988.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -8aca051334c7637e67758040a9953bab \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00988.svg freetds-1.2.3/doc/reference/a00988.svg --- freetds-1.1.6/doc/reference/a00988.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00988.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - -_henv - - -Node1 - -_henv - - -Node2 - - -tds_context - - - - -Node2->Node1 - - - tds_ctx - - -Node3 - - -tds_locale - - - - -Node3->Node2 - - - locale - - -Node4 - - -_heattr - - - - -Node4->Node1 - - - attr - - -Node5 - - -_sql_errors - - - - -Node5->Node1 - - - errs - - -Node6 - - -_sql_error - - - - -Node6->Node5 - - - errs - - - diff -Nru freetds-1.1.6/doc/reference/a00989.html freetds-1.2.3/doc/reference/a00989.html --- freetds-1.1.6/doc/reference/a00989.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00989.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _dheader Member List
    +
    +
    + +

    This is the complete list of members for _dheader, including all inherited members.

    + + + + + + + + +
    sql_desc_alloc_type (defined in _dheader)_dheader
    sql_desc_array_size (defined in _dheader)_dheader
    sql_desc_array_status_ptr (defined in _dheader)_dheader
    sql_desc_bind_offset_ptr (defined in _dheader)_dheader
    sql_desc_bind_type (defined in _dheader)_dheader
    sql_desc_count (defined in _dheader)_dheader
    sql_desc_rows_processed_ptr (defined in _dheader)_dheader
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00990.html freetds-1.2.3/doc/reference/a00990.html --- freetds-1.1.6/doc/reference/a00990.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00990.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - - - - - - - -FreeTDS API: _henv Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _henv Struct Reference
    -
    -
    -
    -Collaboration diagram for _henv:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - -

    -Public Attributes

    -struct _heattr attr
     
    -struct _sql_errors errs
     
    -SQLSMALLINT htype
     
    -tds_mutex mtx
     
    -TDSCONTEXTtds_ctx
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00991.html freetds-1.2.3/doc/reference/a00991.html --- freetds-1.1.6/doc/reference/a00991.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00991.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _hcattr Member List
    -
    -
    - -

    This is the complete list of members for _hcattr, including all inherited members.

    - - - - - - - - - - - - - - - - - - - -
    access_mode (defined in _hcattr)_hcattr
    async_enable (defined in _hcattr)_hcattr
    auto_ipd (defined in _hcattr)_hcattr
    autocommit (defined in _hcattr)_hcattr
    bulk_enabled (defined in _hcattr)_hcattr
    connection_dead (defined in _hcattr)_hcattr
    connection_timeout (defined in _hcattr)_hcattr
    current_catalog (defined in _hcattr)_hcattr
    cursor_type (defined in _hcattr)_hcattr
    login_timeout (defined in _hcattr)_hcattr
    mars_enabled (defined in _hcattr)_hcattr
    metadata_id (defined in _hcattr)_hcattr
    odbc_cursors (defined in _hcattr)_hcattr
    packet_size (defined in _hcattr)_hcattr
    quite_mode (defined in _hcattr)_hcattr
    translate_lib (defined in _hcattr)_hcattr
    translate_option (defined in _hcattr)_hcattr
    txn_isolation (defined in _hcattr)_hcattr
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00992.html freetds-1.2.3/doc/reference/a00992.html --- freetds-1.1.6/doc/reference/a00992.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00992.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + + +FreeTDS API: _dheader Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _dheader Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +SQLSMALLINT sql_desc_alloc_type
     
    +SQLULEN sql_desc_array_size
     
    +SQLUSMALLINT * sql_desc_array_status_ptr
     
    +SQLLEN * sql_desc_bind_offset_ptr
     
    +SQLINTEGER sql_desc_bind_type
     
    +SQLSMALLINT sql_desc_count
     
    +SQLULEN * sql_desc_rows_processed_ptr
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00992.map freetds-1.2.3/doc/reference/a00992.map --- freetds-1.1.6/doc/reference/a00992.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00992.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a00992.md5 freetds-1.2.3/doc/reference/a00992.md5 --- freetds-1.1.6/doc/reference/a00992.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00992.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -567ec239be637e6ef9aca14507112ad7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00992.svg freetds-1.2.3/doc/reference/a00992.svg --- freetds-1.1.6/doc/reference/a00992.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00992.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - - -_hcattr - - -Node1 - -_hcattr - - -Node2 - - -tds_dstr - - - - -Node2->Node1 - - - translate_lib -current_catalog - - - diff -Nru freetds-1.1.6/doc/reference/a00993.html freetds-1.2.3/doc/reference/a00993.html --- freetds-1.1.6/doc/reference/a00993.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00993.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _drecord Member List
    +
    +
    + +

    This is the complete list of members for _drecord, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    sql_desc_auto_unique_value (defined in _drecord)_drecord
    sql_desc_base_column_name (defined in _drecord)_drecord
    sql_desc_base_table_name (defined in _drecord)_drecord
    sql_desc_case_sensitive (defined in _drecord)_drecord
    sql_desc_catalog_name (defined in _drecord)_drecord
    sql_desc_concise_type (defined in _drecord)_drecord
    sql_desc_data_ptr (defined in _drecord)_drecord
    sql_desc_datetime_interval_code (defined in _drecord)_drecord
    sql_desc_datetime_interval_precision (defined in _drecord)_drecord
    sql_desc_display_size (defined in _drecord)_drecord
    sql_desc_fixed_prec_scale (defined in _drecord)_drecord
    sql_desc_indicator_ptr (defined in _drecord)_drecord
    sql_desc_label (defined in _drecord)_drecord
    sql_desc_length (defined in _drecord)_drecord
    sql_desc_literal_prefix (defined in _drecord)_drecord
    sql_desc_literal_suffix (defined in _drecord)_drecord
    sql_desc_local_type_name (defined in _drecord)_drecord
    sql_desc_name (defined in _drecord)_drecord
    sql_desc_nullable (defined in _drecord)_drecord
    sql_desc_num_prec_radix (defined in _drecord)_drecord
    sql_desc_octet_length (defined in _drecord)_drecord
    sql_desc_octet_length_ptr (defined in _drecord)_drecord
    sql_desc_parameter_type (defined in _drecord)_drecord
    sql_desc_precision (defined in _drecord)_drecord
    sql_desc_rowver (defined in _drecord)_drecord
    sql_desc_scale (defined in _drecord)_drecord
    sql_desc_schema_name (defined in _drecord)_drecord
    sql_desc_searchable (defined in _drecord)_drecord
    sql_desc_table_name (defined in _drecord)_drecord
    sql_desc_type (defined in _drecord)_drecord
    sql_desc_type_name (defined in _drecord)_drecord
    sql_desc_unnamed (defined in _drecord)_drecord
    sql_desc_unsigned (defined in _drecord)_drecord
    sql_desc_updatable (defined in _drecord)_drecord
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00994.html freetds-1.2.3/doc/reference/a00994.html --- freetds-1.1.6/doc/reference/a00994.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00994.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,143 +0,0 @@ - - - - - - - -FreeTDS API: _hcattr Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _hcattr Struct Reference
    -
    -
    -
    -Collaboration diagram for _hcattr:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -SQLUINTEGER access_mode
     
    -SQLUINTEGER async_enable
     
    -SQLUINTEGER auto_ipd
     
    -SQLUINTEGER autocommit
     
    -SQLUINTEGER bulk_enabled
     
    -SQLUINTEGER connection_dead
     
    -SQLUINTEGER connection_timeout
     
    -DSTR current_catalog
     
    -SQLUINTEGER cursor_type
     
    -SQLUINTEGER login_timeout
     
    -SQLUINTEGER mars_enabled
     
    -SQLUINTEGER metadata_id
     
    -SQLUINTEGER odbc_cursors
     
    -SQLUINTEGER packet_size
     
    -SQLHWND quite_mode
     
    -DSTR translate_lib
     
    -SQLUINTEGER translate_option
     
    -SQLUINTEGER txn_isolation
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00994.map freetds-1.2.3/doc/reference/a00994.map --- freetds-1.1.6/doc/reference/a00994.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00994.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a00994.md5 freetds-1.2.3/doc/reference/a00994.md5 --- freetds-1.1.6/doc/reference/a00994.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00994.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f3683a8a2b023b1fcf214be80530c17b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00994.svg freetds-1.2.3/doc/reference/a00994.svg --- freetds-1.1.6/doc/reference/a00994.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00994.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,50 @@ + + + + + + +_drecord + + + +Node1 + + +_drecord + + + + + +Node2 + + +tds_dstr + + + + + +Node2->Node1 + + + sql_desc_schema_name +sql_desc_name +sql_desc_base_column +_name +sql_desc_base_table +_name +sql_desc_catalog +_name +sql_desc_table +_name +sql_desc_label +sql_desc_local +_type_name + + + diff -Nru freetds-1.1.6/doc/reference/a00995.html freetds-1.2.3/doc/reference/a00995.html --- freetds-1.1.6/doc/reference/a00995.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00995.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _hdbc Member List
    -
    -
    - -

    This is the complete list of members for _hdbc, including all inherited members.

    - - - - - - - - - - - - - - - - - -
    attr (defined in _hdbc)_hdbc
    bcphint (defined in _hdbc)_hdbc
    bcpinfo (defined in _hdbc)_hdbc
    current_statement_hdbc
    cursor_support_hdbc
    default_query_timeout (defined in _hdbc)_hdbc
    dsn (defined in _hdbc)_hdbc
    env (defined in _hdbc)_hdbc
    errs (defined in _hdbc)_hdbc
    htype (defined in _hdbc)_hdbc
    mtx (defined in _hdbc)_hdbc
    oldpwd (defined in _hdbc)_hdbc
    stmt_list_hdbc
    tds_socket (defined in _hdbc)_hdbc
    uad_hdbc
    use_oldpwd (defined in _hdbc)_hdbc
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00996.html freetds-1.2.3/doc/reference/a00996.html --- freetds-1.1.6/doc/reference/a00996.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00996.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,194 @@ + + + + + + + +FreeTDS API: _drecord Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _drecord Struct Reference
    +
    +
    +
    +Collaboration diagram for _drecord:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +SQLUINTEGER sql_desc_auto_unique_value
     
    +DSTR sql_desc_base_column_name
     
    +DSTR sql_desc_base_table_name
     
    +SQLINTEGER sql_desc_case_sensitive
     
    +DSTR sql_desc_catalog_name
     
    +SQLSMALLINT sql_desc_concise_type
     
    +SQLPOINTER sql_desc_data_ptr
     
    +SQLSMALLINT sql_desc_datetime_interval_code
     
    +SQLINTEGER sql_desc_datetime_interval_precision
     
    +SQLLEN sql_desc_display_size
     
    +SQLSMALLINT sql_desc_fixed_prec_scale
     
    +SQLLEN * sql_desc_indicator_ptr
     
    +DSTR sql_desc_label
     
    +SQLULEN sql_desc_length
     
    +const char * sql_desc_literal_prefix
     
    +const char * sql_desc_literal_suffix
     
    +DSTR sql_desc_local_type_name
     
    +DSTR sql_desc_name
     
    +SQLSMALLINT sql_desc_nullable
     
    +SQLINTEGER sql_desc_num_prec_radix
     
    +SQLLEN sql_desc_octet_length
     
    +SQLLEN * sql_desc_octet_length_ptr
     
    +SQLSMALLINT sql_desc_parameter_type
     
    +SQLSMALLINT sql_desc_precision
     
    +SQLSMALLINT sql_desc_rowver
     
    +SQLSMALLINT sql_desc_scale
     
    +DSTR sql_desc_schema_name
     
    +SQLSMALLINT sql_desc_searchable
     
    +DSTR sql_desc_table_name
     
    +SQLSMALLINT sql_desc_type
     
    +const char * sql_desc_type_name
     
    +SQLSMALLINT sql_desc_unnamed
     
    +SQLSMALLINT sql_desc_unsigned
     
    +SQLSMALLINT sql_desc_updatable
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00996.map freetds-1.2.3/doc/reference/a00996.map --- freetds-1.1.6/doc/reference/a00996.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00996.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a00996.md5 freetds-1.2.3/doc/reference/a00996.md5 --- freetds-1.1.6/doc/reference/a00996.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00996.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e046c2e206feea72f87127d2dbf8deed \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00996.svg freetds-1.2.3/doc/reference/a00996.svg --- freetds-1.1.6/doc/reference/a00996.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00996.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,479 +0,0 @@ - - - - - - -_hdbc - - -Node1 - -_hdbc - - -Node2 - - -_hstmt - - - - -Node1->Node2 - - - dbc - - -Node2->Node1 - - - stmt_list -current_statement - - -Node2->Node2 - - - prev -next - - -Node3 - - -tds_socket - - - - -Node3->Node1 - - - tds_socket - - -Node3->Node2 - - - tds - - -Node10 - - -tds_result_info - - - - -Node3->Node10 - - - attached_to - - -Node4 - - -tds_login - - - - -Node4->Node3 - - - login - - -Node7 - - -tds_dstr - - - - -Node7->Node1 - - - oldpwd -dsn - - -Node7->Node2 - - - query -cursor_name - - -Node7->Node4 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node26 - - -_hsattr - - - - -Node7->Node26 - - - qn_msgtext -qn_options - - -Node29 - - -_drecord - - - - -Node7->Node29 - - - sql_desc_schema_name -sql_desc_name -sql_desc_base_column -_name -sql_desc_base_table -_name -sql_desc_catalog -_name -sql_desc_table -_name -sql_desc_label -sql_desc_local -_type_name - - -Node32 - - -tds_bcpinfo - - - - -Node7->Node32 - - - tablename - - -Node33 - - -_hcattr - - - - -Node7->Node33 - - - translate_lib -current_catalog - - -Node8 - - -tds_packet - - - - -Node8->Node3 - - - recv_packet -send_packet - - -Node8->Node8 - - - next - - -Node9 - - -tds_dynamic - - - - -Node9->Node2 - - - dyn - - -Node9->Node3 - - - cur_dyn - - -Node9->Node9 - - - next - - -Node20 - - -tds_connection - - - - -Node9->Node20 - - - dyns - - -Node10->Node2 - - - params - - -Node10->Node3 - - - param_info -current_results -res_info -comp_info - - -Node10->Node9 - - - res_info -params - - -Node18 - - -tds_cursor - - - - -Node10->Node18 - - - res_info - - -Node10->Node32 - - - bindinfo - - -Node18->Node2 - - - cursor - - -Node18->Node3 - - - cur_cursor - - -Node18->Node18 - - - next - - -Node18->Node20 - - - cursors - - -Node20->Node3 - - - conn - - -Node23 - - -tds_context - - - - -Node23->Node20 - - - tds_ctx - - -Node34 - - -_henv - - - - -Node23->Node34 - - - tds_ctx - - -Node26->Node2 - - - attr - - -Node27 - - -_hdesc - - - - -Node27->Node1 - - - uad - - -Node27->Node2 - - - apd -orig_apd -orig_ard -ird -ipd -ard - - -Node28 - - -_dheader - - - - -Node28->Node27 - - - header - - -Node29->Node27 - - - records - - -Node30 - - -_sql_errors - - - - -Node30->Node1 - - - errs - - -Node30->Node2 - - - errs - - -Node30->Node27 - - - errs - - -Node30->Node34 - - - errs - - -Node32->Node1 - - - bcpinfo - - -Node33->Node1 - - - attr - - -Node34->Node1 - - - env - - -Node35 - - -_heattr - - - - -Node35->Node34 - - - attr - - - diff -Nru freetds-1.1.6/doc/reference/a00997.html freetds-1.2.3/doc/reference/a00997.html --- freetds-1.1.6/doc/reference/a00997.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00997.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _hdesc Member List
    +
    +
    + +

    This is the complete list of members for _hdesc, including all inherited members.

    + + + + + + + + +
    errs (defined in _hdesc)_hdesc
    header (defined in _hdesc)_hdesc
    htype (defined in _hdesc)_hdesc
    mtx (defined in _hdesc)_hdesc
    parent (defined in _hdesc)_hdesc
    records (defined in _hdesc)_hdesc
    type (defined in _hdesc)_hdesc
    + + + + diff -Nru freetds-1.1.6/doc/reference/a00998.html freetds-1.2.3/doc/reference/a00998.html --- freetds-1.1.6/doc/reference/a00998.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00998.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,158 +0,0 @@ - - - - - - - -FreeTDS API: _hdbc Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _hdbc Struct Reference
    -
    -
    -
    -Collaboration diagram for _hdbc:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -struct _hcattr attr
     
    -char * bcphint
     
    -TDSBCPINFObcpinfo
     
    struct _hstmtcurrent_statement
     Statement executing. More...
     
    -unsigned int cursor_support:1
     <>0 if server handle cursors
     
    -TDS_INT default_query_timeout
     
    -DSTR dsn
     
    -struct _henvenv
     
    -struct _sql_errors errs
     
    -SQLSMALLINT htype
     
    -tds_mutex mtx
     
    -DSTR oldpwd
     
    -struct _hstmtstmt_list
     list of all statements allocated from this connection
     
    -TDSSOCKETtds_socket
     
    -TDS_DESCuad [TDS_MAX_APP_DESC]
     descriptors associated to connection
     
    -unsigned int use_oldpwd:1
     
    -

    Member Data Documentation

    - -

    § current_statement

    - -
    -
    - - - - -
    struct _hstmt* _hdbc::current_statement
    -
    - -

    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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a00998.map freetds-1.2.3/doc/reference/a00998.map --- freetds-1.1.6/doc/reference/a00998.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00998.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a00998.md5 freetds-1.2.3/doc/reference/a00998.md5 --- freetds-1.1.6/doc/reference/a00998.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00998.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +0e065bcff76530e0a9cb21026059a698 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a00998.svg freetds-1.2.3/doc/reference/a00998.svg --- freetds-1.1.6/doc/reference/a00998.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00998.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,114 @@ + + + + + + +_hdesc + + + +Node1 + + +_hdesc + + + + + +Node2 + + +_dheader + + + + + +Node2->Node1 + + + header + + + +Node3 + + +_drecord + + + + + +Node3->Node1 + + + records + + + +Node4 + + +tds_dstr + + + + + +Node4->Node3 + + + sql_desc_schema_name +sql_desc_name +sql_desc_base_column +_name +sql_desc_base_table +_name +sql_desc_catalog +_name +sql_desc_table +_name +sql_desc_label +sql_desc_local +_type_name + + + +Node5 + + +_sql_errors + + + + + +Node5->Node1 + + + errs + + + +Node6 + + +_sql_error + + + + + +Node6->Node5 + + + errs + + + diff -Nru freetds-1.1.6/doc/reference/a00999.html freetds-1.2.3/doc/reference/a00999.html --- freetds-1.1.6/doc/reference/a00999.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a00999.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _hsattr Member List
    -
    -
    - -

    This is the complete list of members for _hsattr, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - -
    async_enable (defined in _hsattr)_hsattr
    concurrency (defined in _hsattr)_hsattr
    cursor_scrollable (defined in _hsattr)_hsattr
    cursor_sensitivity (defined in _hsattr)_hsattr
    cursor_type (defined in _hsattr)_hsattr
    enable_auto_ipd (defined in _hsattr)_hsattr
    fetch_bookmark_ptr (defined in _hsattr)_hsattr
    keyset_size (defined in _hsattr)_hsattr
    max_length (defined in _hsattr)_hsattr
    max_rows (defined in _hsattr)_hsattr
    metadata_id (defined in _hsattr)_hsattr
    noscan (defined in _hsattr)_hsattr
    qn_msgtext (defined in _hsattr)_hsattr
    qn_options (defined in _hsattr)_hsattr
    qn_timeout (defined in _hsattr)_hsattr
    query_timeout (defined in _hsattr)_hsattr
    retrieve_data (defined in _hsattr)_hsattr
    row_number (defined in _hsattr)_hsattr
    simulate_cursor (defined in _hsattr)_hsattr
    use_bookmarks (defined in _hsattr)_hsattr
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01000.html freetds-1.2.3/doc/reference/a01000.html --- freetds-1.1.6/doc/reference/a01000.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01000.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: _hdesc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _hdesc Struct Reference
    +
    +
    +
    +Collaboration diagram for _hdesc:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + +

    +Public Attributes

    +struct _sql_errors errs
     
    +struct _dheader header
     
    +SQLSMALLINT htype
     
    +tds_mutex mtx
     
    +SQLHANDLE parent
     
    +struct _drecordrecords
     
    +int type
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01000.map freetds-1.2.3/doc/reference/a01000.map --- freetds-1.1.6/doc/reference/a01000.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01000.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01000.md5 freetds-1.2.3/doc/reference/a01000.md5 --- freetds-1.1.6/doc/reference/a01000.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01000.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ae38a2283732aa9919f05ccc91457236 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01000.svg freetds-1.2.3/doc/reference/a01000.svg --- freetds-1.1.6/doc/reference/a01000.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01000.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ - - - - - - -_hsattr - - -Node1 - -_hsattr - - -Node2 - - -tds_dstr - - - - -Node2->Node1 - - - qn_msgtext -qn_options - - - diff -Nru freetds-1.1.6/doc/reference/a01001.html freetds-1.2.3/doc/reference/a01001.html --- freetds-1.1.6/doc/reference/a01001.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01001.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _heattr Member List
    +
    +
    + +

    This is the complete list of members for _heattr, including all inherited members.

    + + + + + +
    connection_pooling (defined in _heattr)_heattr
    cp_match (defined in _heattr)_heattr
    odbc_version (defined in _heattr)_heattr
    output_nts (defined in _heattr)_heattr
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01002.html freetds-1.2.3/doc/reference/a01002.html --- freetds-1.1.6/doc/reference/a01002.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01002.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ - - - - - - - -FreeTDS API: _hsattr Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _hsattr Struct Reference
    -
    -
    -
    -Collaboration diagram for _hsattr:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -SQLUINTEGER async_enable
     
    -SQLUINTEGER concurrency
     
    -SQLUINTEGER cursor_scrollable
     
    -SQLUINTEGER cursor_sensitivity
     
    -SQLUINTEGER cursor_type
     
    -SQLUINTEGER enable_auto_ipd
     
    -SQLPOINTER fetch_bookmark_ptr
     
    -SQLULEN keyset_size
     
    -SQLULEN max_length
     
    -SQLULEN max_rows
     
    -SQLUINTEGER metadata_id
     
    -SQLUINTEGER noscan
     
    -DSTR qn_msgtext
     
    -DSTR qn_options
     
    -SQLUINTEGER qn_timeout
     
    -SQLUINTEGER query_timeout
     
    -SQLUINTEGER retrieve_data
     
    -SQLULEN row_number
     
    -SQLUINTEGER simulate_cursor
     
    -SQLUINTEGER use_bookmarks
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01003.html freetds-1.2.3/doc/reference/a01003.html --- freetds-1.1.6/doc/reference/a01003.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01003.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    _hstmt Member List
    -
    -
    - -

    This is the complete list of members for _hstmt, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    apd (defined in _hstmt)_hstmt
    ard (defined in _hstmt)_hstmt
    attr (defined in _hstmt)_hstmt
    curr_param_row (defined in _hstmt)_hstmt
    cursor (defined in _hstmt)_hstmt
    cursor_name (defined in _hstmt)_hstmt
    dbc (defined in _hstmt)_hstmt
    dyn (defined in _hstmt)_hstmt
    errs (defined in _hstmt)_hstmt
    htype (defined in _hstmt)_hstmt
    ipd (defined in _hstmt)_hstmt
    ird (defined in _hstmt)_hstmt
    is_prepared_query (defined in _hstmt)_hstmt
    mtx (defined in _hstmt)_hstmt
    need_reprepare_hstmt
    next_hstmt
    num_param_rows (defined in _hstmt)_hstmt
    orig_apd (defined in _hstmt)_hstmt
    orig_ard (defined in _hstmt)_hstmt
    param_count_hstmt
    param_data_called (defined in _hstmt)_hstmt
    param_num_hstmt
    params_hstmt
    prepared_pos_hstmt
    prepared_query_is_func (defined in _hstmt)_hstmt
    prepared_query_is_rpc (defined in _hstmt)_hstmt
    prev_hstmt
    query_hstmt
    row (defined in _hstmt)_hstmt
    row_count_hstmt
    row_status_hstmt
    special_row (defined in _hstmt)_hstmt
    sql_rowset_size (defined in _hstmt)_hstmt
    tds_hstmt
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01004.html freetds-1.2.3/doc/reference/a01004.html --- freetds-1.1.6/doc/reference/a01004.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01004.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: _heattr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _heattr Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    +SQLUINTEGER connection_pooling
     
    +SQLUINTEGER cp_match
     
    +SQLINTEGER odbc_version
     
    +SQLINTEGER output_nts
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01004.map freetds-1.2.3/doc/reference/a01004.map --- freetds-1.1.6/doc/reference/a01004.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01004.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01004.md5 freetds-1.2.3/doc/reference/a01004.md5 --- freetds-1.1.6/doc/reference/a01004.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01004.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e44b79bcd95c719b7b0c0731ac33ab48 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01004.svg freetds-1.2.3/doc/reference/a01004.svg --- freetds-1.1.6/doc/reference/a01004.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01004.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,569 +0,0 @@ - - - - - - -_hstmt - - -Node1 - -_hstmt - - -Node1->Node1 - - - prev -next - - -Node25 - - -_hdbc - - - - -Node1->Node25 - - - stmt_list -current_statement - - -Node2 - - -tds_socket - - - - -Node2->Node1 - - - tds - - -Node9 - - -tds_result_info - - - - -Node2->Node9 - - - attached_to - - -Node2->Node25 - - - tds_socket - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node19 - - -tds_connection - - - - -Node4->Node19 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node1 - - - query -cursor_name - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node6->Node25 - - - oldpwd -dsn - - -Node26 - - -tds_bcpinfo - - - - -Node6->Node26 - - - tablename - - -Node27 - - -_hcattr - - - - -Node6->Node27 - - - translate_lib -current_catalog - - -Node30 - - -_drecord - - - - -Node6->Node30 - - - sql_desc_schema_name -sql_desc_name -sql_desc_base_column -_name -sql_desc_base_table -_name -sql_desc_catalog -_name -sql_desc_table -_name -sql_desc_label -sql_desc_local -_type_name - - -Node35 - - -_hsattr - - - - -Node6->Node35 - - - qn_msgtext -qn_options - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8 - - -tds_dynamic - - - - -Node8->Node1 - - - dyn - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node19 - - - dyns - - -Node9->Node1 - - - params - - -Node9->Node2 - - - param_info -current_results -res_info -comp_info - - -Node9->Node8 - - - res_info -params - - -Node17 - - -tds_cursor - - - - -Node9->Node17 - - - res_info - - -Node9->Node26 - - - bindinfo - - -Node17->Node1 - - - cursor - - -Node17->Node2 - - - cur_cursor - - -Node17->Node17 - - - next - - -Node17->Node19 - - - cursors - - -Node18 - - -tds_cursor_status - - - - -Node18->Node17 - - - status - - -Node19->Node2 - - - conn - - -Node20 - - -tds_poll_wakeup - - - - -Node20->Node19 - - - wakeup - - -Node21 - - -tds_env - - - - -Node21->Node19 - - - env - - -Node22 - - -tds_context - - - - -Node22->Node19 - - - tds_ctx - - -Node33 - - -_henv - - - - -Node22->Node33 - - - tds_ctx - - -Node24 - - -tds_authentication - - - - -Node24->Node19 - - - authentication - - -Node11 - - -tdsiconvinfo - - - - -Node11->Node19 - - - char_convs - - -Node25->Node1 - - - dbc - - -Node26->Node25 - - - bcpinfo - - -Node27->Node25 - - - attr - - -Node28 - - -_hdesc - - - - -Node28->Node1 - - - apd -orig_apd -orig_ard -ird -ipd -ard - - -Node28->Node25 - - - uad - - -Node29 - - -_dheader - - - - -Node29->Node28 - - - header - - -Node30->Node28 - - - records - - -Node31 - - -_sql_errors - - - - -Node31->Node1 - - - errs - - -Node31->Node25 - - - errs - - -Node31->Node28 - - - errs - - -Node31->Node33 - - - errs - - -Node33->Node25 - - - env - - -Node34 - - -_heattr - - - - -Node34->Node33 - - - attr - - -Node35->Node1 - - - attr - - - diff -Nru freetds-1.1.6/doc/reference/a01005.html freetds-1.2.3/doc/reference/a01005.html --- freetds-1.1.6/doc/reference/a01005.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01005.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _hchk Member List
    +
    +
    + +

    This is the complete list of members for _hchk, including all inherited members.

    + + + + +
    errs (defined in _hchk)_hchk
    htype (defined in _hchk)_hchk
    mtx (defined in _hchk)_hchk
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01006.html freetds-1.2.3/doc/reference/a01006.html --- freetds-1.1.6/doc/reference/a01006.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01006.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,219 +0,0 @@ - - - - - - - -FreeTDS API: _hstmt Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    _hstmt Struct Reference
    -
    -
    -
    -Collaboration diagram for _hstmt:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_DESCapd
     
    -TDS_DESCard
     
    -struct _hsattr attr
     
    -unsigned int curr_param_row
     
    -TDSCURSORcursor
     
    -DSTR cursor_name
     
    -struct _hdbcdbc
     
    -TDSDYNAMICdyn
     
    -struct _sql_errors errs
     
    -SQLSMALLINT htype
     
    -TDS_DESCipd
     
    -TDS_DESCird
     
    -unsigned is_prepared_query:1
     
    -tds_mutex mtx
     
    unsigned need_reprepare:1
     Prepared statement needs to be prepared again. More...
     
    -struct _hstmtnext
     next in list
     
    -unsigned int num_param_rows
     
    -TDS_DESCorig_apd
     
    -TDS_DESCorig_ard
     
    -unsigned int param_count
     number of parameter in current query
     
    -unsigned param_data_called:1
     
    -int param_num
     last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
     
    -TDSPARAMINFOparams
     parameters saved
     
    -char * prepared_pos
     position in prepared query to check parameters, used only in RPC
     
    -unsigned prepared_query_is_func:1
     
    -unsigned prepared_query_is_rpc:1
     
    -struct _hstmtprev
     previous in list
     
    -DSTR query
     query to execute
     
    -int row
     
    -TDS_INT8 row_count
     row count to return
     
    -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
     
    -TDS_ODBC_SPECIAL_ROWS special_row
     
    -SQLULEN sql_rowset_size
     
    -TDSSOCKETtds
     socket (only if active)
     
    -

    Member Data Documentation

    - -

    § need_reprepare

    - -
    -
    - - - - -
    unsigned _hstmt::need_reprepare
    -
    - -

    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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01006.map freetds-1.2.3/doc/reference/a01006.map --- freetds-1.1.6/doc/reference/a01006.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01006.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,5 @@ + + + + + diff -Nru freetds-1.1.6/doc/reference/a01006.md5 freetds-1.2.3/doc/reference/a01006.md5 --- freetds-1.1.6/doc/reference/a01006.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01006.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +be594a159a448d8bd10cdf2cd9ccb397 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01006.svg freetds-1.2.3/doc/reference/a01006.svg --- freetds-1.1.6/doc/reference/a01006.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01006.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,54 @@ + + + + + + +_hchk + + + +Node1 + + +_hchk + + + + + +Node2 + + +_sql_errors + + + + + +Node2->Node1 + + + errs + + + +Node3 + + +_sql_error + + + + + +Node3->Node2 + + + errs + + + diff -Nru freetds-1.1.6/doc/reference/a01007.html freetds-1.2.3/doc/reference/a01007.html --- freetds-1.1.6/doc/reference/a01007.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01007.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    TDS_FUNCS Member List
    -
    -
    - -

    This is the complete list of members for TDS_FUNCS, including all inherited members.

    - - - -
    common (defined in TDS_FUNCS)TDS_FUNCS
    set_type_info (defined in TDS_FUNCS)TDS_FUNCS
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01008.html freetds-1.2.3/doc/reference/a01008.html --- freetds-1.1.6/doc/reference/a01008.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01008.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: _hchk Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _hchk Struct Reference
    +
    +
    +
    +Collaboration diagram for _hchk:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +struct _sql_errors errs
     
    +SQLSMALLINT htype
     
    +tds_mutex mtx
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01008.map freetds-1.2.3/doc/reference/a01008.map --- freetds-1.1.6/doc/reference/a01008.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01008.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01008.md5 freetds-1.2.3/doc/reference/a01008.md5 --- freetds-1.1.6/doc/reference/a01008.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01008.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c6889311f9364d033d0408b254b52fd7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01008.svg freetds-1.2.3/doc/reference/a01008.svg --- freetds-1.1.6/doc/reference/a01008.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01008.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -TDS_FUNCS - - -Node1 - -TDS_FUNCS - - -Node2 - - -tds_column_funcs - - - - -Node2->Node1 - - - common - - - diff -Nru freetds-1.1.6/doc/reference/a01009.html freetds-1.2.3/doc/reference/a01009.html --- freetds-1.1.6/doc/reference/a01009.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01009.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _henv Member List
    +
    +
    + +

    This is the complete list of members for _henv, including all inherited members.

    + + + + + + +
    attr (defined in _henv)_henv
    errs (defined in _henv)_henv
    htype (defined in _henv)_henv
    mtx (defined in _henv)_henv
    tds_ctx (defined in _henv)_henv
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01010.html freetds-1.2.3/doc/reference/a01010.html --- freetds-1.1.6/doc/reference/a01010.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01010.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: TDS_FUNCS Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    TDS_FUNCS Struct Reference
    -
    -
    -
    -Collaboration diagram for TDS_FUNCS:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01010.map freetds-1.2.3/doc/reference/a01010.map --- freetds-1.1.6/doc/reference/a01010.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01010.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01010.md5 freetds-1.2.3/doc/reference/a01010.md5 --- freetds-1.1.6/doc/reference/a01010.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01010.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +fe209a73bbc3ee08dcf855b8f7ea45cf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01010.svg freetds-1.2.3/doc/reference/a01010.svg --- freetds-1.1.6/doc/reference/a01010.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01010.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,102 @@ + + + + + + +_henv + + + +Node1 + + +_henv + + + + + +Node2 + + +tds_context + + + + + +Node2->Node1 + + + tds_ctx + + + +Node3 + + +tds_locale + + + + + +Node3->Node2 + + + locale + + + +Node4 + + +_heattr + + + + + +Node4->Node1 + + + attr + + + +Node5 + + +_sql_errors + + + + + +Node5->Node1 + + + errs + + + +Node6 + + +_sql_error + + + + + +Node6->Node5 + + + errs + + + diff -Nru freetds-1.1.6/doc/reference/a01011.html freetds-1.2.3/doc/reference/a01011.html --- freetds-1.1.6/doc/reference/a01011.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01011.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    TDS_PARSED_PARAM Member List
    -
    -
    - -

    This is the complete list of members for TDS_PARSED_PARAM, including all inherited members.

    - - - -
    len (defined in TDS_PARSED_PARAM)TDS_PARSED_PARAM
    p (defined in TDS_PARSED_PARAM)TDS_PARSED_PARAM
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01012.html freetds-1.2.3/doc/reference/a01012.html --- freetds-1.1.6/doc/reference/a01012.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01012.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + + +FreeTDS API: _henv Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _henv Struct Reference
    +
    +
    +
    +Collaboration diagram for _henv:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + +

    +Public Attributes

    +struct _heattr attr
     
    +struct _sql_errors errs
     
    +SQLSMALLINT htype
     
    +tds_mutex mtx
     
    +TDSCONTEXTtds_ctx
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01013.html freetds-1.2.3/doc/reference/a01013.html --- freetds-1.1.6/doc/reference/a01013.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01013.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,97 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _hcattr Member List
    +
    +
    + +

    This is the complete list of members for _hcattr, including all inherited members.

    + + + + + + + + + + + + + + + + + + + +
    access_mode (defined in _hcattr)_hcattr
    async_enable (defined in _hcattr)_hcattr
    auto_ipd (defined in _hcattr)_hcattr
    autocommit (defined in _hcattr)_hcattr
    bulk_enabled (defined in _hcattr)_hcattr
    connection_dead (defined in _hcattr)_hcattr
    connection_timeout (defined in _hcattr)_hcattr
    current_catalog (defined in _hcattr)_hcattr
    cursor_type (defined in _hcattr)_hcattr
    login_timeout (defined in _hcattr)_hcattr
    mars_enabled (defined in _hcattr)_hcattr
    metadata_id (defined in _hcattr)_hcattr
    odbc_cursors (defined in _hcattr)_hcattr
    packet_size (defined in _hcattr)_hcattr
    quite_mode (defined in _hcattr)_hcattr
    translate_lib (defined in _hcattr)_hcattr
    translate_option (defined in _hcattr)_hcattr
    txn_isolation (defined in _hcattr)_hcattr
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01014.html freetds-1.2.3/doc/reference/a01014.html --- freetds-1.1.6/doc/reference/a01014.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01014.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: TDS_PARSED_PARAM Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    TDS_PARSED_PARAM Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -size_t len
     
    -const char * p
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01014.map freetds-1.2.3/doc/reference/a01014.map --- freetds-1.1.6/doc/reference/a01014.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01014.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01014.md5 freetds-1.2.3/doc/reference/a01014.md5 --- freetds-1.1.6/doc/reference/a01014.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01014.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +fa366dc612b22ae69669439c933c167c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01014.svg freetds-1.2.3/doc/reference/a01014.svg --- freetds-1.1.6/doc/reference/a01014.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01014.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,39 @@ + + + + + + +_hcattr + + + +Node1 + + +_hcattr + + + + + +Node2 + + +tds_dstr + + + + + +Node2->Node1 + + + translate_lib +current_catalog + + + diff -Nru freetds-1.1.6/doc/reference/a01015.html freetds-1.2.3/doc/reference/a01015.html --- freetds-1.1.6/doc/reference/a01015.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01015.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsnumeric Member List
    -
    -
    - -

    This is the complete list of members for tdsnumeric, including all inherited members.

    - - - - -
    array (defined in tdsnumeric)tdsnumeric
    precision (defined in tdsnumeric)tdsnumeric
    scale (defined in tdsnumeric)tdsnumeric
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01016.html freetds-1.2.3/doc/reference/a01016.html --- freetds-1.1.6/doc/reference/a01016.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01016.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,146 @@ + + + + + + + +FreeTDS API: _hcattr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _hcattr Struct Reference
    +
    +
    +
    +Collaboration diagram for _hcattr:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +SQLUINTEGER access_mode
     
    +SQLUINTEGER async_enable
     
    +SQLUINTEGER auto_ipd
     
    +SQLUINTEGER autocommit
     
    +SQLUINTEGER bulk_enabled
     
    +SQLUINTEGER connection_dead
     
    +SQLUINTEGER connection_timeout
     
    +DSTR current_catalog
     
    +SQLUINTEGER cursor_type
     
    +SQLUINTEGER login_timeout
     
    +SQLUINTEGER mars_enabled
     
    +SQLUINTEGER metadata_id
     
    +SQLUINTEGER odbc_cursors
     
    +SQLUINTEGER packet_size
     
    +SQLHWND quite_mode
     
    +DSTR translate_lib
     
    +SQLUINTEGER translate_option
     
    +SQLUINTEGER txn_isolation
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01017.html freetds-1.2.3/doc/reference/a01017.html --- freetds-1.1.6/doc/reference/a01017.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01017.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _hdbc Member List
    +
    +
    + +

    This is the complete list of members for _hdbc, including all inherited members.

    + + + + + + + + + + + + + + + + + +
    attr (defined in _hdbc)_hdbc
    bcphint (defined in _hdbc)_hdbc
    bcpinfo (defined in _hdbc)_hdbc
    current_statement_hdbc
    cursor_support_hdbc
    default_query_timeout (defined in _hdbc)_hdbc
    dsn (defined in _hdbc)_hdbc
    env (defined in _hdbc)_hdbc
    errs (defined in _hdbc)_hdbc
    htype (defined in _hdbc)_hdbc
    mtx (defined in _hdbc)_hdbc
    oldpwd (defined in _hdbc)_hdbc
    stmt_list_hdbc
    tds_socket (defined in _hdbc)_hdbc
    uad_hdbc
    use_oldpwd (defined in _hdbc)_hdbc
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01018.html freetds-1.2.3/doc/reference/a01018.html --- freetds-1.1.6/doc/reference/a01018.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01018.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tdsnumeric Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsnumeric Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -unsigned char array [33]
     
    -unsigned char precision
     
    -unsigned char scale
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01018.map freetds-1.2.3/doc/reference/a01018.map --- freetds-1.1.6/doc/reference/a01018.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01018.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01018.md5 freetds-1.2.3/doc/reference/a01018.md5 --- freetds-1.1.6/doc/reference/a01018.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01018.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6cf9a34ec670828a8496a7e8b4f4874d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01018.svg freetds-1.2.3/doc/reference/a01018.svg --- freetds-1.1.6/doc/reference/a01018.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01018.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,555 @@ + + + + + + +_hdbc + + + +Node1 + + +_hdbc + + + + + +Node2 + + +_hstmt + + + + + +Node1->Node2 + + + dbc + + + +Node2->Node1 + + + stmt_list +current_statement + + + +Node2->Node2 + + + prev +next + + + +Node3 + + +tds_socket + + + + + +Node3->Node1 + + + tds_socket + + + +Node3->Node2 + + + tds + + + +Node10 + + +tds_result_info + + + + + +Node3->Node10 + + + attached_to + + + +Node4 + + +tds_login + + + + + +Node4->Node3 + + + login + + + +Node7 + + +tds_dstr + + + + + +Node7->Node1 + + + oldpwd +dsn + + + +Node7->Node2 + + + query +cursor_name + + + +Node7->Node4 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node26 + + +_hsattr + + + + + +Node7->Node26 + + + qn_msgtext +qn_options + + + +Node29 + + +_drecord + + + + + +Node7->Node29 + + + sql_desc_schema_name +sql_desc_name +sql_desc_base_column +_name +sql_desc_base_table +_name +sql_desc_catalog +_name +sql_desc_table +_name +sql_desc_label +sql_desc_local +_type_name + + + +Node32 + + +tds_bcpinfo + + + + + +Node7->Node32 + + + tablename + + + +Node33 + + +_hcattr + + + + + +Node7->Node33 + + + translate_lib +current_catalog + + + +Node8 + + +tds_packet + + + + + +Node8->Node3 + + + frozen_packets +recv_packet +send_packet + + + +Node8->Node8 + + + next + + + +Node20 + + +tds_connection + + + + + +Node8->Node20 + + + packet_cache + + + +Node9 + + +tds_dynamic + + + + + +Node9->Node2 + + + dyn + + + +Node9->Node3 + + + cur_dyn + + + +Node9->Node9 + + + next + + + +Node9->Node20 + + + dyns + + + +Node10->Node2 + + + params + + + +Node10->Node3 + + + param_info +current_results +res_info +comp_info + + + +Node10->Node9 + + + res_info +params + + + +Node18 + + +tds_cursor + + + + + +Node10->Node18 + + + res_info + + + +Node10->Node32 + + + bindinfo + + + +Node18->Node2 + + + cursor + + + +Node18->Node3 + + + cur_cursor + + + +Node18->Node18 + + + next + + + +Node18->Node20 + + + cursors + + + +Node20->Node3 + + + conn + + + +Node23 + + +tds_context + + + + + +Node23->Node20 + + + tds_ctx + + + +Node34 + + +_henv + + + + + +Node23->Node34 + + + tds_ctx + + + +Node26->Node2 + + + attr + + + +Node27 + + +_hdesc + + + + + +Node27->Node1 + + + uad + + + +Node27->Node2 + + + apd +orig_apd +orig_ard +ird +ipd +ard + + + +Node28 + + +_dheader + + + + + +Node28->Node27 + + + header + + + +Node29->Node27 + + + records + + + +Node30 + + +_sql_errors + + + + + +Node30->Node1 + + + errs + + + +Node30->Node2 + + + errs + + + +Node30->Node27 + + + errs + + + +Node30->Node34 + + + errs + + + +Node32->Node1 + + + bcpinfo + + + +Node33->Node1 + + + attr + + + +Node34->Node1 + + + env + + + +Node35 + + +_heattr + + + + + +Node35->Node34 + + + attr + + + diff -Nru freetds-1.1.6/doc/reference/a01019.html freetds-1.2.3/doc/reference/a01019.html --- freetds-1.1.6/doc/reference/a01019.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01019.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsoldmoney Member List
    -
    -
    - -

    This is the complete list of members for tdsoldmoney, including all inherited members.

    - - - -
    mnyhigh (defined in tdsoldmoney)tdsoldmoney
    mnylow (defined in tdsoldmoney)tdsoldmoney
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01020.html freetds-1.2.3/doc/reference/a01020.html --- freetds-1.1.6/doc/reference/a01020.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01020.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,161 @@ + + + + + + + +FreeTDS API: _hdbc Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _hdbc Struct Reference
    +
    +
    +
    +Collaboration diagram for _hdbc:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +struct _hcattr attr
     
    +char * bcphint
     
    +TDSBCPINFObcpinfo
     
    struct _hstmtcurrent_statement
     Statement executing. More...
     
    +unsigned int cursor_support:1
     <>0 if server handle cursors
     
    +TDS_INT default_query_timeout
     
    +DSTR dsn
     
    +struct _henvenv
     
    +struct _sql_errors errs
     
    +SQLSMALLINT htype
     
    +tds_mutex mtx
     
    +DSTR oldpwd
     
    +struct _hstmtstmt_list
     list of all statements allocated from this connection
     
    +TDSSOCKETtds_socket
     
    +TDS_DESCuad [TDS_MAX_APP_DESC]
     descriptors associated to connection
     
    +unsigned int use_oldpwd:1
     
    +

    Member Data Documentation

    + +

    ◆ current_statement

    + +
    +
    + + + + +
    struct _hstmt* _hdbc::current_statement
    +
    + +

    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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01021.html freetds-1.2.3/doc/reference/a01021.html --- freetds-1.1.6/doc/reference/a01021.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01021.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,99 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _hsattr Member List
    +
    +
    + +

    This is the complete list of members for _hsattr, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + +
    async_enable (defined in _hsattr)_hsattr
    concurrency (defined in _hsattr)_hsattr
    cursor_scrollable (defined in _hsattr)_hsattr
    cursor_sensitivity (defined in _hsattr)_hsattr
    cursor_type (defined in _hsattr)_hsattr
    enable_auto_ipd (defined in _hsattr)_hsattr
    fetch_bookmark_ptr (defined in _hsattr)_hsattr
    keyset_size (defined in _hsattr)_hsattr
    max_length (defined in _hsattr)_hsattr
    max_rows (defined in _hsattr)_hsattr
    metadata_id (defined in _hsattr)_hsattr
    noscan (defined in _hsattr)_hsattr
    qn_msgtext (defined in _hsattr)_hsattr
    qn_options (defined in _hsattr)_hsattr
    qn_timeout (defined in _hsattr)_hsattr
    query_timeout (defined in _hsattr)_hsattr
    retrieve_data (defined in _hsattr)_hsattr
    row_number (defined in _hsattr)_hsattr
    simulate_cursor (defined in _hsattr)_hsattr
    use_bookmarks (defined in _hsattr)_hsattr
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01022.html freetds-1.2.3/doc/reference/a01022.html --- freetds-1.1.6/doc/reference/a01022.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01022.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tdsoldmoney Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsoldmoney Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -TDS_INT mnyhigh
     
    -TDS_UINT mnylow
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01022.map freetds-1.2.3/doc/reference/a01022.map --- freetds-1.1.6/doc/reference/a01022.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01022.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01022.md5 freetds-1.2.3/doc/reference/a01022.md5 --- freetds-1.1.6/doc/reference/a01022.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01022.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +747862f4c53111d357e3ef7a433e1570 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01022.svg freetds-1.2.3/doc/reference/a01022.svg --- freetds-1.1.6/doc/reference/a01022.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01022.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,39 @@ + + + + + + +_hsattr + + + +Node1 + + +_hsattr + + + + + +Node2 + + +tds_dstr + + + + + +Node2->Node1 + + + qn_msgtext +qn_options + + + diff -Nru freetds-1.1.6/doc/reference/a01023.html freetds-1.2.3/doc/reference/a01023.html --- freetds-1.1.6/doc/reference/a01023.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01023.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsmoney Member List
    -
    -
    - -

    This is the complete list of members for tdsmoney, including all inherited members.

    - - - -
    mny (defined in tdsmoney)tdsmoney
    tdsoldmoney (defined in tdsmoney)tdsmoney
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01024.html freetds-1.2.3/doc/reference/a01024.html --- freetds-1.1.6/doc/reference/a01024.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01024.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,152 @@ + + + + + + + +FreeTDS API: _hsattr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _hsattr Struct Reference
    +
    +
    +
    +Collaboration diagram for _hsattr:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +SQLUINTEGER async_enable
     
    +SQLUINTEGER concurrency
     
    +SQLUINTEGER cursor_scrollable
     
    +SQLUINTEGER cursor_sensitivity
     
    +SQLUINTEGER cursor_type
     
    +SQLUINTEGER enable_auto_ipd
     
    +SQLPOINTER fetch_bookmark_ptr
     
    +SQLULEN keyset_size
     
    +SQLULEN max_length
     
    +SQLULEN max_rows
     
    +SQLUINTEGER metadata_id
     
    +SQLUINTEGER noscan
     
    +DSTR qn_msgtext
     
    +DSTR qn_options
     
    +SQLUINTEGER qn_timeout
     
    +SQLUINTEGER query_timeout
     
    +SQLUINTEGER retrieve_data
     
    +SQLULEN row_number
     
    +SQLUINTEGER simulate_cursor
     
    +SQLUINTEGER use_bookmarks
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01024.map freetds-1.2.3/doc/reference/a01024.map --- freetds-1.1.6/doc/reference/a01024.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01024.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01024.md5 freetds-1.2.3/doc/reference/a01024.md5 --- freetds-1.1.6/doc/reference/a01024.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01024.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4a3a15a816d59d3b153eea49a0424b21 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01024.svg freetds-1.2.3/doc/reference/a01024.svg --- freetds-1.1.6/doc/reference/a01024.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01024.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tdsmoney - - -Node1 - -tdsmoney - - -Node2 - - -tdsoldmoney - - - - -Node2->Node1 - - - tdsoldmoney - - - diff -Nru freetds-1.1.6/doc/reference/a01025.html freetds-1.2.3/doc/reference/a01025.html --- freetds-1.1.6/doc/reference/a01025.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01025.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    _hstmt Member List
    +
    +
    + +

    This is the complete list of members for _hstmt, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    apd (defined in _hstmt)_hstmt
    ard (defined in _hstmt)_hstmt
    attr (defined in _hstmt)_hstmt
    curr_param_row (defined in _hstmt)_hstmt
    cursor (defined in _hstmt)_hstmt
    cursor_name (defined in _hstmt)_hstmt
    dbc (defined in _hstmt)_hstmt
    dyn (defined in _hstmt)_hstmt
    errs (defined in _hstmt)_hstmt
    htype (defined in _hstmt)_hstmt
    ipd (defined in _hstmt)_hstmt
    ird (defined in _hstmt)_hstmt
    is_prepared_query (defined in _hstmt)_hstmt
    mtx (defined in _hstmt)_hstmt
    need_reprepare_hstmt
    next_hstmt
    num_param_rows (defined in _hstmt)_hstmt
    orig_apd (defined in _hstmt)_hstmt
    orig_ard (defined in _hstmt)_hstmt
    param_count_hstmt
    param_data_called (defined in _hstmt)_hstmt
    param_num_hstmt
    params_hstmt
    prepared_pos_hstmt
    prepared_query_is_func (defined in _hstmt)_hstmt
    prepared_query_is_rpc (defined in _hstmt)_hstmt
    prev_hstmt
    query_hstmt
    row (defined in _hstmt)_hstmt
    row_count_hstmt
    row_status_hstmt
    special_row (defined in _hstmt)_hstmt
    sql_rowset_size (defined in _hstmt)_hstmt
    tds_hstmt
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01026.html freetds-1.2.3/doc/reference/a01026.html --- freetds-1.1.6/doc/reference/a01026.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01026.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tdsmoney Union Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsmoney Union Reference
    -
    -
    -
    -Collaboration diagram for tdsmoney:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -TDS_INT8 mny
     
    -TDS_OLD_MONEY tdsoldmoney
     
    -
    The documentation for this union was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01026.map freetds-1.2.3/doc/reference/a01026.map --- freetds-1.1.6/doc/reference/a01026.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01026.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01026.md5 freetds-1.2.3/doc/reference/a01026.md5 --- freetds-1.1.6/doc/reference/a01026.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01026.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +92ed4daca0701c8825eadcd31a8aa066 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01026.svg freetds-1.2.3/doc/reference/a01026.svg --- freetds-1.1.6/doc/reference/a01026.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01026.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,658 @@ + + + + + + +_hstmt + + + +Node1 + + +_hstmt + + + + + +Node1->Node1 + + + prev +next + + + +Node25 + + +_hdbc + + + + + +Node1->Node25 + + + stmt_list +current_statement + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node2->Node25 + + + tds_socket + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node1 + + + query +cursor_name + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node6->Node25 + + + oldpwd +dsn + + + +Node26 + + +tds_bcpinfo + + + + + +Node6->Node26 + + + tablename + + + +Node27 + + +_hcattr + + + + + +Node6->Node27 + + + translate_lib +current_catalog + + + +Node30 + + +_drecord + + + + + +Node6->Node30 + + + sql_desc_schema_name +sql_desc_name +sql_desc_base_column +_name +sql_desc_base_table +_name +sql_desc_catalog +_name +sql_desc_table +_name +sql_desc_label +sql_desc_local +_type_name + + + +Node35 + + +_hsattr + + + + + +Node6->Node35 + + + qn_msgtext +qn_options + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node1 + + + dyn + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node1 + + + params + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node9->Node26 + + + bindinfo + + + +Node17->Node1 + + + cursor + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node33 + + +_henv + + + + + +Node22->Node33 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + +Node25->Node1 + + + dbc + + + +Node26->Node25 + + + bcpinfo + + + +Node27->Node25 + + + attr + + + +Node28 + + +_hdesc + + + + + +Node28->Node1 + + + apd +orig_apd +orig_ard +ird +ipd +ard + + + +Node28->Node25 + + + uad + + + +Node29 + + +_dheader + + + + + +Node29->Node28 + + + header + + + +Node30->Node28 + + + records + + + +Node31 + + +_sql_errors + + + + + +Node31->Node1 + + + errs + + + +Node31->Node25 + + + errs + + + +Node31->Node28 + + + errs + + + +Node31->Node33 + + + errs + + + +Node33->Node25 + + + env + + + +Node34 + + +_heattr + + + + + +Node34->Node33 + + + attr + + + +Node35->Node1 + + + attr + + + diff -Nru freetds-1.1.6/doc/reference/a01027.html freetds-1.2.3/doc/reference/a01027.html --- freetds-1.1.6/doc/reference/a01027.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01027.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsmoney4 Member List
    -
    -
    - -

    This is the complete list of members for tdsmoney4, including all inherited members.

    - - -
    mny4 (defined in tdsmoney4)tdsmoney4
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01028.html freetds-1.2.3/doc/reference/a01028.html --- freetds-1.1.6/doc/reference/a01028.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01028.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,222 @@ + + + + + + + +FreeTDS API: _hstmt Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    _hstmt Struct Reference
    +
    +
    +
    +Collaboration diagram for _hstmt:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_DESCapd
     
    +TDS_DESCard
     
    +struct _hsattr attr
     
    +unsigned int curr_param_row
     
    +TDSCURSORcursor
     
    +DSTR cursor_name
     
    +struct _hdbcdbc
     
    +TDSDYNAMICdyn
     
    +struct _sql_errors errs
     
    +SQLSMALLINT htype
     
    +TDS_DESCipd
     
    +TDS_DESCird
     
    +unsigned is_prepared_query:1
     
    +tds_mutex mtx
     
    unsigned need_reprepare:1
     Prepared statement needs to be prepared again. More...
     
    +struct _hstmtnext
     next in list
     
    +unsigned int num_param_rows
     
    +TDS_DESCorig_apd
     
    +TDS_DESCorig_ard
     
    +unsigned int param_count
     number of parameter in current query
     
    +unsigned param_data_called:1
     
    +int param_num
     last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
     
    +TDSPARAMINFOparams
     parameters saved
     
    +size_t prepared_pos
     position in prepared query to check parameters, used only in RPC
     
    +unsigned prepared_query_is_func:1
     
    +unsigned prepared_query_is_rpc:1
     
    +struct _hstmtprev
     previous in list
     
    +DSTR query
     query to execute
     
    +int row
     
    +TDS_INT8 row_count
     row count to return
     
    +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
     
    +TDS_ODBC_SPECIAL_ROWS special_row
     
    +SQLULEN sql_rowset_size
     
    +TDSSOCKETtds
     socket (only if active)
     
    +

    Member Data Documentation

    + +

    ◆ need_reprepare

    + +
    +
    + + + + +
    unsigned _hstmt::need_reprepare
    +
    + +

    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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01029.html freetds-1.2.3/doc/reference/a01029.html --- freetds-1.1.6/doc/reference/a01029.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01029.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TDS_FUNCS Member List
    +
    +
    + +

    This is the complete list of members for TDS_FUNCS, including all inherited members.

    + + + +
    common (defined in TDS_FUNCS)TDS_FUNCS
    set_type_info (defined in TDS_FUNCS)TDS_FUNCS
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01030.html freetds-1.2.3/doc/reference/a01030.html --- freetds-1.1.6/doc/reference/a01030.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01030.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: tdsmoney4 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsmoney4 Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -TDS_INT mny4
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01030.map freetds-1.2.3/doc/reference/a01030.map --- freetds-1.1.6/doc/reference/a01030.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01030.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01030.md5 freetds-1.2.3/doc/reference/a01030.md5 --- freetds-1.1.6/doc/reference/a01030.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01030.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +7215fff5325e9704f7b63155016664cd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01030.svg freetds-1.2.3/doc/reference/a01030.svg --- freetds-1.1.6/doc/reference/a01030.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01030.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +TDS_FUNCS + + + +Node1 + + +TDS_FUNCS + + + + + +Node2 + + +tds_column_funcs + + + + + +Node2->Node1 + + + common + + + diff -Nru freetds-1.1.6/doc/reference/a01031.html freetds-1.2.3/doc/reference/a01031.html --- freetds-1.1.6/doc/reference/a01031.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01031.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsdatetime Member List
    -
    -
    - -

    This is the complete list of members for tdsdatetime, including all inherited members.

    - - - -
    dtdays (defined in tdsdatetime)tdsdatetime
    dttime (defined in tdsdatetime)tdsdatetime
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01032.html freetds-1.2.3/doc/reference/a01032.html --- freetds-1.1.6/doc/reference/a01032.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01032.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: TDS_FUNCS Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TDS_FUNCS Struct Reference
    +
    +
    +
    +Collaboration diagram for TDS_FUNCS:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01033.html freetds-1.2.3/doc/reference/a01033.html --- freetds-1.1.6/doc/reference/a01033.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01033.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TDS_PARSED_PARAM Member List
    +
    +
    + +

    This is the complete list of members for TDS_PARSED_PARAM, including all inherited members.

    + + + +
    len (defined in TDS_PARSED_PARAM)TDS_PARSED_PARAM
    p (defined in TDS_PARSED_PARAM)TDS_PARSED_PARAM
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01034.html freetds-1.2.3/doc/reference/a01034.html --- freetds-1.1.6/doc/reference/a01034.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01034.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tdsdatetime Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsdatetime Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -TDS_INT dtdays
     
    -TDS_INT dttime
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01035.html freetds-1.2.3/doc/reference/a01035.html --- freetds-1.1.6/doc/reference/a01035.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01035.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsdatetime4 Member List
    -
    -
    - -

    This is the complete list of members for tdsdatetime4, including all inherited members.

    - - - -
    days (defined in tdsdatetime4)tdsdatetime4
    minutes (defined in tdsdatetime4)tdsdatetime4
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01036.html freetds-1.2.3/doc/reference/a01036.html --- freetds-1.1.6/doc/reference/a01036.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01036.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: TDS_PARSED_PARAM Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TDS_PARSED_PARAM Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +size_t len
     
    +const char * p
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01037.html freetds-1.2.3/doc/reference/a01037.html --- freetds-1.1.6/doc/reference/a01037.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01037.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsnumeric Member List
    +
    +
    + +

    This is the complete list of members for tdsnumeric, including all inherited members.

    + + + + +
    array (defined in tdsnumeric)tdsnumeric
    precision (defined in tdsnumeric)tdsnumeric
    scale (defined in tdsnumeric)tdsnumeric
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01038.html freetds-1.2.3/doc/reference/a01038.html --- freetds-1.1.6/doc/reference/a01038.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01038.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tdsdatetime4 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsdatetime4 Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -TDS_USMALLINT days
     
    -TDS_USMALLINT minutes
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01039.html freetds-1.2.3/doc/reference/a01039.html --- freetds-1.1.6/doc/reference/a01039.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01039.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsunique Member List
    -
    -
    - -

    This is the complete list of members for tdsunique, including all inherited members.

    - - - - - -
    Data1 (defined in tdsunique)tdsunique
    Data2 (defined in tdsunique)tdsunique
    Data3 (defined in tdsunique)tdsunique
    Data4 (defined in tdsunique)tdsunique
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01040.html freetds-1.2.3/doc/reference/a01040.html --- freetds-1.1.6/doc/reference/a01040.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01040.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tdsnumeric Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsnumeric Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +unsigned char array [33]
     
    +unsigned char precision
     
    +unsigned char scale
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01041.html freetds-1.2.3/doc/reference/a01041.html --- freetds-1.1.6/doc/reference/a01041.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01041.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsoldmoney Member List
    +
    +
    + +

    This is the complete list of members for tdsoldmoney, including all inherited members.

    + + + +
    mnyhigh (defined in tdsoldmoney)tdsoldmoney
    mnylow (defined in tdsoldmoney)tdsoldmoney
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01042.html freetds-1.2.3/doc/reference/a01042.html --- freetds-1.1.6/doc/reference/a01042.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01042.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tdsunique Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsunique Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -TDS_UINT Data1
     
    -TDS_USMALLINT Data2
     
    -TDS_USMALLINT Data3
     
    -TDS_UCHAR Data4 [8]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01043.html freetds-1.2.3/doc/reference/a01043.html --- freetds-1.1.6/doc/reference/a01043.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01043.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    TDS71_COLLATION Member List
    -
    -
    - -

    This is the complete list of members for TDS71_COLLATION, including all inherited members.

    - - - - -
    charset_id (defined in TDS71_COLLATION)TDS71_COLLATION
    flags (defined in TDS71_COLLATION)TDS71_COLLATION
    locale_id (defined in TDS71_COLLATION)TDS71_COLLATION
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01044.html freetds-1.2.3/doc/reference/a01044.html --- freetds-1.1.6/doc/reference/a01044.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01044.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tdsoldmoney Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsoldmoney Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +TDS_INT mnyhigh
     
    +TDS_UINT mnylow
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01045.html freetds-1.2.3/doc/reference/a01045.html --- freetds-1.1.6/doc/reference/a01045.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01045.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsmoney Member List
    +
    +
    + +

    This is the complete list of members for tdsmoney, including all inherited members.

    + + + +
    mny (defined in tdsmoney)tdsmoney
    tdsoldmoney (defined in tdsmoney)tdsmoney
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01046.html freetds-1.2.3/doc/reference/a01046.html --- freetds-1.1.6/doc/reference/a01046.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01046.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ - - - - - - - -FreeTDS API: TDS71_COLLATION Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    TDS71_COLLATION Struct Reference
    -
    -
    - -

    TDS 7.1 collation informations. - More...

    - -

    #include <proto.h>

    - - - - - - - - -

    -Public Attributes

    -TDS_UCHAR charset_id
     
    -TDS_USMALLINT flags
     
    -TDS_USMALLINT locale_id
     
    -

    Detailed Description

    -

    TDS 7.1 collation informations.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01046.map freetds-1.2.3/doc/reference/a01046.map --- freetds-1.1.6/doc/reference/a01046.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01046.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01046.md5 freetds-1.2.3/doc/reference/a01046.md5 --- freetds-1.1.6/doc/reference/a01046.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01046.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f420ba8f3f32788b34097b9861fd38ce \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01046.svg freetds-1.2.3/doc/reference/a01046.svg --- freetds-1.1.6/doc/reference/a01046.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01046.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tdsmoney + + + +Node1 + + +tdsmoney + + + + + +Node2 + + +tdsoldmoney + + + + + +Node2->Node1 + + + tdsoldmoney + + + diff -Nru freetds-1.1.6/doc/reference/a01047.html freetds-1.2.3/doc/reference/a01047.html --- freetds-1.1.6/doc/reference/a01047.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01047.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    TDS72_SMP_HEADER Member List
    -
    -
    - -

    This is the complete list of members for TDS72_SMP_HEADER, including all inherited members.

    - - - - - - - -
    seq (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    sid (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    signature (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    size (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    type (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    wnd (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01048.html freetds-1.2.3/doc/reference/a01048.html --- freetds-1.1.6/doc/reference/a01048.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01048.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tdsmoney Union Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsmoney Union Reference
    +
    +
    +
    +Collaboration diagram for tdsmoney:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +TDS_INT8 mny
     
    +TDS_OLD_MONEY tdsoldmoney
     
    +
    The documentation for this union was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01049.html freetds-1.2.3/doc/reference/a01049.html --- freetds-1.1.6/doc/reference/a01049.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01049.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsmoney4 Member List
    +
    +
    + +

    This is the complete list of members for tdsmoney4, including all inherited members.

    + + +
    mny4 (defined in tdsmoney4)tdsmoney4
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01050.html freetds-1.2.3/doc/reference/a01050.html --- freetds-1.1.6/doc/reference/a01050.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01050.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - -FreeTDS API: TDS72_SMP_HEADER Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    TDS72_SMP_HEADER Struct Reference
    -
    -
    - -

    TDS 7.2 SMP packet header. - More...

    - -

    #include <proto.h>

    - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_UINT seq
     
    -TDS_USMALLINT sid
     
    -TDS_UCHAR signature
     
    -TDS_UINT size
     
    -TDS_UCHAR type
     
    -TDS_UINT wnd
     
    -

    Detailed Description

    -

    TDS 7.2 SMP packet header.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01051.html freetds-1.2.3/doc/reference/a01051.html --- freetds-1.1.6/doc/reference/a01051.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01051.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_input_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_input_stream, including all inherited members.

    - - -
    readtds_input_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01052.html freetds-1.2.3/doc/reference/a01052.html --- freetds-1.1.6/doc/reference/a01052.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01052.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: tdsmoney4 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsmoney4 Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +TDS_INT mny4
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01053.html freetds-1.2.3/doc/reference/a01053.html --- freetds-1.1.6/doc/reference/a01053.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01053.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsdatetime Member List
    +
    +
    + +

    This is the complete list of members for tdsdatetime, including all inherited members.

    + + + +
    dtdays (defined in tdsdatetime)tdsdatetime
    dttime (defined in tdsdatetime)tdsdatetime
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01054.html freetds-1.2.3/doc/reference/a01054.html --- freetds-1.1.6/doc/reference/a01054.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01054.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - - - -FreeTDS API: tds_input_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_input_stream Struct Reference
    -
    -
    - -

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

    - -

    #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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01055.html freetds-1.2.3/doc/reference/a01055.html --- freetds-1.1.6/doc/reference/a01055.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01055.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_output_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_output_stream, including all inherited members.

    - - - - -
    buf_len (defined in tds_output_stream)tds_output_stream
    buffertds_output_stream
    writetds_output_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01056.html freetds-1.2.3/doc/reference/a01056.html --- freetds-1.1.6/doc/reference/a01056.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01056.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tdsdatetime Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsdatetime Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +TDS_INT dtdays
     
    +TDS_INT dttime
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01057.html freetds-1.2.3/doc/reference/a01057.html --- freetds-1.1.6/doc/reference/a01057.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01057.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsdatetime4 Member List
    +
    +
    + +

    This is the complete list of members for tdsdatetime4, including all inherited members.

    + + + +
    days (defined in tdsdatetime4)tdsdatetime4
    minutes (defined in tdsdatetime4)tdsdatetime4
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01058.html freetds-1.2.3/doc/reference/a01058.html --- freetds-1.1.6/doc/reference/a01058.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01058.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ - - - - - - - -FreeTDS API: tds_output_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_output_stream Struct Reference
    -
    -
    - -

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

    - -

    #include <stream.h>

    - - - - - - - - - - -

    -Public Attributes

    -size_t buf_len
     
    char * buffer
     write buffer. More...
     
    -int(* write )(struct tds_output_stream *stream, size_t len)
     write len bytes from buffer, return <0 if error or len
     
    -

    Detailed Description

    -

    define a stream of data used for output

    -

    Member Data Documentation

    - -

    § buffer

    - -
    -
    - - - - -
    char* tds_output_stream::buffer
    -
    - -

    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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01059.html freetds-1.2.3/doc/reference/a01059.html --- freetds-1.1.6/doc/reference/a01059.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01059.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_datain_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_datain_stream, including all inherited members.

    - - - - -
    stream (defined in tds_datain_stream)tds_datain_stream
    tds (defined in tds_datain_stream)tds_datain_stream
    wire_sizetds_datain_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01060.html freetds-1.2.3/doc/reference/a01060.html --- freetds-1.1.6/doc/reference/a01060.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01060.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tdsdatetime4 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsdatetime4 Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +TDS_USMALLINT days
     
    +TDS_USMALLINT minutes
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01060.map freetds-1.2.3/doc/reference/a01060.map --- freetds-1.1.6/doc/reference/a01060.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01060.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01060.md5 freetds-1.2.3/doc/reference/a01060.md5 --- freetds-1.1.6/doc/reference/a01060.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01060.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -a190bf093ed63b63cfdcce949b8df163 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01060.svg freetds-1.2.3/doc/reference/a01060.svg --- freetds-1.1.6/doc/reference/a01060.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01060.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,312 +0,0 @@ - - - - - - -tds_datain_stream - - -Node1 - -tds_datain_stream - - -Node2 - - -tds_socket - - - - -Node2->Node1 - - - tds - - -Node9 - - -tds_result_info - - - - -Node2->Node9 - - - attached_to - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node19 - - -tds_connection - - - - -Node4->Node19 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8 - - -tds_dynamic - - - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node19 - - - dyns - - -Node9->Node2 - - - param_info -current_results -res_info -comp_info - - -Node9->Node8 - - - res_info -params - - -Node17 - - -tds_cursor - - - - -Node9->Node17 - - - res_info - - -Node17->Node2 - - - cur_cursor - - -Node17->Node17 - - - next - - -Node17->Node19 - - - cursors - - -Node18 - - -tds_cursor_status - - - - -Node18->Node17 - - - status - - -Node19->Node2 - - - conn - - -Node20 - - -tds_poll_wakeup - - - - -Node20->Node19 - - - wakeup - - -Node21 - - -tds_env - - - - -Node21->Node19 - - - env - - -Node22 - - -tds_context - - - - -Node22->Node19 - - - tds_ctx - - -Node24 - - -tds_authentication - - - - -Node24->Node19 - - - authentication - - -Node11 - - -tdsiconvinfo - - - - -Node11->Node19 - - - char_convs - - -Node25 - - -tds_input_stream - - - - -Node25->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a01061.html freetds-1.2.3/doc/reference/a01061.html --- freetds-1.1.6/doc/reference/a01061.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01061.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsunique Member List
    +
    +
    + +

    This is the complete list of members for tdsunique, including all inherited members.

    + + + + + +
    Data1 (defined in tdsunique)tdsunique
    Data2 (defined in tdsunique)tdsunique
    Data3 (defined in tdsunique)tdsunique
    Data4 (defined in tdsunique)tdsunique
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01062.html freetds-1.2.3/doc/reference/a01062.html --- freetds-1.1.6/doc/reference/a01062.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01062.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,106 +0,0 @@ - - - - - - - -FreeTDS API: tds_datain_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_datain_stream Struct Reference
    -
    -
    - -

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

    - -

    #include <stream.h>

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

    -Public Attributes

    -TDSINSTREAM stream
     
    -TDSSOCKETtds
     
    -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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01063.html freetds-1.2.3/doc/reference/a01063.html --- freetds-1.1.6/doc/reference/a01063.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01063.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_dataout_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_dataout_stream, including all inherited members.

    - - - - -
    stream (defined in tds_dataout_stream)tds_dataout_stream
    tds (defined in tds_dataout_stream)tds_dataout_stream
    written (defined in tds_dataout_stream)tds_dataout_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01064.html freetds-1.2.3/doc/reference/a01064.html --- freetds-1.1.6/doc/reference/a01064.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01064.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tdsunique Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsunique Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    +TDS_UINT Data1
     
    +TDS_USMALLINT Data2
     
    +TDS_USMALLINT Data3
     
    +TDS_UCHAR Data4 [8]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01064.map freetds-1.2.3/doc/reference/a01064.map --- freetds-1.1.6/doc/reference/a01064.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01064.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01064.md5 freetds-1.2.3/doc/reference/a01064.md5 --- freetds-1.1.6/doc/reference/a01064.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01064.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f54755ee152cd91aab928b8d6364b112 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01064.svg freetds-1.2.3/doc/reference/a01064.svg --- freetds-1.1.6/doc/reference/a01064.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01064.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,312 +0,0 @@ - - - - - - -tds_dataout_stream - - -Node1 - -tds_dataout_stream - - -Node2 - - -tds_socket - - - - -Node2->Node1 - - - tds - - -Node9 - - -tds_result_info - - - - -Node2->Node9 - - - attached_to - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node19 - - -tds_connection - - - - -Node4->Node19 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8 - - -tds_dynamic - - - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node19 - - - dyns - - -Node9->Node2 - - - param_info -current_results -res_info -comp_info - - -Node9->Node8 - - - res_info -params - - -Node17 - - -tds_cursor - - - - -Node9->Node17 - - - res_info - - -Node17->Node2 - - - cur_cursor - - -Node17->Node17 - - - next - - -Node17->Node19 - - - cursors - - -Node18 - - -tds_cursor_status - - - - -Node18->Node17 - - - status - - -Node19->Node2 - - - conn - - -Node20 - - -tds_poll_wakeup - - - - -Node20->Node19 - - - wakeup - - -Node21 - - -tds_env - - - - -Node21->Node19 - - - env - - -Node22 - - -tds_context - - - - -Node22->Node19 - - - tds_ctx - - -Node24 - - -tds_authentication - - - - -Node24->Node19 - - - authentication - - -Node11 - - -tdsiconvinfo - - - - -Node11->Node19 - - - char_convs - - -Node25 - - -tds_output_stream - - - - -Node25->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a01065.html freetds-1.2.3/doc/reference/a01065.html --- freetds-1.1.6/doc/reference/a01065.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01065.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TDS71_COLLATION Member List
    +
    +
    + +

    This is the complete list of members for TDS71_COLLATION, including all inherited members.

    + + + + +
    charset_id (defined in TDS71_COLLATION)TDS71_COLLATION
    flags (defined in TDS71_COLLATION)TDS71_COLLATION
    locale_id (defined in TDS71_COLLATION)TDS71_COLLATION
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01066.html freetds-1.2.3/doc/reference/a01066.html --- freetds-1.1.6/doc/reference/a01066.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01066.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: tds_dataout_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_dataout_stream Struct Reference
    -
    -
    - -

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

    - -

    #include <stream.h>

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

    -Public Attributes

    -TDSOUTSTREAM stream
     
    -TDSSOCKETtds
     
    -size_t written
     
    -

    Detailed Description

    -

    output stream to write data to tds protocol

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01067.html freetds-1.2.3/doc/reference/a01067.html --- freetds-1.1.6/doc/reference/a01067.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01067.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_staticin_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_staticin_stream, including all inherited members.

    - - - - -
    buf_left (defined in tds_staticin_stream)tds_staticin_stream
    buffer (defined in tds_staticin_stream)tds_staticin_stream
    stream (defined in tds_staticin_stream)tds_staticin_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01068.html freetds-1.2.3/doc/reference/a01068.html --- freetds-1.1.6/doc/reference/a01068.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01068.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,102 @@ + + + + + + + +FreeTDS API: TDS71_COLLATION Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TDS71_COLLATION Struct Reference
    +
    +
    + +

    TDS 7.1 collation informations. + More...

    + +

    #include <proto.h>

    + + + + + + + + +

    +Public Attributes

    +TDS_UCHAR charset_id
     
    +TDS_USMALLINT flags
     
    +TDS_USMALLINT locale_id
     
    +

    Detailed Description

    +

    TDS 7.1 collation informations.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01068.map freetds-1.2.3/doc/reference/a01068.map --- freetds-1.1.6/doc/reference/a01068.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01068.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01068.md5 freetds-1.2.3/doc/reference/a01068.md5 --- freetds-1.1.6/doc/reference/a01068.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01068.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c0ae58839802c9ef666315c69532c584 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01068.svg freetds-1.2.3/doc/reference/a01068.svg --- freetds-1.1.6/doc/reference/a01068.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01068.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_staticin_stream - - -Node1 - -tds_staticin_stream - - -Node2 - - -tds_input_stream - - - - -Node2->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a01069.html freetds-1.2.3/doc/reference/a01069.html --- freetds-1.1.6/doc/reference/a01069.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01069.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TDS72_SMP_HEADER Member List
    +
    +
    + +

    This is the complete list of members for TDS72_SMP_HEADER, including all inherited members.

    + + + + + + + +
    seq (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    sid (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    signature (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    size (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    type (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    wnd (defined in TDS72_SMP_HEADER)TDS72_SMP_HEADER
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01070.html freetds-1.2.3/doc/reference/a01070.html --- freetds-1.1.6/doc/reference/a01070.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01070.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: tds_staticin_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_staticin_stream Struct Reference
    -
    -
    - -

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

    - -

    #include <stream.h>

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

    -Public Attributes

    -size_t buf_left
     
    -const char * buffer
     
    -TDSINSTREAM stream
     
    -

    Detailed Description

    -

    input stream to read data from a static buffer

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01071.html freetds-1.2.3/doc/reference/a01071.html --- freetds-1.1.6/doc/reference/a01071.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01071.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_staticout_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_staticout_stream, including all inherited members.

    - - -
    stream (defined in tds_staticout_stream)tds_staticout_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01072.html freetds-1.2.3/doc/reference/a01072.html --- freetds-1.1.6/doc/reference/a01072.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01072.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,111 @@ + + + + + + + +FreeTDS API: TDS72_SMP_HEADER Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TDS72_SMP_HEADER Struct Reference
    +
    +
    + +

    TDS 7.2 SMP packet header. + More...

    + +

    #include <proto.h>

    + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_UINT seq
     
    +TDS_USMALLINT sid
     
    +TDS_UCHAR signature
     
    +TDS_UINT size
     
    +TDS_UCHAR type
     
    +TDS_UINT wnd
     
    +

    Detailed Description

    +

    TDS 7.2 SMP packet header.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01072.map freetds-1.2.3/doc/reference/a01072.map --- freetds-1.1.6/doc/reference/a01072.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01072.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01072.md5 freetds-1.2.3/doc/reference/a01072.md5 --- freetds-1.1.6/doc/reference/a01072.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01072.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -79fb68f90a8d9da21bc62699e0b3e2a4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01072.svg freetds-1.2.3/doc/reference/a01072.svg --- freetds-1.1.6/doc/reference/a01072.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01072.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_staticout_stream - - -Node1 - -tds_staticout_stream - - -Node2 - - -tds_output_stream - - - - -Node2->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a01073.html freetds-1.2.3/doc/reference/a01073.html --- freetds-1.1.6/doc/reference/a01073.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01073.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_input_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_input_stream, including all inherited members.

    + + +
    readtds_input_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01074.html freetds-1.2.3/doc/reference/a01074.html --- freetds-1.1.6/doc/reference/a01074.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01074.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - - - - - -FreeTDS API: tds_staticout_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_staticout_stream Struct Reference
    -
    -
    - -

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

    - -

    #include <stream.h>

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

    -Public Attributes

    -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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01075.html freetds-1.2.3/doc/reference/a01075.html --- freetds-1.1.6/doc/reference/a01075.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01075.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_dynamic_stream Member List
    -
    -
    - -

    This is the complete list of members for tds_dynamic_stream, including all inherited members.

    - - - - - -
    allocatedtds_dynamic_stream
    buftds_dynamic_stream
    sizetds_dynamic_stream
    stream (defined in tds_dynamic_stream)tds_dynamic_stream
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01076.html freetds-1.2.3/doc/reference/a01076.html --- freetds-1.1.6/doc/reference/a01076.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01076.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,97 @@ + + + + + + + +FreeTDS API: tds_input_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_input_stream Struct Reference
    +
    +
    + +

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

    + +

    #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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01076.map freetds-1.2.3/doc/reference/a01076.map --- freetds-1.1.6/doc/reference/a01076.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01076.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01076.md5 freetds-1.2.3/doc/reference/a01076.md5 --- freetds-1.1.6/doc/reference/a01076.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01076.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -edba5090627df83824d742921e59e60d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01076.svg freetds-1.2.3/doc/reference/a01076.svg --- freetds-1.1.6/doc/reference/a01076.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01076.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_dynamic_stream - - -Node1 - -tds_dynamic_stream - - -Node2 - - -tds_output_stream - - - - -Node2->Node1 - - - stream - - - diff -Nru freetds-1.1.6/doc/reference/a01077.html freetds-1.2.3/doc/reference/a01077.html --- freetds-1.1.6/doc/reference/a01077.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01077.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_output_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_output_stream, including all inherited members.

    + + + + +
    buf_len (defined in tds_output_stream)tds_output_stream
    buffertds_output_stream
    writetds_output_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01078.html freetds-1.2.3/doc/reference/a01078.html --- freetds-1.1.6/doc/reference/a01078.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01078.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,111 +0,0 @@ - - - - - - - -FreeTDS API: tds_dynamic_stream Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_dynamic_stream Struct Reference
    -
    -
    - -

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

    - -

    #include <stream.h>

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

    -Public Attributes

    -size_t allocated
     currently allocated buffer
     
    -void ** buf
     where is stored the pointer
     
    -size_t size
     size of data inside buffer
     
    -TDSOUTSTREAM stream
     
    -

    Detailed Description

    -

    output stream to write data to a dynamic buffer

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01079.html freetds-1.2.3/doc/reference/a01079.html --- freetds-1.1.6/doc/reference/a01079.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01079.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_compiletime_settings Member List
    -
    - - - - - diff -Nru freetds-1.1.6/doc/reference/a01080.html freetds-1.2.3/doc/reference/a01080.html --- freetds-1.1.6/doc/reference/a01080.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01080.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,121 @@ + + + + + + + +FreeTDS API: tds_output_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_output_stream Struct Reference
    +
    +
    + +

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

    + +

    #include <stream.h>

    + + + + + + + + + + +

    +Public Attributes

    +size_t buf_len
     
    char * buffer
     write buffer. More...
     
    +int(* write )(struct tds_output_stream *stream, size_t len)
     write len bytes from buffer, return <0 if error or len
     
    +

    Detailed Description

    +

    define a stream of data used for output

    +

    Member Data Documentation

    + +

    ◆ buffer

    + +
    +
    + + + + +
    char* tds_output_stream::buffer
    +
    + +

    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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01081.html freetds-1.2.3/doc/reference/a01081.html --- freetds-1.1.6/doc/reference/a01081.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01081.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_datain_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_datain_stream, including all inherited members.

    + + + + +
    stream (defined in tds_datain_stream)tds_datain_stream
    tds (defined in tds_datain_stream)tds_datain_stream
    wire_sizetds_datain_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01082.html freetds-1.2.3/doc/reference/a01082.html --- freetds-1.1.6/doc/reference/a01082.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01082.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ - - - - - - - -FreeTDS API: tds_compiletime_settings Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_compiletime_settings Struct Reference
    -
    -
    - -

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

    - -

    #include <tds.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -const char * freetds_version
     
    -int gnutls
     
    -int iodbc
     
    -const char * last_update
     
    -int libiconv
     
    -int mars
     
    -int msdblib
     
    -int openssl
     
    -int sybase_compat
     
    -const char * sysconfdir
     
    -const char * tdsver
     
    -int threadsafe
     
    -int 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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01082.map freetds-1.2.3/doc/reference/a01082.map --- freetds-1.1.6/doc/reference/a01082.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01082.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01082.md5 freetds-1.2.3/doc/reference/a01082.md5 --- freetds-1.1.6/doc/reference/a01082.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01082.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +a9c8970957d0ea1ad86ce88a0f78e924 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01082.svg freetds-1.2.3/doc/reference/a01082.svg --- freetds-1.1.6/doc/reference/a01082.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01082.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,365 @@ + + + + + + +tds_datain_stream + + + +Node1 + + +tds_datain_stream + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + +Node25 + + +tds_input_stream + + + + + +Node25->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a01083.html freetds-1.2.3/doc/reference/a01083.html --- freetds-1.1.6/doc/reference/a01083.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01083.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    TDS_DATETIMEALL Member List
    -
    -
    - -

    This is the complete list of members for TDS_DATETIMEALL, including all inherited members.

    - - - - - - - - - -
    _tds_reserved (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    dateTDS_DATETIMEALL
    has_date (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    has_offset (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    has_time (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    offsetTDS_DATETIMEALL
    timeTDS_DATETIMEALL
    time_prec (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01084.html freetds-1.2.3/doc/reference/a01084.html --- freetds-1.1.6/doc/reference/a01084.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01084.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,109 @@ + + + + + + + +FreeTDS API: tds_datain_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_datain_stream Struct Reference
    +
    +
    + +

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

    + +

    #include <stream.h>

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

    +Public Attributes

    +TDSINSTREAM stream
     
    +TDSSOCKETtds
     
    +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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01085.html freetds-1.2.3/doc/reference/a01085.html --- freetds-1.1.6/doc/reference/a01085.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01085.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_dataout_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_dataout_stream, including all inherited members.

    + + + + +
    stream (defined in tds_dataout_stream)tds_dataout_stream
    tds (defined in tds_dataout_stream)tds_dataout_stream
    written (defined in tds_dataout_stream)tds_dataout_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01086.html freetds-1.2.3/doc/reference/a01086.html --- freetds-1.1.6/doc/reference/a01086.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01086.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ - - - - - - - -FreeTDS API: TDS_DATETIMEALL Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    TDS_DATETIMEALL Struct Reference
    -
    -
    - -

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

    - -

    #include <tds.h>

    - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_USMALLINT _tds_reserved:10
     
    -TDS_INT date
     date, 0 = 1900-01-01
     
    -TDS_USMALLINT has_date:1
     
    -TDS_USMALLINT has_offset:1
     
    -TDS_USMALLINT has_time:1
     
    -TDS_SMALLINT offset
     time offset
     
    -TDS_UINT8 time
     time, 7 digit precision
     
    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01086.map freetds-1.2.3/doc/reference/a01086.map --- freetds-1.1.6/doc/reference/a01086.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01086.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01086.md5 freetds-1.2.3/doc/reference/a01086.md5 --- freetds-1.1.6/doc/reference/a01086.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01086.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +95fc012850bd581c40bef3e23a4a0493 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01086.svg freetds-1.2.3/doc/reference/a01086.svg --- freetds-1.1.6/doc/reference/a01086.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01086.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,365 @@ + + + + + + +tds_dataout_stream + + + +Node1 + + +tds_dataout_stream + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + +Node25 + + +tds_output_stream + + + + + +Node25->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a01087.html freetds-1.2.3/doc/reference/a01087.html --- freetds-1.1.6/doc/reference/a01087.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01087.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tdsdaterec Member List
    -
    - - - - - diff -Nru freetds-1.1.6/doc/reference/a01088.html freetds-1.2.3/doc/reference/a01088.html --- freetds-1.1.6/doc/reference/a01088.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01088.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_dataout_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_dataout_stream Struct Reference
    +
    +
    + +

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

    + +

    #include <stream.h>

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

    +Public Attributes

    +TDSOUTSTREAM stream
     
    +TDSSOCKETtds
     
    +size_t written
     
    +

    Detailed Description

    +

    output stream to write data to tds protocol

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01089.html freetds-1.2.3/doc/reference/a01089.html --- freetds-1.1.6/doc/reference/a01089.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01089.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_staticin_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_staticin_stream, including all inherited members.

    + + + + +
    buf_left (defined in tds_staticin_stream)tds_staticin_stream
    buffer (defined in tds_staticin_stream)tds_staticin_stream
    stream (defined in tds_staticin_stream)tds_staticin_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01090.html freetds-1.2.3/doc/reference/a01090.html --- freetds-1.1.6/doc/reference/a01090.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01090.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ - - - - - - - -FreeTDS API: tdsdaterec Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tdsdaterec Struct Reference
    -
    -
    - -

    Used by tds_datecrack. - More...

    - -

    #include <tds.h>

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_INT day
     day of month (1-31)
     
    -TDS_INT dayofyear
     day of year (1-366)
     
    -TDS_INT decimicrosecond
     0-9999999
     
    -TDS_INT hour
     0-23
     
    -TDS_INT minute
     0-59
     
    -TDS_INT month
     month number (0-11)
     
    -TDS_INT quarter
     quarter (0-3)
     
    -TDS_INT second
     0-59
     
    -TDS_INT timezone
     -840 - 840 minutes from UTC
     
    -TDS_INT weekday
     day of week (0-6, 0 = sunday)
     
    -TDS_INT year
     year
     
    -

    Detailed Description

    -

    Used by tds_datecrack.

    -

    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01090.map freetds-1.2.3/doc/reference/a01090.map --- freetds-1.1.6/doc/reference/a01090.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01090.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01090.md5 freetds-1.2.3/doc/reference/a01090.md5 --- freetds-1.1.6/doc/reference/a01090.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01090.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +8541c7a16244b5c3c60eeb6e83f425ac \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01090.svg freetds-1.2.3/doc/reference/a01090.svg --- freetds-1.1.6/doc/reference/a01090.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01090.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_staticin_stream + + + +Node1 + + +tds_staticin_stream + + + + + +Node2 + + +tds_input_stream + + + + + +Node2->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a01091.html freetds-1.2.3/doc/reference/a01091.html --- freetds-1.1.6/doc/reference/a01091.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01091.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_option_arg Member List
    -
    -
    - -

    This is the complete list of members for tds_option_arg, including all inherited members.

    - - - - -
    c (defined in tds_option_arg)tds_option_arg
    i (defined in tds_option_arg)tds_option_arg
    ti (defined in tds_option_arg)tds_option_arg
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01092.html freetds-1.2.3/doc/reference/a01092.html --- freetds-1.1.6/doc/reference/a01092.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01092.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_staticin_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_staticin_stream Struct Reference
    +
    +
    + +

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

    + +

    #include <stream.h>

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

    +Public Attributes

    +size_t buf_left
     
    +const char * buffer
     
    +TDSINSTREAM stream
     
    +

    Detailed Description

    +

    input stream to read data from a static buffer

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01093.html freetds-1.2.3/doc/reference/a01093.html --- freetds-1.1.6/doc/reference/a01093.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01093.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_staticout_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_staticout_stream, including all inherited members.

    + + +
    stream (defined in tds_staticout_stream)tds_staticout_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01094.html freetds-1.2.3/doc/reference/a01094.html --- freetds-1.1.6/doc/reference/a01094.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01094.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_option_arg Union Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_option_arg Union Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -TDS_CHAR * c
     
    -TDS_INT i
     
    -TDS_TINYINT ti
     
    -
    The documentation for this union was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01094.map freetds-1.2.3/doc/reference/a01094.map --- freetds-1.1.6/doc/reference/a01094.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01094.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01094.md5 freetds-1.2.3/doc/reference/a01094.md5 --- freetds-1.1.6/doc/reference/a01094.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01094.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +2ef082a02142566194eaf18d446072d5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01094.svg freetds-1.2.3/doc/reference/a01094.svg --- freetds-1.1.6/doc/reference/a01094.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01094.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_staticout_stream + + + +Node1 + + +tds_staticout_stream + + + + + +Node2 + + +tds_output_stream + + + + + +Node2->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a01095.html freetds-1.2.3/doc/reference/a01095.html --- freetds-1.1.6/doc/reference/a01095.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01095.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_align_struct Member List
    -
    -
    - -

    This is the complete list of members for tds_align_struct, including all inherited members.

    - - - - -
    i (defined in tds_align_struct)tds_align_struct
    p (defined in tds_align_struct)tds_align_struct
    ui (defined in tds_align_struct)tds_align_struct
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01096.html freetds-1.2.3/doc/reference/a01096.html --- freetds-1.1.6/doc/reference/a01096.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01096.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + + + +FreeTDS API: tds_staticout_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_staticout_stream Struct Reference
    +
    +
    + +

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

    + +

    #include <stream.h>

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

    +Public Attributes

    +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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01097.html freetds-1.2.3/doc/reference/a01097.html --- freetds-1.1.6/doc/reference/a01097.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01097.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_dynamic_stream Member List
    +
    +
    + +

    This is the complete list of members for tds_dynamic_stream, including all inherited members.

    + + + + + +
    allocatedtds_dynamic_stream
    buftds_dynamic_stream
    sizetds_dynamic_stream
    stream (defined in tds_dynamic_stream)tds_dynamic_stream
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01098.html freetds-1.2.3/doc/reference/a01098.html --- freetds-1.1.6/doc/reference/a01098.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01098.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_align_struct Union Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_align_struct Union Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -int i
     
    -void * p
     
    -int64_t ui
     
    -
    The documentation for this union was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01098.map freetds-1.2.3/doc/reference/a01098.map --- freetds-1.1.6/doc/reference/a01098.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01098.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01098.md5 freetds-1.2.3/doc/reference/a01098.md5 --- freetds-1.1.6/doc/reference/a01098.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01098.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +7714bd098949284bad6db86f314de874 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01098.svg freetds-1.2.3/doc/reference/a01098.svg --- freetds-1.1.6/doc/reference/a01098.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01098.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_dynamic_stream + + + +Node1 + + +tds_dynamic_stream + + + + + +Node2 + + +tds_output_stream + + + + + +Node2->Node1 + + + stream + + + diff -Nru freetds-1.1.6/doc/reference/a01099.html freetds-1.2.3/doc/reference/a01099.html --- freetds-1.1.6/doc/reference/a01099.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01099.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_capability_type Member List
    -
    -
    - -

    This is the complete list of members for tds_capability_type, including all inherited members.

    - - - - -
    len (defined in tds_capability_type)tds_capability_type
    type (defined in tds_capability_type)tds_capability_type
    values (defined in tds_capability_type)tds_capability_type
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01100.html freetds-1.2.3/doc/reference/a01100.html --- freetds-1.1.6/doc/reference/a01100.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01100.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,114 @@ + + + + + + + +FreeTDS API: tds_dynamic_stream Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_dynamic_stream Struct Reference
    +
    +
    + +

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

    + +

    #include <stream.h>

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

    +Public Attributes

    +size_t allocated
     currently allocated buffer
     
    +void ** buf
     where is stored the pointer
     
    +size_t size
     size of data inside buffer
     
    +TDSOUTSTREAM stream
     
    +

    Detailed Description

    +

    output stream to write data to a dynamic buffer

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01101.html freetds-1.2.3/doc/reference/a01101.html --- freetds-1.1.6/doc/reference/a01101.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01101.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,94 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_compiletime_settings Member List
    +
    + + + + + diff -Nru freetds-1.1.6/doc/reference/a01102.html freetds-1.2.3/doc/reference/a01102.html --- freetds-1.1.6/doc/reference/a01102.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01102.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_capability_type Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_capability_type Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -unsigned char len
     
    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01103.html freetds-1.2.3/doc/reference/a01103.html --- freetds-1.1.6/doc/reference/a01103.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01103.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_capabilities Member List
    -
    -
    - -

    This is the complete list of members for tds_capabilities, including all inherited members.

    - - -
    types (defined in tds_capabilities)tds_capabilities
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01104.html freetds-1.2.3/doc/reference/a01104.html --- freetds-1.1.6/doc/reference/a01104.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01104.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,139 @@ + + + + + + + +FreeTDS API: tds_compiletime_settings Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_compiletime_settings Struct Reference
    +
    +
    + +

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

    + +

    #include <tds.h>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +const char * freetds_version
     
    +bool gnutls
     
    +bool iodbc
     
    +bool kerberos
     
    +const char * last_update
     
    +bool libiconv
     
    +bool mars
     
    +bool msdblib
     
    +bool openssl
     
    +bool sspi
     
    +bool sybase_compat
     
    +const char * sysconfdir
     
    +const char * tdsver
     
    +bool threadsafe
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01104.map freetds-1.2.3/doc/reference/a01104.map --- freetds-1.1.6/doc/reference/a01104.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01104.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01104.md5 freetds-1.2.3/doc/reference/a01104.md5 --- freetds-1.1.6/doc/reference/a01104.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01104.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2323e7602cd9facde8a868a957006fe3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01104.svg freetds-1.2.3/doc/reference/a01104.svg --- freetds-1.1.6/doc/reference/a01104.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01104.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_capabilities - - -Node1 - -tds_capabilities - - -Node2 - - -tds_capability_type - - - - -Node2->Node1 - - - types - - - diff -Nru freetds-1.1.6/doc/reference/a01105.html freetds-1.2.3/doc/reference/a01105.html --- freetds-1.1.6/doc/reference/a01105.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01105.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    TDS_DATETIMEALL Member List
    +
    +
    + +

    This is the complete list of members for TDS_DATETIMEALL, including all inherited members.

    + + + + + + + + + +
    _tds_reserved (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    dateTDS_DATETIMEALL
    has_date (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    has_offset (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    has_time (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    offsetTDS_DATETIMEALL
    timeTDS_DATETIMEALL
    time_prec (defined in TDS_DATETIMEALL)TDS_DATETIMEALL
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01106.html freetds-1.2.3/doc/reference/a01106.html --- freetds-1.1.6/doc/reference/a01106.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01106.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_capabilities Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_capabilities Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_capabilities:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Attributes

    -TDS_CAPABILITY_TYPE types [2]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01107.html freetds-1.2.3/doc/reference/a01107.html --- freetds-1.1.6/doc/reference/a01107.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01107.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_login Member List
    -
    -
    - -

    This is the complete list of members for tds_login, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    app_name (defined in tds_login)tds_login
    block_size (defined in tds_login)tds_login
    bulk_copytds_login
    cafiletds_login
    capabilities (defined in tds_login)tds_login
    check_ssl_hostname (defined in tds_login)tds_login
    client_charset (defined in tds_login)tds_login
    client_host_name (defined in tds_login)tds_login
    connect_timeout (defined in tds_login)tds_login
    crlfiletds_login
    database (defined in tds_login)tds_login
    db_filenametds_login
    debug_flags (defined in tds_login)tds_login
    dump_file (defined in tds_login)tds_login
    emul_little_endian (defined in tds_login)tds_login
    enable_tls_v1 (defined in tds_login)tds_login
    encryption_level (defined in tds_login)tds_login
    gssapi_use_delegation (defined in tds_login)tds_login
    instance_name (defined in tds_login)tds_login
    ip_addrstds_login
    language (defined in tds_login)tds_login
    library (defined in tds_login)tds_login
    mars (defined in tds_login)tds_login
    new_passwordtds_login
    openssl_ciphers (defined in tds_login)tds_login
    option_flag2 (defined in tds_login)tds_login
    passwordtds_login
    porttds_login
    query_timeout (defined in tds_login)tds_login
    readonly_intent (defined in tds_login)tds_login
    routing_address (defined in tds_login)tds_login
    routing_port (defined in tds_login)tds_login
    server_charsettds_login
    server_host_name (defined in tds_login)tds_login
    server_is_valid (defined in tds_login)tds_login
    server_nametds_login
    server_realm_nametds_login
    server_spntds_login
    suppress_language (defined in tds_login)tds_login
    tds_versiontds_login
    text_size (defined in tds_login)tds_login
    use_lanman (defined in tds_login)tds_login
    use_new_password (defined in tds_login)tds_login
    use_ntlmv2 (defined in tds_login)tds_login
    use_ntlmv2_specified (defined in tds_login)tds_login
    use_utf16 (defined in tds_login)tds_login
    user_nametds_login
    valid_configuration (defined in tds_login)tds_login
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01108.html freetds-1.2.3/doc/reference/a01108.html --- freetds-1.1.6/doc/reference/a01108.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01108.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,120 @@ + + + + + + + +FreeTDS API: TDS_DATETIMEALL Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TDS_DATETIMEALL Struct Reference
    +
    +
    + +

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

    + +

    #include <tds.h>

    + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_USMALLINT _tds_reserved:10
     
    +TDS_INT date
     date, 0 = 1900-01-01
     
    +TDS_USMALLINT has_date:1
     
    +TDS_USMALLINT has_offset:1
     
    +TDS_USMALLINT has_time:1
     
    +TDS_SMALLINT offset
     time offset
     
    +TDS_UINT8 time
     time, 7 digit precision
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01108.map freetds-1.2.3/doc/reference/a01108.map --- freetds-1.1.6/doc/reference/a01108.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01108.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a01108.md5 freetds-1.2.3/doc/reference/a01108.md5 --- freetds-1.1.6/doc/reference/a01108.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01108.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -549ee46e41aa6225ba5f5bb7aeb70bc5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01108.svg freetds-1.2.3/doc/reference/a01108.svg --- freetds-1.1.6/doc/reference/a01108.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01108.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ - - - - - - -tds_login - - -Node1 - -tds_login - - -Node2 - - -tds_capabilities - - - - -Node2->Node1 - - - capabilities - - -Node3 - - -tds_capability_type - - - - -Node3->Node2 - - - types - - -Node4 - - -tds_dstr - - - - -Node4->Node1 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - - diff -Nru freetds-1.1.6/doc/reference/a01109.html freetds-1.2.3/doc/reference/a01109.html --- freetds-1.1.6/doc/reference/a01109.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01109.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,90 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tdsdaterec Member List
    +
    + + + + + diff -Nru freetds-1.1.6/doc/reference/a01110.html freetds-1.2.3/doc/reference/a01110.html --- freetds-1.1.6/doc/reference/a01110.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01110.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ - - - - - - - -FreeTDS API: tds_login Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_login Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_login:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DSTR app_name
     
    -int block_size
     
    -unsigned int bulk_copy:1
     if bulk copy should be enabled
     
    -DSTR cafile
     certificate authorities file
     
    -TDS_CAPABILITIES capabilities
     
    -unsigned int check_ssl_hostname:1
     
    -DSTR client_charset
     
    -DSTR client_host_name
     
    -TDS_INT connect_timeout
     
    -DSTR crlfile
     certificate revocation file
     
    -DSTR database
     
    -DSTR db_filename
     database filename to attach (MSSQL)
     
    -int debug_flags
     
    -DSTR dump_file
     
    -unsigned int emul_little_endian:1
     
    -unsigned int enable_tls_v1:1
     
    -TDS_TINYINT encryption_level
     
    -unsigned int gssapi_use_delegation:1
     
    -DSTR instance_name
     
    -struct addrinfo * ip_addrs
     ip(s) of server
     
    -DSTR language
     
    -DSTR library
     
    -unsigned int mars:1
     
    -DSTR new_password
     new password to set (TDS 7.2+)
     
    -DSTR openssl_ciphers
     
    -unsigned char option_flag2
     
    -DSTR password
     password of account login
     
    -int port
     port of database service
     
    -TDS_INT query_timeout
     
    -unsigned int readonly_intent:1
     
    -DSTR routing_address
     
    -uint16_t routing_port
     
    DSTR server_charset
     charset of server e.g. More...
     
    -DSTR server_host_name
     
    -unsigned int server_is_valid:1
     
    -DSTR server_name
     server name (in freetds.conf)
     
    -DSTR server_realm_name
     server realm name (in freetds.conf)
     
    -DSTR server_spn
     server SPN (in freetds.conf)
     
    -unsigned int suppress_language:1
     
    -TDS_USMALLINT tds_version
     TDS version.
     
    -int text_size
     
    -unsigned int use_lanman:1
     
    -unsigned int use_new_password:1
     
    -unsigned int use_ntlmv2:1
     
    -unsigned int use_ntlmv2_specified:1
     
    -unsigned int use_utf16:1
     
    -DSTR user_name
     account for login
     
    -unsigned int valid_configuration:1
     
    -

    Member Data Documentation

    - -

    § server_charset

    - -
    -
    - - - - -
    DSTR tds_login::server_charset
    -
    - -

    charset of server e.g.

    -

    iso_1

    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01111.html freetds-1.2.3/doc/reference/a01111.html --- freetds-1.1.6/doc/reference/a01111.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01111.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_headers Member List
    -
    -
    - -

    This is the complete list of members for tds_headers, including all inherited members.

    - - - - -
    qn_msgtext (defined in tds_headers)tds_headers
    qn_options (defined in tds_headers)tds_headers
    qn_timeout (defined in tds_headers)tds_headers
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01112.html freetds-1.2.3/doc/reference/a01112.html --- freetds-1.1.6/doc/reference/a01112.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01112.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,137 @@ + + + + + + + +FreeTDS API: tdsdaterec Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tdsdaterec Struct Reference
    +
    +
    + +

    Used by tds_datecrack. + More...

    + +

    #include <tds.h>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_INT day
     day of month (1-31)
     
    +TDS_INT dayofyear
     day of year (1-366)
     
    +TDS_INT decimicrosecond
     0-9999999
     
    +TDS_INT hour
     0-23
     
    +TDS_INT minute
     0-59
     
    +TDS_INT month
     month number (0-11)
     
    +TDS_INT quarter
     quarter (0-3)
     
    +TDS_INT second
     0-59
     
    +TDS_INT timezone
     -840 - 840 minutes from UTC
     
    +TDS_INT weekday
     day of week (0-6, 0 = sunday)
     
    +TDS_INT year
     year
     
    +

    Detailed Description

    +

    Used by tds_datecrack.

    +

    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01113.html freetds-1.2.3/doc/reference/a01113.html --- freetds-1.1.6/doc/reference/a01113.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01113.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_option_arg Member List
    +
    +
    + +

    This is the complete list of members for tds_option_arg, including all inherited members.

    + + + + +
    c (defined in tds_option_arg)tds_option_arg
    i (defined in tds_option_arg)tds_option_arg
    ti (defined in tds_option_arg)tds_option_arg
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01114.html freetds-1.2.3/doc/reference/a01114.html --- freetds-1.1.6/doc/reference/a01114.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01114.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_headers Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_headers Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -const char * qn_msgtext
     
    -const char * qn_options
     
    -TDS_INT qn_timeout
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01115.html freetds-1.2.3/doc/reference/a01115.html --- freetds-1.1.6/doc/reference/a01115.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01115.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_locale Member List
    -
    -
    - -

    This is the complete list of members for tds_locale, including all inherited members.

    - - - - -
    date_fmt (defined in tds_locale)tds_locale
    language (defined in tds_locale)tds_locale
    server_charset (defined in tds_locale)tds_locale
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01116.html freetds-1.2.3/doc/reference/a01116.html --- freetds-1.1.6/doc/reference/a01116.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01116.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_option_arg Union Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_option_arg Union Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +TDS_CHAR * c
     
    +TDS_INT i
     
    +TDS_TINYINT ti
     
    +
    The documentation for this union was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01117.html freetds-1.2.3/doc/reference/a01117.html --- freetds-1.1.6/doc/reference/a01117.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01117.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_align_struct Member List
    +
    +
    + +

    This is the complete list of members for tds_align_struct, including all inherited members.

    + + + + +
    i (defined in tds_align_struct)tds_align_struct
    p (defined in tds_align_struct)tds_align_struct
    ui (defined in tds_align_struct)tds_align_struct
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01118.html freetds-1.2.3/doc/reference/a01118.html --- freetds-1.1.6/doc/reference/a01118.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01118.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_locale Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_locale Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -char * date_fmt
     
    -char * language
     
    -char * server_charset
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01119.html freetds-1.2.3/doc/reference/a01119.html --- freetds-1.1.6/doc/reference/a01119.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01119.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_blob Member List
    -
    -
    - -

    This is the complete list of members for tds_blob, including all inherited members.

    - - - - - -
    textptr (defined in tds_blob)tds_blob
    textvalue (defined in tds_blob)tds_blob
    timestamp (defined in tds_blob)tds_blob
    valid_ptr (defined in tds_blob)tds_blob
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01120.html freetds-1.2.3/doc/reference/a01120.html --- freetds-1.1.6/doc/reference/a01120.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01120.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_align_struct Union Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_align_struct Union Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +int i
     
    +void * p
     
    +int64_t ui
     
    +
    The documentation for this union was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01121.html freetds-1.2.3/doc/reference/a01121.html --- freetds-1.1.6/doc/reference/a01121.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01121.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_capability_type Member List
    +
    +
    + +

    This is the complete list of members for tds_capability_type, including all inherited members.

    + + + + +
    len (defined in tds_capability_type)tds_capability_type
    type (defined in tds_capability_type)tds_capability_type
    values (defined in tds_capability_type)tds_capability_type
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01122.html freetds-1.2.3/doc/reference/a01122.html --- freetds-1.1.6/doc/reference/a01122.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01122.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,103 +0,0 @@ - - - - - - - -FreeTDS API: tds_blob Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_blob Struct Reference
    -
    -
    - -

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

    - -

    #include <tds.h>

    - - - - - - - - - - -

    -Public Attributes

    -TDS_CHAR textptr [16]
     
    -TDS_CHAR * textvalue
     
    -TDS_CHAR timestamp [8]
     
    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01123.html freetds-1.2.3/doc/reference/a01123.html --- freetds-1.1.6/doc/reference/a01123.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01123.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_variant Member List
    -
    -
    - -

    This is the complete list of members for tds_variant, including all inherited members.

    - - - - - - -
    collation (defined in tds_variant)tds_variant
    data (defined in tds_variant)tds_variant
    data_len (defined in tds_variant)tds_variant
    size (defined in tds_variant)tds_variant
    type (defined in tds_variant)tds_variant
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01124.html freetds-1.2.3/doc/reference/a01124.html --- freetds-1.1.6/doc/reference/a01124.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01124.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_capability_type Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_capability_type Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +unsigned char len
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01125.html freetds-1.2.3/doc/reference/a01125.html --- freetds-1.1.6/doc/reference/a01125.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01125.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_capabilities Member List
    +
    +
    + +

    This is the complete list of members for tds_capabilities, including all inherited members.

    + + +
    types (defined in tds_capabilities)tds_capabilities
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01126.html freetds-1.2.3/doc/reference/a01126.html --- freetds-1.1.6/doc/reference/a01126.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01126.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: tds_variant Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_variant Struct Reference
    -
    -
    - -

    Store variant informations. - More...

    - -

    #include <tds.h>

    - - - - - - - - - - - - -

    -Public Attributes

    -TDS_UCHAR collation [5]
     
    -TDS_CHAR * data
     
    -TDS_INT data_len
     
    -TDS_INT size
     
    -TDS_SERVER_TYPE type
     
    -

    Detailed Description

    -

    Store variant informations.

    -

    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01126.map freetds-1.2.3/doc/reference/a01126.map --- freetds-1.1.6/doc/reference/a01126.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01126.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01126.md5 freetds-1.2.3/doc/reference/a01126.md5 --- freetds-1.1.6/doc/reference/a01126.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01126.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c400af4bcd951c7b1d48ab85ecb48797 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01126.svg freetds-1.2.3/doc/reference/a01126.svg --- freetds-1.1.6/doc/reference/a01126.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01126.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_capabilities + + + +Node1 + + +tds_capabilities + + + + + +Node2 + + +tds_capability_type + + + + + +Node2->Node1 + + + types + + + diff -Nru freetds-1.1.6/doc/reference/a01127.html freetds-1.2.3/doc/reference/a01127.html --- freetds-1.1.6/doc/reference/a01127.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01127.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_encoding Member List
    -
    -
    - -

    This is the complete list of members for tds_encoding, including all inherited members.

    - - - - - -
    canonictds_encoding
    max_bytes_per_char (defined in tds_encoding)tds_encoding
    min_bytes_per_char (defined in tds_encoding)tds_encoding
    nametds_encoding
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01128.html freetds-1.2.3/doc/reference/a01128.html --- freetds-1.1.6/doc/reference/a01128.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01128.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_capabilities Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_capabilities Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_capabilities:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Public Attributes

    +TDS_CAPABILITY_TYPE types [2]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01129.html freetds-1.2.3/doc/reference/a01129.html --- freetds-1.1.6/doc/reference/a01129.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01129.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,127 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_login Member List
    +
    +
    + +

    This is the complete list of members for tds_login, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    app_name (defined in tds_login)tds_login
    block_size (defined in tds_login)tds_login
    bulk_copytds_login
    cafiletds_login
    capabilities (defined in tds_login)tds_login
    check_ssl_hostname (defined in tds_login)tds_login
    client_charset (defined in tds_login)tds_login
    client_host_name (defined in tds_login)tds_login
    connect_timeout (defined in tds_login)tds_login
    crlfiletds_login
    database (defined in tds_login)tds_login
    db_filenametds_login
    debug_flags (defined in tds_login)tds_login
    dump_file (defined in tds_login)tds_login
    enable_tls_v1 (defined in tds_login)tds_login
    encryption_level (defined in tds_login)tds_login
    gssapi_use_delegation (defined in tds_login)tds_login
    instance_name (defined in tds_login)tds_login
    ip_addrstds_login
    language (defined in tds_login)tds_login
    library (defined in tds_login)tds_login
    mars (defined in tds_login)tds_login
    mutual_authentication (defined in tds_login)tds_login
    new_passwordtds_login
    openssl_ciphers (defined in tds_login)tds_login
    option_flag2 (defined in tds_login)tds_login
    passwordtds_login
    porttds_login
    query_timeout (defined in tds_login)tds_login
    readonly_intent (defined in tds_login)tds_login
    routing_address (defined in tds_login)tds_login
    routing_port (defined in tds_login)tds_login
    server_charsettds_login
    server_host_name (defined in tds_login)tds_login
    server_is_valid (defined in tds_login)tds_login
    server_nametds_login
    server_realm_nametds_login
    server_spntds_login
    suppress_language (defined in tds_login)tds_login
    tds_versiontds_login
    text_size (defined in tds_login)tds_login
    use_lanman (defined in tds_login)tds_login
    use_new_password (defined in tds_login)tds_login
    use_ntlmv2 (defined in tds_login)tds_login
    use_ntlmv2_specified (defined in tds_login)tds_login
    use_utf16 (defined in tds_login)tds_login
    user_nametds_login
    valid_configuration (defined in tds_login)tds_login
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01130.html freetds-1.2.3/doc/reference/a01130.html --- freetds-1.1.6/doc/reference/a01130.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01130.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: tds_encoding Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_encoding Struct Reference
    -
    -
    - -

    Information relevant to libiconv. - More...

    - -

    #include <tds.h>

    - - - - - - - - - - - - -

    -Public Attributes

    -unsigned char canonic
     internal numeric index into array of all encodings
     
    -unsigned char max_bytes_per_char
     
    -unsigned char min_bytes_per_char
     
    -const char * name
     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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01130.map freetds-1.2.3/doc/reference/a01130.map --- freetds-1.1.6/doc/reference/a01130.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01130.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01130.md5 freetds-1.2.3/doc/reference/a01130.md5 --- freetds-1.1.6/doc/reference/a01130.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01130.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +304350402eb6e07e2d8d543295922e37 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01130.svg freetds-1.2.3/doc/reference/a01130.svg --- freetds-1.1.6/doc/reference/a01130.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01130.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + +tds_login + + + +Node1 + + +tds_login + + + + + +Node2 + + +tds_capabilities + + + + + +Node2->Node1 + + + capabilities + + + +Node3 + + +tds_capability_type + + + + + +Node3->Node2 + + + types + + + +Node4 + + +tds_dstr + + + + + +Node4->Node1 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + diff -Nru freetds-1.1.6/doc/reference/a01131.html freetds-1.2.3/doc/reference/a01131.html --- freetds-1.1.6/doc/reference/a01131.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01131.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_bcpcoldata Member List
    -
    -
    - -

    This is the complete list of members for tds_bcpcoldata, including all inherited members.

    - - - - -
    data (defined in tds_bcpcoldata)tds_bcpcoldata
    datalen (defined in tds_bcpcoldata)tds_bcpcoldata
    is_null (defined in tds_bcpcoldata)tds_bcpcoldata
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01132.html freetds-1.2.3/doc/reference/a01132.html --- freetds-1.1.6/doc/reference/a01132.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01132.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,267 @@ + + + + + + + +FreeTDS API: tds_login Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_login Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_login:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DSTR app_name
     
    +int block_size
     
    +unsigned int bulk_copy:1
     if bulk copy should be enabled
     
    +DSTR cafile
     certificate authorities file
     
    +TDS_CAPABILITIES capabilities
     
    +unsigned int check_ssl_hostname:1
     
    +DSTR client_charset
     
    +DSTR client_host_name
     
    +TDS_INT connect_timeout
     
    +DSTR crlfile
     certificate revocation file
     
    +DSTR database
     
    +DSTR db_filename
     database filename to attach (MSSQL)
     
    +int debug_flags
     
    +DSTR dump_file
     
    +unsigned int enable_tls_v1:1
     
    +TDS_TINYINT encryption_level
     
    +unsigned int gssapi_use_delegation:1
     
    +DSTR instance_name
     
    +struct addrinfo * ip_addrs
     ip(s) of server
     
    +DSTR language
     
    +DSTR library
     
    +unsigned int mars:1
     
    +unsigned int mutual_authentication:1
     
    +DSTR new_password
     new password to set (TDS 7.2+)
     
    +DSTR openssl_ciphers
     
    +unsigned char option_flag2
     
    +DSTR password
     password of account login
     
    +int port
     port of database service
     
    +TDS_INT query_timeout
     
    +unsigned int readonly_intent:1
     
    +DSTR routing_address
     
    +uint16_t routing_port
     
    DSTR server_charset
     charset of server e.g. More...
     
    +DSTR server_host_name
     
    +unsigned int server_is_valid:1
     
    +DSTR server_name
     server name (in freetds.conf)
     
    +DSTR server_realm_name
     server realm name (in freetds.conf)
     
    +DSTR server_spn
     server SPN (in freetds.conf)
     
    +unsigned int suppress_language:1
     
    +TDS_USMALLINT tds_version
     TDS version.
     
    +int text_size
     
    +unsigned int use_lanman:1
     
    +unsigned int use_new_password:1
     
    +unsigned int use_ntlmv2:1
     
    +unsigned int use_ntlmv2_specified:1
     
    +unsigned int use_utf16:1
     
    +DSTR user_name
     account for login
     
    +unsigned int valid_configuration:1
     
    +

    Member Data Documentation

    + +

    ◆ server_charset

    + +
    +
    + + + + +
    DSTR tds_login::server_charset
    +
    + +

    charset of server e.g.

    +

    iso_1

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01133.html freetds-1.2.3/doc/reference/a01133.html --- freetds-1.1.6/doc/reference/a01133.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01133.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_headers Member List
    +
    +
    + +

    This is the complete list of members for tds_headers, including all inherited members.

    + + + + +
    qn_msgtext (defined in tds_headers)tds_headers
    qn_options (defined in tds_headers)tds_headers
    qn_timeout (defined in tds_headers)tds_headers
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01134.html freetds-1.2.3/doc/reference/a01134.html --- freetds-1.1.6/doc/reference/a01134.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01134.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: tds_bcpcoldata Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_bcpcoldata Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -TDS_UCHAR * data
     
    -TDS_INT datalen
     
    -TDS_INT is_null
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01135.html freetds-1.2.3/doc/reference/a01135.html --- freetds-1.1.6/doc/reference/a01135.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01135.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_column_funcs Member List
    -
    -
    - -

    This is the complete list of members for tds_column_funcs, including all inherited members.

    - - - - - - - -
    get_data (defined in tds_column_funcs)tds_column_funcs
    get_info (defined in tds_column_funcs)tds_column_funcs
    put_datatds_column_funcs
    put_infotds_column_funcs
    put_info_lentds_column_funcs
    row_len (defined in tds_column_funcs)tds_column_funcs
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01136.html freetds-1.2.3/doc/reference/a01136.html --- freetds-1.1.6/doc/reference/a01136.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01136.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_headers Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_headers Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +const char * qn_msgtext
     
    +const char * qn_options
     
    +TDS_INT qn_timeout
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01137.html freetds-1.2.3/doc/reference/a01137.html --- freetds-1.1.6/doc/reference/a01137.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01137.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_locale Member List
    +
    +
    + +

    This is the complete list of members for tds_locale, including all inherited members.

    + + + + +
    date_fmt (defined in tds_locale)tds_locale
    language (defined in tds_locale)tds_locale
    server_charset (defined in tds_locale)tds_locale
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01138.html freetds-1.2.3/doc/reference/a01138.html --- freetds-1.1.6/doc/reference/a01138.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01138.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,172 +0,0 @@ - - - - - - - -FreeTDS API: tds_column_funcs Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_column_funcs Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -tds_func_get_data * get_data
     
    -tds_func_get_info * get_info
     
    tds_func_put_data * put_data
     Send column data to server. More...
     
    tds_func_put_info * put_info
     Send metadata column information to server. More...
     
    tds_func_put_info_len * put_info_len
     Returns metadata column information size. More...
     
    -tds_func_row_len * row_len
     
    -

    Member Data Documentation

    - -

    § put_data

    - -
    -
    - - - - -
    tds_func_put_data* tds_column_funcs::put_data
    -
    - -

    Send column data to server.

    -

    Usually send parameters unless bcp7 is specified, in this case send BCP for TDS7+ (Sybase use a completely different format for BCP)

    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    colcolumn to send
    bcp71 to send BCP column on TDS7+
    -
    -
    - -
    -
    - -

    § put_info

    - -
    -
    - - - - -
    tds_func_put_info* tds_column_funcs::put_info
    -
    - -

    Send metadata column information to server.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    colcolumn to send
    -
    -
    - -
    -
    - -

    § put_info_len

    - -
    -
    - - - - -
    tds_func_put_info_len* tds_column_funcs::put_info_len
    -
    - -

    Returns metadata column information size.

    -
    Parameters
    - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    colcolumn to send
    -
    -
    - -
    -
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01139.html freetds-1.2.3/doc/reference/a01139.html --- freetds-1.1.6/doc/reference/a01139.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01139.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_column Member List
    -
    -
    - -

    This is the complete list of members for tds_column, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    bcp_column_data (defined in tds_column)tds_column
    bcp_prefix_lentds_column
    bcp_term_len (defined in tds_column)tds_column
    bcp_terminator (defined in tds_column)tds_column
    char_convtds_column
    column_bindfmt (defined in tds_column)tds_column
    column_bindlen (defined in tds_column)tds_column
    column_bindtype (defined in tds_column)tds_column
    column_collation (defined in tds_column)tds_column
    column_cur_sizetds_column
    column_data (defined in tds_column)tds_column
    column_data_free (defined in tds_column)tds_column
    column_flags (defined in tds_column)tds_column
    column_hidden (defined in tds_column)tds_column
    column_iconv_buf (defined in tds_column)tds_column
    column_iconv_left (defined in tds_column)tds_column
    column_identity (defined in tds_column)tds_column
    column_key (defined in tds_column)tds_column
    column_lenbind (defined in tds_column)tds_column
    column_name (defined in tds_column)tds_column
    column_nullable (defined in tds_column)tds_column
    column_nullbind (defined in tds_column)tds_column
    column_operand (defined in tds_column)tds_column
    column_operator (defined in tds_column)tds_column
    column_output (defined in tds_column)tds_column
    column_prectds_column
    column_scaletds_column
    column_sizetds_column
    column_text_sqlgetdatapos (defined in tds_column)tds_column
    column_text_sqlputdatainfo (defined in tds_column)tds_column
    column_textpos (defined in tds_column)tds_column
    column_timestamp (defined in tds_column)tds_column
    column_typetds_column
    column_usertype (defined in tds_column)tds_column
    column_varaddr (defined in tds_column)tds_column
    column_varint_sizetds_column
    column_writeable (defined in tds_column)tds_column
    funcs (defined in tds_column)tds_column
    on_server (defined in tds_column)tds_column
    table_column_name (defined in tds_column)tds_column
    table_name (defined in tds_column)tds_column
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01140.html freetds-1.2.3/doc/reference/a01140.html --- freetds-1.1.6/doc/reference/a01140.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01140.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_locale Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_locale Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +char * date_fmt
     
    +char * language
     
    +char * server_charset
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01140.map freetds-1.2.3/doc/reference/a01140.map --- freetds-1.1.6/doc/reference/a01140.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01140.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01140.md5 freetds-1.2.3/doc/reference/a01140.md5 --- freetds-1.1.6/doc/reference/a01140.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01140.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f6cb004e5220e83b5c907377cfa4afe0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01140.svg freetds-1.2.3/doc/reference/a01140.svg --- freetds-1.1.6/doc/reference/a01140.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01140.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ - - - - - - -tds_column - - -Node1 - -tds_column - - -Node2 - - -tdsiconvinfo - - - - -Node2->Node1 - - - char_conv - - -Node3 - - -tds_errno_message_flags - - - - -Node3->Node2 - - - suppress - - -Node4 - - -tdsiconvdir - - - - -Node4->Node2 - - - from - - -Node5 - - -tds_encoding - - - - -Node5->Node4 - - - charset - - -Node6 - - -tds_dstr - - - - -Node6->Node1 - - - column_name -table_name -table_column_name - - -Node7 - - -tds_column_funcs - - - - -Node7->Node1 - - - funcs - - -Node8 - - -tds_bcpcoldata - - - - -Node8->Node1 - - - bcp_column_data - - - diff -Nru freetds-1.1.6/doc/reference/a01141.html freetds-1.2.3/doc/reference/a01141.html --- freetds-1.1.6/doc/reference/a01141.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01141.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_blob Member List
    +
    +
    + +

    This is the complete list of members for tds_blob, including all inherited members.

    + + + + + +
    textptr (defined in tds_blob)tds_blob
    textvalue (defined in tds_blob)tds_blob
    timestamp (defined in tds_blob)tds_blob
    valid_ptr (defined in tds_blob)tds_blob
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01142.html freetds-1.2.3/doc/reference/a01142.html --- freetds-1.1.6/doc/reference/a01142.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01142.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,301 +0,0 @@ - - - - - - - -FreeTDS API: tds_column Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_column Struct Reference
    -
    -
    - -

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

    - -

    #include <tds.h>

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

    -Public Attributes

    -BCPCOLDATAbcp_column_data
     
    TDS_INT bcp_prefix_len
     The length, in bytes, of any length prefix this column may have. More...
     
    -TDS_INT bcp_term_len
     
    -TDS_CHAR * bcp_terminator
     
    -TDSICONVchar_conv
     refers to previously allocated iconv information
     
    -TDS_SMALLINT column_bindfmt
     
    -TDS_UINT column_bindlen
     
    -TDS_SMALLINT column_bindtype
     
    -TDS_UCHAR column_collation [5]
     
    TDS_INT column_cur_size
     size written in variable (ie: char, text, binary). More...
     
    -unsigned char * column_data
     
    -void(* column_data_free )(struct tds_column *column)
     
    -TDS_INT column_flags
     
    -unsigned char column_hidden:1
     
    -char column_iconv_buf [9]
     
    -unsigned char column_iconv_left
     
    -unsigned char column_identity:1
     
    -unsigned char column_key:1
     
    -TDS_INT * column_lenbind
     
    -DSTR column_name
     
    -unsigned char column_nullable:1
     
    -TDS_SMALLINT * column_nullbind
     
    -TDS_SMALLINT column_operand
     
    -TDS_TINYINT column_operator
     
    -unsigned char column_output:1
     
    -TDS_TINYINT column_prec
     precision for decimal/numeric
     
    -TDS_TINYINT column_scale
     scale for decimal/numeric
     
    TDS_INT column_size
     maximun size of data. More...
     
    -TDS_INT column_text_sqlgetdatapos
     
    -TDS_CHAR column_text_sqlputdatainfo
     
    -TDS_INT column_textpos
     
    -unsigned char column_timestamp:1
     
    TDS_SERVER_TYPE column_type
     This type can be different from wire type because conversion (e.g. More...
     
    -TDS_INT column_usertype
     
    -TDS_CHAR * column_varaddr
     
    -TDS_TINYINT column_varint_size
     size of length when reading from wire (0, 1, 2 or 4)
     
    -unsigned char column_writeable:1
     
    -const TDSCOLUMNFUNCSfuncs
     
    -struct {
    -   TDS_INT   column_size
     
    -   TDS_SERVER_TYPE   column_type
     type of data, saved from wire
     
    on_server
     
    -DSTR table_column_name
     
    -DSTR table_name
     
    -

    Detailed Description

    -

    Metadata about columns in regular and compute rows.

    -

    Member Data Documentation

    - -

    § bcp_prefix_len

    - -
    -
    - - - - -
    TDS_INT tds_column::bcp_prefix_len
    -
    - -

    The length, in bytes, of any length prefix this column may have.

    -

    For example, strings in some non-C programming languages are made up of a one-byte length prefix, followed by the string data itself. If the data do not have a length prefix, set prefixlen to 0. Currently not very used in code, however do not remove.

    - -
    -
    - -

    § column_cur_size

    - -
    -
    - - - - -
    TDS_INT tds_column::column_cur_size
    -
    - -

    size written in variable (ie: char, text, binary).

    -

    -1 if NULL.

    - -
    -
    - -

    § column_size

    - -
    -
    - - - - -
    TDS_INT tds_column::column_size
    -
    - -

    maximun size of data.

    -

    For fixed is the size.

    - -
    -
    - -

    § column_type

    - -
    -
    - - - - -
    TDS_SERVER_TYPE tds_column::column_type
    -
    - -

    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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01144.html freetds-1.2.3/doc/reference/a01144.html --- freetds-1.1.6/doc/reference/a01144.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01144.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,106 @@ + + + + + + + +FreeTDS API: tds_blob Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_blob Struct Reference
    +
    +
    + +

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

    + +

    #include <tds.h>

    + + + + + + + + + + +

    +Public Attributes

    +TDS_CHAR textptr [16]
     
    +TDS_CHAR * textvalue
     
    +TDS_CHAR timestamp [8]
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01145.html freetds-1.2.3/doc/reference/a01145.html --- freetds-1.1.6/doc/reference/a01145.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01145.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_variant Member List
    +
    +
    + +

    This is the complete list of members for tds_variant, including all inherited members.

    + + + + + + +
    collation (defined in tds_variant)tds_variant
    data (defined in tds_variant)tds_variant
    data_len (defined in tds_variant)tds_variant
    size (defined in tds_variant)tds_variant
    type (defined in tds_variant)tds_variant
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01147.html freetds-1.2.3/doc/reference/a01147.html --- freetds-1.1.6/doc/reference/a01147.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01147.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_result_info Member List
    -
    -
    - -

    This is the complete list of members for tds_result_info, including all inherited members.

    - - - - - - - - - - - - - -
    attached_to (defined in tds_result_info)tds_result_info
    by_cols (defined in tds_result_info)tds_result_info
    bycolumns (defined in tds_result_info)tds_result_info
    columns (defined in tds_result_info)tds_result_info
    computeid (defined in tds_result_info)tds_result_info
    current_row (defined in tds_result_info)tds_result_info
    more_results (defined in tds_result_info)tds_result_info
    num_cols (defined in tds_result_info)tds_result_info
    ref_count (defined in tds_result_info)tds_result_info
    row_free (defined in tds_result_info)tds_result_info
    row_size (defined in tds_result_info)tds_result_info
    rows_exist (defined in tds_result_info)tds_result_info
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01148.html freetds-1.2.3/doc/reference/a01148.html --- freetds-1.1.6/doc/reference/a01148.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01148.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_variant Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_variant Struct Reference
    +
    +
    + +

    Store variant informations. + More...

    + +

    #include <tds.h>

    + + + + + + + + + + + + +

    +Public Attributes

    +TDS_UCHAR collation [5]
     
    +TDS_CHAR * data
     
    +TDS_INT data_len
     
    +TDS_INT size
     
    +TDS_SERVER_TYPE type
     
    +

    Detailed Description

    +

    Store variant informations.

    +

    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01148.map freetds-1.2.3/doc/reference/a01148.map --- freetds-1.1.6/doc/reference/a01148.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01148.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01148.md5 freetds-1.2.3/doc/reference/a01148.md5 --- freetds-1.1.6/doc/reference/a01148.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01148.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -9c6a30292b7afa7af5a55617b3573465 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01148.svg freetds-1.2.3/doc/reference/a01148.svg --- freetds-1.1.6/doc/reference/a01148.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01148.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,340 +0,0 @@ - - - - - - -tds_result_info - - -Node1 - -tds_result_info - - -Node2 - - -tds_socket - - - - -Node1->Node2 - - - param_info -current_results -res_info -comp_info - - -Node8 - - -tds_dynamic - - - - -Node1->Node8 - - - res_info -params - - -Node9 - - -tds_cursor - - - - -Node1->Node9 - - - res_info - - -Node2->Node1 - - - attached_to - - -Node3 - - -tds_login - - - - -Node3->Node2 - - - login - - -Node4 - - -tds_capabilities - - - - -Node4->Node3 - - - capabilities - - -Node11 - - -tds_connection - - - - -Node4->Node11 - - - capabilities - - -Node6 - - -tds_dstr - - - - -Node6->Node3 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node21 - - -tds_column - - - - -Node6->Node21 - - - column_name -table_name -table_column_name - - -Node7 - - -tds_packet - - - - -Node7->Node2 - - - recv_packet -send_packet - - -Node7->Node7 - - - next - - -Node8->Node2 - - - cur_dyn - - -Node8->Node8 - - - next - - -Node8->Node11 - - - dyns - - -Node9->Node2 - - - cur_cursor - - -Node9->Node9 - - - next - - -Node9->Node11 - - - cursors - - -Node10 - - -tds_cursor_status - - - - -Node10->Node9 - - - status - - -Node11->Node2 - - - conn - - -Node12 - - -tds_poll_wakeup - - - - -Node12->Node11 - - - wakeup - - -Node13 - - -tds_env - - - - -Node13->Node11 - - - env - - -Node14 - - -tds_context - - - - -Node14->Node11 - - - tds_ctx - - -Node16 - - -tds_authentication - - - - -Node16->Node11 - - - authentication - - -Node17 - - -tdsiconvinfo - - - - -Node17->Node11 - - - char_convs - - -Node17->Node21 - - - char_conv - - -Node21->Node1 - - - columns - - -Node22 - - -tds_column_funcs - - - - -Node22->Node21 - - - funcs - - -Node23 - - -tds_bcpcoldata - - - - -Node23->Node21 - - - bcp_column_data - - - diff -Nru freetds-1.1.6/doc/reference/a01149.html freetds-1.2.3/doc/reference/a01149.html --- freetds-1.1.6/doc/reference/a01149.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01149.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_encoding Member List
    +
    +
    + +

    This is the complete list of members for tds_encoding, including all inherited members.

    + + + + + +
    canonictds_encoding
    max_bytes_per_char (defined in tds_encoding)tds_encoding
    min_bytes_per_char (defined in tds_encoding)tds_encoding
    nametds_encoding
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01150.html freetds-1.2.3/doc/reference/a01150.html --- freetds-1.1.6/doc/reference/a01150.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01150.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,132 +0,0 @@ - - - - - - - -FreeTDS API: tds_result_info Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_result_info Struct Reference
    -
    -
    - -

    Hold information for any results. - More...

    - -

    #include <tds.h>

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

    -Public Attributes

    -TDSSOCKETattached_to
     
    -TDS_USMALLINT by_cols
     
    -TDS_SMALLINT * bycolumns
     
    -TDSCOLUMN ** columns
     
    -TDS_USMALLINT computeid
     
    -unsigned char * current_row
     
    -bool more_results
     
    -TDS_USMALLINT num_cols
     
    -TDS_INT ref_count
     
    -void(* row_free )(struct tds_result_info *result, unsigned char *row)
     
    -TDS_INT row_size
     
    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01151.html freetds-1.2.3/doc/reference/a01151.html --- freetds-1.1.6/doc/reference/a01151.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01151.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_message Member List
    -
    -
    - -

    This is the complete list of members for tds_message, including all inherited members.

    - - - - - - - - - - - -
    line_number (defined in tds_message)tds_message
    message (defined in tds_message)tds_message
    msgno (defined in tds_message)tds_message
    oserr (defined in tds_message)tds_message
    priv_msg_type (defined in tds_message)tds_message
    proc_name (defined in tds_message)tds_message
    server (defined in tds_message)tds_message
    severity (defined in tds_message)tds_message
    sql_state (defined in tds_message)tds_message
    state (defined in tds_message)tds_message
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01152.html freetds-1.2.3/doc/reference/a01152.html --- freetds-1.1.6/doc/reference/a01152.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01152.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_encoding Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_encoding Struct Reference
    +
    +
    + +

    Information relevant to libiconv. + More...

    + +

    #include <tds.h>

    + + + + + + + + + + + + +

    +Public Attributes

    +unsigned char canonic
     internal numeric index into array of all encodings
     
    +unsigned char max_bytes_per_char
     
    +unsigned char min_bytes_per_char
     
    +const char * name
     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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01153.html freetds-1.2.3/doc/reference/a01153.html --- freetds-1.1.6/doc/reference/a01153.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01153.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_bcpcoldata Member List
    +
    +
    + +

    This is the complete list of members for tds_bcpcoldata, including all inherited members.

    + + + + +
    data (defined in tds_bcpcoldata)tds_bcpcoldata
    datalen (defined in tds_bcpcoldata)tds_bcpcoldata
    is_null (defined in tds_bcpcoldata)tds_bcpcoldata
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01154.html freetds-1.2.3/doc/reference/a01154.html --- freetds-1.1.6/doc/reference/a01154.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01154.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ - - - - - - - -FreeTDS API: tds_message Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_message Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_INT line_number
     
    -TDS_CHAR * message
     
    -TDS_INT msgno
     
    -int oserr
     
    -TDS_TINYINT priv_msg_type
     
    -TDS_CHAR * proc_name
     
    -TDS_CHAR * server
     
    -TDS_TINYINT severity
     
    -TDS_CHAR * sql_state
     
    -TDS_SMALLINT state
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01155.html freetds-1.2.3/doc/reference/a01155.html --- freetds-1.1.6/doc/reference/a01155.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01155.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_upd_col Member List
    -
    -
    - -

    This is the complete list of members for tds_upd_col, including all inherited members.

    - - - - -
    colnamelength (defined in tds_upd_col)tds_upd_col
    columnname (defined in tds_upd_col)tds_upd_col
    next (defined in tds_upd_col)tds_upd_col
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01156.html freetds-1.2.3/doc/reference/a01156.html --- freetds-1.1.6/doc/reference/a01156.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01156.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: tds_bcpcoldata Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_bcpcoldata Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +TDS_UCHAR * data
     
    +TDS_INT datalen
     
    +TDS_INT is_null
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01156.map freetds-1.2.3/doc/reference/a01156.map --- freetds-1.1.6/doc/reference/a01156.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01156.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a01156.md5 freetds-1.2.3/doc/reference/a01156.md5 --- freetds-1.1.6/doc/reference/a01156.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01156.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -080bed39518bd19a023f9eb34cbb2c17 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01156.svg freetds-1.2.3/doc/reference/a01156.svg --- freetds-1.1.6/doc/reference/a01156.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01156.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -tds_upd_col - - -Node1 - -tds_upd_col - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a01157.html freetds-1.2.3/doc/reference/a01157.html --- freetds-1.1.6/doc/reference/a01157.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01157.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_column_funcs Member List
    +
    +
    + +

    This is the complete list of members for tds_column_funcs, including all inherited members.

    + + + + + + +
    get_data (defined in tds_column_funcs)tds_column_funcs
    get_info (defined in tds_column_funcs)tds_column_funcs
    put_datatds_column_funcs
    put_infotds_column_funcs
    row_len (defined in tds_column_funcs)tds_column_funcs
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01158.html freetds-1.2.3/doc/reference/a01158.html --- freetds-1.1.6/doc/reference/a01158.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01158.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: tds_upd_col Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_upd_col Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_upd_col:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -TDS_INT colnamelength
     
    -char * columnname
     
    -struct tds_upd_colnext
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01159.html freetds-1.2.3/doc/reference/a01159.html --- freetds-1.1.6/doc/reference/a01159.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01159.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_cursor_status Member List
    -
    -
    - -

    This is the complete list of members for tds_cursor_status, including all inherited members.

    - - - - - - - -
    close (defined in tds_cursor_status)tds_cursor_status
    cursor_row (defined in tds_cursor_status)tds_cursor_status
    dealloc (defined in tds_cursor_status)tds_cursor_status
    declare (defined in tds_cursor_status)tds_cursor_status
    fetch (defined in tds_cursor_status)tds_cursor_status
    open (defined in tds_cursor_status)tds_cursor_status
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01160.html freetds-1.2.3/doc/reference/a01160.html --- freetds-1.1.6/doc/reference/a01160.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01160.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,149 @@ + + + + + + + +FreeTDS API: tds_column_funcs Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_column_funcs Struct Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Attributes

    +tds_func_get_data * get_data
     
    +tds_func_get_info * get_info
     
    tds_func_put_data * put_data
     Send column data to server. More...
     
    tds_func_put_info * put_info
     Send metadata column information to server. More...
     
    +tds_func_row_len * row_len
     
    +

    Member Data Documentation

    + +

    ◆ put_data

    + +
    +
    + + + + +
    tds_func_put_data* tds_column_funcs::put_data
    +
    + +

    Send column data to server.

    +

    Usually send parameters unless bcp7 is specified, in this case send BCP for TDS7+ (Sybase use a completely different format for BCP)

    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    colcolumn to send
    bcp71 to send BCP column on TDS7+
    +
    +
    + +
    +
    + +

    ◆ put_info

    + +
    +
    + + + + +
    tds_func_put_info* tds_column_funcs::put_info
    +
    + +

    Send metadata column information to server.

    +
    Parameters
    + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    colcolumn to send
    +
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01161.html freetds-1.2.3/doc/reference/a01161.html --- freetds-1.1.6/doc/reference/a01161.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01161.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,121 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_column Member List
    +
    +
    + +

    This is the complete list of members for tds_column, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    bcp_column_data (defined in tds_column)tds_column
    bcp_prefix_lentds_column
    bcp_term_len (defined in tds_column)tds_column
    bcp_terminator (defined in tds_column)tds_column
    char_convtds_column
    column_bindfmt (defined in tds_column)tds_column
    column_bindlen (defined in tds_column)tds_column
    column_bindtype (defined in tds_column)tds_column
    column_collation (defined in tds_column)tds_column
    column_computed (defined in tds_column)tds_column
    column_cur_sizetds_column
    column_data (defined in tds_column)tds_column
    column_data_free (defined in tds_column)tds_column
    column_flags (defined in tds_column)tds_column
    column_hidden (defined in tds_column)tds_column
    column_iconv_buf (defined in tds_column)tds_column
    column_iconv_left (defined in tds_column)tds_column
    column_identity (defined in tds_column)tds_column
    column_key (defined in tds_column)tds_column
    column_lenbind (defined in tds_column)tds_column
    column_name (defined in tds_column)tds_column
    column_nullable (defined in tds_column)tds_column
    column_nullbind (defined in tds_column)tds_column
    column_operand (defined in tds_column)tds_column
    column_operator (defined in tds_column)tds_column
    column_output (defined in tds_column)tds_column
    column_prectds_column
    column_scaletds_column
    column_sizetds_column
    column_text_sqlgetdatapos (defined in tds_column)tds_column
    column_text_sqlputdatainfo (defined in tds_column)tds_column
    column_textpos (defined in tds_column)tds_column
    column_timestamp (defined in tds_column)tds_column
    column_typetds_column
    column_usertype (defined in tds_column)tds_column
    column_varaddr (defined in tds_column)tds_column
    column_varint_sizetds_column
    column_writeable (defined in tds_column)tds_column
    funcs (defined in tds_column)tds_column
    on_server (defined in tds_column)tds_column
    table_column_name (defined in tds_column)tds_column
    table_name (defined in tds_column)tds_column
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01162.html freetds-1.2.3/doc/reference/a01162.html --- freetds-1.1.6/doc/reference/a01162.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01162.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: tds_cursor_status Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_cursor_status Struct Reference
    -
    -
    - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_CURSOR_STATE close
     
    -TDS_CURSOR_STATE cursor_row
     
    -TDS_CURSOR_STATE dealloc
     
    -TDS_CURSOR_STATE declare
     
    -TDS_CURSOR_STATE fetch
     
    -TDS_CURSOR_STATE open
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01162.map freetds-1.2.3/doc/reference/a01162.map --- freetds-1.1.6/doc/reference/a01162.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01162.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,10 @@ + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01162.md5 freetds-1.2.3/doc/reference/a01162.md5 --- freetds-1.1.6/doc/reference/a01162.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01162.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +af91fa8defcf9acafd7dfe7842858bce \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01162.svg freetds-1.2.3/doc/reference/a01162.svg --- freetds-1.1.6/doc/reference/a01162.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01162.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,136 @@ + + + + + + +tds_column + + + +Node1 + + +tds_column + + + + + +Node2 + + +tdsiconvinfo + + + + + +Node2->Node1 + + + char_conv + + + +Node3 + + +tds_errno_message_flags + + + + + +Node3->Node2 + + + suppress + + + +Node4 + + +tdsiconvdir + + + + + +Node4->Node2 + + + from + + + +Node5 + + +tds_encoding + + + + + +Node5->Node4 + + + charset + + + +Node6 + + +tds_dstr + + + + + +Node6->Node1 + + + column_name +table_name +table_column_name + + + +Node7 + + +tds_column_funcs + + + + + +Node7->Node1 + + + funcs + + + +Node8 + + +tds_bcpcoldata + + + + + +Node8->Node1 + + + bcp_column_data + + + diff -Nru freetds-1.1.6/doc/reference/a01163.html freetds-1.2.3/doc/reference/a01163.html --- freetds-1.1.6/doc/reference/a01163.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01163.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_cursor Member List
    -
    -
    - -

    This is the complete list of members for tds_cursor, including all inherited members.

    - - - - - - - - - - - - - - -
    concurrency (defined in tds_cursor)tds_cursor
    cursor_idtds_cursor
    cursor_nametds_cursor
    cursor_rowstds_cursor
    defer_closetds_cursor
    nexttds_cursor
    optionstds_cursor
    querytds_cursor
    ref_counttds_cursor
    res_info (defined in tds_cursor)tds_cursor
    srv_status (defined in tds_cursor)tds_cursor
    statustds_cursor
    typetds_cursor
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01164.html freetds-1.2.3/doc/reference/a01164.html --- freetds-1.1.6/doc/reference/a01164.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01164.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,307 @@ + + + + + + + +FreeTDS API: tds_column Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_column Struct Reference
    +
    +
    + +

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

    + +

    #include <tds.h>

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

    +Public Attributes

    +BCPCOLDATAbcp_column_data
     
    TDS_INT bcp_prefix_len
     The length, in bytes, of any length prefix this column may have. More...
     
    +TDS_INT bcp_term_len
     
    +TDS_CHAR * bcp_terminator
     
    +TDSICONVchar_conv
     refers to previously allocated iconv information
     
    +TDS_SMALLINT column_bindfmt
     
    +TDS_UINT column_bindlen
     
    +TDS_SMALLINT column_bindtype
     
    +TDS_UCHAR column_collation [5]
     
    +unsigned char column_computed:1
     
    TDS_INT column_cur_size
     size written in variable (ie: char, text, binary). More...
     
    +unsigned char * column_data
     
    +void(* column_data_free )(struct tds_column *column)
     
    +TDS_INT column_flags
     
    +unsigned char column_hidden:1
     
    +char column_iconv_buf [9]
     
    +unsigned char column_iconv_left
     
    +unsigned char column_identity:1
     
    +unsigned char column_key:1
     
    +TDS_INT * column_lenbind
     
    +DSTR column_name
     
    +unsigned char column_nullable:1
     
    +TDS_SMALLINT * column_nullbind
     
    +TDS_SMALLINT column_operand
     
    +TDS_TINYINT column_operator
     
    +unsigned char column_output:1
     
    +TDS_TINYINT column_prec
     precision for decimal/numeric
     
    +TDS_TINYINT column_scale
     scale for decimal/numeric
     
    TDS_INT column_size
     maximun size of data. More...
     
    +TDS_INT column_text_sqlgetdatapos
     
    +TDS_CHAR column_text_sqlputdatainfo
     
    +TDS_INT column_textpos
     
    +unsigned char column_timestamp:1
     
    TDS_SERVER_TYPE column_type
     This type can be different from wire type because conversion (e.g. More...
     
    +TDS_INT column_usertype
     
    +TDS_CHAR * column_varaddr
     
    +TDS_TINYINT column_varint_size
     size of length when reading from wire (0, 1, 2 or 4)
     
    +unsigned char column_writeable:1
     
    +const TDSCOLUMNFUNCSfuncs
     
    +struct {
    +   TDS_INT   column_size
     
    +   TDS_SERVER_TYPE   column_type
     type of data, saved from wire
     
    on_server
     
    +DSTR table_column_name
     
    +DSTR table_name
     
    +

    Detailed Description

    +

    Metadata about columns in regular and compute rows.

    +

    Member Data Documentation

    + +

    ◆ bcp_prefix_len

    + +
    +
    + + + + +
    TDS_INT tds_column::bcp_prefix_len
    +
    + +

    The length, in bytes, of any length prefix this column may have.

    +

    For example, strings in some non-C programming languages are made up of a one-byte length prefix, followed by the string data itself. If the data do not have a length prefix, set prefixlen to 0. Currently not very used in code, however do not remove.

    + +
    +
    + +

    ◆ column_cur_size

    + +
    +
    + + + + +
    TDS_INT tds_column::column_cur_size
    +
    + +

    size written in variable (ie: char, text, binary).

    +

    -1 if NULL.

    + +
    +
    + +

    ◆ column_size

    + +
    +
    + + + + +
    TDS_INT tds_column::column_size
    +
    + +

    maximun size of data.

    +

    For fixed is the size.

    + +
    +
    + +

    ◆ column_type

    + +
    +
    + + + + +
    TDS_SERVER_TYPE tds_column::column_type
    +
    + +

    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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01164.map freetds-1.2.3/doc/reference/a01164.map --- freetds-1.1.6/doc/reference/a01164.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01164.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01164.md5 freetds-1.2.3/doc/reference/a01164.md5 --- freetds-1.1.6/doc/reference/a01164.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01164.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -df70af1d971fa459a7d85c12c537ca80 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01164.svg freetds-1.2.3/doc/reference/a01164.svg --- freetds-1.1.6/doc/reference/a01164.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01164.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,264 +0,0 @@ - - - - - - -tds_cursor - - -Node1 - -tds_cursor - - -Node1->Node1 - - - next - - -Node4 - - -tds_socket - - - - -Node1->Node4 - - - cur_cursor - - -Node11 - - -tds_connection - - - - -Node1->Node11 - - - cursors - - -Node2 - - -tds_cursor_status - - - - -Node2->Node1 - - - status - - -Node3 - - -tds_result_info - - - - -Node3->Node1 - - - res_info - - -Node3->Node4 - - - param_info -current_results -res_info -comp_info - - -Node10 - - -tds_dynamic - - - - -Node3->Node10 - - - res_info -params - - -Node4->Node3 - - - attached_to - - -Node5 - - -tds_login - - - - -Node5->Node4 - - - login - - -Node8 - - -tds_dstr - - - - -Node8->Node5 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node21 - - -tds_column - - - - -Node8->Node21 - - - column_name -table_name -table_column_name - - -Node9 - - -tds_packet - - - - -Node9->Node4 - - - recv_packet -send_packet - - -Node9->Node9 - - - next - - -Node10->Node4 - - - cur_dyn - - -Node10->Node10 - - - next - - -Node10->Node11 - - - dyns - - -Node11->Node4 - - - conn - - -Node17 - - -tdsiconvinfo - - - - -Node17->Node11 - - - char_convs - - -Node17->Node21 - - - char_conv - - -Node21->Node3 - - - columns - - -Node22 - - -tds_column_funcs - - - - -Node22->Node21 - - - funcs - - -Node23 - - -tds_bcpcoldata - - - - -Node23->Node21 - - - bcp_column_data - - - diff -Nru freetds-1.1.6/doc/reference/a01166.html freetds-1.2.3/doc/reference/a01166.html --- freetds-1.1.6/doc/reference/a01166.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01166.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,162 +0,0 @@ - - - - - - - -FreeTDS API: tds_cursor Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_cursor Struct Reference
    -
    -
    - -

    Holds informations about a cursor. - More...

    - -

    #include <tds.h>

    -
    -Collaboration diagram for tds_cursor:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_INT concurrency
     
    -TDS_INT cursor_id
     cursor id returned by the server after cursor declare
     
    -char * cursor_name
     name of the cursor
     
    TDS_INT cursor_rows
     < number of updatable columns More...
     
    -bool defer_close
     true if cursor was marker to be closed when connection is idle
     
    -struct tds_cursornext
     next in linked list, keep first
     
    -TDS_TINYINT options
     read only|updatable TODO use it
     
    -char * query
     SQL query.
     
    -TDS_INT ref_count
     reference counter so client can retain safely a pointer
     
    -TDSRESULTINFOres_info
     
    -TDS_USMALLINT srv_status
     
    -TDS_CURSOR_STATUS status
     cursor parameter
     
    -TDS_INT type
     row fetched from this cursor
     
    -

    Detailed Description

    -

    Holds informations about a cursor.

    -

    Member Data Documentation

    - -

    § cursor_rows

    - -
    -
    - - - - -
    TDS_INT tds_cursor::cursor_rows
    -
    - -

    < 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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01167.html freetds-1.2.3/doc/reference/a01167.html --- freetds-1.1.6/doc/reference/a01167.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01167.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_env Member List
    -
    -
    - -

    This is the complete list of members for tds_env, including all inherited members.

    - - - - - -
    block_sizetds_env
    charsettds_env
    databasetds_env
    language (defined in tds_env)tds_env
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01169.html freetds-1.2.3/doc/reference/a01169.html --- freetds-1.1.6/doc/reference/a01169.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01169.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_result_info Member List
    +
    +
    + +

    This is the complete list of members for tds_result_info, including all inherited members.

    + + + + + + + + + + + + + +
    attached_to (defined in tds_result_info)tds_result_info
    by_cols (defined in tds_result_info)tds_result_info
    bycolumns (defined in tds_result_info)tds_result_info
    columns (defined in tds_result_info)tds_result_info
    computeid (defined in tds_result_info)tds_result_info
    current_row (defined in tds_result_info)tds_result_info
    more_results (defined in tds_result_info)tds_result_info
    num_cols (defined in tds_result_info)tds_result_info
    ref_count (defined in tds_result_info)tds_result_info
    row_free (defined in tds_result_info)tds_result_info
    row_size (defined in tds_result_info)tds_result_info
    rows_exist (defined in tds_result_info)tds_result_info
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01170.html freetds-1.2.3/doc/reference/a01170.html --- freetds-1.1.6/doc/reference/a01170.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01170.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - -FreeTDS API: tds_env Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_env Struct Reference
    -
    -
    - -

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

    - -

    #include <tds.h>

    - - - - - - - - - - - - - -

    -Public Attributes

    -int block_size
     packet size (512-65535)
     
    -char * charset
     character set encoding
     
    -char * database
     database name
     
    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01170.map freetds-1.2.3/doc/reference/a01170.map --- freetds-1.1.6/doc/reference/a01170.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01170.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01170.md5 freetds-1.2.3/doc/reference/a01170.md5 --- freetds-1.1.6/doc/reference/a01170.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01170.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +941385b36fb667027669df1616fc613d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01170.svg freetds-1.2.3/doc/reference/a01170.svg --- freetds-1.1.6/doc/reference/a01170.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01170.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,397 @@ + + + + + + +tds_result_info + + + +Node1 + + +tds_result_info + + + + + +Node2 + + +tds_socket + + + + + +Node1->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node8 + + +tds_dynamic + + + + + +Node1->Node8 + + + res_info +params + + + +Node9 + + +tds_cursor + + + + + +Node1->Node9 + + + res_info + + + +Node2->Node1 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node11 + + +tds_connection + + + + + +Node4->Node11 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node21 + + +tds_column + + + + + +Node6->Node21 + + + column_name +table_name +table_column_name + + + +Node7 + + +tds_packet + + + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node11 + + + packet_cache + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node11 + + + dyns + + + +Node9->Node2 + + + cur_cursor + + + +Node9->Node9 + + + next + + + +Node9->Node11 + + + cursors + + + +Node10 + + +tds_cursor_status + + + + + +Node10->Node9 + + + status + + + +Node11->Node2 + + + conn + + + +Node12 + + +tds_poll_wakeup + + + + + +Node12->Node11 + + + wakeup + + + +Node13 + + +tds_env + + + + + +Node13->Node11 + + + env + + + +Node14 + + +tds_context + + + + + +Node14->Node11 + + + tds_ctx + + + +Node16 + + +tds_authentication + + + + + +Node16->Node11 + + + authentication + + + +Node17 + + +tdsiconvinfo + + + + + +Node17->Node11 + + + char_convs + + + +Node17->Node21 + + + char_conv + + + +Node21->Node1 + + + columns + + + +Node22 + + +tds_column_funcs + + + + + +Node22->Node21 + + + funcs + + + +Node23 + + +tds_bcpcoldata + + + + + +Node23->Node21 + + + bcp_column_data + + + diff -Nru freetds-1.1.6/doc/reference/a01171.html freetds-1.2.3/doc/reference/a01171.html --- freetds-1.1.6/doc/reference/a01171.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01171.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_dynamic Member List
    -
    - - - - - diff -Nru freetds-1.1.6/doc/reference/a01172.html freetds-1.2.3/doc/reference/a01172.html --- freetds-1.1.6/doc/reference/a01172.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01172.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,135 @@ + + + + + + + +FreeTDS API: tds_result_info Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_result_info Struct Reference
    +
    +
    + +

    Hold information for any results. + More...

    + +

    #include <tds.h>

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

    +Public Attributes

    +TDSSOCKETattached_to
     
    +TDS_USMALLINT by_cols
     
    +TDS_SMALLINT * bycolumns
     
    +TDSCOLUMN ** columns
     
    +TDS_USMALLINT computeid
     
    +unsigned char * current_row
     
    +bool more_results
     
    +TDS_USMALLINT num_cols
     
    +TDS_INT ref_count
     
    +void(* row_free )(struct tds_result_info *result, unsigned char *row)
     
    +TDS_INT row_size
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01172.map freetds-1.2.3/doc/reference/a01172.map --- freetds-1.1.6/doc/reference/a01172.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01172.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01172.md5 freetds-1.2.3/doc/reference/a01172.md5 --- freetds-1.1.6/doc/reference/a01172.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01172.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3e88bf0d40d406ebc4fe128f797d8340 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01172.svg freetds-1.2.3/doc/reference/a01172.svg --- freetds-1.1.6/doc/reference/a01172.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01172.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,250 +0,0 @@ - - - - - - -tds_dynamic - - -Node1 - -tds_dynamic - - -Node1->Node1 - - - next - - -Node3 - - -tds_socket - - - - -Node1->Node3 - - - cur_dyn - - -Node11 - - -tds_connection - - - - -Node1->Node11 - - - dyns - - -Node2 - - -tds_result_info - - - - -Node2->Node1 - - - res_info -params - - -Node2->Node3 - - - param_info -current_results -res_info -comp_info - - -Node9 - - -tds_cursor - - - - -Node2->Node9 - - - res_info - - -Node3->Node2 - - - attached_to - - -Node4 - - -tds_login - - - - -Node4->Node3 - - - login - - -Node7 - - -tds_dstr - - - - -Node7->Node4 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node21 - - -tds_column - - - - -Node7->Node21 - - - column_name -table_name -table_column_name - - -Node8 - - -tds_packet - - - - -Node8->Node3 - - - recv_packet -send_packet - - -Node8->Node8 - - - next - - -Node9->Node3 - - - cur_cursor - - -Node9->Node9 - - - next - - -Node9->Node11 - - - cursors - - -Node11->Node3 - - - conn - - -Node17 - - -tdsiconvinfo - - - - -Node17->Node11 - - - char_convs - - -Node17->Node21 - - - char_conv - - -Node21->Node2 - - - columns - - -Node22 - - -tds_column_funcs - - - - -Node22->Node21 - - - funcs - - -Node23 - - -tds_bcpcoldata - - - - -Node23->Node21 - - - bcp_column_data - - - diff -Nru freetds-1.1.6/doc/reference/a01173.html freetds-1.2.3/doc/reference/a01173.html --- freetds-1.1.6/doc/reference/a01173.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01173.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_message Member List
    +
    +
    + +

    This is the complete list of members for tds_message, including all inherited members.

    + + + + + + + + + + + +
    line_number (defined in tds_message)tds_message
    message (defined in tds_message)tds_message
    msgno (defined in tds_message)tds_message
    oserr (defined in tds_message)tds_message
    priv_msg_type (defined in tds_message)tds_message
    proc_name (defined in tds_message)tds_message
    server (defined in tds_message)tds_message
    severity (defined in tds_message)tds_message
    sql_state (defined in tds_message)tds_message
    state (defined in tds_message)tds_message
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01174.html freetds-1.2.3/doc/reference/a01174.html --- freetds-1.1.6/doc/reference/a01174.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01174.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,181 +0,0 @@ - - - - - - - -FreeTDS API: tds_dynamic Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_dynamic Struct Reference
    -
    -
    - -

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

    - -

    #include <tds.h>

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

    -Public Attributes

    -bool defer_close
     true if dynamic was marker to be closed when connection is idle
     
    TDS_TINYINT emulated
     this dynamic query cannot be prepared so libTDS have to construct a simple query. More...
     
    char id [30]
     id of dynamic. More...
     
    -struct tds_dynamicnext
     next in linked list, keep first
     
    -TDS_INT num_id
     numeric id for mssql7+
     
    TDSPARAMINFOparams
     query parameters. More...
     
    -char * query
     saved query, we need to know original query if prepare is impossible
     
    -TDS_INT ref_count
     reference counter so client can retain safely a pointer
     
    -TDSPARAMINFOres_info
     query results
     
    -

    Detailed Description

    -

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

    -

    Member Data Documentation

    - -

    § emulated

    - -
    -
    - - - - -
    TDS_TINYINT tds_dynamic::emulated
    -
    - -

    this dynamic query cannot be prepared so libTDS have to construct a simple query.

    -

    This can happen for instance is tds protocol doesn't support dynamics or trying to prepare query under Sybase that have BLOBs as parameters.

    - -
    -
    - -

    § id

    - -
    -
    - - - - -
    char tds_dynamic::id[30]
    -
    - -

    id of dynamic.

    -

    Usually this id correspond to server one but if not specified is generated automatically by libTDS

    - -
    -
    - -

    § params

    - -
    -
    - - - - -
    TDSPARAMINFO* tds_dynamic::params
    -
    - -

    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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01175.html freetds-1.2.3/doc/reference/a01175.html --- freetds-1.1.6/doc/reference/a01175.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01175.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_multiple Member List
    -
    -
    - -

    This is the complete list of members for tds_multiple, including all inherited members.

    - - - -
    flags (defined in tds_multiple)tds_multiple
    type (defined in tds_multiple)tds_multiple
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01176.html freetds-1.2.3/doc/reference/a01176.html --- freetds-1.1.6/doc/reference/a01176.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01176.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,116 @@ + + + + + + + +FreeTDS API: tds_message Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_message Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_INT line_number
     
    +TDS_CHAR * message
     
    +TDS_INT msgno
     
    +int oserr
     
    +TDS_TINYINT priv_msg_type
     
    +TDS_CHAR * proc_name
     
    +TDS_CHAR * server
     
    +TDS_TINYINT severity
     
    +TDS_CHAR * sql_state
     
    +TDS_SMALLINT state
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01177.html freetds-1.2.3/doc/reference/a01177.html --- freetds-1.1.6/doc/reference/a01177.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01177.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_upd_col Member List
    +
    +
    + +

    This is the complete list of members for tds_upd_col, including all inherited members.

    + + + + +
    colnamelength (defined in tds_upd_col)tds_upd_col
    columnname (defined in tds_upd_col)tds_upd_col
    next (defined in tds_upd_col)tds_upd_col
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01178.html freetds-1.2.3/doc/reference/a01178.html --- freetds-1.1.6/doc/reference/a01178.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01178.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tds_multiple Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_multiple Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -unsigned int flags
     
    -TDS_MULTIPLE_TYPE type
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01178.map freetds-1.2.3/doc/reference/a01178.map --- freetds-1.1.6/doc/reference/a01178.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01178.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a01178.md5 freetds-1.2.3/doc/reference/a01178.md5 --- freetds-1.1.6/doc/reference/a01178.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01178.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +485ead80bda701fd9ad67529c165a264 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01178.svg freetds-1.2.3/doc/reference/a01178.svg --- freetds-1.1.6/doc/reference/a01178.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01178.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +tds_upd_col + + + +Node1 + + +tds_upd_col + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a01179.html freetds-1.2.3/doc/reference/a01179.html --- freetds-1.1.6/doc/reference/a01179.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01179.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_context Member List
    -
    -
    - -

    This is the complete list of members for tds_context, including all inherited members.

    - - - - - - - -
    err_handler (defined in tds_context)tds_context
    int_handler (defined in tds_context)tds_context
    locale (defined in tds_context)tds_context
    money_use_2_digits (defined in tds_context)tds_context
    msg_handler (defined in tds_context)tds_context
    parent (defined in tds_context)tds_context
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01180.html freetds-1.2.3/doc/reference/a01180.html --- freetds-1.1.6/doc/reference/a01180.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01180.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: tds_upd_col Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_upd_col Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_upd_col:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +TDS_INT colnamelength
     
    +char * columnname
     
    +struct tds_upd_colnext
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01180.map freetds-1.2.3/doc/reference/a01180.map --- freetds-1.1.6/doc/reference/a01180.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01180.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01180.md5 freetds-1.2.3/doc/reference/a01180.md5 --- freetds-1.1.6/doc/reference/a01180.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01180.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -4ea780de3f2e95606eb3f0379f9eaeba \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01180.svg freetds-1.2.3/doc/reference/a01180.svg --- freetds-1.1.6/doc/reference/a01180.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01180.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_context - - -Node1 - -tds_context - - -Node2 - - -tds_locale - - - - -Node2->Node1 - - - locale - - - diff -Nru freetds-1.1.6/doc/reference/a01181.html freetds-1.2.3/doc/reference/a01181.html --- freetds-1.1.6/doc/reference/a01181.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01181.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_cursor_status Member List
    +
    +
    + +

    This is the complete list of members for tds_cursor_status, including all inherited members.

    + + + + + + + +
    close (defined in tds_cursor_status)tds_cursor_status
    cursor_row (defined in tds_cursor_status)tds_cursor_status
    dealloc (defined in tds_cursor_status)tds_cursor_status
    declare (defined in tds_cursor_status)tds_cursor_status
    fetch (defined in tds_cursor_status)tds_cursor_status
    open (defined in tds_cursor_status)tds_cursor_status
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01182.html freetds-1.2.3/doc/reference/a01182.html --- freetds-1.1.6/doc/reference/a01182.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01182.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - - -FreeTDS API: tds_context Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_context Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_context:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - -

    -Public Attributes

    -int(* err_handler )(const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
     
    -int(* int_handler )(void *)
     
    -TDSLOCALElocale
     
    -bool money_use_2_digits
     
    -int(* msg_handler )(const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
     
    -void * parent
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01183.html freetds-1.2.3/doc/reference/a01183.html --- freetds-1.1.6/doc/reference/a01183.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01183.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_authentication Member List
    -
    -
    - -

    This is the complete list of members for tds_authentication, including all inherited members.

    - - - - - -
    free (defined in tds_authentication)tds_authentication
    handle_next (defined in tds_authentication)tds_authentication
    packet (defined in tds_authentication)tds_authentication
    packet_len (defined in tds_authentication)tds_authentication
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01184.html freetds-1.2.3/doc/reference/a01184.html --- freetds-1.1.6/doc/reference/a01184.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01184.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + + + +FreeTDS API: tds_cursor_status Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_cursor_status Struct Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_CURSOR_STATE close
     
    +TDS_CURSOR_STATE cursor_row
     
    +TDS_CURSOR_STATE dealloc
     
    +TDS_CURSOR_STATE declare
     
    +TDS_CURSOR_STATE fetch
     
    +TDS_CURSOR_STATE open
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01185.html freetds-1.2.3/doc/reference/a01185.html --- freetds-1.1.6/doc/reference/a01185.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01185.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_cursor Member List
    +
    +
    + +

    This is the complete list of members for tds_cursor, including all inherited members.

    + + + + + + + + + + + + + + +
    concurrency (defined in tds_cursor)tds_cursor
    cursor_idtds_cursor
    cursor_nametds_cursor
    cursor_rowstds_cursor
    defer_closetds_cursor
    nexttds_cursor
    optionstds_cursor
    querytds_cursor
    ref_counttds_cursor
    res_info (defined in tds_cursor)tds_cursor
    srv_status (defined in tds_cursor)tds_cursor
    statustds_cursor
    typetds_cursor
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01186.html freetds-1.2.3/doc/reference/a01186.html --- freetds-1.1.6/doc/reference/a01186.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01186.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tds_authentication Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_authentication Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -TDSRET(* free )(TDSCONNECTION *conn, struct tds_authentication *auth)
     
    -TDSRET(* handle_next )(TDSSOCKET *tds, struct tds_authentication *auth, size_t len)
     
    -uint8_t * packet
     
    -int packet_len
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01186.map freetds-1.2.3/doc/reference/a01186.map --- freetds-1.1.6/doc/reference/a01186.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01186.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01186.md5 freetds-1.2.3/doc/reference/a01186.md5 --- freetds-1.1.6/doc/reference/a01186.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01186.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b22ab61dd2b8348a31293308c11f16b3 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01186.svg freetds-1.2.3/doc/reference/a01186.svg --- freetds-1.1.6/doc/reference/a01186.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01186.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,310 @@ + + + + + + +tds_cursor + + + +Node1 + + +tds_cursor + + + + + +Node1->Node1 + + + next + + + +Node4 + + +tds_socket + + + + + +Node1->Node4 + + + cur_cursor + + + +Node11 + + +tds_connection + + + + + +Node1->Node11 + + + cursors + + + +Node2 + + +tds_cursor_status + + + + + +Node2->Node1 + + + status + + + +Node3 + + +tds_result_info + + + + + +Node3->Node1 + + + res_info + + + +Node3->Node4 + + + param_info +current_results +res_info +comp_info + + + +Node10 + + +tds_dynamic + + + + + +Node3->Node10 + + + res_info +params + + + +Node4->Node3 + + + attached_to + + + +Node5 + + +tds_login + + + + + +Node5->Node4 + + + login + + + +Node8 + + +tds_dstr + + + + + +Node8->Node5 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node21 + + +tds_column + + + + + +Node8->Node21 + + + column_name +table_name +table_column_name + + + +Node9 + + +tds_packet + + + + + +Node9->Node4 + + + frozen_packets +recv_packet +send_packet + + + +Node9->Node9 + + + next + + + +Node9->Node11 + + + packet_cache + + + +Node10->Node4 + + + cur_dyn + + + +Node10->Node10 + + + next + + + +Node10->Node11 + + + dyns + + + +Node11->Node4 + + + conn + + + +Node17 + + +tdsiconvinfo + + + + + +Node17->Node11 + + + char_convs + + + +Node17->Node21 + + + char_conv + + + +Node21->Node3 + + + columns + + + +Node22 + + +tds_column_funcs + + + + + +Node22->Node21 + + + funcs + + + +Node23 + + +tds_bcpcoldata + + + + + +Node23->Node21 + + + bcp_column_data + + + diff -Nru freetds-1.1.6/doc/reference/a01187.html freetds-1.2.3/doc/reference/a01187.html --- freetds-1.1.6/doc/reference/a01187.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01187.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_packet Member List
    -
    -
    - -

    This is the complete list of members for tds_packet, including all inherited members.

    - - - - - - -
    buf (defined in tds_packet)tds_packet
    capacity (defined in tds_packet)tds_packet
    len (defined in tds_packet)tds_packet
    next (defined in tds_packet)tds_packet
    sid (defined in tds_packet)tds_packet
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01188.html freetds-1.2.3/doc/reference/a01188.html --- freetds-1.1.6/doc/reference/a01188.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01188.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,165 @@ + + + + + + + +FreeTDS API: tds_cursor Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_cursor Struct Reference
    +
    +
    + +

    Holds informations about a cursor. + More...

    + +

    #include <tds.h>

    +
    +Collaboration diagram for tds_cursor:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_INT concurrency
     
    +TDS_INT cursor_id
     cursor id returned by the server after cursor declare
     
    +char * cursor_name
     name of the cursor
     
    TDS_INT cursor_rows
     < number of updatable columns More...
     
    +bool defer_close
     true if cursor was marker to be closed when connection is idle
     
    +struct tds_cursornext
     next in linked list, keep first
     
    +TDS_TINYINT options
     read only|updatable TODO use it
     
    +char * query
     SQL query.
     
    +TDS_INT ref_count
     reference counter so client can retain safely a pointer
     
    +TDSRESULTINFOres_info
     
    +TDS_USMALLINT srv_status
     
    +TDS_CURSOR_STATUS status
     cursor parameter
     
    +TDS_INT type
     row fetched from this cursor
     
    +

    Detailed Description

    +

    Holds informations about a cursor.

    +

    Member Data Documentation

    + +

    ◆ cursor_rows

    + +
    +
    + + + + +
    TDS_INT tds_cursor::cursor_rows
    +
    + +

    < 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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01188.map freetds-1.2.3/doc/reference/a01188.map --- freetds-1.1.6/doc/reference/a01188.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01188.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a01188.md5 freetds-1.2.3/doc/reference/a01188.md5 --- freetds-1.1.6/doc/reference/a01188.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01188.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -f08c25144305d0edd7a20cef715f8c3b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01188.svg freetds-1.2.3/doc/reference/a01188.svg --- freetds-1.1.6/doc/reference/a01188.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01188.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -tds_packet - - -Node1 - -tds_packet - - -Node1->Node1 - - - next - - - diff -Nru freetds-1.1.6/doc/reference/a01189.html freetds-1.2.3/doc/reference/a01189.html --- freetds-1.1.6/doc/reference/a01189.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01189.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_env Member List
    +
    +
    + +

    This is the complete list of members for tds_env, including all inherited members.

    + + + + + +
    block_sizetds_env
    charsettds_env
    databasetds_env
    language (defined in tds_env)tds_env
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01190.html freetds-1.2.3/doc/reference/a01190.html --- freetds-1.1.6/doc/reference/a01190.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01190.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ - - - - - - - -FreeTDS API: tds_packet Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_packet Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_packet:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - -

    -Public Attributes

    -unsigned char buf [1]
     
    -unsigned capacity
     
    -unsigned len
     
    -struct tds_packetnext
     
    -short sid
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01191.html freetds-1.2.3/doc/reference/a01191.html --- freetds-1.1.6/doc/reference/a01191.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01191.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_poll_wakeup Member List
    -
    -
    - -

    This is the complete list of members for tds_poll_wakeup, including all inherited members.

    - - - -
    s_signal (defined in tds_poll_wakeup)tds_poll_wakeup
    s_signaled (defined in tds_poll_wakeup)tds_poll_wakeup
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01192.html freetds-1.2.3/doc/reference/a01192.html --- freetds-1.1.6/doc/reference/a01192.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01192.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_env Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_env Struct Reference
    +
    +
    + +

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

    + +

    #include <tds.h>

    + + + + + + + + + + + + + +

    +Public Attributes

    +int block_size
     packet size (512-65535)
     
    +char * charset
     character set encoding
     
    +char * database
     database name
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01193.html freetds-1.2.3/doc/reference/a01193.html --- freetds-1.1.6/doc/reference/a01193.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01193.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,88 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_dynamic Member List
    +
    + + + + + diff -Nru freetds-1.1.6/doc/reference/a01194.html freetds-1.2.3/doc/reference/a01194.html --- freetds-1.1.6/doc/reference/a01194.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01194.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: tds_poll_wakeup Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_poll_wakeup Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01194.map freetds-1.2.3/doc/reference/a01194.map --- freetds-1.1.6/doc/reference/a01194.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01194.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01194.md5 freetds-1.2.3/doc/reference/a01194.md5 --- freetds-1.1.6/doc/reference/a01194.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01194.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +a9e24ce56d0dc60b7ad65193440874ba \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01194.svg freetds-1.2.3/doc/reference/a01194.svg --- freetds-1.1.6/doc/reference/a01194.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01194.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,294 @@ + + + + + + +tds_dynamic + + + +Node1 + + +tds_dynamic + + + + + +Node1->Node1 + + + next + + + +Node3 + + +tds_socket + + + + + +Node1->Node3 + + + cur_dyn + + + +Node11 + + +tds_connection + + + + + +Node1->Node11 + + + dyns + + + +Node2 + + +tds_result_info + + + + + +Node2->Node1 + + + res_info +params + + + +Node2->Node3 + + + param_info +current_results +res_info +comp_info + + + +Node9 + + +tds_cursor + + + + + +Node2->Node9 + + + res_info + + + +Node3->Node2 + + + attached_to + + + +Node4 + + +tds_login + + + + + +Node4->Node3 + + + login + + + +Node7 + + +tds_dstr + + + + + +Node7->Node4 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node21 + + +tds_column + + + + + +Node7->Node21 + + + column_name +table_name +table_column_name + + + +Node8 + + +tds_packet + + + + + +Node8->Node3 + + + frozen_packets +recv_packet +send_packet + + + +Node8->Node8 + + + next + + + +Node8->Node11 + + + packet_cache + + + +Node9->Node3 + + + cur_cursor + + + +Node9->Node9 + + + next + + + +Node9->Node11 + + + cursors + + + +Node11->Node3 + + + conn + + + +Node17 + + +tdsiconvinfo + + + + + +Node17->Node11 + + + char_convs + + + +Node17->Node21 + + + char_conv + + + +Node21->Node2 + + + columns + + + +Node22 + + +tds_column_funcs + + + + + +Node22->Node21 + + + funcs + + + +Node23 + + +tds_bcpcoldata + + + + + +Node23->Node21 + + + bcp_column_data + + + diff -Nru freetds-1.1.6/doc/reference/a01195.html freetds-1.2.3/doc/reference/a01195.html --- freetds-1.1.6/doc/reference/a01195.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01195.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_connection Member List
    -
    -
    - -

    This is the complete list of members for tds_connection, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    authentication (defined in tds_connection)tds_connection
    capabilities (defined in tds_connection)tds_connection
    char_conv_count (defined in tds_connection)tds_connection
    char_convs (defined in tds_connection)tds_connection
    client_spid (defined in tds_connection)tds_connection
    collation (defined in tds_connection)tds_connection
    cursorstds_connection
    dynstds_connection
    emul_little_endian (defined in tds_connection)tds_connection
    encrypt_single_packet (defined in tds_connection)tds_connection
    envtds_connection
    pending_closetds_connection
    product_name (defined in tds_connection)tds_connection
    product_versiontds_connection
    stds_connection
    server (defined in tds_connection)tds_connection
    spid (defined in tds_connection)tds_connection
    tds71rev1 (defined in tds_connection)tds_connection
    tds72_transaction (defined in tds_connection)tds_connection
    tds_ctx (defined in tds_connection)tds_connection
    tds_version (defined in tds_connection)tds_connection
    tls_dummy (defined in tds_connection)tds_connection
    tls_session (defined in tds_connection)tds_connection
    use_iconv (defined in tds_connection)tds_connection
    wakeup (defined in tds_connection)tds_connection
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01196.html freetds-1.2.3/doc/reference/a01196.html --- freetds-1.1.6/doc/reference/a01196.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01196.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,184 @@ + + + + + + + +FreeTDS API: tds_dynamic Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_dynamic Struct Reference
    +
    +
    + +

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

    + +

    #include <tds.h>

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

    +Public Attributes

    +bool defer_close
     true if dynamic was marker to be closed when connection is idle
     
    TDS_TINYINT emulated
     this dynamic query cannot be prepared so libTDS have to construct a simple query. More...
     
    char id [30]
     id of dynamic. More...
     
    +struct tds_dynamicnext
     next in linked list, keep first
     
    +TDS_INT num_id
     numeric id for mssql7+
     
    TDSPARAMINFOparams
     query parameters. More...
     
    +char * query
     saved query, we need to know original query if prepare is impossible
     
    +TDS_INT ref_count
     reference counter so client can retain safely a pointer
     
    +TDSPARAMINFOres_info
     query results
     
    +

    Detailed Description

    +

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

    +

    Member Data Documentation

    + +

    ◆ emulated

    + +
    +
    + + + + +
    TDS_TINYINT tds_dynamic::emulated
    +
    + +

    this dynamic query cannot be prepared so libTDS have to construct a simple query.

    +

    This can happen for instance is tds protocol doesn't support dynamics or trying to prepare query under Sybase that have BLOBs as parameters.

    + +
    +
    + +

    ◆ id

    + +
    +
    + + + + +
    char tds_dynamic::id[30]
    +
    + +

    id of dynamic.

    +

    Usually this id correspond to server one but if not specified is generated automatically by libTDS

    + +
    +
    + +

    ◆ params

    + +
    +
    + + + + +
    TDSPARAMINFO* tds_dynamic::params
    +
    + +

    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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01196.map freetds-1.2.3/doc/reference/a01196.map --- freetds-1.1.6/doc/reference/a01196.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01196.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01196.md5 freetds-1.2.3/doc/reference/a01196.md5 --- freetds-1.1.6/doc/reference/a01196.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01196.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -2de91ccb858139690106d6224b1091ec \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01196.svg freetds-1.2.3/doc/reference/a01196.svg --- freetds-1.1.6/doc/reference/a01196.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01196.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,252 +0,0 @@ - - - - - - -tds_connection - - -Node1 - -tds_connection - - -Node11 - - -tds_socket - - - - -Node1->Node11 - - - conn - - -Node2 - - -tds_capabilities - - - - -Node2->Node1 - - - capabilities - - -Node3 - - -tds_capability_type - - - - -Node3->Node2 - - - types - - -Node4 - - -tds_poll_wakeup - - - - -Node4->Node1 - - - wakeup - - -Node5 - - -tds_env - - - - -Node5->Node1 - - - env - - -Node6 - - -tds_context - - - - -Node6->Node1 - - - tds_ctx - - -Node7 - - -tds_locale - - - - -Node7->Node6 - - - locale - - -Node8 - - -tds_authentication - - - - -Node8->Node1 - - - authentication - - -Node9 - - -tds_dynamic - - - - -Node9->Node1 - - - dyns - - -Node9->Node9 - - - next - - -Node9->Node11 - - - cur_dyn - - -Node10 - - -tds_result_info - - - - -Node10->Node9 - - - res_info -params - - -Node10->Node11 - - - param_info -current_results -res_info -comp_info - - -Node15 - - -tds_cursor - - - - -Node10->Node15 - - - res_info - - -Node11->Node10 - - - attached_to - - -Node15->Node1 - - - cursors - - -Node15->Node11 - - - cur_cursor - - -Node15->Node15 - - - next - - -Node17 - - -tds_column - - - - -Node17->Node10 - - - columns - - -Node18 - - -tdsiconvinfo - - - - -Node18->Node1 - - - char_convs - - -Node18->Node17 - - - char_conv - - - diff -Nru freetds-1.1.6/doc/reference/a01197.html freetds-1.2.3/doc/reference/a01197.html --- freetds-1.1.6/doc/reference/a01197.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01197.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_multiple Member List
    +
    +
    + +

    This is the complete list of members for tds_multiple, including all inherited members.

    + + + +
    flags (defined in tds_multiple)tds_multiple
    type (defined in tds_multiple)tds_multiple
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01198.html freetds-1.2.3/doc/reference/a01198.html --- freetds-1.1.6/doc/reference/a01198.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01198.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,170 +0,0 @@ - - - - - - - -FreeTDS API: tds_connection Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_connection Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_connection:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDSAUTHENTICATIONauthentication
     
    -TDS_CAPABILITIES capabilities
     
    -int char_conv_count
     
    -TDSICONV ** char_convs
     
    -int client_spid
     
    -TDS_UCHAR collation [5]
     
    -TDSCURSORcursors
     linked list of cursors allocated for this connection contains only cursors allocated on the server
     
    -TDSDYNAMICdyns
     list of dynamic allocated for this connection contains only dynamic allocated on the server
     
    -unsigned int emul_little_endian:1
     
    -unsigned int encrypt_single_packet:1
     
    -TDSENV env
     environment is shared between all sessions
     
    -unsigned int pending_close:1
     true is connection has pending closing (cursors or dynamic)
     
    -char * product_name
     
    -TDS_UINT product_version
     version of product (Sybase/MS and full version)
     
    -TDS_SYS_SOCKET s
     tcp socket, INVALID_SOCKET if not connected
     
    -char * server
     
    -int spid
     
    -unsigned int tds71rev1:1
     
    -TDS_UCHAR tds72_transaction [8]
     
    -const TDSCONTEXTtds_ctx
     
    -TDS_USMALLINT tds_version
     
    -void * tls_dummy
     
    -void * tls_session
     
    -unsigned int use_iconv:1
     
    -TDSPOLLWAKEUP wakeup
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01199.html freetds-1.2.3/doc/reference/a01199.html --- freetds-1.1.6/doc/reference/a01199.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01199.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_socket Member List
    -
    -
    - -

    This is the complete list of members for tds_socket, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    bulk_querytds_socket
    comp_info (defined in tds_socket)tds_socket
    conn (defined in tds_socket)tds_socket
    cur_cursortds_socket
    cur_dyntds_socket
    current_op (defined in tds_socket)tds_socket
    current_resultstds_socket
    env_chg_func (defined in tds_socket)tds_socket
    has_statustds_socket
    in_buftds_socket
    in_canceltds_socket
    in_flagtds_socket
    in_lentds_socket
    in_postds_socket
    in_rowtds_socket
    logintds_socket
    num_comp_info (defined in tds_socket)tds_socket
    option_value (defined in tds_socket)tds_socket
    out_buftds_socket
    out_buf_maxtds_socket
    out_flagtds_socket
    out_postds_socket
    param_info (defined in tds_socket)tds_socket
    parent (defined in tds_socket)tds_socket
    query_timeout (defined in tds_socket)tds_socket
    recv_packet (defined in tds_socket)tds_socket
    res_info (defined in tds_socket)tds_socket
    ret_statustds_socket
    rows_affectedtds_socket
    send_packettds_socket
    state (defined in tds_socket)tds_socket
    wire_mtx (defined in tds_socket)tds_socket
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01200.html freetds-1.2.3/doc/reference/a01200.html --- freetds-1.1.6/doc/reference/a01200.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01200.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tds_multiple Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_multiple Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +unsigned int flags
     
    +TDS_MULTIPLE_TYPE type
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01200.map freetds-1.2.3/doc/reference/a01200.map --- freetds-1.1.6/doc/reference/a01200.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01200.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01200.md5 freetds-1.2.3/doc/reference/a01200.md5 --- freetds-1.1.6/doc/reference/a01200.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01200.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fad230cbb1013d079156f53f212201c0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01200.svg freetds-1.2.3/doc/reference/a01200.svg --- freetds-1.1.6/doc/reference/a01200.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01200.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,340 +0,0 @@ - - - - - - -tds_socket - - -Node1 - -tds_socket - - -Node8 - - -tds_result_info - - - - -Node1->Node8 - - - attached_to - - -Node2 - - -tds_login - - - - -Node2->Node1 - - - login - - -Node3 - - -tds_capabilities - - - - -Node3->Node2 - - - capabilities - - -Node18 - - -tds_connection - - - - -Node3->Node18 - - - capabilities - - -Node4 - - -tds_capability_type - - - - -Node4->Node3 - - - types - - -Node5 - - -tds_dstr - - - - -Node5->Node2 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node9 - - -tds_column - - - - -Node5->Node9 - - - column_name -table_name -table_column_name - - -Node6 - - -tds_packet - - - - -Node6->Node1 - - - recv_packet -send_packet - - -Node6->Node6 - - - next - - -Node7 - - -tds_dynamic - - - - -Node7->Node1 - - - cur_dyn - - -Node7->Node7 - - - next - - -Node7->Node18 - - - dyns - - -Node8->Node1 - - - param_info -current_results -res_info -comp_info - - -Node8->Node7 - - - res_info -params - - -Node16 - - -tds_cursor - - - - -Node8->Node16 - - - res_info - - -Node9->Node8 - - - columns - - -Node10 - - -tdsiconvinfo - - - - -Node10->Node9 - - - char_conv - - -Node10->Node18 - - - char_convs - - -Node16->Node1 - - - cur_cursor - - -Node16->Node16 - - - next - - -Node16->Node18 - - - cursors - - -Node17 - - -tds_cursor_status - - - - -Node17->Node16 - - - status - - -Node18->Node1 - - - conn - - -Node19 - - -tds_poll_wakeup - - - - -Node19->Node18 - - - wakeup - - -Node20 - - -tds_env - - - - -Node20->Node18 - - - env - - -Node21 - - -tds_context - - - - -Node21->Node18 - - - tds_ctx - - -Node22 - - -tds_locale - - - - -Node22->Node21 - - - locale - - -Node23 - - -tds_authentication - - - - -Node23->Node18 - - - authentication - - - diff -Nru freetds-1.1.6/doc/reference/a01201.html freetds-1.2.3/doc/reference/a01201.html --- freetds-1.1.6/doc/reference/a01201.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01201.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,85 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_context Member List
    +
    +
    + +

    This is the complete list of members for tds_context, including all inherited members.

    + + + + + + + +
    err_handler (defined in tds_context)tds_context
    int_handler (defined in tds_context)tds_context
    locale (defined in tds_context)tds_context
    money_use_2_digits (defined in tds_context)tds_context
    msg_handler (defined in tds_context)tds_context
    parent (defined in tds_context)tds_context
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01202.html freetds-1.2.3/doc/reference/a01202.html --- freetds-1.1.6/doc/reference/a01202.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01202.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,307 +0,0 @@ - - - - - - - -FreeTDS API: tds_socket Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_socket Struct Reference
    -
    -
    - -

    Information for a server connection. - More...

    - -

    #include <tds.h>

    -
    -Collaboration diagram for tds_socket:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -bool bulk_query
     true is query sent was a bulk query so we need to switch state to QUERYING
     
    -TDSCOMPUTEINFO ** comp_info
     
    -TDSCONNECTION conn [1]
     
    -TDSCURSORcur_cursor
     cursor in use
     
    -TDSDYNAMICcur_dyn
     dynamic structure in use
     
    -TDS_OPERATION current_op
     
    TDSRESULTINFOcurrent_results
     Current query information. More...
     
    -void(* env_chg_func )(TDSSOCKET *tds, int type, char *oldval, char *newval)
     
    -bool has_status
     true is ret_status is valid
     
    unsigned char * in_buf
     Input buffer. More...
     
    volatile unsigned char in_cancel
     indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean we have to send cancel packet, 2 already sent. More...
     
    -unsigned char in_flag
     input buffer type
     
    -unsigned in_len
     input buffer length
     
    -unsigned in_pos
     current position in in_buf
     
    -bool in_row
     true if we are getting rows
     
    TDSLOGINlogin
     config for login stuff. More...
     
    -TDS_UINT num_comp_info
     
    -int option_value
     
    unsigned char * out_buf
     Output buffer. More...
     
    unsigned int out_buf_max
     Maximum size of packet pointed by out_buf. More...
     
    -unsigned char out_flag
     output buffer type
     
    -unsigned out_pos
     current position in out_buf
     
    -TDSPARAMINFOparam_info
     
    -void * parent
     
    -TDS_INT query_timeout
     
    -TDSPACKETrecv_packet
     
    -TDSRESULTINFOres_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
     
    -tds_mutex wire_mtx
     
    -

    Detailed Description

    -

    Information for a server connection.

    -

    Member Data Documentation

    - -

    § current_results

    - -
    -
    - - - - -
    TDSRESULTINFO* 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.

    - -
    -
    - -

    § in_buf

    - -
    -
    - - - - -
    unsigned char* tds_socket::in_buf
    -
    - -

    Input buffer.

    -

    Points to receiving packet buffer. As input buffer contains just the raw packet actually this pointer is the address of recv_packet->buf.

    - -
    -
    - -

    § in_cancel

    - -
    -
    - - - - -
    volatile unsigned char tds_socket::in_cancel
    -
    - -

    indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean we have to send cancel packet, 2 already sent.

    - -
    -
    - -

    § login

    - -
    -
    - - - - -
    TDSLOGIN* tds_socket::login
    -
    - -

    config for login stuff.

    -

    After login this field is NULL

    - -
    -
    - -

    § out_buf

    - -
    -
    - - - - -
    unsigned char* tds_socket::out_buf
    -
    - -

    Output buffer.

    -

    Points to sending packet buffer. Output buffer can contain additional data before the raw TDS packet so this buffer can point some bytes after send_packet->buf.

    - -
    -
    - -

    § out_buf_max

    - -
    -
    - - - - -
    unsigned int tds_socket::out_buf_max
    -
    - -

    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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01202.map freetds-1.2.3/doc/reference/a01202.map --- freetds-1.1.6/doc/reference/a01202.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01202.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01202.md5 freetds-1.2.3/doc/reference/a01202.md5 --- freetds-1.1.6/doc/reference/a01202.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01202.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +cf9ca384801b7370da5d7845508752d6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01202.svg freetds-1.2.3/doc/reference/a01202.svg --- freetds-1.1.6/doc/reference/a01202.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01202.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_context + + + +Node1 + + +tds_context + + + + + +Node2 + + +tds_locale + + + + + +Node2->Node1 + + + locale + + + diff -Nru freetds-1.1.6/doc/reference/a01203.html freetds-1.2.3/doc/reference/a01203.html --- freetds-1.1.6/doc/reference/a01203.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01203.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_bcpinfo Member List
    -
    -
    - -

    This is the complete list of members for tds_bcpinfo, including all inherited members.

    - - - - - - - - - - -
    bind_count (defined in tds_bcpinfo)tds_bcpinfo
    bindinfo (defined in tds_bcpinfo)tds_bcpinfo
    direction (defined in tds_bcpinfo)tds_bcpinfo
    hint (defined in tds_bcpinfo)tds_bcpinfo
    identity_insert_on (defined in tds_bcpinfo)tds_bcpinfo
    insert_stmt (defined in tds_bcpinfo)tds_bcpinfo
    parent (defined in tds_bcpinfo)tds_bcpinfo
    tablename (defined in tds_bcpinfo)tds_bcpinfo
    xfer_init (defined in tds_bcpinfo)tds_bcpinfo
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01204.html freetds-1.2.3/doc/reference/a01204.html --- freetds-1.1.6/doc/reference/a01204.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01204.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,110 @@ + + + + + + + +FreeTDS API: tds_context Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_context Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_context:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + +

    +Public Attributes

    +int(* err_handler )(const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
     
    +int(* int_handler )(void *)
     
    +TDSLOCALElocale
     
    +bool money_use_2_digits
     
    +int(* msg_handler )(const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
     
    +void * parent
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01204.map freetds-1.2.3/doc/reference/a01204.map --- freetds-1.1.6/doc/reference/a01204.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01204.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01204.md5 freetds-1.2.3/doc/reference/a01204.md5 --- freetds-1.1.6/doc/reference/a01204.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01204.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -578eeea97215ed64f079558dcb46b3b0 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01204.svg freetds-1.2.3/doc/reference/a01204.svg --- freetds-1.1.6/doc/reference/a01204.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01204.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,270 +0,0 @@ - - - - - - -tds_bcpinfo - - -Node1 - -tds_bcpinfo - - -Node2 - - -tds_result_info - - - - -Node2->Node1 - - - bindinfo - - -Node3 - - -tds_socket - - - - -Node2->Node3 - - - param_info -current_results -res_info -comp_info - - -Node9 - - -tds_dynamic - - - - -Node2->Node9 - - - res_info -params - - -Node10 - - -tds_cursor - - - - -Node2->Node10 - - - res_info - - -Node3->Node2 - - - attached_to - - -Node4 - - -tds_login - - - - -Node4->Node3 - - - login - - -Node7 - - -tds_dstr - - - - -Node7->Node1 - - - tablename - - -Node7->Node4 - - - server_realm_name -password -server_name -dump_file -library -crlfile -server_spn -client_host -_name -client_charset -openssl_ciphers -... - - -Node22 - - -tds_column - - - - -Node7->Node22 - - - column_name -table_name -table_column_name - - -Node8 - - -tds_packet - - - - -Node8->Node3 - - - recv_packet -send_packet - - -Node8->Node8 - - - next - - -Node9->Node3 - - - cur_dyn - - -Node9->Node9 - - - next - - -Node12 - - -tds_connection - - - - -Node9->Node12 - - - dyns - - -Node10->Node3 - - - cur_cursor - - -Node10->Node10 - - - next - - -Node10->Node12 - - - cursors - - -Node12->Node3 - - - conn - - -Node18 - - -tdsiconvinfo - - - - -Node18->Node12 - - - char_convs - - -Node18->Node22 - - - char_conv - - -Node22->Node2 - - - columns - - -Node23 - - -tds_column_funcs - - - - -Node23->Node22 - - - funcs - - -Node24 - - -tds_bcpcoldata - - - - -Node24->Node22 - - - bcp_column_data - - - diff -Nru freetds-1.1.6/doc/reference/a01205.html freetds-1.2.3/doc/reference/a01205.html --- freetds-1.1.6/doc/reference/a01205.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01205.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_authentication Member List
    +
    +
    + +

    This is the complete list of members for tds_authentication, including all inherited members.

    + + + + + + +
    free (defined in tds_authentication)tds_authentication
    handle_next (defined in tds_authentication)tds_authentication
    msg_type (defined in tds_authentication)tds_authentication
    packet (defined in tds_authentication)tds_authentication
    packet_len (defined in tds_authentication)tds_authentication
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01206.html freetds-1.2.3/doc/reference/a01206.html --- freetds-1.1.6/doc/reference/a01206.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01206.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,116 +0,0 @@ - - - - - - - -FreeTDS API: tds_bcpinfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_bcpinfo Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_bcpinfo:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -TDS_INT bind_count
     
    -TDSRESULTINFObindinfo
     
    -TDS_INT direction
     
    -const char * hint
     
    -TDS_INT identity_insert_on
     
    -TDS_CHAR * insert_stmt
     
    -void * parent
     
    -DSTR tablename
     
    -TDS_INT xfer_init
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/tds.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01207.html freetds-1.2.3/doc/reference/a01207.html --- freetds-1.1.6/doc/reference/a01207.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01207.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_raw_mutex Member List
    -
    -
    - -

    This is the complete list of members for tds_raw_mutex, including all inherited members.

    - - -
    dummy (defined in tds_raw_mutex)tds_raw_mutex
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01208.html freetds-1.2.3/doc/reference/a01208.html --- freetds-1.1.6/doc/reference/a01208.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01208.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: tds_authentication Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_authentication Struct Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Attributes

    +TDSRET(* free )(TDSCONNECTION *conn, struct tds_authentication *auth)
     
    +TDSRET(* handle_next )(TDSSOCKET *tds, struct tds_authentication *auth, size_t len)
     
    +uint16_t msg_type
     
    +uint8_t * packet
     
    +int packet_len
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01209.html freetds-1.2.3/doc/reference/a01209.html --- freetds-1.1.6/doc/reference/a01209.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01209.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_packet Member List
    +
    +
    + +

    This is the complete list of members for tds_packet, including all inherited members.

    + + + + + + +
    buf (defined in tds_packet)tds_packet
    capacity (defined in tds_packet)tds_packet
    data_lentds_packet
    next (defined in tds_packet)tds_packet
    sid (defined in tds_packet)tds_packet
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01210.html freetds-1.2.3/doc/reference/a01210.html --- freetds-1.1.6/doc/reference/a01210.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01210.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: tds_raw_mutex Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_raw_mutex Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -char dummy [0]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01210.map freetds-1.2.3/doc/reference/a01210.map --- freetds-1.1.6/doc/reference/a01210.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01210.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a01210.md5 freetds-1.2.3/doc/reference/a01210.md5 --- freetds-1.1.6/doc/reference/a01210.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01210.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +cc97756ddbb6e6ae0e544dc147dc6499 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01210.svg freetds-1.2.3/doc/reference/a01210.svg --- freetds-1.1.6/doc/reference/a01210.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01210.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +tds_packet + + + +Node1 + + +tds_packet + + + + + +Node1->Node1 + + + next + + + diff -Nru freetds-1.1.6/doc/reference/a01211.html freetds-1.2.3/doc/reference/a01211.html --- freetds-1.1.6/doc/reference/a01211.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01211.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_condition Member List
    -
    -
    - -

    This is the complete list of members for tds_condition, including all inherited members.

    - - -
    dummy (defined in tds_condition)tds_condition
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01212.html freetds-1.2.3/doc/reference/a01212.html --- freetds-1.1.6/doc/reference/a01212.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01212.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_packet Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_packet Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_packet:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + +

    +Public Attributes

    +unsigned char buf [1]
     
    +unsigned capacity
     
    +unsigned data_len
     data length, this does not account SMP header, only TDS part
     
    +struct tds_packetnext
     
    +uint16_t sid
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01213.html freetds-1.2.3/doc/reference/a01213.html --- freetds-1.1.6/doc/reference/a01213.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01213.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_poll_wakeup Member List
    +
    +
    + +

    This is the complete list of members for tds_poll_wakeup, including all inherited members.

    + + + +
    s_signal (defined in tds_poll_wakeup)tds_poll_wakeup
    s_signaled (defined in tds_poll_wakeup)tds_poll_wakeup
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01214.html freetds-1.2.3/doc/reference/a01214.html --- freetds-1.1.6/doc/reference/a01214.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01214.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: tds_condition Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_condition Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -char dummy [0]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01215.html freetds-1.2.3/doc/reference/a01215.html --- freetds-1.1.6/doc/reference/a01215.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01215.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_thread Member List
    -
    -
    - -

    This is the complete list of members for tds_thread, including all inherited members.

    - - -
    dummy (defined in tds_thread)tds_thread
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01216.html freetds-1.2.3/doc/reference/a01216.html --- freetds-1.1.6/doc/reference/a01216.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01216.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: tds_poll_wakeup Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_poll_wakeup Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01217.html freetds-1.2.3/doc/reference/a01217.html --- freetds-1.1.6/doc/reference/a01217.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01217.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,106 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_connection Member List
    +
    +
    + +

    This is the complete list of members for tds_connection, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    authentication (defined in tds_connection)tds_connection
    capabilities (defined in tds_connection)tds_connection
    char_conv_count (defined in tds_connection)tds_connection
    char_convs (defined in tds_connection)tds_connection
    client_spid (defined in tds_connection)tds_connection
    collation (defined in tds_connection)tds_connection
    cursorstds_connection
    dynstds_connection
    encrypt_single_packet (defined in tds_connection)tds_connection
    envtds_connection
    list_mtx (defined in tds_connection)tds_connection
    num_cached_packets (defined in tds_connection)tds_connection
    packet_cache (defined in tds_connection)tds_connection
    pending_closetds_connection
    product_name (defined in tds_connection)tds_connection
    product_versiontds_connection
    stds_connection
    server (defined in tds_connection)tds_connection
    spid (defined in tds_connection)tds_connection
    tds71rev1 (defined in tds_connection)tds_connection
    tds72_transaction (defined in tds_connection)tds_connection
    tds_ctx (defined in tds_connection)tds_connection
    tds_version (defined in tds_connection)tds_connection
    tls_dummy (defined in tds_connection)tds_connection
    tls_session (defined in tds_connection)tds_connection
    use_iconv (defined in tds_connection)tds_connection
    wakeup (defined in tds_connection)tds_connection
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01218.html freetds-1.2.3/doc/reference/a01218.html --- freetds-1.1.6/doc/reference/a01218.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01218.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: tds_thread Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_thread Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -char dummy [0]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01218.map freetds-1.2.3/doc/reference/a01218.map --- freetds-1.1.6/doc/reference/a01218.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01218.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01218.md5 freetds-1.2.3/doc/reference/a01218.md5 --- freetds-1.1.6/doc/reference/a01218.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01218.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +894ac5dbbb3a07adff5095b70bfc0805 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01218.svg freetds-1.2.3/doc/reference/a01218.svg --- freetds-1.1.6/doc/reference/a01218.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01218.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,322 @@ + + + + + + +tds_connection + + + +Node1 + + +tds_connection + + + + + +Node12 + + +tds_socket + + + + + +Node1->Node12 + + + conn + + + +Node2 + + +tds_capabilities + + + + + +Node2->Node1 + + + capabilities + + + +Node3 + + +tds_capability_type + + + + + +Node3->Node2 + + + types + + + +Node4 + + +tds_poll_wakeup + + + + + +Node4->Node1 + + + wakeup + + + +Node5 + + +tds_env + + + + + +Node5->Node1 + + + env + + + +Node6 + + +tds_context + + + + + +Node6->Node1 + + + tds_ctx + + + +Node7 + + +tds_locale + + + + + +Node7->Node6 + + + locale + + + +Node8 + + +tds_authentication + + + + + +Node8->Node1 + + + authentication + + + +Node9 + + +tds_packet + + + + + +Node9->Node1 + + + packet_cache + + + +Node9->Node9 + + + next + + + +Node9->Node12 + + + frozen_packets +recv_packet +send_packet + + + +Node10 + + +tds_dynamic + + + + + +Node10->Node1 + + + dyns + + + +Node10->Node10 + + + next + + + +Node10->Node12 + + + cur_dyn + + + +Node11 + + +tds_result_info + + + + + +Node11->Node10 + + + res_info +params + + + +Node11->Node12 + + + param_info +current_results +res_info +comp_info + + + +Node15 + + +tds_cursor + + + + + +Node11->Node15 + + + res_info + + + +Node12->Node11 + + + attached_to + + + +Node15->Node1 + + + cursors + + + +Node15->Node12 + + + cur_cursor + + + +Node15->Node15 + + + next + + + +Node17 + + +tds_column + + + + + +Node17->Node11 + + + columns + + + +Node18 + + +tdsiconvinfo + + + + + +Node18->Node1 + + + char_convs + + + +Node18->Node17 + + + char_conv + + + diff -Nru freetds-1.1.6/doc/reference/a01219.html freetds-1.2.3/doc/reference/a01219.html --- freetds-1.1.6/doc/reference/a01219.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01219.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    des_key Member List
    -
    -
    - -

    This is the complete list of members for des_key, including all inherited members.

    - - - - - -
    fperm (defined in des_key)des_key
    iperm (defined in des_key)des_key
    kn (defined in des_key)des_key
    sp (defined in des_key)des_key
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01220.html freetds-1.2.3/doc/reference/a01220.html --- freetds-1.1.6/doc/reference/a01220.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01220.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,179 @@ + + + + + + + +FreeTDS API: tds_connection Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_connection Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_connection:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDSAUTHENTICATIONauthentication
     
    +TDS_CAPABILITIES capabilities
     
    +int char_conv_count
     
    +TDSICONV ** char_convs
     
    +int client_spid
     
    +TDS_UCHAR collation [5]
     
    +TDSCURSORcursors
     linked list of cursors allocated for this connection contains only cursors allocated on the server
     
    +TDSDYNAMICdyns
     list of dynamic allocated for this connection contains only dynamic allocated on the server
     
    +unsigned int encrypt_single_packet:1
     
    +TDSENV env
     environment is shared between all sessions
     
    +tds_mutex list_mtx
     
    +unsigned num_cached_packets
     
    +TDSPACKETpacket_cache
     
    +unsigned int pending_close:1
     true is connection has pending closing (cursors or dynamic)
     
    +char * product_name
     
    +TDS_UINT product_version
     version of product (Sybase/MS and full version)
     
    +TDS_SYS_SOCKET s
     tcp socket, INVALID_SOCKET if not connected
     
    +char * server
     
    +int spid
     
    +unsigned int tds71rev1:1
     
    +TDS_UCHAR tds72_transaction [8]
     
    +const TDSCONTEXTtds_ctx
     
    +TDS_USMALLINT tds_version
     
    +void * tls_dummy
     
    +void * tls_session
     
    +unsigned int use_iconv:1
     
    +TDSPOLLWAKEUP wakeup
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01221.html freetds-1.2.3/doc/reference/a01221.html --- freetds-1.1.6/doc/reference/a01221.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01221.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_socket Member List
    +
    +
    + +

    This is the complete list of members for tds_socket, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    bulk_querytds_socket
    comp_info (defined in tds_socket)tds_socket
    conn (defined in tds_socket)tds_socket
    cur_cursortds_socket
    cur_dyntds_socket
    current_op (defined in tds_socket)tds_socket
    current_resultstds_socket
    env_chg_func (defined in tds_socket)tds_socket
    frozen (defined in tds_socket)tds_socket
    frozen_packetstds_socket
    has_statustds_socket
    in_buftds_socket
    in_canceltds_socket
    in_flagtds_socket
    in_lentds_socket
    in_postds_socket
    in_rowtds_socket
    logintds_socket
    num_comp_info (defined in tds_socket)tds_socket
    option_value (defined in tds_socket)tds_socket
    out_buftds_socket
    out_buf_maxtds_socket
    out_flagtds_socket
    out_postds_socket
    param_info (defined in tds_socket)tds_socket
    parent (defined in tds_socket)tds_socket
    query_timeout (defined in tds_socket)tds_socket
    recv_packet (defined in tds_socket)tds_socket
    res_info (defined in tds_socket)tds_socket
    ret_statustds_socket
    rows_affectedtds_socket
    send_packettds_socket
    state (defined in tds_socket)tds_socket
    wire_mtx (defined in tds_socket)tds_socket
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01222.html freetds-1.2.3/doc/reference/a01222.html --- freetds-1.1.6/doc/reference/a01222.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01222.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: des_key Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    des_key Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -uint8_t fperm [16][16][8]
     
    -uint8_t iperm [16][16][8]
     
    -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
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01222.map freetds-1.2.3/doc/reference/a01222.map --- freetds-1.1.6/doc/reference/a01222.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01222.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01222.md5 freetds-1.2.3/doc/reference/a01222.md5 --- freetds-1.1.6/doc/reference/a01222.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01222.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ef062e506ddc6a4843dbcd6d693c020a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01222.svg freetds-1.2.3/doc/reference/a01222.svg --- freetds-1.1.6/doc/reference/a01222.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01222.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,397 @@ + + + + + + +tds_socket + + + +Node1 + + +tds_socket + + + + + +Node8 + + +tds_result_info + + + + + +Node1->Node8 + + + attached_to + + + +Node2 + + +tds_login + + + + + +Node2->Node1 + + + login + + + +Node3 + + +tds_capabilities + + + + + +Node3->Node2 + + + capabilities + + + +Node18 + + +tds_connection + + + + + +Node3->Node18 + + + capabilities + + + +Node4 + + +tds_capability_type + + + + + +Node4->Node3 + + + types + + + +Node5 + + +tds_dstr + + + + + +Node5->Node2 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node9 + + +tds_column + + + + + +Node5->Node9 + + + column_name +table_name +table_column_name + + + +Node6 + + +tds_packet + + + + + +Node6->Node1 + + + frozen_packets +recv_packet +send_packet + + + +Node6->Node6 + + + next + + + +Node6->Node18 + + + packet_cache + + + +Node7 + + +tds_dynamic + + + + + +Node7->Node1 + + + cur_dyn + + + +Node7->Node7 + + + next + + + +Node7->Node18 + + + dyns + + + +Node8->Node1 + + + param_info +current_results +res_info +comp_info + + + +Node8->Node7 + + + res_info +params + + + +Node16 + + +tds_cursor + + + + + +Node8->Node16 + + + res_info + + + +Node9->Node8 + + + columns + + + +Node10 + + +tdsiconvinfo + + + + + +Node10->Node9 + + + char_conv + + + +Node10->Node18 + + + char_convs + + + +Node16->Node1 + + + cur_cursor + + + +Node16->Node16 + + + next + + + +Node16->Node18 + + + cursors + + + +Node17 + + +tds_cursor_status + + + + + +Node17->Node16 + + + status + + + +Node18->Node1 + + + conn + + + +Node19 + + +tds_poll_wakeup + + + + + +Node19->Node18 + + + wakeup + + + +Node20 + + +tds_env + + + + + +Node20->Node18 + + + env + + + +Node21 + + +tds_context + + + + + +Node21->Node18 + + + tds_ctx + + + +Node22 + + +tds_locale + + + + + +Node22->Node21 + + + locale + + + +Node23 + + +tds_authentication + + + + + +Node23->Node18 + + + authentication + + + diff -Nru freetds-1.1.6/doc/reference/a01223.html freetds-1.2.3/doc/reference/a01223.html --- freetds-1.1.6/doc/reference/a01223.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01223.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    dlist_ring Member List
    -
    -
    - -

    This is the complete list of members for dlist_ring, including all inherited members.

    - - - -
    next (defined in dlist_ring)dlist_ring
    prev (defined in dlist_ring)dlist_ring
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01224.html freetds-1.2.3/doc/reference/a01224.html --- freetds-1.1.6/doc/reference/a01224.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01224.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,318 @@ + + + + + + + +FreeTDS API: tds_socket Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_socket Struct Reference
    +
    +
    + +

    Information for a server connection. + More...

    + +

    #include <tds.h>

    +
    +Collaboration diagram for tds_socket:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +bool bulk_query
     true is query sent was a bulk query so we need to switch state to QUERYING
     
    +TDSCOMPUTEINFO ** comp_info
     
    +TDSCONNECTION conn [1]
     
    +TDSCURSORcur_cursor
     cursor in use
     
    +TDSDYNAMICcur_dyn
     dynamic structure in use
     
    +TDS_OPERATION current_op
     
    TDSRESULTINFOcurrent_results
     Current query information. More...
     
    +void(* env_chg_func )(TDSSOCKET *tds, int type, char *oldval, char *newval)
     
    +unsigned frozen
     
    TDSPACKETfrozen_packets
     list of packets frozen, points to first one. More...
     
    +bool has_status
     true is ret_status is valid
     
    unsigned char * in_buf
     Input buffer. More...
     
    +volatile unsigned char in_cancel
     indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean we have to send cancel packet, 2 already sent.
     
    +unsigned char in_flag
     input buffer type
     
    +unsigned in_len
     input buffer length
     
    +unsigned in_pos
     current position in in_buf
     
    +bool in_row
     true if we are getting rows
     
    TDSLOGINlogin
     config for login stuff. More...
     
    +TDS_UINT num_comp_info
     
    +int option_value
     
    unsigned char * out_buf
     Output buffer. More...
     
    unsigned int out_buf_max
     Maximum size of packet pointed by out_buf. More...
     
    +unsigned char out_flag
     output buffer type
     
    +unsigned out_pos
     current position in out_buf
     
    +TDSPARAMINFOparam_info
     
    +void * parent
     
    +TDS_INT query_timeout
     
    +TDSPACKETrecv_packet
     
    +TDSRESULTINFOres_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
     
    +tds_mutex wire_mtx
     
    +

    Detailed Description

    +

    Information for a server connection.

    +

    Member Data Documentation

    + +

    ◆ current_results

    + +
    +
    + + + + +
    TDSRESULTINFO* 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.

    + +
    +
    + +

    ◆ frozen_packets

    + +
    +
    + + + + +
    TDSPACKET* tds_socket::frozen_packets
    +
    + +

    list of packets frozen, points to first one.

    +

    send_packet is the last packet in the list.

    + +
    +
    + +

    ◆ in_buf

    + +
    +
    + + + + +
    unsigned char* tds_socket::in_buf
    +
    + +

    Input buffer.

    +

    Points to receiving packet buffer. As input buffer contains just the raw packet actually this pointer is the address of recv_packet->buf.

    + +
    +
    + +

    ◆ login

    + +
    +
    + + + + +
    TDSLOGIN* tds_socket::login
    +
    + +

    config for login stuff.

    +

    After login this field is NULL

    + +
    +
    + +

    ◆ out_buf

    + +
    +
    + + + + +
    unsigned char* tds_socket::out_buf
    +
    + +

    Output buffer.

    +

    Points to sending packet buffer. Output buffer can contain additional data before the raw TDS packet so this buffer can point some bytes after send_packet->buf. Specifically this will point to send_packet->buf + send_packet->data_start.

    + +
    +
    + +

    ◆ out_buf_max

    + +
    +
    + + + + +
    unsigned int tds_socket::out_buf_max
    +
    + +

    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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01224.map freetds-1.2.3/doc/reference/a01224.map --- freetds-1.1.6/doc/reference/a01224.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01224.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a01224.md5 freetds-1.2.3/doc/reference/a01224.md5 --- freetds-1.1.6/doc/reference/a01224.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01224.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -259a95f313e0f8334f323b33d1fe04f4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01224.svg freetds-1.2.3/doc/reference/a01224.svg --- freetds-1.1.6/doc/reference/a01224.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01224.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - - -dlist_ring - - -Node1 - -dlist_ring - - -Node1->Node1 - - - prev -next - - - diff -Nru freetds-1.1.6/doc/reference/a01225.html freetds-1.2.3/doc/reference/a01225.html --- freetds-1.1.6/doc/reference/a01225.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01225.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_freeze Member List
    +
    +
    + +

    This is the complete list of members for tds_freeze, including all inherited members.

    + + + + + +
    pkttds_freeze
    pkt_postds_freeze
    size_lentds_freeze
    tdstds_freeze
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01226.html freetds-1.2.3/doc/reference/a01226.html --- freetds-1.1.6/doc/reference/a01226.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01226.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: dlist_ring Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    dlist_ring Struct Reference
    -
    -
    -
    -Collaboration diagram for dlist_ring:
    -
    -
    -
    -
    [legend]
    - - - - - - -

    -Public Attributes

    -struct dlist_ringnext
     
    -struct dlist_ringprev
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01226.map freetds-1.2.3/doc/reference/a01226.map --- freetds-1.1.6/doc/reference/a01226.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01226.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01226.md5 freetds-1.2.3/doc/reference/a01226.md5 --- freetds-1.1.6/doc/reference/a01226.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01226.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c971438f9427e02e7a9e94749330f3de \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01226.svg freetds-1.2.3/doc/reference/a01226.svg --- freetds-1.1.6/doc/reference/a01226.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01226.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,356 @@ + + + + + + +tds_freeze + + + +Node1 + + +tds_freeze + + + + + +Node2 + + +tds_socket + + + + + +Node2->Node1 + + + tds + + + +Node9 + + +tds_result_info + + + + + +Node2->Node9 + + + attached_to + + + +Node3 + + +tds_login + + + + + +Node3->Node2 + + + login + + + +Node4 + + +tds_capabilities + + + + + +Node4->Node3 + + + capabilities + + + +Node19 + + +tds_connection + + + + + +Node4->Node19 + + + capabilities + + + +Node6 + + +tds_dstr + + + + + +Node6->Node3 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node7 + + +tds_packet + + + + + +Node7->Node1 + + + pkt + + + +Node7->Node2 + + + frozen_packets +recv_packet +send_packet + + + +Node7->Node7 + + + next + + + +Node7->Node19 + + + packet_cache + + + +Node8 + + +tds_dynamic + + + + + +Node8->Node2 + + + cur_dyn + + + +Node8->Node8 + + + next + + + +Node8->Node19 + + + dyns + + + +Node9->Node2 + + + param_info +current_results +res_info +comp_info + + + +Node9->Node8 + + + res_info +params + + + +Node17 + + +tds_cursor + + + + + +Node9->Node17 + + + res_info + + + +Node17->Node2 + + + cur_cursor + + + +Node17->Node17 + + + next + + + +Node17->Node19 + + + cursors + + + +Node18 + + +tds_cursor_status + + + + + +Node18->Node17 + + + status + + + +Node19->Node2 + + + conn + + + +Node20 + + +tds_poll_wakeup + + + + + +Node20->Node19 + + + wakeup + + + +Node21 + + +tds_env + + + + + +Node21->Node19 + + + env + + + +Node22 + + +tds_context + + + + + +Node22->Node19 + + + tds_ctx + + + +Node24 + + +tds_authentication + + + + + +Node24->Node19 + + + authentication + + + +Node11 + + +tdsiconvinfo + + + + + +Node11->Node19 + + + char_convs + + + diff -Nru freetds-1.1.6/doc/reference/a01227.html freetds-1.2.3/doc/reference/a01227.html --- freetds-1.1.6/doc/reference/a01227.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01227.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DLIST_LIST_TYPE Member List
    -
    -
    - -

    This is the complete list of members for DLIST_LIST_TYPE, including all inherited members.

    - - -
    ring (defined in DLIST_LIST_TYPE)DLIST_LIST_TYPE
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01228.html freetds-1.2.3/doc/reference/a01228.html --- freetds-1.1.6/doc/reference/a01228.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01228.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,108 @@ + + + + + + + +FreeTDS API: tds_freeze Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_freeze Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_freeze:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + +

    +Public Attributes

    +TDSPACKETpkt
     first packet frozen
     
    +unsigned pkt_pos
     position in pkt
     
    +unsigned size_len
     length size (0, 1, 2 or 4)
     
    +TDSSOCKETtds
     which socket we refer to
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01228.map freetds-1.2.3/doc/reference/a01228.map --- freetds-1.1.6/doc/reference/a01228.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01228.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01228.md5 freetds-1.2.3/doc/reference/a01228.md5 --- freetds-1.1.6/doc/reference/a01228.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01228.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -74f7aa153f7fb547c8e644c6952705bd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01228.svg freetds-1.2.3/doc/reference/a01228.svg --- freetds-1.1.6/doc/reference/a01228.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01228.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ - - - - - - -DLIST_LIST_TYPE - - -Node1 - -DLIST_LIST_TYPE - - -Node2 - - -dlist_ring - - - - -Node2->Node1 - - - ring - - -Node2->Node2 - - - prev -next - - - diff -Nru freetds-1.1.6/doc/reference/a01229.html freetds-1.2.3/doc/reference/a01229.html --- freetds-1.1.6/doc/reference/a01229.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01229.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,88 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_bcpinfo Member List
    +
    +
    + +

    This is the complete list of members for tds_bcpinfo, including all inherited members.

    + + + + + + + + + + +
    bind_count (defined in tds_bcpinfo)tds_bcpinfo
    bindinfo (defined in tds_bcpinfo)tds_bcpinfo
    direction (defined in tds_bcpinfo)tds_bcpinfo
    hint (defined in tds_bcpinfo)tds_bcpinfo
    identity_insert_on (defined in tds_bcpinfo)tds_bcpinfo
    insert_stmt (defined in tds_bcpinfo)tds_bcpinfo
    parent (defined in tds_bcpinfo)tds_bcpinfo
    tablename (defined in tds_bcpinfo)tds_bcpinfo
    xfer_init (defined in tds_bcpinfo)tds_bcpinfo
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01230.html freetds-1.2.3/doc/reference/a01230.html --- freetds-1.1.6/doc/reference/a01230.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01230.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: DLIST_LIST_TYPE Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DLIST_LIST_TYPE Struct Reference
    -
    -
    -
    -Collaboration diagram for DLIST_LIST_TYPE:
    -
    -
    -
    -
    [legend]
    - - - - -

    -Public Attributes

    -dlist_ring ring
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01230.map freetds-1.2.3/doc/reference/a01230.map --- freetds-1.1.6/doc/reference/a01230.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01230.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01230.md5 freetds-1.2.3/doc/reference/a01230.md5 --- freetds-1.1.6/doc/reference/a01230.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01230.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b61654aaee753ddb4f97ecb62820648c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01230.svg freetds-1.2.3/doc/reference/a01230.svg --- freetds-1.1.6/doc/reference/a01230.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01230.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,317 @@ + + + + + + +tds_bcpinfo + + + +Node1 + + +tds_bcpinfo + + + + + +Node2 + + +tds_result_info + + + + + +Node2->Node1 + + + bindinfo + + + +Node3 + + +tds_socket + + + + + +Node2->Node3 + + + param_info +current_results +res_info +comp_info + + + +Node9 + + +tds_dynamic + + + + + +Node2->Node9 + + + res_info +params + + + +Node10 + + +tds_cursor + + + + + +Node2->Node10 + + + res_info + + + +Node3->Node2 + + + attached_to + + + +Node4 + + +tds_login + + + + + +Node4->Node3 + + + login + + + +Node7 + + +tds_dstr + + + + + +Node7->Node1 + + + tablename + + + +Node7->Node4 + + + server_realm_name +password +server_name +dump_file +library +crlfile +server_spn +client_host +_name +client_charset +openssl_ciphers +... + + + +Node22 + + +tds_column + + + + + +Node7->Node22 + + + column_name +table_name +table_column_name + + + +Node8 + + +tds_packet + + + + + +Node8->Node3 + + + frozen_packets +recv_packet +send_packet + + + +Node8->Node8 + + + next + + + +Node12 + + +tds_connection + + + + + +Node8->Node12 + + + packet_cache + + + +Node9->Node3 + + + cur_dyn + + + +Node9->Node9 + + + next + + + +Node9->Node12 + + + dyns + + + +Node10->Node3 + + + cur_cursor + + + +Node10->Node10 + + + next + + + +Node10->Node12 + + + cursors + + + +Node12->Node3 + + + conn + + + +Node18 + + +tdsiconvinfo + + + + + +Node18->Node12 + + + char_convs + + + +Node18->Node22 + + + char_conv + + + +Node22->Node2 + + + columns + + + +Node23 + + +tds_column_funcs + + + + + +Node23->Node22 + + + funcs + + + +Node24 + + +tds_bcpcoldata + + + + + +Node24->Node22 + + + bcp_column_data + + + diff -Nru freetds-1.1.6/doc/reference/a01231.html freetds-1.2.3/doc/reference/a01231.html --- freetds-1.1.6/doc/reference/a01231.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01231.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    MD4Context Member List
    -
    -
    - -

    This is the complete list of members for MD4Context, including all inherited members.

    - - - - -
    buf (defined in MD4Context)MD4Context
    bytes (defined in MD4Context)MD4Context
    in (defined in MD4Context)MD4Context
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01232.html freetds-1.2.3/doc/reference/a01232.html --- freetds-1.1.6/doc/reference/a01232.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01232.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,119 @@ + + + + + + + +FreeTDS API: tds_bcpinfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_bcpinfo Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_bcpinfo:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +TDS_INT bind_count
     
    +TDSRESULTINFObindinfo
     
    +TDS_INT direction
     
    +const char * hint
     
    +TDS_INT identity_insert_on
     
    +TDS_CHAR * insert_stmt
     
    +void * parent
     
    +DSTR tablename
     
    +TDS_INT xfer_init
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/tds.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01233.html freetds-1.2.3/doc/reference/a01233.html --- freetds-1.1.6/doc/reference/a01233.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01233.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_raw_mutex Member List
    +
    +
    + +

    This is the complete list of members for tds_raw_mutex, including all inherited members.

    + + +
    dummy (defined in tds_raw_mutex)tds_raw_mutex
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01234.html freetds-1.2.3/doc/reference/a01234.html --- freetds-1.1.6/doc/reference/a01234.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01234.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: MD4Context Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    MD4Context Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -uint32_t buf [4]
     
    -uint64_t bytes
     
    -uint32_t in [16]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/utils/md4.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01235.html freetds-1.2.3/doc/reference/a01235.html --- freetds-1.1.6/doc/reference/a01235.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01235.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    MD5Context Member List
    -
    -
    - -

    This is the complete list of members for MD5Context, including all inherited members.

    - - - - -
    buf (defined in MD5Context)MD5Context
    bytes (defined in MD5Context)MD5Context
    in (defined in MD5Context)MD5Context
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01236.html freetds-1.2.3/doc/reference/a01236.html --- freetds-1.1.6/doc/reference/a01236.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01236.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: tds_raw_mutex Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_raw_mutex Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +char dummy [0]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01237.html freetds-1.2.3/doc/reference/a01237.html --- freetds-1.1.6/doc/reference/a01237.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01237.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_condition Member List
    +
    +
    + +

    This is the complete list of members for tds_condition, including all inherited members.

    + + +
    dummy (defined in tds_condition)tds_condition
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01238.html freetds-1.2.3/doc/reference/a01238.html --- freetds-1.1.6/doc/reference/a01238.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01238.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: MD5Context Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    MD5Context Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -uint32_t buf [4]
     
    -uint64_t bytes
     
    -uint32_t in [16]
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/freetds/utils/md5.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01239.html freetds-1.2.3/doc/reference/a01239.html --- freetds-1.1.6/doc/reference/a01239.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01239.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_dstr Member List
    -
    -
    - -

    This is the complete list of members for tds_dstr, including all inherited members.

    - - - -
    dstr_s (defined in tds_dstr)tds_dstr
    dstr_size (defined in tds_dstr)tds_dstr
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01240.html freetds-1.2.3/doc/reference/a01240.html --- freetds-1.1.6/doc/reference/a01240.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01240.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: tds_condition Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_condition Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +char dummy [0]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01241.html freetds-1.2.3/doc/reference/a01241.html --- freetds-1.1.6/doc/reference/a01241.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01241.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_thread Member List
    +
    +
    + +

    This is the complete list of members for tds_thread, including all inherited members.

    + + +
    dummy (defined in tds_thread)tds_thread
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01242.html freetds-1.2.3/doc/reference/a01242.html --- freetds-1.1.6/doc/reference/a01242.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01242.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ - - - - - - - -FreeTDS API: tds_dstr Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    - -
    - -

    Structure to hold a string. - More...

    - -

    #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: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01243.html freetds-1.2.3/doc/reference/a01243.html --- freetds-1.1.6/doc/reference/a01243.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01243.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tagSS_TIME2_STRUCT Member List
    -
    -
    - -

    This is the complete list of members for tagSS_TIME2_STRUCT, including all inherited members.

    - - - - - -
    fraction (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    hour (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    minute (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    second (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01244.html freetds-1.2.3/doc/reference/a01244.html --- freetds-1.1.6/doc/reference/a01244.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01244.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: tds_thread Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_thread Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +char dummy [0]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01245.html freetds-1.2.3/doc/reference/a01245.html --- freetds-1.1.6/doc/reference/a01245.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01245.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    des_key Member List
    +
    +
    + +

    This is the complete list of members for des_key, including all inherited members.

    + + + + + +
    fperm (defined in des_key)des_key
    iperm (defined in des_key)des_key
    kn (defined in des_key)des_key
    sp (defined in des_key)des_key
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01246.html freetds-1.2.3/doc/reference/a01246.html --- freetds-1.1.6/doc/reference/a01246.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01246.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - - - -FreeTDS API: tagSS_TIME2_STRUCT Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tagSS_TIME2_STRUCT Struct Reference
    -
    -
    - - - - - - - - - - -

    -Public Attributes

    -SQLUINTEGER fraction
     
    -SQLUSMALLINT hour
     
    -SQLUSMALLINT minute
     
    -SQLUSMALLINT second
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01247.html freetds-1.2.3/doc/reference/a01247.html --- freetds-1.1.6/doc/reference/a01247.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01247.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tagSS_TIMESTAMPOFFSET_STRUCT Member List
    -
    - - - - - diff -Nru freetds-1.1.6/doc/reference/a01248.html freetds-1.2.3/doc/reference/a01248.html --- freetds-1.1.6/doc/reference/a01248.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01248.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: des_key Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    des_key Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    +uint8_t fperm [16][16][8]
     
    +uint8_t iperm [16][16][8]
     
    +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
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01249.html freetds-1.2.3/doc/reference/a01249.html --- freetds-1.1.6/doc/reference/a01249.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01249.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dlist_ring Member List
    +
    +
    + +

    This is the complete list of members for dlist_ring, including all inherited members.

    + + + +
    next (defined in dlist_ring)dlist_ring
    prev (defined in dlist_ring)dlist_ring
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01250.html freetds-1.2.3/doc/reference/a01250.html --- freetds-1.1.6/doc/reference/a01250.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01250.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: tagSS_TIMESTAMPOFFSET_STRUCT Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tagSS_TIMESTAMPOFFSET_STRUCT Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -SQLUSMALLINT day
     
    -SQLUINTEGER fraction
     
    -SQLUSMALLINT hour
     
    -SQLUSMALLINT minute
     
    -SQLUSMALLINT month
     
    -SQLUSMALLINT second
     
    -SQLSMALLINT timezone_hour
     
    -SQLSMALLINT timezone_minute
     
    -SQLSMALLINT year
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01250.map freetds-1.2.3/doc/reference/a01250.map --- freetds-1.1.6/doc/reference/a01250.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01250.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a01250.md5 freetds-1.2.3/doc/reference/a01250.md5 --- freetds-1.1.6/doc/reference/a01250.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01250.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +09e9f31ed4952b92e481d41211cea25f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01250.svg freetds-1.2.3/doc/reference/a01250.svg --- freetds-1.1.6/doc/reference/a01250.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01250.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + +dlist_ring + + + +Node1 + + +dlist_ring + + + + + +Node1->Node1 + + + prev +next + + + diff -Nru freetds-1.1.6/doc/reference/a01251.html freetds-1.2.3/doc/reference/a01251.html --- freetds-1.1.6/doc/reference/a01251.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01251.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    pollfd Member List
    -
    -
    - -

    This is the complete list of members for pollfd, including all inherited members.

    - - - - -
    events (defined in pollfd)pollfd
    fd (defined in pollfd)pollfd
    revents (defined in pollfd)pollfd
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01252.html freetds-1.2.3/doc/reference/a01252.html --- freetds-1.1.6/doc/reference/a01252.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01252.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: dlist_ring Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dlist_ring Struct Reference
    +
    +
    +
    +Collaboration diagram for dlist_ring:
    +
    +
    +
    +
    [legend]
    + + + + + + +

    +Public Attributes

    +struct dlist_ringnext
     
    +struct dlist_ringprev
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01253.html freetds-1.2.3/doc/reference/a01253.html --- freetds-1.1.6/doc/reference/a01253.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01253.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DLIST_LIST_TYPE Member List
    +
    +
    + +

    This is the complete list of members for DLIST_LIST_TYPE, including all inherited members.

    + + +
    ring (defined in DLIST_LIST_TYPE)DLIST_LIST_TYPE
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01254.html freetds-1.2.3/doc/reference/a01254.html --- freetds-1.1.6/doc/reference/a01254.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01254.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: pollfd Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    pollfd Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -short events
     
    -int fd
     
    -short revents
     
    -
    The documentation for this struct was generated from the following file:
      -
    • include/replacements/poll.h
    • -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01254.map freetds-1.2.3/doc/reference/a01254.map --- freetds-1.1.6/doc/reference/a01254.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01254.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01254.md5 freetds-1.2.3/doc/reference/a01254.md5 --- freetds-1.1.6/doc/reference/a01254.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01254.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +43cd6628f9d260e8a0da960bae6d6afb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01254.svg freetds-1.2.3/doc/reference/a01254.svg --- freetds-1.1.6/doc/reference/a01254.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01254.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,46 @@ + + + + + + +DLIST_LIST_TYPE + + + +Node1 + + +DLIST_LIST_TYPE + + + + + +Node2 + + +dlist_ring + + + + + +Node2->Node1 + + + ring + + + +Node2->Node2 + + + prev +next + + + diff -Nru freetds-1.1.6/doc/reference/a01255.html freetds-1.2.3/doc/reference/a01255.html --- freetds-1.1.6/doc/reference/a01255.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01255.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_addrinfo Member List
    -
    -
    - -

    This is the complete list of members for tds_addrinfo, including all inherited members.

    - - - - - - - - - -
    ai_addr (defined in tds_addrinfo)tds_addrinfo
    ai_addrlen (defined in tds_addrinfo)tds_addrinfo
    ai_canonname (defined in tds_addrinfo)tds_addrinfo
    ai_family (defined in tds_addrinfo)tds_addrinfo
    ai_flags (defined in tds_addrinfo)tds_addrinfo
    ai_next (defined in tds_addrinfo)tds_addrinfo
    ai_protocol (defined in tds_addrinfo)tds_addrinfo
    ai_socktype (defined in tds_addrinfo)tds_addrinfo
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01256.html freetds-1.2.3/doc/reference/a01256.html --- freetds-1.1.6/doc/reference/a01256.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01256.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: DLIST_LIST_TYPE Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DLIST_LIST_TYPE Struct Reference
    +
    +
    +
    +Collaboration diagram for DLIST_LIST_TYPE:
    +
    +
    +
    +
    [legend]
    + + + + +

    +Public Attributes

    +dlist_ring ring
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01256.map freetds-1.2.3/doc/reference/a01256.map --- freetds-1.1.6/doc/reference/a01256.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01256.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a01256.md5 freetds-1.2.3/doc/reference/a01256.md5 --- freetds-1.1.6/doc/reference/a01256.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01256.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c83e5e98454109f513e30d6a9e151a2c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01256.svg freetds-1.2.3/doc/reference/a01256.svg --- freetds-1.1.6/doc/reference/a01256.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01256.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -tds_addrinfo - - -Node1 - -tds_addrinfo - - -Node1->Node1 - - - ai_next - - - diff -Nru freetds-1.1.6/doc/reference/a01257.html freetds-1.2.3/doc/reference/a01257.html --- freetds-1.1.6/doc/reference/a01257.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01257.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    MD4Context Member List
    +
    +
    + +

    This is the complete list of members for MD4Context, including all inherited members.

    + + + + +
    buf (defined in MD4Context)MD4Context
    bytes (defined in MD4Context)MD4Context
    in (defined in MD4Context)MD4Context
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01258.html freetds-1.2.3/doc/reference/a01258.html --- freetds-1.1.6/doc/reference/a01258.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01258.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ - - - - - - - -FreeTDS API: tds_addrinfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_addrinfo Struct Reference
    -
    -
    -
    -Collaboration diagram for tds_addrinfo:
    -
    -
    -
    -
    [legend]
    - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -struct sockaddr * ai_addr
     
    -size_t ai_addrlen
     
    -char * ai_canonname
     
    -int ai_family
     
    -int ai_flags
     
    -struct tds_addrinfoai_next
     
    -int ai_protocol
     
    -int ai_socktype
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01259.html freetds-1.2.3/doc/reference/a01259.html --- freetds-1.1.6/doc/reference/a01259.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01259.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBVARYCHAR Member List
    -
    -
    - -

    This is the complete list of members for DBVARYCHAR, including all inherited members.

    - - - -
    len (defined in DBVARYCHAR)DBVARYCHAR
    str (defined in DBVARYCHAR)DBVARYCHAR
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01260.html freetds-1.2.3/doc/reference/a01260.html --- freetds-1.1.6/doc/reference/a01260.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01260.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: MD4Context Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    MD4Context Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +uint32_t buf [4]
     
    +uint64_t bytes
     
    +uint32_t in [16]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/utils/md4.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01261.html freetds-1.2.3/doc/reference/a01261.html --- freetds-1.1.6/doc/reference/a01261.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01261.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    MD5Context Member List
    +
    +
    + +

    This is the complete list of members for MD5Context, including all inherited members.

    + + + + +
    buf (defined in MD5Context)MD5Context
    bytes (defined in MD5Context)MD5Context
    in (defined in MD5Context)MD5Context
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01262.html freetds-1.2.3/doc/reference/a01262.html --- freetds-1.1.6/doc/reference/a01262.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01262.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: DBVARYCHAR Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBVARYCHAR Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -DBSMALLINT len
     
    -char str [256]
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01263.html freetds-1.2.3/doc/reference/a01263.html --- freetds-1.1.6/doc/reference/a01263.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01263.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBVARYBIN Member List
    -
    -
    - -

    This is the complete list of members for DBVARYBIN, including all inherited members.

    - - - -
    array (defined in DBVARYBIN)DBVARYBIN
    len (defined in DBVARYBIN)DBVARYBIN
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01264.html freetds-1.2.3/doc/reference/a01264.html --- freetds-1.1.6/doc/reference/a01264.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01264.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: MD5Context Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    MD5Context Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +uint32_t buf [4]
     
    +uint64_t bytes
     
    +uint32_t in [16]
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/freetds/utils/md5.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01265.html freetds-1.2.3/doc/reference/a01265.html --- freetds-1.1.6/doc/reference/a01265.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01265.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_dstr Member List
    +
    +
    + +

    This is the complete list of members for tds_dstr, including all inherited members.

    + + + +
    dstr_s (defined in tds_dstr)tds_dstr
    dstr_size (defined in tds_dstr)tds_dstr
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01266.html freetds-1.2.3/doc/reference/a01266.html --- freetds-1.1.6/doc/reference/a01266.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01266.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: DBVARYBIN Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBVARYBIN Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -unsigned char array [256]
     
    -DBSMALLINT len
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01267.html freetds-1.2.3/doc/reference/a01267.html --- freetds-1.1.6/doc/reference/a01267.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01267.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBNUMERIC Member List
    -
    -
    - -

    This is the complete list of members for DBNUMERIC, including all inherited members.

    - - - - -
    array (defined in DBNUMERIC)DBNUMERIC
    precision (defined in DBNUMERIC)DBNUMERIC
    scale (defined in DBNUMERIC)DBNUMERIC
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01268.html freetds-1.2.3/doc/reference/a01268.html --- freetds-1.1.6/doc/reference/a01268.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01268.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,100 @@ + + + + + + + +FreeTDS API: tds_dstr Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    + +
    + +

    Structure to hold a string. + More...

    + +

    #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: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01269.html freetds-1.2.3/doc/reference/a01269.html --- freetds-1.1.6/doc/reference/a01269.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01269.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tagSS_TIME2_STRUCT Member List
    +
    +
    + +

    This is the complete list of members for tagSS_TIME2_STRUCT, including all inherited members.

    + + + + + +
    fraction (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    hour (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    minute (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    second (defined in tagSS_TIME2_STRUCT)tagSS_TIME2_STRUCT
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01270.html freetds-1.2.3/doc/reference/a01270.html --- freetds-1.1.6/doc/reference/a01270.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01270.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ - - - - - - - -FreeTDS API: DBNUMERIC Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBNUMERIC Struct Reference
    -
    -
    - - - - - - - - -

    -Public Attributes

    -unsigned char array [33]
     
    -unsigned char precision
     
    -unsigned char scale
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01271.html freetds-1.2.3/doc/reference/a01271.html --- freetds-1.1.6/doc/reference/a01271.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01271.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBMONEY Member List
    -
    -
    - -

    This is the complete list of members for DBMONEY, including all inherited members.

    - - - -
    mnyhigh (defined in DBMONEY)DBMONEY
    mnylow (defined in DBMONEY)DBMONEY
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01272.html freetds-1.2.3/doc/reference/a01272.html --- freetds-1.1.6/doc/reference/a01272.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01272.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,98 @@ + + + + + + + +FreeTDS API: tagSS_TIME2_STRUCT Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tagSS_TIME2_STRUCT Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    +SQLUINTEGER fraction
     
    +SQLUSMALLINT hour
     
    +SQLUSMALLINT minute
     
    +SQLUSMALLINT second
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01273.html freetds-1.2.3/doc/reference/a01273.html --- freetds-1.1.6/doc/reference/a01273.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01273.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,88 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tagSS_TIMESTAMPOFFSET_STRUCT Member List
    +
    + + + + + diff -Nru freetds-1.1.6/doc/reference/a01274.html freetds-1.2.3/doc/reference/a01274.html --- freetds-1.1.6/doc/reference/a01274.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01274.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: DBMONEY Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBMONEY Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -DBINT mnyhigh
     
    -DBUINT mnylow
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01275.html freetds-1.2.3/doc/reference/a01275.html --- freetds-1.1.6/doc/reference/a01275.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01275.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBMONEY4 Member List
    -
    -
    - -

    This is the complete list of members for DBMONEY4, including all inherited members.

    - - -
    mny4 (defined in DBMONEY4)DBMONEY4
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01276.html freetds-1.2.3/doc/reference/a01276.html --- freetds-1.1.6/doc/reference/a01276.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01276.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: tagSS_TIMESTAMPOFFSET_STRUCT Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tagSS_TIMESTAMPOFFSET_STRUCT Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +SQLUSMALLINT day
     
    +SQLUINTEGER fraction
     
    +SQLUSMALLINT hour
     
    +SQLUSMALLINT minute
     
    +SQLUSMALLINT month
     
    +SQLUSMALLINT second
     
    +SQLSMALLINT timezone_hour
     
    +SQLSMALLINT timezone_minute
     
    +SQLSMALLINT year
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01277.html freetds-1.2.3/doc/reference/a01277.html --- freetds-1.1.6/doc/reference/a01277.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01277.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    pollfd Member List
    +
    +
    + +

    This is the complete list of members for pollfd, including all inherited members.

    + + + + +
    events (defined in pollfd)pollfd
    fd (defined in pollfd)pollfd
    revents (defined in pollfd)pollfd
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01278.html freetds-1.2.3/doc/reference/a01278.html --- freetds-1.1.6/doc/reference/a01278.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01278.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - -FreeTDS API: DBMONEY4 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBMONEY4 Struct Reference
    -
    -
    - - - - -

    -Public Attributes

    -DBINT mny4
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01279.html freetds-1.2.3/doc/reference/a01279.html --- freetds-1.1.6/doc/reference/a01279.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01279.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBDATETIME Member List
    -
    -
    - -

    This is the complete list of members for DBDATETIME, including all inherited members.

    - - - -
    dtdays (defined in DBDATETIME)DBDATETIME
    dttime (defined in DBDATETIME)DBDATETIME
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01280.html freetds-1.2.3/doc/reference/a01280.html --- freetds-1.1.6/doc/reference/a01280.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01280.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: pollfd Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    pollfd Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +short events
     
    +int fd
     
    +short revents
     
    +
    The documentation for this struct was generated from the following file:
      +
    • include/replacements/poll.h
    • +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01281.html freetds-1.2.3/doc/reference/a01281.html --- freetds-1.1.6/doc/reference/a01281.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01281.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_addrinfo Member List
    +
    +
    + +

    This is the complete list of members for tds_addrinfo, including all inherited members.

    + + + + + + + + + +
    ai_addr (defined in tds_addrinfo)tds_addrinfo
    ai_addrlen (defined in tds_addrinfo)tds_addrinfo
    ai_canonname (defined in tds_addrinfo)tds_addrinfo
    ai_family (defined in tds_addrinfo)tds_addrinfo
    ai_flags (defined in tds_addrinfo)tds_addrinfo
    ai_next (defined in tds_addrinfo)tds_addrinfo
    ai_protocol (defined in tds_addrinfo)tds_addrinfo
    ai_socktype (defined in tds_addrinfo)tds_addrinfo
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01282.html freetds-1.2.3/doc/reference/a01282.html --- freetds-1.1.6/doc/reference/a01282.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01282.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: DBDATETIME Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBDATETIME Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -DBINT dtdays
     
    -DBINT dttime
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01282.map freetds-1.2.3/doc/reference/a01282.map --- freetds-1.1.6/doc/reference/a01282.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01282.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a01282.md5 freetds-1.2.3/doc/reference/a01282.md5 --- freetds-1.1.6/doc/reference/a01282.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01282.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +cb62d6b1003e55486f39b6edb00a9d22 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01282.svg freetds-1.2.3/doc/reference/a01282.svg --- freetds-1.1.6/doc/reference/a01282.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01282.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +tds_addrinfo + + + +Node1 + + +tds_addrinfo + + + + + +Node1->Node1 + + + ai_next + + + diff -Nru freetds-1.1.6/doc/reference/a01283.html freetds-1.2.3/doc/reference/a01283.html --- freetds-1.1.6/doc/reference/a01283.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01283.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBDATETIME4 Member List
    -
    -
    - -

    This is the complete list of members for DBDATETIME4, including all inherited members.

    - - - -
    days (defined in DBDATETIME4)DBDATETIME4
    minutes (defined in DBDATETIME4)DBDATETIME4
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01284.html freetds-1.2.3/doc/reference/a01284.html --- freetds-1.1.6/doc/reference/a01284.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01284.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,116 @@ + + + + + + + +FreeTDS API: tds_addrinfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_addrinfo Struct Reference
    +
    +
    +
    +Collaboration diagram for tds_addrinfo:
    +
    +
    +
    +
    [legend]
    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +struct sockaddr * ai_addr
     
    +size_t ai_addrlen
     
    +char * ai_canonname
     
    +int ai_family
     
    +int ai_flags
     
    +struct tds_addrinfoai_next
     
    +int ai_protocol
     
    +int ai_socktype
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01285.html freetds-1.2.3/doc/reference/a01285.html --- freetds-1.1.6/doc/reference/a01285.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01285.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBVARYCHAR Member List
    +
    +
    + +

    This is the complete list of members for DBVARYCHAR, including all inherited members.

    + + + +
    len (defined in DBVARYCHAR)DBVARYCHAR
    str (defined in DBVARYCHAR)DBVARYCHAR
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01286.html freetds-1.2.3/doc/reference/a01286.html --- freetds-1.1.6/doc/reference/a01286.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01286.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: DBDATETIME4 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBDATETIME4 Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -DBUSMALLINT days
     
    -DBUSMALLINT minutes
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01287.html freetds-1.2.3/doc/reference/a01287.html --- freetds-1.1.6/doc/reference/a01287.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01287.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBDATETIMEALL Member List
    -
    -
    - -

    This is the complete list of members for DBDATETIMEALL, including all inherited members.

    - - - - - - - - - -
    _res (defined in DBDATETIMEALL)DBDATETIMEALL
    dateDBDATETIMEALL
    has_date (defined in DBDATETIMEALL)DBDATETIMEALL
    has_offset (defined in DBDATETIMEALL)DBDATETIMEALL
    has_time (defined in DBDATETIMEALL)DBDATETIMEALL
    offsetDBDATETIMEALL
    timeDBDATETIMEALL
    time_prec (defined in DBDATETIMEALL)DBDATETIMEALL
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01288.html freetds-1.2.3/doc/reference/a01288.html --- freetds-1.1.6/doc/reference/a01288.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01288.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: DBVARYCHAR Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBVARYCHAR Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +DBSMALLINT len
     
    +char str [256]
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01289.html freetds-1.2.3/doc/reference/a01289.html --- freetds-1.1.6/doc/reference/a01289.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01289.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBVARYBIN Member List
    +
    +
    + +

    This is the complete list of members for DBVARYBIN, including all inherited members.

    + + + +
    array (defined in DBVARYBIN)DBVARYBIN
    len (defined in DBVARYBIN)DBVARYBIN
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01290.html freetds-1.2.3/doc/reference/a01290.html --- freetds-1.1.6/doc/reference/a01290.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01290.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - - - -FreeTDS API: DBDATETIMEALL Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBDATETIMEALL Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBUSMALLINT _res:10
     
    -DBINT date
     date, 0 = 1900-01-01
     
    -DBUSMALLINT has_date:1
     
    -DBUSMALLINT has_offset:1
     
    -DBUSMALLINT has_time:1
     
    -DBSMALLINT offset
     time offset
     
    -DBUBIGINT time
     time, 7 digit precision
     
    -DBUSMALLINT time_prec:3
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01291.html freetds-1.2.3/doc/reference/a01291.html --- freetds-1.1.6/doc/reference/a01291.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01291.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    dbtypeinfo Member List
    -
    -
    - -

    This is the complete list of members for dbtypeinfo, including all inherited members.

    - - - -
    precision (defined in dbtypeinfo)dbtypeinfo
    scale (defined in dbtypeinfo)dbtypeinfo
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01292.html freetds-1.2.3/doc/reference/a01292.html --- freetds-1.1.6/doc/reference/a01292.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01292.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: DBVARYBIN Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBVARYBIN Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +unsigned char array [256]
     
    +DBSMALLINT len
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01293.html freetds-1.2.3/doc/reference/a01293.html --- freetds-1.1.6/doc/reference/a01293.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01293.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBNUMERIC Member List
    +
    +
    + +

    This is the complete list of members for DBNUMERIC, including all inherited members.

    + + + + +
    array (defined in DBNUMERIC)DBNUMERIC
    precision (defined in DBNUMERIC)DBNUMERIC
    scale (defined in DBNUMERIC)DBNUMERIC
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01294.html freetds-1.2.3/doc/reference/a01294.html --- freetds-1.1.6/doc/reference/a01294.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01294.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - -FreeTDS API: dbtypeinfo Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    dbtypeinfo Struct Reference
    -
    -
    - - - - - - -

    -Public Attributes

    -DBINT precision
     
    -DBINT scale
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01295.html freetds-1.2.3/doc/reference/a01295.html --- freetds-1.1.6/doc/reference/a01295.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01295.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    dbstring Member List
    -
    -
    - -

    This is the complete list of members for dbstring, including all inherited members.

    - - - - -
    strnext (defined in dbstring)dbstring
    strtext (defined in dbstring)dbstring
    strtotlen (defined in dbstring)dbstring
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01296.html freetds-1.2.3/doc/reference/a01296.html --- freetds-1.1.6/doc/reference/a01296.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01296.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + + + +FreeTDS API: DBNUMERIC Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBNUMERIC Struct Reference
    +
    +
    + + + + + + + + +

    +Public Attributes

    +unsigned char array [33]
     
    +unsigned char precision
     
    +unsigned char scale
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01296.map freetds-1.2.3/doc/reference/a01296.map --- freetds-1.1.6/doc/reference/a01296.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01296.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ - - diff -Nru freetds-1.1.6/doc/reference/a01296.md5 freetds-1.2.3/doc/reference/a01296.md5 --- freetds-1.1.6/doc/reference/a01296.md5 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01296.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -695888c88474e6717294593adfd7ad3f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01296.svg freetds-1.2.3/doc/reference/a01296.svg --- freetds-1.1.6/doc/reference/a01296.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01296.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - - -dbstring - - -Node1 - -dbstring - - -Node1->Node1 - - - strnext - - - diff -Nru freetds-1.1.6/doc/reference/a01297.html freetds-1.2.3/doc/reference/a01297.html --- freetds-1.1.6/doc/reference/a01297.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01297.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBMONEY Member List
    +
    +
    + +

    This is the complete list of members for DBMONEY, including all inherited members.

    + + + +
    mnyhigh (defined in DBMONEY)DBMONEY
    mnylow (defined in DBMONEY)DBMONEY
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01298.html freetds-1.2.3/doc/reference/a01298.html --- freetds-1.1.6/doc/reference/a01298.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01298.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,98 +0,0 @@ - - - - - - - -FreeTDS API: dbstring Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    dbstring Struct Reference
    -
    -
    -
    -Collaboration diagram for dbstring:
    -
    -
    -
    -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -struct dbstringstrnext
     
    -BYTE * strtext
     
    -DBINT strtotlen
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01299.html freetds-1.2.3/doc/reference/a01299.html --- freetds-1.1.6/doc/reference/a01299.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01299.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBCOL Member List
    -
    -
    - -

    This is the complete list of members for DBCOL, including all inherited members.

    - - - - - - - - - - - - - - - -
    ActualName (defined in DBCOL)DBCOL
    CaseSensitive (defined in DBCOL)DBCOL
    Identity (defined in DBCOL)DBCOL
    MaxLength (defined in DBCOL)DBCOL
    Name (defined in DBCOL)DBCOL
    Null (defined in DBCOL)DBCOL
    Precision (defined in DBCOL)DBCOL
    Scale (defined in DBCOL)DBCOL
    SizeOfStruct (defined in DBCOL)DBCOL
    TableName (defined in DBCOL)DBCOL
    Type (defined in DBCOL)DBCOL
    Updatable (defined in DBCOL)DBCOL
    UserType (defined in DBCOL)DBCOL
    VarLength (defined in DBCOL)DBCOL
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01300.html freetds-1.2.3/doc/reference/a01300.html --- freetds-1.1.6/doc/reference/a01300.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01300.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: DBMONEY Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBMONEY Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +DBINT mnyhigh
     
    +DBUINT mnylow
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01301.html freetds-1.2.3/doc/reference/a01301.html --- freetds-1.1.6/doc/reference/a01301.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01301.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBMONEY4 Member List
    +
    +
    + +

    This is the complete list of members for DBMONEY4, including all inherited members.

    + + +
    mny4 (defined in DBMONEY4)DBMONEY4
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01302.html freetds-1.2.3/doc/reference/a01302.html --- freetds-1.1.6/doc/reference/a01302.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01302.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,0 @@ - - - - - - - -FreeTDS API: DBCOL Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBCOL Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBCHAR ActualName [MAXCOLNAMELEN+2]
     
    -BYTE CaseSensitive
     
    -BOOL Identity
     
    -DBINT MaxLength
     
    -DBCHAR Name [MAXCOLNAMELEN+2]
     
    -BYTE Null
     
    -BYTE Precision
     
    -BYTE Scale
     
    -DBINT SizeOfStruct
     
    -DBCHAR TableName [MAXCOLNAMELEN+2]
     
    -SHORT Type
     
    -BYTE Updatable
     
    -DBINT UserType
     
    -BOOL VarLength
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01303.html freetds-1.2.3/doc/reference/a01303.html --- freetds-1.1.6/doc/reference/a01303.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01303.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    DBCOL2 Member List
    -
    -
    - -

    This is the complete list of members for DBCOL2, including all inherited members.

    - - - - - - - - - - - - - - - - - - -
    ActualName (defined in DBCOL2)DBCOL2
    CaseSensitive (defined in DBCOL2)DBCOL2
    Identity (defined in DBCOL2)DBCOL2
    MaxLength (defined in DBCOL2)DBCOL2
    Name (defined in DBCOL2)DBCOL2
    Null (defined in DBCOL2)DBCOL2
    Precision (defined in DBCOL2)DBCOL2
    Scale (defined in DBCOL2)DBCOL2
    ServerMaxLength (defined in DBCOL2)DBCOL2
    ServerType (defined in DBCOL2)DBCOL2
    ServerTypeDeclaration (defined in DBCOL2)DBCOL2
    SizeOfStruct (defined in DBCOL2)DBCOL2
    TableName (defined in DBCOL2)DBCOL2
    Type (defined in DBCOL2)DBCOL2
    Updatable (defined in DBCOL2)DBCOL2
    UserType (defined in DBCOL2)DBCOL2
    VarLength (defined in DBCOL2)DBCOL2
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01304.html freetds-1.2.3/doc/reference/a01304.html --- freetds-1.1.6/doc/reference/a01304.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01304.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: DBMONEY4 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBMONEY4 Struct Reference
    +
    +
    + + + + +

    +Public Attributes

    +DBINT mny4
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01305.html freetds-1.2.3/doc/reference/a01305.html --- freetds-1.1.6/doc/reference/a01305.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01305.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBDATETIME Member List
    +
    +
    + +

    This is the complete list of members for DBDATETIME, including all inherited members.

    + + + +
    dtdays (defined in DBDATETIME)DBDATETIME
    dttime (defined in DBDATETIME)DBDATETIME
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01306.html freetds-1.2.3/doc/reference/a01306.html --- freetds-1.1.6/doc/reference/a01306.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01306.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ - - - - - - - -FreeTDS API: DBCOL2 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    DBCOL2 Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBCHAR ActualName [MAXCOLNAMELEN+2]
     
    -BYTE CaseSensitive
     
    -BOOL Identity
     
    -DBINT MaxLength
     
    -DBCHAR Name [MAXCOLNAMELEN+2]
     
    -BYTE Null
     
    -BYTE Precision
     
    -BYTE Scale
     
    -DBINT ServerMaxLength
     
    -SHORT ServerType
     
    -DBCHAR ServerTypeDeclaration [256]
     
    -DBINT SizeOfStruct
     
    -DBCHAR TableName [MAXCOLNAMELEN+2]
     
    -SHORT Type
     
    -BYTE Updatable
     
    -DBINT UserType
     
    -BOOL VarLength
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01307.html freetds-1.2.3/doc/reference/a01307.html --- freetds-1.1.6/doc/reference/a01307.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01307.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_microsoft_dbdaterec Member List
    -
    - - - - - diff -Nru freetds-1.1.6/doc/reference/a01308.html freetds-1.2.3/doc/reference/a01308.html --- freetds-1.1.6/doc/reference/a01308.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01308.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: DBDATETIME Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBDATETIME Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +DBINT dtdays
     
    +DBINT dttime
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01309.html freetds-1.2.3/doc/reference/a01309.html --- freetds-1.1.6/doc/reference/a01309.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01309.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBDATETIME4 Member List
    +
    +
    + +

    This is the complete list of members for DBDATETIME4, including all inherited members.

    + + + +
    days (defined in DBDATETIME4)DBDATETIME4
    minutes (defined in DBDATETIME4)DBDATETIME4
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01310.html freetds-1.2.3/doc/reference/a01310.html --- freetds-1.1.6/doc/reference/a01310.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01310.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ - - - - - - - -FreeTDS API: tds_microsoft_dbdaterec Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_microsoft_dbdaterec Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBINT day
     
    -DBINT dayofyear
     
    -DBINT hour
     
    -DBINT millisecond
     
    -DBINT minute
     
    -DBINT month
     
    -DBINT quarter
     
    -DBINT second
     
    -DBINT tzone
     
    -DBINT week
     
    -DBINT weekday
     
    -DBINT year
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01311.html freetds-1.2.3/doc/reference/a01311.html --- freetds-1.1.6/doc/reference/a01311.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01311.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_sybase_dbdaterec Member List
    -
    -
    - -

    This is the complete list of members for tds_sybase_dbdaterec, including all inherited members.

    - - - - - - - - - - - - - -
    datedmonth (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datedweek (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datedyear (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datehour (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    dateminute (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datemonth (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datemsecond (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datesecond (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datetzone (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    dateyear (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    quarter (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    week (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01312.html freetds-1.2.3/doc/reference/a01312.html --- freetds-1.1.6/doc/reference/a01312.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01312.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: DBDATETIME4 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBDATETIME4 Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +DBUSMALLINT days
     
    +DBUSMALLINT minutes
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01313.html freetds-1.2.3/doc/reference/a01313.html --- freetds-1.1.6/doc/reference/a01313.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01313.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBDATETIMEALL Member List
    +
    +
    + +

    This is the complete list of members for DBDATETIMEALL, including all inherited members.

    + + + + + + + + + +
    _res (defined in DBDATETIMEALL)DBDATETIMEALL
    dateDBDATETIMEALL
    has_date (defined in DBDATETIMEALL)DBDATETIMEALL
    has_offset (defined in DBDATETIMEALL)DBDATETIMEALL
    has_time (defined in DBDATETIMEALL)DBDATETIMEALL
    offsetDBDATETIMEALL
    timeDBDATETIMEALL
    time_prec (defined in DBDATETIMEALL)DBDATETIMEALL
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01314.html freetds-1.2.3/doc/reference/a01314.html --- freetds-1.1.6/doc/reference/a01314.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01314.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ - - - - - - - -FreeTDS API: tds_sybase_dbdaterec Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_sybase_dbdaterec Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBINT datedmonth
     
    -DBINT datedweek
     
    -DBINT datedyear
     
    -DBINT datehour
     
    -DBINT dateminute
     
    -DBINT datemonth
     
    -DBINT datemsecond
     
    -DBINT datesecond
     
    -DBINT datetzone
     
    -DBINT dateyear
     
    -DBINT quarter
     
    -DBINT week
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01315.html freetds-1.2.3/doc/reference/a01315.html --- freetds-1.1.6/doc/reference/a01315.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01315.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_microsoft_dbdaterec2 Member List
    -
    - - - - - diff -Nru freetds-1.1.6/doc/reference/a01316.html freetds-1.2.3/doc/reference/a01316.html --- freetds-1.1.6/doc/reference/a01316.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01316.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + + + +FreeTDS API: DBDATETIMEALL Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBDATETIMEALL Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBUSMALLINT _res:10
     
    +DBINT date
     date, 0 = 1900-01-01
     
    +DBUSMALLINT has_date:1
     
    +DBUSMALLINT has_offset:1
     
    +DBUSMALLINT has_time:1
     
    +DBSMALLINT offset
     time offset
     
    +DBUBIGINT time
     time, 7 digit precision
     
    +DBUSMALLINT time_prec:3
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01317.html freetds-1.2.3/doc/reference/a01317.html --- freetds-1.1.6/doc/reference/a01317.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01317.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,81 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dbtypeinfo Member List
    +
    +
    + +

    This is the complete list of members for dbtypeinfo, including all inherited members.

    + + + +
    precision (defined in dbtypeinfo)dbtypeinfo
    scale (defined in dbtypeinfo)dbtypeinfo
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01318.html freetds-1.2.3/doc/reference/a01318.html --- freetds-1.1.6/doc/reference/a01318.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01318.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ - - - - - - - -FreeTDS API: tds_microsoft_dbdaterec2 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_microsoft_dbdaterec2 Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBINT day
     
    -DBINT dayofyear
     
    -DBINT hour
     
    -DBINT minute
     
    -DBINT month
     
    -DBINT nanosecond
     
    -DBINT quarter
     
    -DBINT second
     
    -DBINT tzone
     
    -DBINT week
     
    -DBINT weekday
     
    -DBINT year
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01319.html freetds-1.2.3/doc/reference/a01319.html --- freetds-1.1.6/doc/reference/a01319.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01319.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - - - -FreeTDS API: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    tds_sybase_dbdaterec2 Member List
    -
    -
    - -

    This is the complete list of members for tds_sybase_dbdaterec2, including all inherited members.

    - - - - - - - - - - - - - -
    datedmonth (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datedweek (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datedyear (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datehour (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    dateminute (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datemonth (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datensecond (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datesecond (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datetzone (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    dateyear (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    quarter (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    week (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01320.html freetds-1.2.3/doc/reference/a01320.html --- freetds-1.1.6/doc/reference/a01320.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01320.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: dbtypeinfo Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dbtypeinfo Struct Reference
    +
    +
    + + + + + + +

    +Public Attributes

    +DBINT precision
     
    +DBINT scale
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01321.html freetds-1.2.3/doc/reference/a01321.html --- freetds-1.1.6/doc/reference/a01321.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01321.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    dbstring Member List
    +
    +
    + +

    This is the complete list of members for dbstring, including all inherited members.

    + + + + +
    strnext (defined in dbstring)dbstring
    strtext (defined in dbstring)dbstring
    strtotlen (defined in dbstring)dbstring
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01322.html freetds-1.2.3/doc/reference/a01322.html --- freetds-1.1.6/doc/reference/a01322.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01322.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,119 +0,0 @@ - - - - - - - -FreeTDS API: tds_sybase_dbdaterec2 Struct Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    - -
    -
    tds_sybase_dbdaterec2 Struct Reference
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -DBINT datedmonth
     
    -DBINT datedweek
     
    -DBINT datedyear
     
    -DBINT datehour
     
    -DBINT dateminute
     
    -DBINT datemonth
     
    -DBINT datensecond
     
    -DBINT datesecond
     
    -DBINT datetzone
     
    -DBINT dateyear
     
    -DBINT quarter
     
    -DBINT week
     
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01322.map freetds-1.2.3/doc/reference/a01322.map --- freetds-1.1.6/doc/reference/a01322.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01322.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,3 @@ + + + diff -Nru freetds-1.1.6/doc/reference/a01322.md5 freetds-1.2.3/doc/reference/a01322.md5 --- freetds-1.1.6/doc/reference/a01322.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01322.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +688ff114f16f21ae14d704ec1f1008dc \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01322.svg freetds-1.2.3/doc/reference/a01322.svg --- freetds-1.1.6/doc/reference/a01322.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01322.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + +dbstring + + + +Node1 + + +dbstring + + + + + +Node1->Node1 + + + strnext + + + diff -Nru freetds-1.1.6/doc/reference/a01323.html freetds-1.2.3/doc/reference/a01323.html --- freetds-1.1.6/doc/reference/a01323.html 2019-04-29 09:00:46.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01323.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,190 +0,0 @@ - - - - - - - -FreeTDS API: How to add a new type - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - -
    -
    -
    -
    How to add a new type
    -
    -
    -

    -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.
      -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.
      -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).
      -Cfr commit id 9ed52cb78f725607ac109c8c284ca7c4658d87a9.

      -

      -
    • -
    • -

      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.

      -

      -
    • -
    • -

      parameter. Add type/parameter declaration in tds_get_column_declaration in src/tds/query.c. Also do any necessary step to initialize the parameter to send to server.
      -Cfr commit id 54fdd3233e430c045cf5524ac385770738d9e92c, commit id 88cfea19d91245372779b8893a2d62b42696cd49.

      -

      -
    • -
    • -

      emulated prepared/rpc. If needed handle your type in tds_put_param_as_string in src/tds/query.c.
      -Cfr commit id 017b7bf2fee0f09847e64546d27382d2f2b756f4.

      -

      -
    • -
    -

    -ODBC changes

    -

    ODBC is the most complicated library to add a type to. Usually its data are different from libTDS so you have to add additional code for conversions which are not required by other libraries.

    -

    -CT-Library changes

    -

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

      -
    • -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 binding to dbbindtype
    • -
    • -add support for conversion from/to server
    • -
    • -add printable size
    • -
    • -return correct type string
    • -
    -

    Cfr commit id 99dd126e0eb248dd3079b2a7cf97437fe3bcd163.

    -

    -Applications changes

    -

    datacopy application requires some changes too to support new types so add them to src/apps/datacopy.c.
    -Cfr commit id e59c48ac39c76abb036651f8ec238090eef321c9.

    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01324.html freetds-1.2.3/doc/reference/a01324.html --- freetds-1.1.6/doc/reference/a01324.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01324.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,101 @@ + + + + + + + +FreeTDS API: dbstring Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    dbstring Struct Reference
    +
    +
    +
    +Collaboration diagram for dbstring:
    +
    +
    +
    +
    [legend]
    + + + + + + + + +

    +Public Attributes

    +struct dbstringstrnext
     
    +BYTE * strtext
     
    +DBINT strtotlen
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01325.html freetds-1.2.3/doc/reference/a01325.html --- freetds-1.1.6/doc/reference/a01325.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01325.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,93 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBCOL Member List
    +
    +
    + +

    This is the complete list of members for DBCOL, including all inherited members.

    + + + + + + + + + + + + + + + +
    ActualName (defined in DBCOL)DBCOL
    CaseSensitive (defined in DBCOL)DBCOL
    Identity (defined in DBCOL)DBCOL
    MaxLength (defined in DBCOL)DBCOL
    Name (defined in DBCOL)DBCOL
    Null (defined in DBCOL)DBCOL
    Precision (defined in DBCOL)DBCOL
    Scale (defined in DBCOL)DBCOL
    SizeOfStruct (defined in DBCOL)DBCOL
    TableName (defined in DBCOL)DBCOL
    Type (defined in DBCOL)DBCOL
    Updatable (defined in DBCOL)DBCOL
    UserType (defined in DBCOL)DBCOL
    VarLength (defined in DBCOL)DBCOL
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01328.html freetds-1.2.3/doc/reference/a01328.html --- freetds-1.1.6/doc/reference/a01328.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01328.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,128 @@ + + + + + + + +FreeTDS API: DBCOL Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBCOL Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBCHAR ActualName [MAXCOLNAMELEN+2]
     
    +BYTE CaseSensitive
     
    +BOOL Identity
     
    +DBINT MaxLength
     
    +DBCHAR Name [MAXCOLNAMELEN+2]
     
    +BYTE Null
     
    +BYTE Precision
     
    +BYTE Scale
     
    +DBINT SizeOfStruct
     
    +DBCHAR TableName [MAXCOLNAMELEN+2]
     
    +SHORT Type
     
    +BYTE Updatable
     
    +DBINT UserType
     
    +BOOL VarLength
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01329.html freetds-1.2.3/doc/reference/a01329.html --- freetds-1.1.6/doc/reference/a01329.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01329.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    DBCOL2 Member List
    +
    +
    + +

    This is the complete list of members for DBCOL2, including all inherited members.

    + + + + + + + + + + + + + + + + + + +
    ActualName (defined in DBCOL2)DBCOL2
    CaseSensitive (defined in DBCOL2)DBCOL2
    Identity (defined in DBCOL2)DBCOL2
    MaxLength (defined in DBCOL2)DBCOL2
    Name (defined in DBCOL2)DBCOL2
    Null (defined in DBCOL2)DBCOL2
    Precision (defined in DBCOL2)DBCOL2
    Scale (defined in DBCOL2)DBCOL2
    ServerMaxLength (defined in DBCOL2)DBCOL2
    ServerType (defined in DBCOL2)DBCOL2
    ServerTypeDeclaration (defined in DBCOL2)DBCOL2
    SizeOfStruct (defined in DBCOL2)DBCOL2
    TableName (defined in DBCOL2)DBCOL2
    Type (defined in DBCOL2)DBCOL2
    Updatable (defined in DBCOL2)DBCOL2
    UserType (defined in DBCOL2)DBCOL2
    VarLength (defined in DBCOL2)DBCOL2
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01332.html freetds-1.2.3/doc/reference/a01332.html --- freetds-1.1.6/doc/reference/a01332.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01332.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,137 @@ + + + + + + + +FreeTDS API: DBCOL2 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    DBCOL2 Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBCHAR ActualName [MAXCOLNAMELEN+2]
     
    +BYTE CaseSensitive
     
    +BOOL Identity
     
    +DBINT MaxLength
     
    +DBCHAR Name [MAXCOLNAMELEN+2]
     
    +BYTE Null
     
    +BYTE Precision
     
    +BYTE Scale
     
    +DBINT ServerMaxLength
     
    +SHORT ServerType
     
    +DBCHAR ServerTypeDeclaration [256]
     
    +DBINT SizeOfStruct
     
    +DBCHAR TableName [MAXCOLNAMELEN+2]
     
    +SHORT Type
     
    +BYTE Updatable
     
    +DBINT UserType
     
    +BOOL VarLength
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01333.html freetds-1.2.3/doc/reference/a01333.html --- freetds-1.1.6/doc/reference/a01333.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01333.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_microsoft_dbdaterec Member List
    +
    + + + + + diff -Nru freetds-1.1.6/doc/reference/a01336.html freetds-1.2.3/doc/reference/a01336.html --- freetds-1.1.6/doc/reference/a01336.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01336.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,122 @@ + + + + + + + +FreeTDS API: tds_microsoft_dbdaterec Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_microsoft_dbdaterec Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBINT day
     
    +DBINT dayofyear
     
    +DBINT hour
     
    +DBINT millisecond
     
    +DBINT minute
     
    +DBINT month
     
    +DBINT quarter
     
    +DBINT second
     
    +DBINT tzone
     
    +DBINT week
     
    +DBINT weekday
     
    +DBINT year
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01337.html freetds-1.2.3/doc/reference/a01337.html --- freetds-1.1.6/doc/reference/a01337.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01337.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_sybase_dbdaterec Member List
    +
    +
    + +

    This is the complete list of members for tds_sybase_dbdaterec, including all inherited members.

    + + + + + + + + + + + + + +
    datedmonth (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datedweek (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datedyear (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datehour (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    dateminute (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datemonth (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datemsecond (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datesecond (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    datetzone (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    dateyear (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    quarter (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    week (defined in tds_sybase_dbdaterec)tds_sybase_dbdaterec
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01340.html freetds-1.2.3/doc/reference/a01340.html --- freetds-1.1.6/doc/reference/a01340.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01340.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,122 @@ + + + + + + + +FreeTDS API: tds_sybase_dbdaterec Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_sybase_dbdaterec Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBINT datedmonth
     
    +DBINT datedweek
     
    +DBINT datedyear
     
    +DBINT datehour
     
    +DBINT dateminute
     
    +DBINT datemonth
     
    +DBINT datemsecond
     
    +DBINT datesecond
     
    +DBINT datetzone
     
    +DBINT dateyear
     
    +DBINT quarter
     
    +DBINT week
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01341.html freetds-1.2.3/doc/reference/a01341.html --- freetds-1.1.6/doc/reference/a01341.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01341.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_microsoft_dbdaterec2 Member List
    +
    + + + + + diff -Nru freetds-1.1.6/doc/reference/a01344.html freetds-1.2.3/doc/reference/a01344.html --- freetds-1.1.6/doc/reference/a01344.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01344.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,122 @@ + + + + + + + +FreeTDS API: tds_microsoft_dbdaterec2 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_microsoft_dbdaterec2 Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBINT day
     
    +DBINT dayofyear
     
    +DBINT hour
     
    +DBINT minute
     
    +DBINT month
     
    +DBINT nanosecond
     
    +DBINT quarter
     
    +DBINT second
     
    +DBINT tzone
     
    +DBINT week
     
    +DBINT weekday
     
    +DBINT year
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01345.html freetds-1.2.3/doc/reference/a01345.html --- freetds-1.1.6/doc/reference/a01345.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01345.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + + + +FreeTDS API: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    tds_sybase_dbdaterec2 Member List
    +
    +
    + +

    This is the complete list of members for tds_sybase_dbdaterec2, including all inherited members.

    + + + + + + + + + + + + + +
    datedmonth (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datedweek (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datedyear (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datehour (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    dateminute (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datemonth (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datensecond (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datesecond (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    datetzone (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    dateyear (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    quarter (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    week (defined in tds_sybase_dbdaterec2)tds_sybase_dbdaterec2
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01348.html freetds-1.2.3/doc/reference/a01348.html --- freetds-1.1.6/doc/reference/a01348.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01348.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,122 @@ + + + + + + + +FreeTDS API: tds_sybase_dbdaterec2 Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    tds_sybase_dbdaterec2 Struct Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    +DBINT datedmonth
     
    +DBINT datedweek
     
    +DBINT datedyear
     
    +DBINT datehour
     
    +DBINT dateminute
     
    +DBINT datemonth
     
    +DBINT datensecond
     
    +DBINT datesecond
     
    +DBINT datetzone
     
    +DBINT dateyear
     
    +DBINT quarter
     
    +DBINT week
     
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01349.html freetds-1.2.3/doc/reference/a01349.html --- freetds-1.1.6/doc/reference/a01349.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01349.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,194 @@ + + + + + + + +FreeTDS API: How to add a new type + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    How to add a new type
    +
    +
    +

    +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.
      +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.
      +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).
      +Cfr commit id 9ed52cb78f725607ac109c8c284ca7c4658d87a9.

      +

      +
    • +
    • +

      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.

      +

      +
    • +
    • +

      parameter. Add type/parameter declaration in tds_get_column_declaration in src/tds/query.c. Also do any necessary step to initialize the parameter to send to server.
      +Cfr commit id 54fdd3233e430c045cf5524ac385770738d9e92c, commit id 88cfea19d91245372779b8893a2d62b42696cd49.

      +

      +
    • +
    • +

      emulated prepared/rpc. If needed handle your type in tds_put_param_as_string in src/tds/query.c.
      +Cfr commit id 017b7bf2fee0f09847e64546d27382d2f2b756f4.

      +

      +
    • +
    +

    +ODBC changes

    +

    ODBC is the most complicated library to add a type to. Usually its data are different from libTDS so you have to add additional code for conversions which are not required by other libraries.

    +

    +CT-Library changes

    +

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

      +
    • +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 binding to dbbindtype
    • +
    • +add support for conversion from/to server
    • +
    • +add printable size
    • +
    • +return correct type string
    • +
    +

    Cfr commit id 99dd126e0eb248dd3079b2a7cf97437fe3bcd163.

    +

    +Applications changes

    +

    datacopy application requires some changes too to support new types so add them to src/apps/datacopy.c.
    +Cfr commit id e59c48ac39c76abb036651f8ec238090eef321c9.

    +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map freetds-1.2.3/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map --- freetds-1.1.6/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 freetds-1.2.3/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 --- freetds-1.1.6/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -c8ed0db2f2f5e5cf6a88d8c09d7ca8e7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg freetds-1.2.3/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg --- freetds-1.1.6/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -tds_dynamic_stream_init - - -Node14 - -tds_dynamic_stream_init - - -Node15 - - -tds_dynamic_stream -_write - - - - -Node14->Node15 - - - - -Node16 - - -tds_realloc - - - - -Node15->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map freetds-1.2.3/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map --- freetds-1.1.6/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 freetds-1.2.3/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 --- freetds-1.1.6/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fd0227bafd683c53b2459305200a5b98 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg freetds-1.2.3/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg --- freetds-1.1.6/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_convert_stream - - -Node1 - -tds_convert_stream - - -Node2 - - -read_and_convert - - - - -Node1->Node2 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.map freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.map --- freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.md5 freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.md5 --- freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -27e43a34af16ff1908482a08074f8c31 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.svg freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.svg --- freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_staticout_stream_init - - -Node21 - -tds_staticout_stream_init - - -Node22 - - -tds_staticout_stream -_write - - - - -Node21->Node22 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map --- freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 --- freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e406ef88c29a847c0c7ae3b423809919 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg --- freetds-1.1.6/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_staticout_stream_init - - -Node23 - -tds_staticout_stream_init - - -Node24 - - -read_and_convert - - - - -Node23->Node24 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map freetds-1.2.3/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map --- freetds-1.1.6/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 freetds-1.2.3/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 --- freetds-1.1.6/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e91bf6ea7e95ac2b7b75a2577d6da737 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg freetds-1.2.3/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg --- freetds-1.1.6/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - -tds_dataout_stream_init - - -Node11 - -tds_dataout_stream_init - - -Node12 - - -tds_dataout_stream -_write - - - - -Node11->Node12 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.map freetds-1.2.3/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.map --- freetds-1.1.6/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.md5 freetds-1.2.3/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.md5 --- freetds-1.1.6/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -e11f521fed3cf795cf52dfb59526f27c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.svg freetds-1.2.3/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.svg --- freetds-1.1.6/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_staticin_stream_init - - -Node18 - -tds_staticin_stream_init - - -Node19 - - -tds_staticin_stream_read - - - - -Node18->Node19 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map --- freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 --- freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -16b846f3e0bb3a0d077f6f50a79ffd33 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg --- freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -tds_datain_stream_init - - -Node5 - -tds_datain_stream_init - - -Node6 - - -tds_datain_stream_read - - - - -Node5->Node6 - - - - -Node7 - - -tds_get_n - - - - -Node6->Node7 - - - - -Node8 - - -tds_read_packet - - - - -Node7->Node8 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map --- freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ - - - diff -Nru freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 --- freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -550e55a520547396ac57ba3fa67a2fc8 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg --- freetds-1.1.6/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - - -tds_datain_stream_init - - -Node9 - -tds_datain_stream_init - - -Node10 - - -read_and_convert - - - - -Node9->Node10 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01355.html freetds-1.2.3/doc/reference/a01355.html --- freetds-1.1.6/doc/reference/a01355.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01355.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,503 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/stream.c File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    stream.c File Reference
    -
    -
    - -

    Handle stream of data. -More...

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

    -Functions

    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. More...
     
    TDSRET tds_copy_stream (TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
     Reads and writes from a stream to another. More...
     
    void tds_datain_stream_init (TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
     Initialize a data input stream. More...
     
    -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)
     Initialize a data output stream. More...
     
    -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)
     Initialize a dynamic output stream. More...
     
    -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)
     Initialize an input stream for read from a static allocated buffer. More...
     
    -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)
     Initialize an output stream for write into a static allocated buffer. More...
     
    -static int tds_staticout_stream_write (TDSOUTSTREAM *stream, size_t len)
     Writes data to a static allocated buffer.
     
    -

    Detailed Description

    -

    Handle stream of data.

    -

    Function Documentation

    - -

    § tds_convert_stream()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_convert_stream (TDSSOCKETtds,
    TDSICONVchar_conv,
    TDS_ICONV_DIRECTION direction,
    TDSINSTREAMistream,
    TDSOUTSTREAMostream 
    )
    -
    - -

    Reads and writes from a stream converting characters.

    -

    Convert a stream from istream to ostream using a specific conversion.

    -
    Parameters
    - - - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    char_convconversion structure
    directionspecify conversion to server or from server
    istreaminput stream
    ostreamoutput stream
    -
    -
    -
    Returns
    TDS_SUCCESS of TDS_FAIL
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_copy_stream()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    TDSRET tds_copy_stream (TDSINSTREAMistream,
    TDSOUTSTREAMostream 
    )
    -
    - -

    Reads and writes from a stream to another.

    -

    Copy data from a stream to another.

    -
    Parameters
    - - - - -
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    istreaminput stream
    ostreamoutput stream
    -
    -
    -
    Returns
    TDS_SUCCESS or TDS_FAIL
    - -
    -
    - -

    § tds_datain_stream_init()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    void tds_datain_stream_init (TDSDATAINSTREAMstream,
    TDSSOCKETtds,
    size_t wire_size 
    )
    -
    - -

    Initialize a data input stream.

    -

    This stream read data from network.

    Parameters
    - - - - -
    streaminput stream to initialize
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    wire_sizebyte to read
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_dataout_stream_init()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    void tds_dataout_stream_init (TDSDATAOUTSTREAMstream,
    TDSSOCKETtds 
    )
    -
    - -

    Initialize a data output stream.

    -

    This stream writes data to network.

    Parameters
    - - - -
    streamoutput stream to initialize
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_dynamic_stream_init()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    TDSRET tds_dynamic_stream_init (TDSDYNAMICSTREAMstream,
    void ** ptr,
    size_t allocated 
    )
    -
    - -

    Initialize a dynamic output stream.

    -

    This stream write data into a dynamic allocated buffer.

    Parameters
    - - - - -
    streamstream to initialize
    ptrpointer to pointer to buffer to fill. Buffer will be extended as needed
    allocatedbytes initialially allocated for the buffer. Useful to reuse buffers
    -
    -
    -
    Returns
    TDS_SUCCESS on success, TDS_FAIL otherwise
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_staticin_stream_init()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    void tds_staticin_stream_init (TDSSTATICINSTREAMstream,
    const void * ptr,
    size_t len 
    )
    -
    - -

    Initialize an input stream for read from a static allocated buffer.

    -
    Parameters
    - - - - -
    streamstream to initialize
    ptrbuffer to read from
    lenbuffer size in bytes
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    - -
    -
    - -

    § tds_staticout_stream_init()

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    void tds_staticout_stream_init (TDSSTATICOUTSTREAMstream,
    void * ptr,
    size_t len 
    )
    -
    - -

    Initialize an output stream for write into a static allocated buffer.

    -
    Parameters
    - - - - -
    streamstream to initialize
    ptrbuffer to write to
    lenbuffer size in bytes
    -
    -
    -
    -Here is the call graph for this function:
    -
    -
    -
    -
    -
    -Here is the caller graph for this function:
    -
    -
    -
    -
    - -
    -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01356.map freetds-1.2.3/doc/reference/a01356.map --- freetds-1.1.6/doc/reference/a01356.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01356.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01356.md5 freetds-1.2.3/doc/reference/a01356.md5 --- freetds-1.1.6/doc/reference/a01356.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01356.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -473919a0d0ab8dc0fc6b18bd0c3faf69 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01356.svg freetds-1.2.3/doc/reference/a01356.svg --- freetds-1.1.6/doc/reference/a01356.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01356.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,387 +0,0 @@ - - - - - - -src/tds/stream.c - - -Node0 - -src/tds/stream.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -assert.h - - -Node0->Node2 - - - - -Node3 - - -freetds/tds.h - - - - -Node0->Node3 - - - - -Node21 - - -freetds/iconv.h - - - - -Node0->Node21 - - - - -Node22 - - -freetds/stream.h - - - - -Node0->Node22 - - - - -Node4 - -stdarg.h - - -Node3->Node4 - - - - -Node5 - -stdio.h - - -Node3->Node5 - - - - -Node6 - - -time.h - - - - -Node3->Node6 - - - - -Node7 - - -freetds/version.h - - - - -Node3->Node7 - - - - -Node8 - - -tds_sysdep_public.h - - - - -Node3->Node8 - - - - -Node10 - - -freetds/sysdep_private.h - - - - -Node3->Node10 - - - - -Node11 - - -freetds/thread.h - - - - -Node3->Node11 - - - - -Node12 - - -freetds/bool.h - - - - -Node3->Node12 - - - - -Node13 - - -freetds/macros.h - - - - -Node3->Node13 - - - - -Node14 - - -freetds/utils/string.h - - - - -Node3->Node14 - - - - -Node15 - - -freetds/pushvis.h - - - - -Node3->Node15 - - - - -Node16 - - -freetds/popvis.h - - - - -Node3->Node16 - - - - -Node17 - - -replacements.h - - - - -Node3->Node17 - - - - -Node20 - - -freetds/proto.h - - - - -Node3->Node20 - - - - -Node6->Node6 - - - - -Node9 - -float.h - - -Node8->Node9 - - - - -Node11->Node8 - - - - -Node14->Node13 - - - - -Node14->Node15 - - - - -Node14->Node16 - - - - -Node17->Node4 - - - - -Node17->Node8 - - - - -Node17->Node10 - - - - -Node17->Node15 - - - - -Node17->Node16 - - - - -Node18 - - -replacements/readpassphrase.h - - - - -Node17->Node18 - - - - -Node19 - - -replacements/poll.h - - - - -Node17->Node19 - - - - -Node18->Node15 - - - - -Node18->Node16 - - - - -Node19->Node1 - - - - -Node19->Node15 - - - - -Node19->Node16 - - - - -Node21->Node15 - - - - -Node21->Node16 - - - - -Node22->Node15 - - - - -Node22->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01364.html freetds-1.2.3/doc/reference/a01364.html --- freetds-1.1.6/doc/reference/a01364.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01364.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,208 +0,0 @@ - - - - - - - -FreeTDS API: src/replacements/iconv.c File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    iconv.c File Reference
    -
    -
    - -

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

    -
    #include <config.h>
    -#include <assert.h>
    -#include <ctype.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:
    -
    -
    -
    -
    -
    - - - - - - - -

    -Macros

    -#define CD   ((int) (intptr_t) cd)
     
    -#define CP1252(i, o)   case o: c = i; break;
     
    -#define MASK(n)   ((0xffffffffu << (n)) & 0xffffffffu)
     
    - - - - - - - -

    -Typedefs

    -typedef uint32_t ICONV_CHAR
     
    -typedef int(* iconv_get_t) (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -typedef int(* iconv_put_t) (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    - - - -

    -Enumerations

    enum  ICONV_CD_VALUE { Like_to_Like = 0x100 - }
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions

    -static int get_ascii (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_cp1252 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_err (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_iso1 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_ucs4be (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_ucs4le (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_utf16be (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_utf16le (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int get_utf8 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    -static int put_ascii (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -static int put_cp1252 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -static int put_err (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -static int put_iso1 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -static int put_ucs4be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -static int put_ucs4le (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -static int put_utf16be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    -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)
     
    -size_t tds_sys_iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
     
    -int tds_sys_iconv_close (iconv_t cd)
     
    iconv_t tds_sys_iconv_open (const char *tocode, const char *fromcode)
     Inputs are FreeTDS canonical names, no other. More...
     
    - - - - - -

    -Variables

    static const iconv_get_t iconv_gets [16]
     
    static const iconv_put_t iconv_puts [16]
     
    -

    Detailed Description

    -

    This file implements a very simple iconv.

    -

    Its purpose is to allow ASCII clients to communicate with Microsoft servers that encode their metadata in Unicode (UTF-16).

    -

    It supports ISO-8859-1, ASCII, CP1252, UTF-16, UCS-4 and UTF-8

    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01365.map freetds-1.2.3/doc/reference/a01365.map --- freetds-1.1.6/doc/reference/a01365.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01365.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01365.md5 freetds-1.2.3/doc/reference/a01365.md5 --- freetds-1.1.6/doc/reference/a01365.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01365.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -3c535be570eae487b86a01eafda8964c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01365.svg freetds-1.2.3/doc/reference/a01365.svg --- freetds-1.1.6/doc/reference/a01365.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01365.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,419 +0,0 @@ - - - - - - -src/replacements/iconv.c - - -Node0 - -src/replacements/iconv.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -assert.h - - -Node0->Node2 - - - - -Node3 - -ctype.h - - -Node0->Node3 - - - - -Node4 - - -freetds/tds.h - - - - -Node0->Node4 - - - - -Node22 - - -freetds/bytes.h - - - - -Node0->Node22 - - - - -Node23 - - -freetds/iconv.h - - - - -Node0->Node23 - - - - -Node24 - - -freetds/utils/bjoern --utf8.h - - - - -Node0->Node24 - - - - -Node25 - - -iconv_charsets.h - - - - -Node0->Node25 - - - - -Node5 - -stdarg.h - - -Node4->Node5 - - - - -Node6 - -stdio.h - - -Node4->Node6 - - - - -Node7 - - -time.h - - - - -Node4->Node7 - - - - -Node8 - - -freetds/version.h - - - - -Node4->Node8 - - - - -Node9 - - -tds_sysdep_public.h - - - - -Node4->Node9 - - - - -Node11 - - -freetds/sysdep_private.h - - - - -Node4->Node11 - - - - -Node12 - - -freetds/thread.h - - - - -Node4->Node12 - - - - -Node13 - - -freetds/bool.h - - - - -Node4->Node13 - - - - -Node14 - - -freetds/macros.h - - - - -Node4->Node14 - - - - -Node15 - - -freetds/utils/string.h - - - - -Node4->Node15 - - - - -Node16 - - -freetds/pushvis.h - - - - -Node4->Node16 - - - - -Node17 - - -freetds/popvis.h - - - - -Node4->Node17 - - - - -Node18 - - -replacements.h - - - - -Node4->Node18 - - - - -Node21 - - -freetds/proto.h - - - - -Node4->Node21 - - - - -Node7->Node7 - - - - -Node10 - -float.h - - -Node9->Node10 - - - - -Node12->Node9 - - - - -Node15->Node14 - - - - -Node15->Node16 - - - - -Node15->Node17 - - - - -Node18->Node5 - - - - -Node18->Node9 - - - - -Node18->Node11 - - - - -Node18->Node16 - - - - -Node18->Node17 - - - - -Node19 - - -replacements/readpassphrase.h - - - - -Node18->Node19 - - - - -Node20 - - -replacements/poll.h - - - - -Node18->Node20 - - - - -Node19->Node16 - - - - -Node19->Node17 - - - - -Node20->Node1 - - - - -Node20->Node16 - - - - -Node20->Node17 - - - - -Node23->Node16 - - - - -Node23->Node17 - - - - -Node24->Node9 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01367.html freetds-1.2.3/doc/reference/a01367.html --- freetds-1.1.6/doc/reference/a01367.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01367.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,251 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/iconv.c File Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    FreeTDS API -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    iconv.c File Reference
    -
    -
    - -

    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/iconv.h>
    -#include <freetds/bool.h>
    -#include "encodings.h"
    -
    -Include dependency graph for iconv.c:
    -
    -
    -
    -
    -
    - - - - - - - -

    -Macros

    #define CHARSIZE(charset)
     
    -#define CHUNK_ALLOC   4
     
    -#define TDS_ICONV_ENCODING_TABLES
     
    - - - -

    -Enumerations

    enum  { POS_ISO1, -POS_UTF8, -POS_UCS2LE, -POS_UCS2BE - }
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions

    -static void _iconv_close (iconv_t *cd)
     
    -static int collate2charset (int sql_collate, int lcid)
     
    -static int lookup_canonic (const CHARACTER_SET_ALIAS aliases[], const char *charset_name)
     
    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. More...
     
    -void tds7_srv_charset_changed (TDSCONNECTION *conn, int sql_collate, int lcid)
     
    static int tds_canonical_charset (const char *charset_name)
     Determine canonical iconv character set. More...
     
    const char * tds_canonical_charset_name (const char *charset_name)
     Determine canonical iconv character set name. More...
     
    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). More...
     
    int tds_iconv_alloc (TDSCONNECTION *conn)
     Allocate iconv stuff. More...
     
    -void tds_iconv_close (TDSCONNECTION *conn)
     
    -static void tds_iconv_err (TDSSOCKET *tds, int err)
     
    -void tds_iconv_free (TDSCONNECTION *conn)
     
    -TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
     Get iconv information from a LCID (to support different column encoding under MSSQL2K)
     
    -TDSICONVtds_iconv_get (TDSCONNECTION *conn, const char *client_charset, const char *server_charset)
     
    -static TDSICONVtds_iconv_get_info (TDSCONNECTION *conn, int canonic_client, int canonic_server)
     Get a iconv info structure, allocate and initialize if needed.
     
    -static void tds_iconv_info_close (TDSICONV *char_conv)
     
    static int tds_iconv_info_init (TDSICONV *char_conv, int client_canonical, int server_canonical)
     Open iconv descriptors to convert between character sets (both directions). More...
     
    -static int tds_iconv_init (void)
     Initialize charset searching for UTF-8, UCS-2 and ISO8859-1.
     
    -TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
     
    -static void tds_iconv_reset (TDSICONV *conv)
     
    -static const char * tds_set_iconv_name (int charset)
     Get iconv name given canonic.
     
    -void tds_srv_charset_changed (TDSCONNECTION *conn, const char *charset)
     
    -static void tds_srv_charset_changed_num (TDSCONNECTION *conn, int canonic_charset_num)
     
    - - - - - - - -

    -Variables

    -static int iconv_initialized = 0
     
    -static const char * iconv_names [sizeof(canonic_charsets)/sizeof(canonic_charsets[0])]
     
    -static const char * ucs2name
     
    -

    Detailed Description

    -

    Handle character conversions to/from server.

    -

    Macro Definition Documentation

    - -

    § CHARSIZE

    - -
    -
    - - - - - - - - -
    #define CHARSIZE( charset)
    -
    -Value:
    ( ((charset)->min_bytes_per_char == (charset)->max_bytes_per_char )? \
    (charset)->min_bytes_per_char : 0 )
    -
    -
    -

    Function Documentation

    - -

    § tds_iconv_alloc()

    - -
    -
    - - - - - - - - -
    int tds_iconv_alloc (TDSCONNECTIONconn)
    -
    - -

    Allocate iconv stuff.

    -
    Returns
    0 for success
    - -
    -
    -
    - - - - diff -Nru freetds-1.1.6/doc/reference/a01368.map freetds-1.2.3/doc/reference/a01368.map --- freetds-1.1.6/doc/reference/a01368.map 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01368.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/a01368.md5 freetds-1.2.3/doc/reference/a01368.md5 --- freetds-1.1.6/doc/reference/a01368.md5 2019-04-29 09:00:45.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01368.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -64b431c38efe66d239dabfc820a5aff9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01368.svg freetds-1.2.3/doc/reference/a01368.svg --- freetds-1.1.6/doc/reference/a01368.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01368.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,392 +0,0 @@ - - - - - - -src/tds/iconv.c - - -Node0 - -src/tds/iconv.c - - -Node1 - - -config.h - - - - -Node0->Node1 - - - - -Node2 - -stdarg.h - - -Node0->Node2 - - - - -Node3 - -stdio.h - - -Node0->Node3 - - - - -Node4 - -assert.h - - -Node0->Node4 - - - - -Node5 - - -freetds/tds.h - - - - -Node0->Node5 - - - - -Node12 - - -freetds/bool.h - - - - -Node0->Node12 - - - - -Node21 - - -freetds/iconv.h - - - - -Node0->Node21 - - - - -Node22 - - -encodings.h - - - - -Node0->Node22 - - - - -Node5->Node2 - - - - -Node5->Node3 - - - - -Node6 - - -time.h - - - - -Node5->Node6 - - - - -Node7 - - -freetds/version.h - - - - -Node5->Node7 - - - - -Node8 - - -tds_sysdep_public.h - - - - -Node5->Node8 - - - - -Node10 - - -freetds/sysdep_private.h - - - - -Node5->Node10 - - - - -Node11 - - -freetds/thread.h - - - - -Node5->Node11 - - - - -Node5->Node12 - - - - -Node13 - - -freetds/macros.h - - - - -Node5->Node13 - - - - -Node14 - - -freetds/utils/string.h - - - - -Node5->Node14 - - - - -Node15 - - -freetds/pushvis.h - - - - -Node5->Node15 - - - - -Node16 - - -freetds/popvis.h - - - - -Node5->Node16 - - - - -Node17 - - -replacements.h - - - - -Node5->Node17 - - - - -Node20 - - -freetds/proto.h - - - - -Node5->Node20 - - - - -Node6->Node6 - - - - -Node9 - -float.h - - -Node8->Node9 - - - - -Node11->Node8 - - - - -Node14->Node13 - - - - -Node14->Node15 - - - - -Node14->Node16 - - - - -Node17->Node2 - - - - -Node17->Node8 - - - - -Node17->Node10 - - - - -Node17->Node15 - - - - -Node17->Node16 - - - - -Node18 - - -replacements/readpassphrase.h - - - - -Node17->Node18 - - - - -Node19 - - -replacements/poll.h - - - - -Node17->Node19 - - - - -Node18->Node15 - - - - -Node18->Node16 - - - - -Node19->Node1 - - - - -Node19->Node15 - - - - -Node19->Node16 - - - - -Node21->Node15 - - - - -Node21->Node16 - - - - - diff -Nru freetds-1.1.6/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.map freetds-1.2.3/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.map --- freetds-1.1.6/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.md5 freetds-1.2.3/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.md5 --- freetds-1.1.6/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +5ec91acce14cc08d09e2bd429beadf0b \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.svg freetds-1.2.3/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.svg --- freetds-1.1.6/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01393_a230fa5b56ae4e3509a69bd266495732b_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +_bcp_convert_out + + + +Node1 + + +_bcp_convert_out + + + + + +Node2 + + +tds_get_conversion_type + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01393.html freetds-1.2.3/doc/reference/a01393.html --- freetds-1.1.6/doc/reference/a01393.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01393.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,351 @@ + + + + + + + +FreeTDS API: src/dblib/bcp.c File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    bcp.c File Reference
    +
    +
    +
    #include <config.h>
    +#include <stdarg.h>
    +#include <stdio.h>
    +#include <assert.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 <replacements.h>
    +#include <sybfront.h>
    +#include <sybdb.h>
    +#include <syberror.h>
    +#include <dblib.h>
    +
    +Include dependency graph for bcp.c:
    +
    +
    +
    +
    +
    + + + + + + + + + + + +

    +Macros

    +#define fseeko(f, o, w)   fseek(f,o,w)
     
    +#define ftello(f)   ftell(f)
     
    +#define HOST_COL_CONV_ERROR   1
     
    +#define HOST_COL_NULL_ERROR   2
     
    +#define MAX(a, b)   ( (a) > (b) ? (a) : (b) )
     
    + + + +

    +Typedefs

    +typedef long offset_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +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)
     Convert column for output (usually to a file) Conversion is slightly different from input as: More...
     
    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 void _bcp_free_columns (DBPROCESS *dbproc)
     
    static void _bcp_free_storage (DBPROCESS *dbproc)
     
    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. More...
     
    static int _bcp_get_term_var (BYTE *pdata, 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. More...
     
    static TDSRET _bcp_no_get_col_data (TDSBCPINFO *bcpinfo, TDSCOLUMN *bindcol, int offset)
     Function to read data from file. More...
     
    static STATUS _bcp_read_hostfile (DBPROCESS *dbproc, FILE *hostfile, int *row_error, bool skip)
     
    static int _bcp_readfmt_colinfo (DBPROCESS *dbproc, char *buf, BCP_HOSTCOLINFO *ci)
     
    DBINT bcp_batch (DBPROCESS *dbproc)
     Commit a set of rows to the table. More...
     
    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. More...
     
    +static int bcp_cache_prefix_len (BCP_HOSTCOLINFO *hostcol, const TDSCOLUMN *curcol)
     
    RETCODE bcp_colfmt (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)
     Specify the format of a datafile prior to writing to a table. More...
     
    RETCODE bcp_colfmt_ps (DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)
     Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. More...
     
    RETCODE bcp_collen (DBPROCESS *dbproc, DBINT varlen, int table_column)
     Set the length of a host variable to be written to a table. More...
     
    RETCODE bcp_colptr (DBPROCESS *dbproc, BYTE *colptr, int table_column)
     Override bcp_bind() by pointing to a different host variable. More...
     
    RETCODE bcp_columns (DBPROCESS *dbproc, int host_colcount)
     Indicate how many columns are to be found in the datafile. More...
     
    RETCODE bcp_control (DBPROCESS *dbproc, int field, DBINT value)
     Set BCP options for uploading a datafile. More...
     
    DBINT bcp_done (DBPROCESS *dbproc)
     Conclude the transfer of data from program variables. More...
     
    RETCODE bcp_exec (DBPROCESS *dbproc, DBINT *rows_copied)
     Write a datafile to a table. More...
     
    +int bcp_getbatchsize (DBPROCESS *dbproc)
     
    DBBOOL bcp_getl (LOGINREC *login)
     See if BCP_SETL() was used to set the LOGINREC for BCP work.
    + More...
     
    RETCODE bcp_init (DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)
     Prepare for bulk copy operation on a table. More...
     
    RETCODE bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
     Set "hints" for uploading a file. A FreeTDS-only function.
    + More...
     
    RETCODE bcp_readfmt (DBPROCESS *dbproc, const char filename[])
     Read a format definition file. More...
     
    RETCODE bcp_sendrow (DBPROCESS *dbproc)
     Write data in host variables to the table.
    + More...
     
    +static RETCODE bcp_write_prefix (FILE *hostfile, BCP_HOSTCOLINFO *hostcol, TDSCOLUMN *curcol, int buflen)
     
    +static void init_hostfile_columns (DBPROCESS *dbproc)
     
    static int rtrim (char *str, int len)
     trim a string of trailing blanks More...
     
    +static void rtrim_bcpcol (TDSCOLUMN *bcpcol)
     
    +static int rtrim_u16 (uint16_t *str, int len, uint16_t space)
     
    +

    Detailed Description

    +

    Implementation of db-lib bulk copy functions.

    +

    Function Documentation

    + +

    ◆ _bcp_convert_out()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static int _bcp_convert_out (DBPROCESSdbproc,
    TDSCOLUMNcurcol,
    BCP_HOSTCOLINFOhostcol,
    TDS_UCHAR ** p_data,
    const char * bcpdatefmt 
    )
    +
    +static
    +
    + +

    Convert column for output (usually to a file) Conversion is slightly different from input as:

    +
      +
    • date is formatted differently;
    • +
    • you have to set properly numeric while on input the column metadata are used;
    • +
    • we need to make sure buffer is always at least a minimum bytes.
    • +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ _bcp_no_get_col_data()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    static TDSRET _bcp_no_get_col_data (TDSBCPINFObcpinfo,
    TDSCOLUMNbindcol,
    int offset 
    )
    +
    +static
    +
    + +

    Function to read data from file.

    +

    I this case is empty as data are already on bcp_column_data

    + +
    +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01394.map freetds-1.2.3/doc/reference/a01394.map --- freetds-1.1.6/doc/reference/a01394.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01394.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01394.md5 freetds-1.2.3/doc/reference/a01394.md5 --- freetds-1.1.6/doc/reference/a01394.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01394.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c0ec84c25cd2cbd953117b57013d8bfb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01394.svg freetds-1.2.3/doc/reference/a01394.svg --- freetds-1.1.6/doc/reference/a01394.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01394.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,604 @@ + + + + + + +src/dblib/bcp.c + + + +Node1 + + +src/dblib/bcp.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdarg.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + +Node5 + + +assert.h + + + + + +Node1->Node5 + + + + + +Node6 + + +freetds/tds.h + + + + + +Node1->Node6 + + + + + +Node15 + + +freetds/utils/string.h + + + + + +Node1->Node15 + + + + + +Node18 + + +replacements.h + + + + + +Node1->Node18 + + + + + +Node22 + + +freetds/iconv.h + + + + + +Node1->Node22 + + + + + +Node23 + + +freetds/convert.h + + + + + +Node1->Node23 + + + + + +Node24 + + +freetds/bytes.h + + + + + +Node1->Node24 + + + + + +Node25 + + +freetds/encodings.h + + + + + +Node1->Node25 + + + + + +Node26 + + +sybfront.h + + + + + +Node1->Node26 + + + + + +Node27 + + +sybdb.h + + + + + +Node1->Node27 + + + + + +Node28 + + +syberror.h + + + + + +Node1->Node28 + + + + + +Node29 + + +dblib.h + + + + + +Node1->Node29 + + + + + +Node6->Node3 + + + + + +Node6->Node4 + + + + + +Node7 + + +time.h + + + + + +Node6->Node7 + + + + + +Node8 + + +freetds/version.h + + + + + +Node6->Node8 + + + + + +Node9 + + +tds_sysdep_public.h + + + + + +Node6->Node9 + + + + + +Node11 + + +freetds/sysdep_private.h + + + + + +Node6->Node11 + + + + + +Node12 + + +freetds/thread.h + + + + + +Node6->Node12 + + + + + +Node13 + + +freetds/bool.h + + + + + +Node6->Node13 + + + + + +Node14 + + +freetds/macros.h + + + + + +Node6->Node14 + + + + + +Node6->Node15 + + + + + +Node16 + + +freetds/pushvis.h + + + + + +Node6->Node16 + + + + + +Node17 + + +freetds/popvis.h + + + + + +Node6->Node17 + + + + + +Node6->Node18 + + + + + +Node21 + + +freetds/proto.h + + + + + +Node6->Node21 + + + + + +Node7->Node7 + + + + + +Node10 + + +float.h + + + + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node3 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + + + + +Node19 + + +replacements/readpassphrase.h + + + + + +Node18->Node19 + + + + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + + + + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + + + + +Node23->Node16 + + + + + +Node23->Node17 + + + + + +Node26->Node27 + + + + + +Node27->Node9 + + + + + +Node29->Node16 + + + + + +Node29->Node17 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map freetds-1.2.3/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map --- freetds-1.1.6/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 freetds-1.2.3/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 --- freetds-1.1.6/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ee1a580ee0833cc911de1c0cc4407740 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg freetds-1.2.3/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg --- freetds-1.1.6/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a4f9e40da6941cb9407d0da5bc3030517_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_dynamic_stream_init + + + +Node1 + + +tds_dynamic_stream_init + + + + + +Node2 + + +tds_dynamic_stream +_write + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map freetds-1.2.3/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map --- freetds-1.1.6/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 freetds-1.2.3/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 --- freetds-1.1.6/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b0b85c09afbc7652730739cd8b95478a \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg freetds-1.2.3/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg --- freetds-1.1.6/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_convert_stream + + + +Node1 + + +tds_convert_stream + + + + + +Node2 + + +read_and_convert + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map freetds-1.2.3/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map --- freetds-1.1.6/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 freetds-1.2.3/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 --- freetds-1.1.6/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c74dc8e432d50a24d419eee15e792993 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg freetds-1.2.3/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg --- freetds-1.1.6/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_staticout_stream_init + + + +Node1 + + +tds_staticout_stream_init + + + + + +Node2 + + +read_and_convert + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map freetds-1.2.3/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map --- freetds-1.1.6/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 freetds-1.2.3/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 --- freetds-1.1.6/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +43f6358c4f6cd9a7464d17b0cc63ec32 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg freetds-1.2.3/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg --- freetds-1.1.6/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + +tds_dataout_stream_init + + + +Node1 + + +tds_dataout_stream_init + + + + + +Node2 + + +tds_dataout_stream +_write + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map --- freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 --- freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +0021678fe52149e329a6ef9d9e29e3ed \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg --- freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_cgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_datain_stream_init + + + +Node1 + + +tds_datain_stream_init + + + + + +Node2 + + +tds_datain_stream_read + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map --- freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,4 @@ + + + + diff -Nru freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 --- freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +405981180e33b4759df320ae7c2380bb \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg --- freetds-1.1.6/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408_abc3a77c8aa28842e7f28583cbabc1415_icgraph.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,37 @@ + + + + + + +tds_datain_stream_init + + + +Node1 + + +tds_datain_stream_init + + + + + +Node2 + + +read_and_convert + + + + + +Node1->Node2 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01408.html freetds-1.2.3/doc/reference/a01408.html --- freetds-1.1.6/doc/reference/a01408.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01408.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,494 @@ + + + + + + + +FreeTDS API: src/tds/stream.c File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    stream.c File Reference
    +
    +
    + +

    Handle stream of data. +More...

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

    +Functions

    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. More...
     
    TDSRET tds_copy_stream (TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
     Reads and writes from a stream to another. More...
     
    void tds_datain_stream_init (TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
     Initialize a data input stream. More...
     
    +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)
     Initialize a data output stream. More...
     
    +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)
     Initialize a dynamic output stream. More...
     
    +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)
     Initialize an input stream for read from a static allocated buffer. More...
     
    +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)
     Initialize an output stream for write into a static allocated buffer. More...
     
    +static int tds_staticout_stream_write (TDSOUTSTREAM *stream, size_t len)
     Writes data to a static allocated buffer.
     
    +

    Detailed Description

    +

    Handle stream of data.

    +

    Function Documentation

    + +

    ◆ tds_convert_stream()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_convert_stream (TDSSOCKETtds,
    TDSICONVchar_conv,
    TDS_ICONV_DIRECTION direction,
    TDSINSTREAMistream,
    TDSOUTSTREAMostream 
    )
    +
    + +

    Reads and writes from a stream converting characters.

    +

    Convert a stream from istream to ostream using a specific conversion.

    +
    Parameters
    + + + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    char_convconversion structure
    directionspecify conversion to server or from server
    istreaminput stream
    ostreamoutput stream
    +
    +
    +
    Returns
    TDS_SUCCESS of TDS_FAIL
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_copy_stream()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TDSRET tds_copy_stream (TDSINSTREAMistream,
    TDSOUTSTREAMostream 
    )
    +
    + +

    Reads and writes from a stream to another.

    +

    Copy data from a stream to another.

    +
    Parameters
    + + + + +
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    istreaminput stream
    ostreamoutput stream
    +
    +
    +
    Returns
    TDS_SUCCESS or TDS_FAIL
    + +
    +
    + +

    ◆ tds_datain_stream_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void tds_datain_stream_init (TDSDATAINSTREAMstream,
    TDSSOCKETtds,
    size_t wire_size 
    )
    +
    + +

    Initialize a data input stream.

    +

    This stream read data from network.

    Parameters
    + + + + +
    streaminput stream to initialize
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    wire_sizebyte to read
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_dataout_stream_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void tds_dataout_stream_init (TDSDATAOUTSTREAMstream,
    TDSSOCKETtds 
    )
    +
    + +

    Initialize a data output stream.

    +

    This stream writes data to network.

    Parameters
    + + + +
    streamoutput stream to initialize
    tdsA pointer to the TDSSOCKET structure managing a client/server operation.
    +
    +
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_dynamic_stream_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    TDSRET tds_dynamic_stream_init (TDSDYNAMICSTREAMstream,
    void ** ptr,
    size_t allocated 
    )
    +
    + +

    Initialize a dynamic output stream.

    +

    This stream write data into a dynamic allocated buffer.

    Parameters
    + + + + +
    streamstream to initialize
    ptrpointer to pointer to buffer to fill. Buffer will be extended as needed
    allocatedbytes initialially allocated for the buffer. Useful to reuse buffers
    +
    +
    +
    Returns
    TDS_SUCCESS on success, TDS_FAIL otherwise
    +
    +Here is the call graph for this function:
    +
    +
    +
    +
    + +
    +
    + +

    ◆ tds_staticin_stream_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void tds_staticin_stream_init (TDSSTATICINSTREAMstream,
    const void * ptr,
    size_t len 
    )
    +
    + +

    Initialize an input stream for read from a static allocated buffer.

    +
    Parameters
    + + + + +
    streamstream to initialize
    ptrbuffer to read from
    lenbuffer size in bytes
    +
    +
    + +
    +
    + +

    ◆ tds_staticout_stream_init()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void tds_staticout_stream_init (TDSSTATICOUTSTREAMstream,
    void * ptr,
    size_t len 
    )
    +
    + +

    Initialize an output stream for write into a static allocated buffer.

    +
    Parameters
    + + + + +
    streamstream to initialize
    ptrbuffer to write to
    lenbuffer size in bytes
    +
    +
    +
    +Here is the caller graph for this function:
    +
    +
    +
    +
    + +
    +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01409.map freetds-1.2.3/doc/reference/a01409.map --- freetds-1.1.6/doc/reference/a01409.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01409.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01409.md5 freetds-1.2.3/doc/reference/a01409.md5 --- freetds-1.1.6/doc/reference/a01409.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01409.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +f2a0611fa87b81fc23313bf6f808b425 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01409.svg freetds-1.2.3/doc/reference/a01409.svg --- freetds-1.1.6/doc/reference/a01409.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01409.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,466 @@ + + + + + + +src/tds/stream.c + + + +Node1 + + +src/tds/stream.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +assert.h + + + + + +Node1->Node3 + + + + + +Node4 + + +freetds/tds.h + + + + + +Node1->Node4 + + + + + +Node22 + + +freetds/iconv.h + + + + + +Node1->Node22 + + + + + +Node23 + + +freetds/stream.h + + + + + +Node1->Node23 + + + + + +Node5 + + +stdarg.h + + + + + +Node4->Node5 + + + + + +Node6 + + +stdio.h + + + + + +Node4->Node6 + + + + + +Node7 + + +time.h + + + + + +Node4->Node7 + + + + + +Node8 + + +freetds/version.h + + + + + +Node4->Node8 + + + + + +Node9 + + +tds_sysdep_public.h + + + + + +Node4->Node9 + + + + + +Node11 + + +freetds/sysdep_private.h + + + + + +Node4->Node11 + + + + + +Node12 + + +freetds/thread.h + + + + + +Node4->Node12 + + + + + +Node13 + + +freetds/bool.h + + + + + +Node4->Node13 + + + + + +Node14 + + +freetds/macros.h + + + + + +Node4->Node14 + + + + + +Node15 + + +freetds/utils/string.h + + + + + +Node4->Node15 + + + + + +Node16 + + +freetds/pushvis.h + + + + + +Node4->Node16 + + + + + +Node17 + + +freetds/popvis.h + + + + + +Node4->Node17 + + + + + +Node18 + + +replacements.h + + + + + +Node4->Node18 + + + + + +Node21 + + +freetds/proto.h + + + + + +Node4->Node21 + + + + + +Node7->Node7 + + + + + +Node10 + + +float.h + + + + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node5 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + + + + +Node19 + + +replacements/readpassphrase.h + + + + + +Node18->Node19 + + + + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + + + + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + + + + +Node23->Node16 + + + + + +Node23->Node17 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01417.html freetds-1.2.3/doc/reference/a01417.html --- freetds-1.1.6/doc/reference/a01417.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01417.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,208 @@ + + + + + + + +FreeTDS API: src/replacements/iconv.c File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    iconv.c File Reference
    +
    +
    +
    #include <config.h>
    +#include <assert.h>
    +#include <ctype.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:
    +
    +
    +
    +
    +
    + + + + + + + +

    +Macros

    +#define CD   ((int) (intptr_t) cd)
     
    +#define CP1252(i, o)   case o: c = i; break;
     
    +#define MASK(n)   ((0xffffffffu << (n)) & 0xffffffffu)
     
    + + + + + + + +

    +Typedefs

    +typedef uint32_t ICONV_CHAR
     
    +typedef int(* iconv_get_t) (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +typedef int(* iconv_put_t) (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    + + + +

    +Enumerations

    enum  ICONV_CD_VALUE { Like_to_Like = 0x100 + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +static int get_ascii (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_cp1252 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_err (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_iso1 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_ucs4be (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_ucs4le (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_utf16be (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_utf16le (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int get_utf8 (const unsigned char *p, size_t len, ICONV_CHAR *out)
     
    +static int put_ascii (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_cp1252 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_err (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_iso1 (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_ucs4be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_ucs4le (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +static int put_utf16be (unsigned char *buf, size_t buf_len, ICONV_CHAR c)
     
    +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)
     
    +size_t tds_sys_iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
     
    +int tds_sys_iconv_close (iconv_t cd)
     
    iconv_t tds_sys_iconv_open (const char *tocode, const char *fromcode)
     Inputs are FreeTDS canonical names, no other. More...
     
    + + + + + +

    +Variables

    static const iconv_get_t iconv_gets [16]
     
    static const iconv_put_t iconv_puts [16]
     
    +

    Detailed Description

    +

    This file implements a very simple iconv.
    + Its purpose is to allow ASCII clients to communicate with Microsoft servers that encode their metadata in Unicode (UTF-16).

    +

    It supports ISO-8859-1, ASCII, CP1252, UTF-16, UCS-4 and UTF-8

    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01418.map freetds-1.2.3/doc/reference/a01418.map --- freetds-1.1.6/doc/reference/a01418.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01418.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01418.md5 freetds-1.2.3/doc/reference/a01418.md5 --- freetds-1.1.6/doc/reference/a01418.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01418.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +2190d145764a545d9efa6faf47cc3d0f \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01418.svg freetds-1.2.3/doc/reference/a01418.svg --- freetds-1.1.6/doc/reference/a01418.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01418.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,506 @@ + + + + + + +src/replacements/iconv.c + + + +Node1 + + +src/replacements/iconv.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +assert.h + + + + + +Node1->Node3 + + + + + +Node4 + + +ctype.h + + + + + +Node1->Node4 + + + + + +Node5 + + +freetds/tds.h + + + + + +Node1->Node5 + + + + + +Node23 + + +freetds/bytes.h + + + + + +Node1->Node23 + + + + + +Node24 + + +freetds/iconv.h + + + + + +Node1->Node24 + + + + + +Node25 + + +freetds/utils/bjoern +-utf8.h + + + + + +Node1->Node25 + + + + + +Node26 + + +iconv_charsets.h + + + + + +Node1->Node26 + + + + + +Node6 + + +stdarg.h + + + + + +Node5->Node6 + + + + + +Node7 + + +stdio.h + + + + + +Node5->Node7 + + + + + +Node8 + + +time.h + + + + + +Node5->Node8 + + + + + +Node9 + + +freetds/version.h + + + + + +Node5->Node9 + + + + + +Node10 + + +tds_sysdep_public.h + + + + + +Node5->Node10 + + + + + +Node12 + + +freetds/sysdep_private.h + + + + + +Node5->Node12 + + + + + +Node13 + + +freetds/thread.h + + + + + +Node5->Node13 + + + + + +Node14 + + +freetds/bool.h + + + + + +Node5->Node14 + + + + + +Node15 + + +freetds/macros.h + + + + + +Node5->Node15 + + + + + +Node16 + + +freetds/utils/string.h + + + + + +Node5->Node16 + + + + + +Node17 + + +freetds/pushvis.h + + + + + +Node5->Node17 + + + + + +Node18 + + +freetds/popvis.h + + + + + +Node5->Node18 + + + + + +Node19 + + +replacements.h + + + + + +Node5->Node19 + + + + + +Node22 + + +freetds/proto.h + + + + + +Node5->Node22 + + + + + +Node8->Node8 + + + + + +Node11 + + +float.h + + + + + +Node10->Node11 + + + + + +Node13->Node10 + + + + + +Node16->Node15 + + + + + +Node16->Node17 + + + + + +Node16->Node18 + + + + + +Node19->Node6 + + + + + +Node19->Node10 + + + + + +Node19->Node12 + + + + + +Node19->Node17 + + + + + +Node19->Node18 + + + + + +Node20 + + +replacements/readpassphrase.h + + + + + +Node19->Node20 + + + + + +Node21 + + +replacements/poll.h + + + + + +Node19->Node21 + + + + + +Node20->Node17 + + + + + +Node20->Node18 + + + + + +Node21->Node2 + + + + + +Node21->Node17 + + + + + +Node21->Node18 + + + + + +Node24->Node17 + + + + + +Node24->Node18 + + + + + +Node25->Node10 + + + + + diff -Nru freetds-1.1.6/doc/reference/a01420.html freetds-1.2.3/doc/reference/a01420.html --- freetds-1.1.6/doc/reference/a01420.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01420.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,285 @@ + + + + + + + +FreeTDS API: src/tds/iconv.c File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    FreeTDS API +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    iconv.c File Reference
    +
    +
    + +

    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/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:
    +
    +
    +
    +
    +
    + + + + + + + +

    +Macros

    #define CHARSIZE(charset)
     
    +#define CHUNK_ALLOC   4
     
    +#define TDS_ICONV_ENCODING_TABLES
     
    + + + +

    +Enumerations

    enum  { POS_ISO1, +POS_UTF8, +POS_UCS2LE, +POS_UCS2BE + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +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)
     Move the input sequence pointer to the next valid position. More...
     
    +void tds7_srv_charset_changed (TDSCONNECTION *conn, TDS_UCHAR collation[5])
     
    int tds_canonical_charset (const char *charset_name)
     Determine canonical iconv character set. More...
     
    const char * tds_canonical_charset_name (const char *charset_name)
     Determine canonical iconv character set name. More...
     
    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). More...
     
    int tds_iconv_alloc (TDSCONNECTION *conn)
     Allocate iconv stuff. More...
     
    +void tds_iconv_close (TDSCONNECTION *conn)
     
    +static void tds_iconv_err (TDSSOCKET *tds, int err)
     
    +void tds_iconv_free (TDSCONNECTION *conn)
     
    +TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
     Get iconv information from a LCID (to support different column encoding under MSSQL2K)
     
    +TDSICONVtds_iconv_get (TDSCONNECTION *conn, const char *client_charset, const char *server_charset)
     
    +TDSICONVtds_iconv_get_info (TDSCONNECTION *conn, int canonic_client, int canonic_server)
     Get a iconv info structure, allocate and initialize if needed.
     
    +static void tds_iconv_info_close (TDSICONV *char_conv)
     
    static int tds_iconv_info_init (TDSICONV *char_conv, int client_canonical, int server_canonical)
     Open iconv descriptors to convert between character sets (both directions). More...
     
    +static int tds_iconv_init (void)
     Initialize charset searching for UTF-8, UCS-2 and ISO8859-1.
     
    +TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
     
    +static void tds_iconv_reset (TDSICONV *conv)
     
    +static const char * tds_set_iconv_name (int charset)
     Get iconv name given canonic.
     
    +void tds_srv_charset_changed (TDSCONNECTION *conn, const char *charset)
     
    +static void tds_srv_charset_changed_num (TDSCONNECTION *conn, int canonic_charset_num)
     
    + + + + + + + + + + + + + + +

    +Variables

    +static int iconv_initialized = 0
     
    +static const char * iconv_names [TDS_VECTOR_SIZE(canonic_charsets)]
     
    struct {
    +   char   data [15]
     
    +   uint8_t   len
     
    test_strings [4]
     
    +static const char * ucs2name
     
    +

    Detailed Description

    +

    Handle character conversions to/from server.

    +

    Macro Definition Documentation

    + +

    ◆ CHARSIZE

    + +
    +
    + + + + + + + + +
    #define CHARSIZE( charset)
    +
    +Value:
    ( ((charset)->min_bytes_per_char == (charset)->max_bytes_per_char )? \
    +
    (charset)->min_bytes_per_char : 0 )
    +
    +
    +
    +

    Function Documentation

    + +

    ◆ tds_iconv_alloc()

    + +
    +
    + + + + + + + + +
    int tds_iconv_alloc (TDSCONNECTIONconn)
    +
    + +

    Allocate iconv stuff.

    +
    Returns
    0 for success
    + +
    +
    +

    Variable Documentation

    + +

    ◆ test_strings

    + +
    +
    + + + + +
    const { ... } test_strings[4]
    +
    +Initial value:
    = {
    +
    { 4, "Ao\xD3\xE5" },
    +
    { 6, "Ao\xC3\x93\xC3\xA5" },
    +
    { 8, "A\x00o\x000\xD3\x00\xE5\x00" },
    +
    { 8, "\x00" "A\x00o\x000\xD3\x00\xE5" },
    +
    }
    +
    +
    +
    +
    + + + + diff -Nru freetds-1.1.6/doc/reference/a01421.map freetds-1.2.3/doc/reference/a01421.map --- freetds-1.1.6/doc/reference/a01421.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01421.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/a01421.md5 freetds-1.2.3/doc/reference/a01421.md5 --- freetds-1.1.6/doc/reference/a01421.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01421.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +e1821c40b70524d645d3a29ec364004e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/a01421.svg freetds-1.2.3/doc/reference/a01421.svg --- freetds-1.1.6/doc/reference/a01421.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/a01421.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,502 @@ + + + + + + +src/tds/iconv.c + + + +Node1 + + +src/tds/iconv.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + +Node3 + + +stdarg.h + + + + + +Node1->Node3 + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + +Node5 + + +assert.h + + + + + +Node1->Node5 + + + + + +Node6 + + +freetds/tds.h + + + + + +Node1->Node6 + + + + + +Node13 + + +freetds/bool.h + + + + + +Node1->Node13 + + + + + +Node22 + + +freetds/iconv.h + + + + + +Node1->Node22 + + + + + +Node23 + + +freetds/bytes.h + + + + + +Node1->Node23 + + + + + +Node24 + + +freetds/encodings.h + + + + + +Node1->Node24 + + + + + +Node25 + + +freetds/charset_lookup.h + + + + + +Node1->Node25 + + + + + +Node6->Node3 + + + + + +Node6->Node4 + + + + + +Node7 + + +time.h + + + + + +Node6->Node7 + + + + + +Node8 + + +freetds/version.h + + + + + +Node6->Node8 + + + + + +Node9 + + +tds_sysdep_public.h + + + + + +Node6->Node9 + + + + + +Node11 + + +freetds/sysdep_private.h + + + + + +Node6->Node11 + + + + + +Node12 + + +freetds/thread.h + + + + + +Node6->Node12 + + + + + +Node6->Node13 + + + + + +Node14 + + +freetds/macros.h + + + + + +Node6->Node14 + + + + + +Node15 + + +freetds/utils/string.h + + + + + +Node6->Node15 + + + + + +Node16 + + +freetds/pushvis.h + + + + + +Node6->Node16 + + + + + +Node17 + + +freetds/popvis.h + + + + + +Node6->Node17 + + + + + +Node18 + + +replacements.h + + + + + +Node6->Node18 + + + + + +Node21 + + +freetds/proto.h + + + + + +Node6->Node21 + + + + + +Node7->Node7 + + + + + +Node10 + + +float.h + + + + + +Node9->Node10 + + + + + +Node12->Node9 + + + + + +Node15->Node14 + + + + + +Node15->Node16 + + + + + +Node15->Node17 + + + + + +Node18->Node3 + + + + + +Node18->Node9 + + + + + +Node18->Node11 + + + + + +Node18->Node16 + + + + + +Node18->Node17 + + + + + +Node19 + + +replacements/readpassphrase.h + + + + + +Node18->Node19 + + + + + +Node20 + + +replacements/poll.h + + + + + +Node18->Node20 + + + + + +Node19->Node16 + + + + + +Node19->Node17 + + + + + +Node20->Node2 + + + + + +Node20->Node16 + + + + + +Node20->Node17 + + + + + +Node22->Node16 + + + + + +Node22->Node17 + + + + + diff -Nru freetds-1.1.6/doc/reference/annotated.html freetds-1.2.3/doc/reference/annotated.html --- freetds-1.1.6/doc/reference/annotated.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/annotated.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: Class List @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -64,194 +67,198 @@
    Here are the classes, structs, unions and interfaces with brief descriptions:
    [detail level 12]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     C_character_set_alias
     C_cs_blkdesc
     C_cs_clientmsg
     C_cs_command
     C_cs_config
     C_cs_connection
     C_cs_context
     C_cs_datafmt
     C_cs_daterec
     C_cs_datetime
     C_cs_datetime4
     C_cs_dynamic
     C_cs_iodesc
     C_cs_locale
     C_cs_money
     C_cs_money4
     C_cs_numeric
     C_cs_objdata
     C_cs_objname
     C_cs_param
     C_cs_servermsg
     C_cs_varbinary
     C_cs_varchar
     C_csremote_proc
     C_ct_colinfo
     C_dblib_error_message
     C_DBREMOTE_PROC
     C_DBREMOTE_PROC_PARAM
     C_dheader
     C_drecord
     C_hcattr
     C_hchk
     C_hdbc
     C_hdesc
     C_heattr
     C_henv
     C_hsattr
     C_hstmt
     C_null_representation
     C_options
     C_procedure
     C_sql_error
     C_sql_errors
     Cagg_t
     Casn1_der_iterator
     CBCP_HOSTCOLINFO
     CBCP_HOSTFILEINFO
     Ccol_t
     Cconf_params
     CCONNECT_EVENT
     Cconv_result
     Ccs_diag_msg
     Ccs_diag_msg_client
     Ccs_diag_msg_svr
     CDATA
     CDBCOL
     CDBCOL2
     CDBDATETIME
     CDBDATETIME4
     CDBDATETIMEALL
     Cdblib_buffer_row
     Cdblib_context
     CDBMONEY
     CDBMONEY4
     CDBNUMERIC
     Cdboption
     Cdbstring
     Cdbtypeinfo
     CDBVARYBIN
     CDBVARYCHAR
     Cdes_key
     CDLIST_LIST_TYPE
     Cdlist_ring
     CDSNINFO
     CEND_LOGIN_EVENT
     Cfunc_info
     CKEY_T
     CLOGIN_EVENT
     CLOGINREC
     CMD4Context
     CMD5Context
     CMETACOMP
     CMETADATA
     Cmetadata_t
     Cmpz_t
     Cname_t
     CnamelistHolds list of names
     Cnames_blob_prefix_t
     Cnative_info
     COBJECTINFO
     Cpd
     Cpivot_t
     Cpollfd
     CProfileParam
     Cptw32_mcs_node_t_
     Cretry_addr
     Crsa_public_key
     Cs_SqlMsgMap
     Cs_v3to2map
     Cselect_info
     Cstring_linked_list
     Ctag_DBPROC_ROWBUF
     CtagSS_TIME2_STRUCT
     CtagSS_TIMESTAMPOFFSET_STRUCT
     CTDS71_COLLATIONTDS 7.1 collation informations
     CTDS72_SMP_HEADERTDS 7.2 SMP packet header
     Ctds_addrinfo
     Ctds_align_struct
     Ctds_answer
     Ctds_authentication
     Ctds_bcpcoldata
     Ctds_bcpinfo
     Ctds_blobInformation about blobs (e.g
     Ctds_capabilities
     Ctds_capability_type
     Ctds_columnMetadata about columns in regular and compute rows
     Ctds_column_funcs
     Ctds_compiletime_settingsA structure to hold all the compile-time settings
     Ctds_condition
     Ctds_connection
     Ctds_context
     Ctds_cursorHolds informations about a cursor
     Ctds_cursor_status
     Ctds_datain_streamInput stream to read data from tds protocol
     Ctds_dataout_streamOutput stream to write data to tds protocol
     CTDS_DATETIMEALLThis structure is not directed connected to a TDS protocol but keeps any DATE/TIME information
     Ctds_dblib_dbprocess
     Ctds_dblib_loginrec
     Ctds_dstrStructure to hold a string
     Ctds_dynamicHolds information for a dynamic (also called prepared) query
     Ctds_dynamic_streamOutput stream to write data to a dynamic buffer
     Ctds_encodingInformation relevant to libiconv
     Ctds_envCurrent environment as reported by the server
     Ctds_errno_message_flags
     Ctds_error_message
     Ctds_file_streamInput stream to read a file
     CTDS_FUNCS
     Ctds_headers
     Ctds_input_streamDefine a stream of data used for input
     Ctds_locale
     Ctds_login
     CTDS_MAY_ALIAS
     Ctds_message
     Ctds_microsoft_dbdaterec
     Ctds_microsoft_dbdaterec2
     Ctds_multiple
     Ctds_ntlm_auth
     Ctds_option_arg
     Ctds_output_streamDefine a stream of data used for output
     Ctds_packet
     CTDS_PARSED_PARAM
     Ctds_pbcbHolds clause buffer
     Ctds_poll_wakeup
     Ctds_pool
     Ctds_pool_event
     Ctds_pool_member
     Ctds_pool_socket
     Ctds_pool_user
     Ctds_raw_mutex
     Ctds_result_infoHold information for any results
     Ctds_save_context
     Ctds_save_env
     Ctds_save_msg
     Ctds_socketInformation for a server connection
     Ctds_staticin_streamInput stream to read data from a static buffer
     Ctds_staticout_streamOutput stream to write data to a static buffer
     Ctds_sybase_dbdaterec
     Ctds_sybase_dbdaterec2
     Ctds_thread
     Ctds_time
     Ctds_upd_col
     Ctds_variantStore variant informations
     Ctds_varmax_stream
     CtdsdaterecUsed by tds_datecrack
     Ctdsdatetime
     Ctdsdatetime4
     Ctdsiconvdir
     Ctdsiconvinfo
     Ctdsmoney
     Ctdsmoney4
     Ctdsnumeric
     Ctdsoldmoney
     Ctdsunique
     Ctdsvername_t
     Ctmp_col_struct
     C_character_set_alias
     C_cs_blkdesc
     C_cs_clientmsg
     C_cs_command
     C_cs_config
     C_cs_connection
     C_cs_context
     C_cs_datafmt
     C_cs_daterec
     C_cs_datetime
     C_cs_datetime4
     C_cs_dynamic
     C_cs_iodesc
     C_cs_locale
     C_cs_money
     C_cs_money4
     C_cs_numeric
     C_cs_objdata
     C_cs_objname
     C_cs_param
     C_cs_servermsg
     C_cs_varbinary
     C_cs_varchar
     C_csremote_proc
     C_ct_colinfo
     C_dblib_error_message
     C_dheader
     C_drecord
     C_hcattr
     C_hchk
     C_hdbc
     C_hdesc
     C_heattr
     C_henv
     C_hsattr
     C_hstmt
     C_options
     C_procedure
     C_sql_error
     C_sql_errors
     Cagg_t
     Casn1_der_iterator
     CBCP_HOSTCOLINFO
     CBCP_HOSTFILEINFO
     Ccharset_alias
     Ccol_t
     Cconf_params
     CCONNECT_EVENT
     Cconv_result
     Ccs_diag_msg
     Ccs_diag_msg_client
     Ccs_diag_msg_svr
     CDATA
     CDBCOL
     CDBCOL2
     CDBDATETIME
     CDBDATETIME4
     CDBDATETIMEALL
     Cdblib_buffer_row
     Cdblib_context
     CDBMONEY
     CDBMONEY4
     CDBNUMERIC
     Cdboption
     CDBPROC_ROWBUF
     CDBREMOTE_PROC
     CDBREMOTE_PROC_PARAM
     Cdbstring
     Cdbtypeinfo
     CDBVARYBIN
     CDBVARYCHAR
     Cdes_key
     CDLIST_LIST_TYPE
     Cdlist_ring
     CDSNINFO
     CEND_LOGIN_EVENT
     Cfunc_info
     CKEY_T
     CLOGIN_EVENT
     CLOGINREC
     CMD4Context
     CMD5Context
     CMETACOMP
     CMETADATA
     Cmetadata_t
     Cmpz_t
     Cname_t
     CnamelistHolds list of names
     Cnames_blob_prefix_t
     Cnative_info
     CNULLREP
     COBJECTINFO
     Cpd
     Cpivot_t
     Cpollfd
     CProfileParam
     Cptw32_mcs_node_t_
     Cretry_addr
     Crsa_public_key
     Cs_SqlMsgMap
     Cs_v3to2map
     Cselect_info
     Cstring_linked_list
     Cstringpool_t
     CtagSS_TIME2_STRUCT
     CtagSS_TIMESTAMPOFFSET_STRUCT
     CTDS71_COLLATIONTDS 7.1 collation informations
     CTDS72_SMP_HEADERTDS 7.2 SMP packet header
     Ctds_addrinfo
     Ctds_align_struct
     Ctds_answer
     Ctds_authentication
     Ctds_bcpcoldata
     Ctds_bcpinfo
     Ctds_blobInformation about blobs (e.g
     Ctds_capabilities
     Ctds_capability_type
     Ctds_columnMetadata about columns in regular and compute rows
     Ctds_column_funcs
     Ctds_compiletime_settingsA structure to hold all the compile-time settings
     Ctds_condition
     Ctds_connection
     Ctds_context
     Ctds_cursorHolds informations about a cursor
     Ctds_cursor_status
     Ctds_datain_streamInput stream to read data from tds protocol
     Ctds_dataout_streamOutput stream to write data to tds protocol
     CTDS_DATETIMEALLThis structure is not directed connected to a TDS protocol but keeps any DATE/TIME information
     Ctds_dblib_dbprocess
     Ctds_dblib_loginrec
     Ctds_dstrStructure to hold a string
     Ctds_dynamicHolds information for a dynamic (also called prepared) query
     Ctds_dynamic_streamOutput stream to write data to a dynamic buffer
     Ctds_encodingInformation relevant to libiconv
     Ctds_envCurrent environment as reported by the server
     Ctds_errno_message_flags
     Ctds_error_message
     Ctds_file_streamInput stream to read a file
     Ctds_freeze
     CTDS_FUNCS
     Ctds_headers
     Ctds_input_streamDefine a stream of data used for input
     Ctds_locale
     Ctds_login
     CTDS_MAY_ALIAS
     Ctds_message
     Ctds_microsoft_dbdaterec
     Ctds_microsoft_dbdaterec2
     Ctds_multiple
     Ctds_ntlm_auth
     Ctds_option_arg
     Ctds_output_streamDefine a stream of data used for output
     Ctds_packet
     CTDS_PARSED_PARAM
     Ctds_pbcbHolds clause buffer
     Ctds_poll_wakeup
     Ctds_pool
     Ctds_pool_event
     Ctds_pool_member
     Ctds_pool_socket
     Ctds_pool_user
     Ctds_quoteout_stream
     Ctds_raw_mutex
     Ctds_result_infoHold information for any results
     Ctds_save_context
     Ctds_save_env
     Ctds_save_msg
     Ctds_socketInformation for a server connection
     Ctds_staticin_streamInput stream to read data from a static buffer
     Ctds_staticout_streamOutput stream to write data to a static buffer
     Ctds_sybase_dbdaterec
     Ctds_sybase_dbdaterec2
     Ctds_thread
     Ctds_time
     Ctds_upd_col
     Ctds_variantStore variant informations
     Ctds_varmax_stream
     CtdsdaterecUsed by tds_datecrack
     Ctdsdatetime
     Ctdsdatetime4
     Ctdsiconvdir
     Ctdsiconvinfo
     Ctdsmoney
     Ctdsmoney4
     Ctdsnumeric
     Ctdsoldmoney
     Ctdsunique
     Ctdsvername_t
     Ctmp_col_struct
    @@ -259,7 +266,7 @@ diff -Nru freetds-1.1.6/doc/reference/classes.html freetds-1.2.3/doc/reference/classes.html --- freetds-1.1.6/doc/reference/classes.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/classes.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: Class Index @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -65,66 +68,274 @@
    _ | a | b | c | d | e | f | k | l | m | n | o | p | r | s | t
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
      _  
    -
    _sql_errors   
      f  
    -
    string_linked_list   tds_message   
    asn1_der_iterator   
      f  
    +
    string_linked_list   tds_message   
      b  
    +
    stringpool_t   tds_microsoft_dbdaterec   
    _character_set_alias   func_info   
      t  
    +
    tds_microsoft_dbdaterec2   
    _cs_blkdesc   BCP_HOSTCOLINFO   
      k  
    +
    tds_multiple   
    _cs_clientmsg   BCP_HOSTFILEINFO   tagSS_TIME2_STRUCT   tds_ntlm_auth   
    _cs_command   
      c  
    +
    KEY_T   tagSS_TIMESTAMPOFFSET_STRUCT   tds_option_arg   
    _cs_config   
      l  
    +
    TDS71_COLLATION   tds_output_stream   
    _cs_connection   conv_result::cb_t   TDS72_SMP_HEADER   tds_packet   
    _cs_context   conv_result::cc_t   LOGIN_EVENT   tds_addrinfo   TDS_PARSED_PARAM   
    _cs_datafmt   charset_alias   LOGINREC   tds_align_struct   tds_pbcb   
    _cs_daterec   col_t   
      m  
    +
    tds_answer   tds_poll_wakeup   
    _cs_datetime   conf_params   tds_authentication   tds_pool   
    _cs_datetime4   CONNECT_EVENT   MD4Context   tds_bcpcoldata   tds_pool_event   
    _cs_dynamic   conv_result   MD5Context   tds_bcpinfo   tds_pool_member   
    _cs_iodesc   cs_diag_msg   METACOMP   tds_blob   tds_pool_socket   
    _cs_locale   cs_diag_msg_client   METADATA   tds_capabilities   tds_pool_user   
    _cs_money   cs_diag_msg_svr   metadata_t   tds_capability_type   tds_quoteout_stream   
    _cs_money4   
      d  
    +
    mpz_t   tds_column   tds_raw_mutex   
    _cs_numeric   
      n  
    +
    tds_column_funcs   tds_result_info   
    _cs_objdata   DATA   tds_compiletime_settings   tds_save_context   
    _cs_objname   DBCOL   name_t   tds_condition   tds_save_env   
    _cs_param   DBCOL2   namelist   tds_connection   tds_save_msg   
    _cs_servermsg   DBDATETIME   names_blob_prefix_t   tds_context   tds_socket   
    _cs_varbinary   DBDATETIME4   native_info   tds_cursor   tds_staticin_stream   
    _cs_varchar   DBDATETIMEALL   NULLREP   tds_cursor_status   tds_staticout_stream   
    _csremote_proc   dblib_buffer_row   
      o  
    +
    tds_datain_stream   tds_sybase_dbdaterec   
    _ct_colinfo   dblib_context   tds_dataout_stream   tds_sybase_dbdaterec2   
    _dblib_error_message   DBMONEY   OBJECTINFO   TDS_DATETIMEALL   tds_thread   
    _dheader   DBMONEY4   
      p  
    +
    tds_dblib_dbprocess   tds_time   
    _drecord   DBNUMERIC   tds_dblib_loginrec   tds_upd_col   
    _hcattr   dboption   pd   tds_dstr   tds_variant   
    _hchk   DBPROC_ROWBUF   pivot_t   tds_dynamic   tds_varmax_stream   
    _hdbc   DBREMOTE_PROC   _options::pivot_t   tds_dynamic_stream   tdsdaterec   
    _hdesc   DBREMOTE_PROC_PARAM   pollfd   tds_encoding   tdsdatetime   
    _heattr   dbstring   ProfileParam   tds_env   tdsdatetime4   
    _henv   dbtypeinfo   ptw32_mcs_node_t_   tds_errno_message_flags   tdsiconvdir   
    _hsattr   DBVARYBIN   
      r  
    +
    tds_error_message   tdsiconvinfo   
    _hstmt   DBVARYCHAR   tds_file_stream   tdsmoney   
    _options   des_key   retry_addr   tds_freeze   tdsmoney4   
    _procedure   DLIST_LIST_TYPE   rsa_public_key   TDS_FUNCS   tdsnumeric   
    _sql_error   dlist_ring   
      s  
    +
    tds_headers   tdsoldmoney   
    _sql_errors   DSNINFO   tds_input_stream   tdsunique   
      a  
    -
      t  
    -
    tds_microsoft_dbdaterec   
    _character_set_alias   func_info   tds_microsoft_dbdaterec2   
    _cs_blkdesc   agg_t   
      k  
    -
    tag_DBPROC_ROWBUF   tds_multiple   
    _cs_clientmsg   asn1_der_iterator   tagSS_TIME2_STRUCT   tds_ntlm_auth   
    _cs_command   
      b  
    -
    KEY_T   tagSS_TIMESTAMPOFFSET_STRUCT   tds_option_arg   
    _cs_config   
      l  
    -
    TDS71_COLLATION   tds_output_stream   
    _cs_connection   BCP_HOSTCOLINFO   TDS72_SMP_HEADER   tds_packet   
    _cs_context   BCP_HOSTFILEINFO   LOGIN_EVENT   tds_addrinfo   TDS_PARSED_PARAM   
    _cs_datafmt   
      c  
    -
    LOGINREC   tds_align_struct   tds_pbcb   
    _cs_daterec   
      m  
    -
    tds_answer   tds_poll_wakeup   
    _cs_datetime   conv_result::cb_t   tds_authentication   tds_pool   
    _cs_datetime4   conv_result::cc_t   MD4Context   tds_bcpcoldata   tds_pool_event   
    _cs_dynamic   col_t   MD5Context   tds_bcpinfo   tds_pool_member   
    _cs_iodesc   conf_params   METACOMP   tds_blob   tds_pool_socket   
    _cs_locale   CONNECT_EVENT   METADATA   tds_capabilities   tds_pool_user   
    _cs_money   conv_result   metadata_t   tds_capability_type   tds_raw_mutex   
    _cs_money4   cs_diag_msg   mpz_t   tds_column   tds_result_info   
    _cs_numeric   cs_diag_msg_client   
      n  
    -
    tds_column_funcs   tds_save_context   
    _cs_objdata   cs_diag_msg_svr   tds_compiletime_settings   tds_save_env   
    _cs_objname   
      d  
    -
    name_t   tds_condition   tds_save_msg   
    _cs_param   namelist   tds_connection   tds_socket   
    _cs_servermsg   DATA   names_blob_prefix_t   tds_context   tds_staticin_stream   
    _cs_varbinary   DBCOL   native_info   tds_cursor   tds_staticout_stream   
    _cs_varchar   DBCOL2   
      o  
    -
    tds_cursor_status   tds_sybase_dbdaterec   
    _csremote_proc   DBDATETIME   tds_datain_stream   tds_sybase_dbdaterec2   
    _ct_colinfo   DBDATETIME4   OBJECTINFO   tds_dataout_stream   tds_thread   
    _dblib_error_message   DBDATETIMEALL   
      p  
    -
    TDS_DATETIMEALL   tds_time   
    _DBREMOTE_PROC   dblib_buffer_row   tds_dblib_dbprocess   tds_upd_col   
    _DBREMOTE_PROC_PARAM   dblib_context   pd   tds_dblib_loginrec   tds_variant   
    _dheader   DBMONEY   pivot_t   tds_dstr   tds_varmax_stream   
    _drecord   DBMONEY4   _options::pivot_t   tds_dynamic   tdsdaterec   
    _hcattr   DBNUMERIC   pollfd   tds_dynamic_stream   tdsdatetime   
    _hchk   dboption   ProfileParam   tds_encoding   tdsdatetime4   
    _hdbc   dbstring   ptw32_mcs_node_t_   tds_env   tdsiconvdir   
    _hdesc   dbtypeinfo   
      r  
    -
    tds_errno_message_flags   tdsiconvinfo   
    _heattr   DBVARYBIN   tds_error_message   tdsmoney   
    _henv   DBVARYCHAR   retry_addr   tds_file_stream   tdsmoney4   
    _hsattr   des_key   rsa_public_key   TDS_FUNCS   tdsnumeric   
    _hstmt   DLIST_LIST_TYPE   
      s  
    -
    tds_headers   tdsoldmoney   
    _null_representation   dlist_ring   tds_input_stream   tdsunique   
    _options   DSNINFO   s_SqlMsgMap   tds_locale   tdsvername_t   
    _procedure   
      e  
    -
    s_v3to2map   tds_login   tmp_col_struct   
    _sql_error   select_info   TDS_MAY_ALIAS   
    END_LOGIN_EVENT   
      e  
    +
    s_SqlMsgMap   tds_locale   tdsvername_t   
    s_v3to2map   tds_login   tmp_col_struct   
    agg_t   END_LOGIN_EVENT   select_info   TDS_MAY_ALIAS   
    _ | a | b | c | d | e | f | k | l | m | n | o | p | r | s | t
    @@ -133,7 +344,7 @@ diff -Nru freetds-1.1.6/doc/reference/dir_000000_000001.html freetds-1.2.3/doc/reference/dir_000000_000001.html --- freetds-1.1.6/doc/reference/dir_000000_000001.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000000_000001.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: include -> freetds Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

include → freetds Relation

File in includeIncludes file in include/freetds
ctlib.htds.h
+

include → freetds Relation

File in includeIncludes file in include/freetds
ctlib.htds.h
diff -Nru freetds-1.1.6/doc/reference/dir_000000_000003.html freetds-1.2.3/doc/reference/dir_000000_000003.html --- freetds-1.1.6/doc/reference/dir_000000_000003.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000000_000003.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: include -> replacements Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

include → replacements Relation

File in includeIncludes file in include/replacements
replacements.hpoll.h
+

include → replacements Relation

File in includeIncludes file in include/replacements
replacements.hpoll.h
diff -Nru freetds-1.1.6/doc/reference/dir_000000_dep.map freetds-1.2.3/doc/reference/dir_000000_dep.map --- freetds-1.1.6/doc/reference/dir_000000_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000000_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000000_dep.md5 freetds-1.2.3/doc/reference/dir_000000_dep.md5 --- freetds-1.1.6/doc/reference/dir_000000_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000000_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1c1349554d282c36000d65188b4dded5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000000_dep.svg freetds-1.2.3/doc/reference/dir_000000_dep.svg --- freetds-1.1.6/doc/reference/dir_000000_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000000_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - -include - -clusterdir_000000 - - - - - - -dir_000000 -include - - -dir_000001 - - -freetds - - - - -dir_000000->dir_000001 - - - -1 - - - - -dir_000003 - - -replacements - - - - -dir_000000->dir_000003 - - - -1 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000000.html freetds-1.2.3/doc/reference/dir_000000.html --- freetds-1.1.6/doc/reference/dir_000000.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000000.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - - - -FreeTDS API: include Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
include Directory Reference
-
-
-
-Directory dependency graph for include:
-
-
-
-
- - -

-Directories

- - - - -

-Files

file  sybdb.h [code]
 Primary include file for db-lib applications.
 
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000001.html freetds-1.2.3/doc/reference/dir_000001.html --- freetds-1.1.6/doc/reference/dir_000001.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000001.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: include/freetds Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
freetds Directory Reference
-
-
- - -

-Directories

- - - - -

-Files

file  tds.h [code]
 Main include file for libtds.
 
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000002.html freetds-1.2.3/doc/reference/dir_000002.html --- freetds-1.1.6/doc/reference/dir_000002.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000002.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: include/freetds/utils Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
utils Directory Reference
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000003.html freetds-1.2.3/doc/reference/dir_000003.html --- freetds-1.1.6/doc/reference/dir_000003.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000003.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - -FreeTDS API: include/replacements Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
replacements Directory Reference
-
-
- - - - - -

-Files

file  poll.h [code]
 Provide poll call where missing.
 
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000004_dep.map freetds-1.2.3/doc/reference/dir_000004_dep.map --- freetds-1.1.6/doc/reference/dir_000004_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000004_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000004_dep.md5 freetds-1.2.3/doc/reference/dir_000004_dep.md5 --- freetds-1.1.6/doc/reference/dir_000004_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000004_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0acb397ee1470257e60598bae1f15e14 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000004_dep.svg freetds-1.2.3/doc/reference/dir_000004_dep.svg --- freetds-1.1.6/doc/reference/dir_000004_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000004_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ - - - - - - -src - -clusterdir_000004 - - - - - - -dir_000004 -src - - -dir_000005 - - -apps - - - - -dir_000000 - - -include - - - - -dir_000005->dir_000000 - - - -10 - - - - -dir_000008 - - -ctlib - - - - -dir_000008->dir_000000 - - - -1 - - - - -dir_000009 - - -dblib - - - - -dir_000009->dir_000000 - - - -14 - - - - -dir_000010 - - -odbc - - - - -dir_000010->dir_000000 - - - -3 - - - - -dir_000011 - - -pool - - - - -dir_000011->dir_000000 - - - -2 - - - - -dir_000013 - - -replacements - - - - -dir_000013->dir_000000 - - - -1 - - - - -dir_000014 - - -server - - - - -dir_000014->dir_000000 - - - -4 - - - - -dir_000012 - - -tds - - - - -dir_000012->dir_000000 - - - -25 - - - - -dir_000016 - - -utils - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000004.html freetds-1.2.3/doc/reference/dir_000004.html --- freetds-1.1.6/doc/reference/dir_000004.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000004.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: src Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
src Directory Reference
-
-
-
-Directory dependency graph for src:
-
-
-
-
- - -

-Directories

-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000005_000000.html freetds-1.2.3/doc/reference/dir_000005_000000.html --- freetds-1.1.6/doc/reference/dir_000005_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000005_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: src/apps -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

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
diff -Nru freetds-1.1.6/doc/reference/dir_000005_dep.map freetds-1.2.3/doc/reference/dir_000005_dep.map --- freetds-1.1.6/doc/reference/dir_000005_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000005_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ - - - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000005_dep.md5 freetds-1.2.3/doc/reference/dir_000005_dep.md5 --- freetds-1.1.6/doc/reference/dir_000005_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000005_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -96708a7611244f5dd33fe66b9939110d \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000005_dep.svg freetds-1.2.3/doc/reference/dir_000005_dep.svg --- freetds-1.1.6/doc/reference/dir_000005_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000005_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ - - - - - - -src/apps - -clusterdir_000004 - - -src - - - -clusterdir_000005 - - - - - - -dir_000005 -apps - - -dir_000000 - - -include - - - - -dir_000005->dir_000000 - - - -10 - - - - -dir_000006 - - -fisql - - - - -dir_000006->dir_000000 - - - -4 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000005.html freetds-1.2.3/doc/reference/dir_000005.html --- freetds-1.1.6/doc/reference/dir_000005.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000005.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,87 +0,0 @@ - - - - - - - -FreeTDS API: src/apps Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
apps Directory Reference
-
-
-
-Directory dependency graph for apps:
-
-
-
-
- - -

-Directories

-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000006_000000.html freetds-1.2.3/doc/reference/dir_000006_000000.html --- freetds-1.1.6/doc/reference/dir_000006_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000006_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: src/apps/fisql -> include Relation +FreeTDS API: src/ctlib -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

fisql → include Relation

File in src/apps/fisqlIncludes file in include
edit.csybdb.h
fisql.csybdb.h
handlers.csybdb.h
interrupt.csybdb.h
+

ctlib → include Relation

File in src/ctlibIncludes file in include
ctutil.cfreetds / tds.h
diff -Nru freetds-1.1.6/doc/reference/dir_000006_dep.map freetds-1.2.3/doc/reference/dir_000006_dep.map --- freetds-1.1.6/doc/reference/dir_000006_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000006_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000006_dep.md5 freetds-1.2.3/doc/reference/dir_000006_dep.md5 --- freetds-1.1.6/doc/reference/dir_000006_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000006_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -319787c61dc89eb088d80e008ad977f2 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000006_dep.svg freetds-1.2.3/doc/reference/dir_000006_dep.svg --- freetds-1.1.6/doc/reference/dir_000006_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000006_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/apps/fisql - -clusterdir_000005 - - -apps - - - - -dir_000006 - - -fisql - - - - -dir_000000 - - -include - - - - -dir_000006->dir_000000 - - - -4 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000006.html freetds-1.2.3/doc/reference/dir_000006.html --- freetds-1.1.6/doc/reference/dir_000006.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000006.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: src/apps/fisql Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
fisql Directory Reference
-
-
-
-Directory dependency graph for fisql:
-
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000007_000000.html freetds-1.2.3/doc/reference/dir_000007_000000.html --- freetds-1.1.6/doc/reference/dir_000007_000000.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000007_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,76 @@ + + + + + + + +FreeTDS API: src/dblib -> include Relation + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+

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
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_000007.html freetds-1.2.3/doc/reference/dir_000007.html --- freetds-1.1.6/doc/reference/dir_000007.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000007.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: vms Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
vms Directory Reference
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000008_000000.html freetds-1.2.3/doc/reference/dir_000008_000000.html --- freetds-1.1.6/doc/reference/dir_000008_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000008_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: src/ctlib -> include Relation +FreeTDS API: src/odbc -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

ctlib → include Relation

File in src/ctlibIncludes file in include
ctutil.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
diff -Nru freetds-1.1.6/doc/reference/dir_000008_dep.map freetds-1.2.3/doc/reference/dir_000008_dep.map --- freetds-1.1.6/doc/reference/dir_000008_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000008_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000008_dep.md5 freetds-1.2.3/doc/reference/dir_000008_dep.md5 --- freetds-1.1.6/doc/reference/dir_000008_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000008_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -112f3757547f2669c61e37c731d932ad \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000008_dep.svg freetds-1.2.3/doc/reference/dir_000008_dep.svg --- freetds-1.1.6/doc/reference/dir_000008_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000008_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/ctlib - -clusterdir_000004 - - -src - - - - -dir_000008 - - -ctlib - - - - -dir_000000 - - -include - - - - -dir_000008->dir_000000 - - - -1 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000008.html freetds-1.2.3/doc/reference/dir_000008.html --- freetds-1.1.6/doc/reference/dir_000008.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000008.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: src/ctlib Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
ctlib Directory Reference
-
-
-
-Directory dependency graph for ctlib:
-
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000009_000000.html freetds-1.2.3/doc/reference/dir_000009_000000.html --- freetds-1.1.6/doc/reference/dir_000009_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000009_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: src/dblib -> include Relation +FreeTDS API: src/pool -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

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
+

pool → include Relation

File in src/poolIncludes file in include
pool.hfreetds / tds.h
stream.cfreetds / tds.h
diff -Nru freetds-1.1.6/doc/reference/dir_000009_dep.map freetds-1.2.3/doc/reference/dir_000009_dep.map --- freetds-1.1.6/doc/reference/dir_000009_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000009_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000009_dep.md5 freetds-1.2.3/doc/reference/dir_000009_dep.md5 --- freetds-1.1.6/doc/reference/dir_000009_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000009_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -b794f405a1ade7d03b6f98a916f39a69 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000009_dep.svg freetds-1.2.3/doc/reference/dir_000009_dep.svg --- freetds-1.1.6/doc/reference/dir_000009_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000009_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/dblib - -clusterdir_000004 - - -src - - - - -dir_000009 - - -dblib - - - - -dir_000000 - - -include - - - - -dir_000009->dir_000000 - - - -14 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000009.html freetds-1.2.3/doc/reference/dir_000009.html --- freetds-1.1.6/doc/reference/dir_000009.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000009.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ - - - - - - - -FreeTDS API: src/dblib Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
dblib Directory Reference
-
-
-
-Directory dependency graph for dblib:
-
-
-
-
- - - - - -

-Files

file  dblib.c
 Main implementation file for db-lib.
 
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000010_000000.html freetds-1.2.3/doc/reference/dir_000010_000000.html --- freetds-1.1.6/doc/reference/dir_000010_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000010_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: src/odbc -> include Relation +FreeTDS API: src/replacements -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

odbc → include Relation

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

replacements → include Relation

File in src/replacementsIncludes file in include
iconv.cfreetds / tds.h
diff -Nru freetds-1.1.6/doc/reference/dir_000010_dep.map freetds-1.2.3/doc/reference/dir_000010_dep.map --- freetds-1.1.6/doc/reference/dir_000010_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000010_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000010_dep.md5 freetds-1.2.3/doc/reference/dir_000010_dep.md5 --- freetds-1.1.6/doc/reference/dir_000010_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000010_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -69fe8feee1527724ab340a5ce56c1735 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000010_dep.svg freetds-1.2.3/doc/reference/dir_000010_dep.svg --- freetds-1.1.6/doc/reference/dir_000010_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000010_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/odbc - -clusterdir_000004 - - -src - - - - -dir_000010 - - -odbc - - - - -dir_000000 - - -include - - - - -dir_000010->dir_000000 - - - -3 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000010.html freetds-1.2.3/doc/reference/dir_000010.html --- freetds-1.1.6/doc/reference/dir_000010.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000010.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: src/odbc Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
odbc Directory Reference
-
-
-
-Directory dependency graph for odbc:
-
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000011_000000.html freetds-1.2.3/doc/reference/dir_000011_000000.html --- freetds-1.1.6/doc/reference/dir_000011_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000011_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: src/pool -> include Relation +FreeTDS API: src/server -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

pool → include Relation

File in src/poolIncludes file in include
pool.hfreetds / tds.h
stream.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
diff -Nru freetds-1.1.6/doc/reference/dir_000011_dep.map freetds-1.2.3/doc/reference/dir_000011_dep.map --- freetds-1.1.6/doc/reference/dir_000011_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000011_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000011_dep.md5 freetds-1.2.3/doc/reference/dir_000011_dep.md5 --- freetds-1.1.6/doc/reference/dir_000011_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000011_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -6cce6bcb549fc069ac825de855ed0dc9 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000011_dep.svg freetds-1.2.3/doc/reference/dir_000011_dep.svg --- freetds-1.1.6/doc/reference/dir_000011_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000011_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/pool - -clusterdir_000004 - - -src - - - - -dir_000011 - - -pool - - - - -dir_000000 - - -include - - - - -dir_000011->dir_000000 - - - -2 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000011.html freetds-1.2.3/doc/reference/dir_000011.html --- freetds-1.1.6/doc/reference/dir_000011.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000011.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: src/pool Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
pool Directory Reference
-
-
-
-Directory dependency graph for pool:
-
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000012_000000.html freetds-1.2.3/doc/reference/dir_000012_000000.html --- freetds-1.1.6/doc/reference/dir_000012_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000012_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: src/tds -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

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
diff -Nru freetds-1.1.6/doc/reference/dir_000012_dep.map freetds-1.2.3/doc/reference/dir_000012_dep.map --- freetds-1.1.6/doc/reference/dir_000012_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000012_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000012_dep.md5 freetds-1.2.3/doc/reference/dir_000012_dep.md5 --- freetds-1.1.6/doc/reference/dir_000012_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000012_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5af7276057440f788a8ff70e52c30615 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000012_dep.svg freetds-1.2.3/doc/reference/dir_000012_dep.svg --- freetds-1.1.6/doc/reference/dir_000012_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000012_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ - - - - - - -src/tds - -clusterdir_000004 - - -src - - - -clusterdir_000012 - - - - - - -dir_000012 -tds - - -dir_000000 - - -include - - - - -dir_000012->dir_000000 - - - -25 - - - - -dir_000015 - - -example - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000012.html freetds-1.2.3/doc/reference/dir_000012.html --- freetds-1.1.6/doc/reference/dir_000012.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000012.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - -FreeTDS API: src/tds Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tds Directory Reference
-
-
-
-Directory dependency graph for tds:
-
-
-
-
- - -

-Directories

- - - - - - - - - - - - - - - - - - - -

-Files

file  bulk.c
 Handle bulk copy.
 
file  data.c
 Handle different data handling from network.
 
file  iconv.c
 Handle character conversions to/from server.
 
file  read.c
 Grab data from TDS packets.
 
file  stream.c
 Handle stream of data.
 
file  token.c
 Contains all routines to get replies from server.
 
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000013_000000.html freetds-1.2.3/doc/reference/dir_000013_000000.html --- freetds-1.1.6/doc/reference/dir_000013_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000013_000000.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ - - - - - - - -FreeTDS API: src/replacements -> include Relation - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

replacements → include Relation

File in src/replacementsIncludes file in include
iconv.cfreetds / tds.h
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000013_dep.map freetds-1.2.3/doc/reference/dir_000013_dep.map --- freetds-1.1.6/doc/reference/dir_000013_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000013_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000013_dep.md5 freetds-1.2.3/doc/reference/dir_000013_dep.md5 --- freetds-1.1.6/doc/reference/dir_000013_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000013_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -5f1ccf3dd51f9eb1edbc98090e4a88c6 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000013_dep.svg freetds-1.2.3/doc/reference/dir_000013_dep.svg --- freetds-1.1.6/doc/reference/dir_000013_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000013_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/replacements - -clusterdir_000004 - - -src - - - - -dir_000013 - - -replacements - - - - -dir_000000 - - -include - - - - -dir_000013->dir_000000 - - - -1 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000013.html freetds-1.2.3/doc/reference/dir_000013.html --- freetds-1.1.6/doc/reference/dir_000013.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000013.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ - - - - - - - -FreeTDS API: src/replacements Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
replacements Directory Reference
-
-
-
-Directory dependency graph for replacements:
-
-
-
-
- - - - - -

-Files

file  iconv.c
 This file implements a very simple iconv.
 
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000014_000000.html freetds-1.2.3/doc/reference/dir_000014_000000.html --- freetds-1.1.6/doc/reference/dir_000014_000000.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000014_000000.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,11 +1,11 @@ - + - + -FreeTDS API: src/server -> include Relation +FreeTDS API: src/apps/fisql -> include Relation @@ -29,18 +29,21 @@ - + +/* @license-end */
-

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
+

fisql → include Relation

File in src/apps/fisqlIncludes file in include
edit.csybdb.h
fisql.csybdb.h
handlers.csybdb.h
interrupt.csybdb.h
diff -Nru freetds-1.1.6/doc/reference/dir_000014_dep.map freetds-1.2.3/doc/reference/dir_000014_dep.map --- freetds-1.1.6/doc/reference/dir_000014_dep.map 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000014_dep.map 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000014_dep.md5 freetds-1.2.3/doc/reference/dir_000014_dep.md5 --- freetds-1.1.6/doc/reference/dir_000014_dep.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000014_dep.md5 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -1f41cb679c1c4bbe76fb2e29841ebf8c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_000014_dep.svg freetds-1.2.3/doc/reference/dir_000014_dep.svg --- freetds-1.1.6/doc/reference/dir_000014_dep.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000014_dep.svg 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - -src/server - -clusterdir_000004 - - -src - - - - -dir_000014 - - -server - - - - -dir_000000 - - -include - - - - -dir_000014->dir_000000 - - - -4 - - - - - diff -Nru freetds-1.1.6/doc/reference/dir_000014.html freetds-1.2.3/doc/reference/dir_000014.html --- freetds-1.1.6/doc/reference/dir_000014.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000014.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ - - - - - - - -FreeTDS API: src/server Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
server Directory Reference
-
-
-
-Directory dependency graph for server:
-
-
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000015.html freetds-1.2.3/doc/reference/dir_000015.html --- freetds-1.1.6/doc/reference/dir_000015.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000015.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/tds/example Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
example Directory Reference
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000016.html freetds-1.2.3/doc/reference/dir_000016.html --- freetds-1.1.6/doc/reference/dir_000016.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000016.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: src/utils Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
utils Directory Reference
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000017.html freetds-1.2.3/doc/reference/dir_000017.html --- freetds-1.1.6/doc/reference/dir_000017.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000017.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - -FreeTDS API: win32 Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
win32 Directory Reference
-
-
- - -

-Directories

-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_000018.html freetds-1.2.3/doc/reference/dir_000018.html --- freetds-1.1.6/doc/reference/dir_000018.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_000018.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - -FreeTDS API: win32/freetds Directory Reference - - - - - - - - - -
-
- - - - - - -
-
FreeTDS API -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
freetds Directory Reference
-
-
-
- - - - diff -Nru freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.map freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.map --- freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.md5 freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.md5 --- freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +93a10767e847ad0787f4c3ffac3ecfdf \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.svg freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.svg --- freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/server + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_075bb3ff235063c77951cd176d15a741 + + +server + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_075bb3ff235063c77951cd176d15a741->dir_d44c64559bbebec7f509842c48db8b23 + + + +4 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741.html freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741.html --- freetds-1.1.6/doc/reference/dir_075bb3ff235063c77951cd176d15a741.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_075bb3ff235063c77951cd176d15a741.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: src/server Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
server Directory Reference
+
+
+
+Directory dependency graph for server:
+
+
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_0da4150d9fb2a5fe66d7630d7a98e2a8.html freetds-1.2.3/doc/reference/dir_0da4150d9fb2a5fe66d7630d7a98e2a8.html --- freetds-1.1.6/doc/reference/dir_0da4150d9fb2a5fe66d7630d7a98e2a8.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_0da4150d9fb2a5fe66d7630d7a98e2a8.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: include/freetds/utils Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
utils Directory Reference
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_313caf1132e152dd9b58bea13a4052ca.html freetds-1.2.3/doc/reference/dir_313caf1132e152dd9b58bea13a4052ca.html --- freetds-1.1.6/doc/reference/dir_313caf1132e152dd9b58bea13a4052ca.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_313caf1132e152dd9b58bea13a4052ca.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: src/utils Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
utils Directory Reference
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.map freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.map --- freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,8 @@ + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.md5 freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.md5 --- freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +8c1db1b916c657ed34cb3e478d73e43c \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.svg freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.svg --- freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,71 @@ + + + + + + +src/apps + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +clusterdir_53adf0b982dc8545998aae3f283a5a58 + + + + + + + +dir_53adf0b982dc8545998aae3f283a5a58 +apps + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_53adf0b982dc8545998aae3f283a5a58->dir_d44c64559bbebec7f509842c48db8b23 + + + +10 + + + + + +dir_cbfc6763032c97ce96998fb3f3059024 + + +fisql + + + + + +dir_cbfc6763032c97ce96998fb3f3059024->dir_d44c64559bbebec7f509842c48db8b23 + + + +4 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58.html freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58.html --- freetds-1.1.6/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_53adf0b982dc8545998aae3f283a5a58.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,90 @@ + + + + + + + +FreeTDS API: src/apps Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
apps Directory Reference
+
+
+
+Directory dependency graph for apps:
+
+
+
+
+ + +

+Directories

+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_55f38a2371e9df5f191489d3a446274f.html freetds-1.2.3/doc/reference/dir_55f38a2371e9df5f191489d3a446274f.html --- freetds-1.1.6/doc/reference/dir_55f38a2371e9df5f191489d3a446274f.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_55f38a2371e9df5f191489d3a446274f.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: win32/freetds Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
freetds Directory Reference
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_66c0b1abd56d99bc52d1cf04cdcfa94c.html freetds-1.2.3/doc/reference/dir_66c0b1abd56d99bc52d1cf04cdcfa94c.html --- freetds-1.1.6/doc/reference/dir_66c0b1abd56d99bc52d1cf04cdcfa94c.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_66c0b1abd56d99bc52d1cf04cdcfa94c.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: src/tds/example Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
example Directory Reference
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map --- freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 --- freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +8ff31b623a03243761d51aa4592bf549 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg --- freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,195 @@ + + + + + + +src + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + + + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba +src + + + +dir_53adf0b982dc8545998aae3f283a5a58 + + +apps + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_53adf0b982dc8545998aae3f283a5a58->dir_d44c64559bbebec7f509842c48db8b23 + + + +10 + + + + + +dir_99d384962ca3f8ea1fb7b61d44d1972c + + +ctlib + + + + + +dir_99d384962ca3f8ea1fb7b61d44d1972c->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + +dir_a40d3d1dfafadc5a5d3063931c3db36e + + +dblib + + + + + +dir_a40d3d1dfafadc5a5d3063931c3db36e->dir_d44c64559bbebec7f509842c48db8b23 + + + +14 + + + + + +dir_807893467092ee3c78fdb68ff7be3fa1 + + +odbc + + + + + +dir_807893467092ee3c78fdb68ff7be3fa1->dir_d44c64559bbebec7f509842c48db8b23 + + + +3 + + + + + +dir_e2de76ba30642a92752881ffd21fbc7e + + +pool + + + + + +dir_e2de76ba30642a92752881ffd21fbc7e->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + +dir_bee58700ce781bb55a015c4ff9b057cf + + +replacements + + + + + +dir_bee58700ce781bb55a015c4ff9b057cf->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + +dir_075bb3ff235063c77951cd176d15a741 + + +server + + + + + +dir_075bb3ff235063c77951cd176d15a741->dir_d44c64559bbebec7f509842c48db8b23 + + + +4 + + + + + +dir_f7308370ebb9c2ff76f3bdfe0748aabf + + +tds + + + + + +dir_f7308370ebb9c2ff76f3bdfe0748aabf->dir_d44c64559bbebec7f509842c48db8b23 + + + +25 + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba.html freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba.html --- freetds-1.1.6/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_68267d1309a1af8e8297ef4c3efbcdba.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,90 @@ + + + + + + + +FreeTDS API: src Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
+
+
+ + +

+Directories

+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.map freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.map --- freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.md5 freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.md5 --- freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +ba0aaf988497bf8260f389adc31749af \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.svg freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.svg --- freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/odbc + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_807893467092ee3c78fdb68ff7be3fa1 + + +odbc + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_807893467092ee3c78fdb68ff7be3fa1->dir_d44c64559bbebec7f509842c48db8b23 + + + +3 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1.html freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1.html --- freetds-1.1.6/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: src/odbc Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
odbc Directory Reference
+
+
+
+Directory dependency graph for odbc:
+
+
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_88c98ec7a422f3972a0293d4e4a2e62e.html freetds-1.2.3/doc/reference/dir_88c98ec7a422f3972a0293d4e4a2e62e.html --- freetds-1.1.6/doc/reference/dir_88c98ec7a422f3972a0293d4e4a2e62e.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_88c98ec7a422f3972a0293d4e4a2e62e.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,80 @@ + + + + + + + +FreeTDS API: vms Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vms Directory Reference
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.map freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.map --- freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.md5 freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.md5 --- freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +6d63de8b2bff2a57a61d7a8a00a83afd \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.svg freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.svg --- freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/ctlib + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_99d384962ca3f8ea1fb7b61d44d1972c + + +ctlib + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_99d384962ca3f8ea1fb7b61d44d1972c->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c.html freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c.html --- freetds-1.1.6/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_99d384962ca3f8ea1fb7b61d44d1972c.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: src/ctlib Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ctlib Directory Reference
+
+
+
+Directory dependency graph for ctlib:
+
+
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.map freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.map --- freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.md5 freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.md5 --- freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +b45c85d4a180ef119d413d7c205f57a5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.svg freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.svg --- freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/dblib + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_a40d3d1dfafadc5a5d3063931c3db36e + + +dblib + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_a40d3d1dfafadc5a5d3063931c3db36e->dir_d44c64559bbebec7f509842c48db8b23 + + + +14 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e.html freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e.html --- freetds-1.1.6/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,94 @@ + + + + + + + +FreeTDS API: src/dblib Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dblib Directory Reference
+
+
+
+Directory dependency graph for dblib:
+
+
+
+
+ + + + + + +

+Files

file  bcp.c
 
file  dblib.c
 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_b4f92dd377abba25bba37a57cb06d57a.html freetds-1.2.3/doc/reference/dir_b4f92dd377abba25bba37a57cb06d57a.html --- freetds-1.1.6/doc/reference/dir_b4f92dd377abba25bba37a57cb06d57a.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_b4f92dd377abba25bba37a57cb06d57a.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + + + +FreeTDS API: win32 Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
win32 Directory Reference
+
+
+ + +

+Directories

+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.map freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.map --- freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.md5 freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.md5 --- freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +41c2940fe81ffeee9b1f98e1cdeae30e \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.svg freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.svg --- freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/replacements + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_bee58700ce781bb55a015c4ff9b057cf + + +replacements + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_bee58700ce781bb55a015c4ff9b057cf->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf.html freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf.html --- freetds-1.1.6/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,92 @@ + + + + + + + +FreeTDS API: src/replacements Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
replacements Directory Reference
+
+
+
+Directory dependency graph for replacements:
+
+
+
+
+ + + + +

+Files

file  iconv.c
 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.map freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.map --- freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.md5 freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.md5 --- freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +2f0709586c241666d2ef4dc9fc9d8cd7 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.svg freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.svg --- freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/apps/fisql + + +clusterdir_53adf0b982dc8545998aae3f283a5a58 + + +apps + + + + + +dir_cbfc6763032c97ce96998fb3f3059024 + + +fisql + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_cbfc6763032c97ce96998fb3f3059024->dir_d44c64559bbebec7f509842c48db8b23 + + + +4 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024.html freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024.html --- freetds-1.1.6/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_cbfc6763032c97ce96998fb3f3059024.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: src/apps/fisql Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fisql Directory Reference
+
+
+
+Directory dependency graph for fisql:
+
+
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.map freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.map --- freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 --- freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +502813e13ba09ce64f6702ded54774a5 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.svg freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.svg --- freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,63 @@ + + + + + + +include + + +clusterdir_d44c64559bbebec7f509842c48db8b23 + + + + + + + +dir_d44c64559bbebec7f509842c48db8b23 +include + + + +dir_f46f2c05841018b6ef8dbd3316ddb41a + + +freetds + + + + + +dir_d44c64559bbebec7f509842c48db8b23->dir_f46f2c05841018b6ef8dbd3316ddb41a + + + +1 + + + + + +dir_e3997d4764d728ea089c0113f7ab9254 + + +replacements + + + + + +dir_d44c64559bbebec7f509842c48db8b23->dir_e3997d4764d728ea089c0113f7ab9254 + + + +1 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23.html freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23.html --- freetds-1.1.6/doc/reference/dir_d44c64559bbebec7f509842c48db8b23.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_d44c64559bbebec7f509842c48db8b23.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + + + +FreeTDS API: include Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
include Directory Reference
+
+
+
+Directory dependency graph for include:
+
+
+
+
+ + +

+Directories

+ + + + +

+Files

file  sybdb.h [code]
 Primary include file for db-lib applications.
 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.map freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.map --- freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,6 @@ + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.md5 freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.md5 --- freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +de8da6fd055c766bd7aac69d96070ad4 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.svg freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.svg --- freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,49 @@ + + + + + + +src/pool + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_e2de76ba30642a92752881ffd21fbc7e + + +pool + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_e2de76ba30642a92752881ffd21fbc7e->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e.html freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e.html --- freetds-1.1.6/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,86 @@ + + + + + + + +FreeTDS API: src/pool Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
pool Directory Reference
+
+
+
+Directory dependency graph for pool:
+
+
+
+
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_e3997d4764d728ea089c0113f7ab9254.html freetds-1.2.3/doc/reference/dir_e3997d4764d728ea089c0113f7ab9254.html --- freetds-1.1.6/doc/reference/dir_e3997d4764d728ea089c0113f7ab9254.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_e3997d4764d728ea089c0113f7ab9254.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,87 @@ + + + + + + + +FreeTDS API: include/replacements Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
replacements Directory Reference
+
+
+ + + + + +

+Files

file  poll.h [code]
 Provide poll call where missing.
 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_f46f2c05841018b6ef8dbd3316ddb41a.html freetds-1.2.3/doc/reference/dir_f46f2c05841018b6ef8dbd3316ddb41a.html --- freetds-1.1.6/doc/reference/dir_f46f2c05841018b6ef8dbd3316ddb41a.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_f46f2c05841018b6ef8dbd3316ddb41a.html 2020-07-09 09:01:57.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + + + +FreeTDS API: include/freetds Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
freetds Directory Reference
+
+
+ + +

+Directories

+ + + +

+Files

file  tds.h [code]
 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.map freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.map --- freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.map 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.map 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1,7 @@ + + + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.md5 freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.md5 --- freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.md5 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.md5 2020-07-09 09:02:00.000000000 +0000 @@ -0,0 +1 @@ +c0b5a07e807b5af73dbc4dd4bc867695 \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.svg freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.svg --- freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.svg 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf_dep.svg 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,61 @@ + + + + + + +src/tds + + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +clusterdir_f7308370ebb9c2ff76f3bdfe0748aabf + + + + + + + +dir_f7308370ebb9c2ff76f3bdfe0748aabf +tds + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_f7308370ebb9c2ff76f3bdfe0748aabf->dir_d44c64559bbebec7f509842c48db8b23 + + + +25 + + + + + +dir_66c0b1abd56d99bc52d1cf04cdcfa94c + + +example + + + + + diff -Nru freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf.html freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf.html --- freetds-1.1.6/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf.html 1970-01-01 00:00:00.000000000 +0000 +++ freetds-1.2.3/doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf.html 2020-07-09 09:02:01.000000000 +0000 @@ -0,0 +1,111 @@ + + + + + + + +FreeTDS API: src/tds Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
FreeTDS API +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
tds Directory Reference
+
+
+
+Directory dependency graph for tds:
+
+
+
+
+ + +

+Directories

+ + + + + + + + + + + + + + + + + + + +

+Files

file  bulk.c
 Handle bulk copy.
 
file  data.c
 Handle different data handling from network.
 
file  iconv.c
 Handle character conversions to/from server.
 
file  read.c
 Grab data from TDS packets.
 
file  stream.c
 Handle stream of data.
 
file  token.c
 Contains all routines to get replies from server.
 
+
+ + + + diff -Nru freetds-1.1.6/doc/reference/doxygen.css freetds-1.2.3/doc/reference/doxygen.css --- freetds-1.1.6/doc/reference/doxygen.css 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/doxygen.css 2020-07-09 09:01:53.000000000 +0000 @@ -1,9 +1,13 @@ -/* The standard CSS for doxygen 1.8.12 */ +/* The standard CSS for doxygen 1.8.18 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + /* @group Heading Levels */ h1.groupheader { @@ -49,17 +53,24 @@ font-weight: bold; } -div.multicol { +ul.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; + column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; + column-count: 3; } p.startli, p.startdd { margin-top: 2px; } +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + p.starttd { margin-top: 0px; } @@ -76,6 +87,15 @@ margin-bottom: 2px; } +p.interli { +} + +p.interdd { +} + +p.intertd { +} + /* @end */ caption { @@ -130,12 +150,12 @@ a.qindexHL { font-weight: bold; background-color: #9CAFD4; - color: #ffffff; + color: #FFFFFF; border: 1px double #869DCA; } .contents a.qindexHL:visited { - color: #ffffff; + color: #FFFFFF; } a.el { @@ -159,6 +179,25 @@ margin-left: -1cm; } +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; @@ -173,8 +212,8 @@ } div.fragment { - padding: 0px; - margin: 4px 8px 4px 2px; + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } @@ -244,7 +283,7 @@ div.ah, span.ah { background-color: black; font-weight: bold; - color: #ffffff; + color: #FFFFFF; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; @@ -320,7 +359,7 @@ } -img.formulaInl { +img.formulaInl, img.inline { vertical-align: middle; } @@ -398,6 +437,13 @@ padding: 0 12px 0 16px; } +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + /* @end */ /* @@ -494,7 +540,7 @@ white-space: nowrap; } -.memItemRight { +.memItemRight, .memTemplItemRight { width: 100%; } @@ -662,17 +708,17 @@ padding-left: 0px; } -.params .paramname, .retval .paramname { +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } -.params .paramtype { +.params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; } -.params .paramdir { +.params .paramdir, .tparams .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } @@ -1077,72 +1123,143 @@ padding: 5px 5px 5px 10px; } -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; } -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; +dl { + padding: 0 0 0 0; } -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; } -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; } dl.section dd { @@ -1211,6 +1328,11 @@ text-align: center; } +.plantumlgraph +{ + text-align: center; +} + .diagraph { text-align: center; @@ -1254,6 +1376,11 @@ width: 200px; } +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; @@ -1262,6 +1389,12 @@ padding-top: 2px; } +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; @@ -1291,6 +1424,26 @@ margin-left: 45px; } +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + .inherit_header { font-weight: bold; color: gray; @@ -1404,7 +1557,7 @@ } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; + border-top-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } @@ -1432,7 +1585,7 @@ } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; + border-bottom-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } @@ -1459,7 +1612,7 @@ left: 100%; } #powerTip.e:after { - border-left-color: #ffffff; + border-left-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; @@ -1475,7 +1628,7 @@ right: 100%; } #powerTip.w:after { - border-right-color: #ffffff; + border-right-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; @@ -1506,3 +1659,72 @@ } } +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff -Nru freetds-1.1.6/doc/reference/dynsections.js freetds-1.2.3/doc/reference/dynsections.js --- freetds-1.1.6/doc/reference/dynsections.js 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/dynsections.js 2020-07-09 09:01:53.000000000 +0000 @@ -1,3 +1,27 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + 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. + + @licend The above is the entire license notice for the JavaScript code in this file + */ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); @@ -15,7 +39,7 @@ summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + } return false; } @@ -94,4 +118,4 @@ $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } - +/* @license-end */ diff -Nru freetds-1.1.6/doc/reference/files.html freetds-1.2.3/doc/reference/files.html --- freetds-1.1.6/doc/reference/files.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/files.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File List @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -64,103 +67,105 @@
Here is a list of all documented files with brief descriptions:
[detail level 1234]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  include
  freetds
  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
 checks.h
 configs.h
 convert.h
 data.h
 enum_cap.h
 iconv.h
 macros.h
 odbc.h
 popvis.h
 proto.h
 pushvis.h
 server.h
 stream.h
 sysdep_private.h
 tds.hMain include file for libtds
 thread.h
 time.h
 tls.h
 utils.h
 version.h
 windows.h
  replacements
 poll.hProvide poll call where missing
 readpassphrase.h
 bkpublic.h
 config.h
 cspublic.h
 cstypes.h
 ctlib.h
 ctpublic.h
 dblib.h
 odbcss.h
 replacements.h
 sqldb.h
 sqlfront.h
 sybdb.dox.h
 sybdb.hPrimary include file for db-lib applications
 syberror.h
 sybfront.h
 tds_sysdep_public.h
  src
  apps
  fisql
 edit.h
 handlers.h
 interrupt.h
 terminal.h
 freebcp.h
  dblib
 buffering.h
 dblib.cMain implementation file for db-lib
 error_table.h
  odbc
 error_export.h
 odbc_export.h
 resource.h
 sqlwparams.h
  pool
 pool.h
  replacements
 iconv.cThis file implements a very simple iconv
 iconv_charsets.h
  tds
 alternative_character_sets.h
 bulk.cHandle bulk copy
 character_sets.h
 data.cHandle different data handling from network
 encodings.h
 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
  win32
  freetds
 sysconfdir.h
  include
  freetds
  utils
 bjoern-utf8.h
 des.h
 dlist.h
 dlist.tmpl.h
 hmac_md5.h
 md4.h
 md5.h
 string.h
 alloca.h
 alternative_character_sets.h
 bool.h
 bytes.h
 character_sets.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
 server.h
 stream.h
 sysdep_private.h
 tds.h
 thread.h
 time.h
 tls.h
 utils.h
 version.h
 windows.h
  replacements
 poll.hProvide poll call where missing
 readpassphrase.h
 bkpublic.h
 config.h
 cspublic.h
 cstypes.h
 ctlib.h
 ctpublic.h
 dblib.h
 odbcss.h
 replacements.h
 sqldb.h
 sqlfront.h
 sybdb.dox.h
 sybdb.hPrimary include file for db-lib applications
 syberror.h
 sybfront.h
 tds_sysdep_public.h
  src
  apps
  fisql
 edit.h
 handlers.h
 interrupt.h
 terminal.h
 freebcp.h
  dblib
 bcp.c
 buffering.h
 dblib.c
 error_table.h
  odbc
 error_export.h
 odbc_export.h
 resource.h
 sqlwparams.h
  pool
 pool.h
  replacements
 iconv.c
 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
  vms
 stdint.h
 vargdefs.h
  win32
  freetds
 sysconfdir.h
@@ -168,7 +173,7 @@ diff -Nru freetds-1.1.6/doc/reference/functions.html freetds-1.2.3/doc/reference/functions.html --- freetds-1.1.6/doc/reference/functions.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/functions.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: Class Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,489 +65,502 @@

- a -

- b -

- c -

- d -

- e -

- f -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- q -

- r -

- s -

- t -

- u -

- w -

- y -

@@ -552,7 +568,7 @@ diff -Nru freetds-1.1.6/doc/reference/functions_vars.html freetds-1.2.3/doc/reference/functions_vars.html --- freetds-1.1.6/doc/reference/functions_vars.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/functions_vars.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: Class Members - Variables @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,489 +65,502 @@

- a -

- b -

- c -

- d -

- e -

- f -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- q -

- r -

- s -

- t -

- u -

- w -

- y -

@@ -552,7 +568,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_a.html freetds-1.2.3/doc/reference/globals_a.html --- freetds-1.1.6/doc/reference/globals_a.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_a.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,7 @@

- a -

@@ -70,7 +73,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_b.html freetds-1.2.3/doc/reference/globals_b.html --- freetds-1.1.6/doc/reference/globals_b.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_b.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,52 +65,67 @@

- b -

@@ -115,7 +133,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_defs.html freetds-1.2.3/doc/reference/globals_defs.html --- freetds-1.1.6/doc/reference/globals_defs.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_defs.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,121 +65,121 @@

- b -

- d -

- i -

- t -

@@ -184,7 +187,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_d.html freetds-1.2.3/doc/reference/globals_d.html --- freetds-1.1.6/doc/reference/globals_d.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_d.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,659 +65,663 @@

- d -

@@ -722,7 +729,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_enum.html freetds-1.2.3/doc/reference/globals_enum.html --- freetds-1.1.6/doc/reference/globals_enum.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_enum.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,13 +63,13 @@
 
@@ -74,7 +77,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_eval.html freetds-1.2.3/doc/reference/globals_eval.html --- freetds-1.1.6/doc/reference/globals_eval.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_eval.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,46 +63,46 @@
 
@@ -107,7 +110,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func_a.html freetds-1.2.3/doc/reference/globals_func_a.html --- freetds-1.1.6/doc/reference/globals_func_a.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func_a.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,7 @@

- a -

@@ -70,7 +73,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func_b.html freetds-1.2.3/doc/reference/globals_func_b.html --- freetds-1.1.6/doc/reference/globals_func_b.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func_b.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,49 +65,64 @@

- b -

@@ -112,7 +130,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func_d.html freetds-1.2.3/doc/reference/globals_func_d.html --- freetds-1.1.6/doc/reference/globals_func_d.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func_d.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,567 +65,567 @@

- d -

@@ -630,7 +633,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func.html freetds-1.2.3/doc/reference/globals_func.html --- freetds-1.1.6/doc/reference/globals_func.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,12 +63,48 @@
  -

- _ -

    +

    - _ -

      +
    • _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_read_hostfile() +: bcp.c +
    • +
    • _bcp_readfmt_colinfo() +: bcp.c +
    • _dbcoldata() -: dblib.c +: dblib.c
    • _dbresults() -: dblib.c +: dblib.c
@@ -73,7 +112,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func_r.html freetds-1.2.3/doc/reference/globals_func_r.html --- freetds-1.1.6/doc/reference/globals_func_r.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func_r.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,10 @@

- r -

@@ -70,7 +76,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func_s.html freetds-1.2.3/doc/reference/globals_func_s.html --- freetds-1.1.6/doc/reference/globals_func_s.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func_s.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,7 @@

- s -

@@ -70,7 +73,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_func_t.html freetds-1.2.3/doc/reference/globals_func_t.html --- freetds-1.1.6/doc/reference/globals_func_t.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_func_t.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,22 +65,22 @@

- t -

@@ -620,7 +641,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals.html freetds-1.2.3/doc/reference/globals.html --- freetds-1.1.6/doc/reference/globals.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,12 +63,48 @@
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_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_read_hostfile() +: bcp.c +
    • +
    • _bcp_readfmt_colinfo() +: bcp.c +
    • _dbcoldata() -: dblib.c +: dblib.c
    • _dbresults() -: dblib.c +: dblib.c
@@ -73,7 +112,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_i.html freetds-1.2.3/doc/reference/globals_i.html --- freetds-1.1.6/doc/reference/globals_i.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_i.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,7 @@

- i -

@@ -70,7 +73,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_r.html freetds-1.2.3/doc/reference/globals_r.html --- freetds-1.1.6/doc/reference/globals_r.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_r.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,10 @@

- r -

@@ -70,7 +76,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_s.html freetds-1.2.3/doc/reference/globals_s.html --- freetds-1.1.6/doc/reference/globals_s.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_s.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,7 +65,7 @@

- s -

@@ -70,7 +73,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_t.html freetds-1.2.3/doc/reference/globals_t.html --- freetds-1.1.6/doc/reference/globals_t.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_t.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -62,22 +65,22 @@

- t -

@@ -728,7 +749,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_type.html freetds-1.2.3/doc/reference/globals_type.html --- freetds-1.1.6/doc/reference/globals_type.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_type.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,46 +63,46 @@
 
@@ -107,7 +110,7 @@ diff -Nru freetds-1.1.6/doc/reference/globals_vars.html freetds-1.2.3/doc/reference/globals_vars.html --- freetds-1.1.6/doc/reference/globals_vars.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/globals_vars.html 2020-07-09 09:01:58.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: File Members @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -60,10 +63,10 @@
 
@@ -71,7 +74,7 @@ diff -Nru freetds-1.1.6/doc/reference/graph_legend.html freetds-1.2.3/doc/reference/graph_legend.html --- freetds-1.1.6/doc/reference/graph_legend.html 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/graph_legend.html 2020-07-09 09:02:01.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: Graph Legend @@ -29,18 +29,21 @@ - + +/* @license-end */ @@ -63,8 +66,42 @@

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

-

The boxes in the above graph have the following meaning:

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • @@ -93,7 +130,7 @@ diff -Nru freetds-1.1.6/doc/reference/graph_legend.md5 freetds-1.2.3/doc/reference/graph_legend.md5 --- freetds-1.1.6/doc/reference/graph_legend.md5 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/graph_legend.md5 2020-07-09 09:02:00.000000000 +0000 @@ -1 +1 @@ -387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file +f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff -Nru freetds-1.1.6/doc/reference/graph_legend.svg freetds-1.2.3/doc/reference/graph_legend.svg --- freetds-1.1.6/doc/reference/graph_legend.svg 2019-04-29 09:00:49.000000000 +0000 +++ freetds-1.2.3/doc/reference/graph_legend.svg 2020-07-09 09:02:00.000000000 +0000 @@ -1,121 +1,117 @@ - - + Graph Legend - + -Node9 - -Inherited + +Node9 + +Inherited -Node10 - - -PublicBase - - + +Node10 + +PublicBase -Node10->Node9 - - + +Node10->Node9 + + -Node11 - - -Truncated - - + +Node11 + +Truncated -Node11->Node10 - - + +Node11->Node10 + + -Node13 - - -ProtectedBase - - + +Node13 + +ProtectedBase -Node13->Node9 - - + +Node13->Node9 + + -Node14 - - -PrivateBase - - + +Node14 + +PrivateBase -Node14->Node9 - - + +Node14->Node9 + + -Node15 - -Undocumented + +Node15 + +Undocumented -Node15->Node9 - - + +Node15->Node9 + + -Node16 - - -Templ< int > - - + +Node16 + +Templ< int > -Node16->Node9 - - + +Node16->Node9 + + -Node17 - - -Templ< T > - - + +Node17 + +Templ< T > -Node17->Node16 - - -< int > + +Node17->Node16 + + +< int > -Node18 - - -Used - - + +Node18 + +Used -Node18->Node9 - - -m_usedClass + +Node18->Node9 + + +m_usedClass diff -Nru freetds-1.1.6/doc/reference/index.html freetds-1.2.3/doc/reference/index.html --- freetds-1.1.6/doc/reference/index.html 2019-04-29 09:00:47.000000000 +0000 +++ freetds-1.2.3/doc/reference/index.html 2020-07-09 09:01:57.000000000 +0000 @@ -1,9 +1,9 @@ - + - + FreeTDS API: FreeTDS Reference Manual @@ -29,18 +29,21 @@
- + +/* @license-end */ @@ -57,27 +60,36 @@ -
+
FreeTDS Reference Manual

Introduction

-

Given that the vendors provide their own complete documentation for their implementations, one might ask why embark on this adventure at all? The answer is both principled and practical.

-

First, this is our implementation, and to be complete it needs independent documentation. Unlike the vendors' offerings, ours offers some features from each version, while lacking others. When we have been forced to choose between documented behaviors, the FreeTDS user is presumably best served by the FreeTDS reference manual.

-

Second, while the vendors today freely offer their documentation on the world wide web, that might not – in fact, surely will not – always be the case. Should the vendor decide to drop its offering for whatever reason, it will likely pull its documentation, too, sooner or later. Free sofware, in short, can lean on the capitalist model for support, but it can never rely on it.

+

Given that the vendors provide their own complete documentation for their implementations, one might ask why embark on this adventure at all? The answer is both principled and practical.
+

+

First, this is our implementation, and to be complete it needs independent documentation.
+ Unlike the vendors' offerings, ours offers some features from each version, while lacking others.
+ When we have been forced to choose between documented behaviors, the FreeTDS user is presumably best served by the FreeTDS reference manual.
+

+

Second, while the vendors today freely offer their documentation on the world wide web, that might not – in fact, surely will not – always be the case. Should the vendor decide to drop its offering for whatever reason, it will likely pull its documentation, too, sooner or later. Free sofware, in short, can lean on the capitalist model for support, but it can never rely on it.
+

Status

-

This manual is incomplete, and is being completed in fits and starts. The focus to date has been on db-lib and the underlying network library, libtds. It's the kind of enormous Quixoitic undertaking that you'd reasonably doubt will ever be completed. If you feel inclined to jump in, please don't hesitate.

+

This manual is incomplete, and is being completed in fits and starts.
+ The focus to date has been on db-lib and the underlying network library, libtds. It's the kind of enormous Quixoitic undertaking that you'd reasonably doubt will ever be completed. If you feel inclined to jump in, please don't hesitate.
+

The organization of the manual could be better. We're still learning how to use Doxygen to best effect.

-

Probably the most useful link at the moment is "Modules", above. That gives a categorized, alphabetical listing of the documented functions.

-
+

Probably the most useful link at the moment is "Modules", above. That gives a categorized, alphabetical listing of the documented functions.
+

+
+ diff -Nru freetds-1.1.6/doc/reference/jquery.js freetds-1.2.3/doc/reference/jquery.js --- freetds-1.1.6/doc/reference/jquery.js 2019-04-29 09:00:44.000000000 +0000 +++ freetds-1.2.3/doc/reference/jquery.js 2020-07-09 09:01:53.000000000 +0000 @@ -1,71 +1,26 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! - * jQuery UI Mouse 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('