Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Jun 1 18:14:50 2024 +0100

    Add test for nvarchar(max) and bulk copy

    Data include empty and NULL data.

Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>
Date:   Fri May 10 10:05:28 2024 -0400

    tds_select: Treat EAGAIN and EINPROGRESS like EINTR.

    Call the registered interrupt handler (if any) for all three.

Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>
Date:   Mon May 13 16:39:57 2024 -0400

    tds/unittests/freeze.c: Suppress SIGPIPE (helpful on macOS).

Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>
Date:   Mon May 13 17:18:25 2024 -0400

    Regroup pointer comparisons to avoid subtraction.

    The compiler always insists on treating the difference between two
    pointers as potentially negative, yielding warnings when comparing it to
    an integer that has (or will soon have) a pointer-width unsigned type.
    Equivalent pointer-to-pointer comparisons yield no such warnings and are
    still clear.

Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>
Date:   Thu May 9 14:23:58 2024 -0400

    tds_setup_connection: Skip nvc/uvc check under OpenServer.

    OpenServer instances may well report "Unknown language request" for
    it, resulting in outright login failures.

Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>
Date:   Mon May 13 11:49:03 2024 -0400

    _blk_get_col_data: Consistently return TDS_FAIL on failure.

    Most failure scenarios accidentally returned CS_FAIL, which ironically
    corresponds to TDS_SUCCESS.

Author: john-kendall <john@capps.com>
Date:   Thu May 23 11:15:26 2024 -0700

    datacopy: Increase CREATE TABLE command buffer to accommodate larger queries

    datacopy fails on tables with an unusually high number of columns.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat May 25 11:55:23 2024 +0100

    Support very old Sybase ASE versions

    On these old versions EXECUTE statement with string is not supported,
    and neither UNIVARCHAR.

Author: Anton Savelyev <antonsv@google.com>
Date:   Tue May 7 21:19:33 2024 +0000

    Update -v license text to print full text.

    The license text has been taken from the top of
    the file.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri May 17 10:34:01 2024 +0100

    Change some file license from GPL to LGPL

    These files were wrongly licensed, they are designed to be used
    by other code that needs to be LGPL.
    I'm the single owner of these files so no extra need for
    permissions.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun May 5 19:13:04 2024 +0100

    Support Sybase server not configured with UTF-8 charset

    If server is configured to not use UTF-8 UNIVARCHAR type is not
    available. Split query to check types and handle results
    separately.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Apr 28 13:47:14 2024 +0100

    Use CONVERT function instead of CAST for login query check

    CONVERT is more portable amongst different SQL Server implementation.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Mar 29 11:20:06 2024 +0000

    defncopy: Add test for the applications

    Use commands calling programs.
    Mainly use tsql to create some table, output definition with
    defncopy and check definition is as expected.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Mar 31 18:13:39 2024 +0100

    defncopy: Quote key index names

    Split index keys considering current column names.
    This is more complicated than just split considering separator
    (command and space, ", ") however it supports weird cases where
    we have the separator in the middle of a column name.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Mar 30 17:24:40 2024 +0000

    defncopy: Fix for order of index recordset

    The order of columns is different between MS and Sybase.
    Also separate code in a function, it was too long.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Mar 30 21:15:20 2024 +0000

    defncopy: Trim spaces around nullable flags

    This fix detection of nullable columns for Sybase.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Mar 24 09:58:01 2024 +0000

    defncopy: Quote strings and identifiers

    Allows to handle weird characters (like spaces) in strings and
    identifiers.
    Handle memory marking in a list to easily free. I plan to move
    that part of code to common code.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Mar 30 10:40:54 2024 +0000

    defncopy: Fix MS column length for N(VAR)CHAR types

    The length from sp_help is in bytes, not in code units.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Mar 28 16:36:19 2024 +0000

    defncopy: Use memory instead of temporary file

    Index script is not that huge, just allocate in memory.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Mar 27 16:44:46 2024 +0000

    odbc: Make odbc_buf structure private

    No reason to have it public.
    Only used for tests.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Mar 28 16:35:28 2024 +0000

    ctlib: Fix crash using ct_command with CS_MORE option

    The tds_realloc call was wrong passing the wrong pointer.
    Add test to check CS_MORE option calling ct_command.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Mar 23 18:19:16 2024 +0000

    defncopy: Reuse tds_strndup

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Mar 23 18:18:26 2024 +0000

    Move tds_strndup to utils

    Allows to reuse on applications easily.

Author: Tao Zuhong <taozuhong@users.noreply.github.com>
Date:   Mon Mar 4 16:47:28 2024 +0800

    dblib: Add port setting

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Mar 1 19:21:50 2024 +0000

    Use TDS 7.1 if MARS is not supported

    This fix some compatibility with some old MSSQL 2000 server.
    We try to negotiate a more recent protocol but if the server does
    not support at least TDS 7.2 the DONE token will be shorter causing
    FreeTDS to wait for more bytes than sent.
    This happens if we give a wrong password logging in to MSSQL 2000
    server.
    From MSSQL 2005 MARS is returned and we can assume larer DONE
    token.

Author: chenall <chenall@users.noreply.github.com>
Date:   Tue Feb 20 11:23:18 2024 +0800

    datacopy: allow when dest_collen > src_collen

    It is beneficial to migrate from the old database to the new one.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Dec 17 16:59:23 2023 +0000

    tds: Update comment on tds_config_verstr function

    Encoded version uses bytes, not nibbles.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Dec 3 21:18:22 2023 +0000

    Fix compilation for Android

    Fix last commit supposed to fix compilation on recent Android
    systems.
    Rename USE_CLOCK_IN_COND to USE_CLOCK_GETTIME_IN_COND to make
    more clear.
    Put check for pthread_cond_timedwait_relative_np in a single
    place defining a new USE_COND_TIMEDWAIT_RELATIVE if we can use
    it.
    Declare tv variable near gettimeofday to reduce conditional
    compilation.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Dec 3 08:58:39 2023 +0000

    Do not try to use pthread_cond_timedwait_relative_np on newer Android

    API was deprecated, do not use (still available on Apple).

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Nov 24 19:12:44 2023 +0000

    Get Windows code page using Windows API

    Instead of using setlocale call use GetLocaleInfoA.
    This fixes getting Windows code page.
    setlocale should return the code page number as first item
    but it depends on too many settings and sometimes the string
    does not start with the code page number.
    Updated ODBC test to avoid not convertible character; note that
    now the behaviour is more coherent to Windows driver for this test.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 26 21:52:25 2023 +0000

    odbc: Use tds_dstr_buf to retrieve internal string buffer

    Do not use tds_dstr_cstr and a cast if the intention is to use
    the internal string buffer.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 26 21:52:11 2023 +0000

    odbc: Use bool for odbc_get_dsn_info

    Just style change.
    More clear only true/false.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 26 14:04:01 2023 +0000

    odbc: Use bool for write_all_strings

    Just minor style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 26 13:38:41 2023 +0000

    odbc: Update some driver registration field for Windows

    We support ODBC 3.50, also this patch SQLGetInfo SQL_DRIVER_ODBC_VER
    attribute.
    All SQL server drivers support SQLLevel 1, not 2.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 26 06:05:07 2023 +0000

    odbc: Check errors from SQLInstallDriverExW and SQLRemoveDriver

    These 2 functions can return TRUE (in theory success) even if
    the function didn't do anything.
    For instance this happens if the functions are called from
    not administrator user trying to install/remove the ODBC driver.
    So check if errors happened using SQLInstallerErrorW.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 25 20:33:52 2023 +0000

    utils: Add executable file to git ignore list

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Nov 24 08:11:36 2023 +0000

    odbc: Return better error for invalid character set

    Do not return memory error which is pretty misleading.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Nov 23 19:49:53 2023 +0000

    tds: Set control method for final OpenSSL BIO

    OpenSSL sometimes calls this callback failing if not present.
    This fixes https://github.com/FreeTDS/freetds/issues/513.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 12 16:19:48 2023 +0000

    cmake: Be consistent with install destination

    Reported by Rüdiger Ihle.
    TYPE clause for INSTALL was introduced in CMake 3.14, also
    it's more consistent with other lines.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Feb 1 19:06:38 2019 +0000

    Use Unicode and wide characters for file paths for Windows

    Allows to use path names with any characters.
    Add macros in include/utils/path.h to deal with different types
    and functions.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 12 10:46:15 2023 +0000

    cmake: Generates now missing include/freetds/sysconfdir.h

    This file is generated usually by Automake but in case of
    using CMake better to use this last one.
    Fixes building with CMake under Linux and other Unices.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 12 10:44:58 2023 +0000

    cmake: Improve GNU compatibility

    Use GNUInstallDirs module to get more accurate GNU Coding Standards
    (https://www.gnu.org/prep/standards/html_node/Directory-Variables.html)
    like Autoconf script.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Feb 1 19:06:38 2019 +0000

    Move tds_new macros to include/freetds/macros.h

    These macros are pretty generic, not related to TDS.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 11 22:59:21 2023 +0000

    ctlib: Test and fix ct_callback errors

    Some more tests on errors returned.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Feb 1 19:06:38 2019 +0000

    Separate utilities that deal with paths

    More into src/utils directory.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Nov 10 14:29:22 2023 +0000

    Remove the need for override of sysconfdir.h

    It's generated by Autoconf but not needed for Windows.
    Under Windows the default configuration path is always the root.
    The sysconfdir.h is only included by include/freetds/configs.h.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Nov 9 11:29:26 2023 +0000

    ctlib: Make switch cases more explicit

    Mainly style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Nov 9 11:28:46 2023 +0000

    ctlib: Test and fix cs_convert errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Nov 8 14:00:53 2023 +0000

    misc: Windows compatibility

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Nov 8 14:02:41 2023 +0000

    apps: Remove warning compiling fisql utility

    If readline was not present this warning was displayed:

    fisql.c:106:31: warning: unused parameter 's' [-Wunused-parameter]
      106 | fisql_add_history(const char *s)
          |                   ~~~~~~~~~~~~^

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Nov 6 14:47:05 2023 +0000

    misc: Handle closure from socket

    Do not exit all program.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 5 16:24:41 2023 +0000

    misc: Add debug/dump options

    -d enables debug output. By default reduce the verbosity of the
    program.
    -D adds support to dump all traffic to a capture file.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 5 18:22:09 2023 +0000

    misc: Add code to write a TCP flow on a capture file

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 5 17:26:07 2023 +0000

    ci: Distribute also OpenSSL libraries

    Make easier deploy and usage.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 5 16:25:10 2023 +0000

    misc: Update a comment

    Lot of limitations removed.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 5 13:11:39 2023 +0000

    misc: Handle termination more cleanly

    Detect signals and exit more cleanly.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Use threads to handle more connections

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Remove usage of global variables

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Remove some possible leaks

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Use less global variables

    Pass parameters to get_packet and put_packet instead of use
    globals.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Factor out a function to initialize TLS

    Avoids duplicating the same things for client and for server.
    At the end of handshake change pull/push functions to
    avoid retaining a pointer to a structure in the stack, simplify
    normal push/pull and remove state variable.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Handle errors more cleanly

    If we want to handle more connections in a single process
    we cannot exit the process for every error we get.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:24:33 2023 +0000

    misc: Remove some global usage

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Nov 5 09:54:24 2023 +0000

    misc: Separate code to handle a TDS session

    Prepare to handle more connections.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 22:58:49 2023 +0000

    misc: Fix typo in message

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:26:25 2023 +0000

    Fix typo in xINT64_C macros definitions

    These fallback definitions should not be used but fix anyway.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Nov 4 12:25:23 2023 +0000

    replacements:  Reuse UINT64_C macro

    Simplify definition.
    Also remove obsolete comment on 64-bit compatibility.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Dec 5 08:13:44 2020 +0000

    misc: Handle all traffic in bounce utility

    Do not only handle packets during login but also data ones.
    Detect if data will be encrypted or not after login.
    Do not use sleep for synchronisation but use poll to avoid
    delays.
    Improve also a bit resource management (although the program
    is still limited to one single connection).

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Dec 5 08:13:44 2020 +0000

    misc: Better error management in bounce utility

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 16 10:47:11 2019 +0100

    misc: Prepare to forward traffic to the server

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Nov 3 17:10:30 2023 +0000

    misc: Change style of hexdump for bounce utility

    Use dots for not printable.
    Add a 8 byte separator for hexadecimal part.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Nov 3 15:41:07 2023 +0000

    misc: Allows to specify a server name for bounce utility

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Nov 3 15:42:05 2023 +0000

    Minor comments updates

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Nov 1 18:14:03 2023 +0000

    Remove some "unused parameter" warning

    These came out on Windows and/or if you don't enable extra checks.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Nov 1 10:09:28 2023 +0000

    Add -Wunused-parameter warning by default

    If GCC is detected add this flag to get these warnings.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 11:52:37 2023 +0100

    Remove warnings using -Wunused-parameter option

    The warnings show if a parameter is not used.
    Add a TDS_UNUSED to mark a parameter as intentional not used
    (usually due to ABI a function needs to have that parameter).

Author: coffeegreg <86416144+coffeegreg@users.noreply.github.com>
Date:   Tue Oct 10 22:10:55 2023 +0200

    dblib: allow encryption option

    The goal is to allow access to the "encryption" configuration option
    (freetds.conf setting) without the need for a freetds.conf file.
    Added a new DBSETENCRYPTION and DBSETLENCRYPTION using dbsetlname
    (dblib.c) to handle "off/request/require" values.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 28 20:40:00 2023 +0100

    odbc: Define maximum value for SQL_ATTR_QUERY_TIMEOUT

    More compatible with Microsoft driver.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 29 10:49:41 2023 +0000

    pool: Remove warning compiling

    Due to recent change:

    config.c:95:53: warning: passing argument 3 of ‘tds_read_conf_section’ from incompatible pointer type [-Wincompatible-pointer-types]
       95 |                 tds_read_conf_section(in, "global", pool_parse, params);
          |                                                     ^~~~~~~~~~
          |                                                     |
          |                                                     void (*)(const char *, const char *, void *)

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 11 10:13:21 2023 +0100

    ctlib: Make cs_convert more verbose in case of errors

    Print input and output buffers as soon as we provide an output.
    Print output buffer also in case of length mismatch.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 28 17:08:48 2023 +0100

    tds: Return success/failure from tds_parse_conf_section

    This will allows to check error setting some value in TDS_LOGIN
    structure.
    Using valid_configuration would be confusing as that flag is used
    to store error reading from configuration file (so for
    TDS_CONNECTION).

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Oct 27 16:25:59 2023 +0100

    ctlib: Reuse res_type_str in rpc_fail test

    printable_ret was doing the same thing, returning a string description
    for a CT-Library result.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Oct 27 09:58:05 2023 +0100

    Import a script to generate constants in numeric.c

    Explain where these magic constants came from.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Oct 27 05:29:51 2023 +0100

    odbc: Fix getting SQL_ATTR_METADATA_ID attribute

    Returned wrong field due to typo.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 21 11:45:16 2023 +0100

    tds: Optimise numeric precision change in case of 32 bit architectures

    Use 64 bit multiply instead of 64 bit divide.
    Do do the multiplication in a portable way (we need to get a 128 bit)
    we use simple 32 x 32 -> 64 multiplications.
    We keep division optimisation in case of x86 architecture.
    Remove also pretty obsolete optimisation for Watcom C compiler.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 21 22:04:41 2023 +0100

    Use 64 bit constants

    Nowadays all compilers should support 64 bit constants, no
    need for complicated code.
    Makes sure UINT64_C and INT64_C are defined.
    Avoids having to include <freetds/sysdep_types.h>, just use
    <freetds/sysdep_private.h>.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 26 07:31:56 2023 +0100

    build: Avoid some warnings from CMake

    Specifically:

      CMake Deprecation Warning at CMakeLists.txt:3 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version
        of CMake.
        Update the VERSION argument <min> value or use a ...<max> suffix to
        tell CMake that the project does not need compatibility with older
        versions.

      CMake Warning (dev) at CMakeLists.txt:1 (project):
        cmake_minimum_required() should be called prior to this top-level
        project() call.  Please see the cmake-commands(7) manual for usage
        documentation of both commands.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 26 08:17:34 2023 +0100

    odbc: Minor style changes to test64 test

    Use macro instead of constant to understand why that number is used.
    Added a comment on why test is skipped.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 25 23:08:03 2023 +0100

    tds: Use same condition syntax checking for full packet

    Just style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 25 21:42:29 2023 +0100

    dblib: Use bool for row_error

    Just style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 18 19:08:57 2023 +0100

    ctlib: Check datatype returned by ct_data_info in test

    Datatype should be CS_TEXT_TYPE.
    Also add a compatibility check to compile with Sybase libraries.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 18 18:54:52 2023 +0100

    ctlib: Use client type, not propagate TDS one

    Clients are expecting CT-Library types.

    This was addressed also by NCBI patches.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 25 10:43:16 2023 +0100

    ctlib: Remove leak in errors test

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 20:00:26 2023 +0100

    ctlib: Test and fix ct_con_props errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 19:50:09 2023 +0100

    ctlib: Test ct_cursor errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 19:31:26 2023 +0100

    ctlib: Test ct_command errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 19:21:33 2023 +0100

    ctlib: Test ct_connect errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 13:09:06 2023 +0100

    ctlib: Test and fix ct_dynamic errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 12:17:14 2023 +0100

    ctlib: Test and fix cs_locale and related errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 08:16:09 2023 +0100

    ctlib: Test and fix blk_init errors

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 07:11:27 2023 +0100

    ctlib: Makes sure we don't use a negative number as string length

    Do not allow negative number to be used as buffer length but returns
    error instead.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 21:05:11 2023 +0100

    ctlib: Factor out a check_last_message to reduce checks in errors test

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 13:41:34 2023 +0100

    ctlib: Use macros to list all sub tests in errors test

    Makes easier to add a new test.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 23 14:52:16 2023 +0100

    ctlib: Improve cs_config error reporting and compatibility

    Return proper errors.
    Do not add terminator setting CS_USERDATA.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 08:14:52 2023 +0100

    ctlib: Factor out and reuse check_fail macro in errors test

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 24 08:17:08 2023 +0100

    ctlib: Minor compatibility with tests and Sybase/SAP libraries

    To use BCP applications need to set CS_BULK_LOGIN property.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 22 21:11:46 2023 +0100

    apps: Simplify some expression reusing "meta" variable

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 22 19:33:49 2023 +0100

    odbc: Convert value to type used in format

    Mainly style, code generated is the same but "%u" format
    is assuming unsigned int to use that explicitly.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 22 19:32:00 2023 +0100

    odbc: Remove unused assign

    Just assigned again on next line.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 21 11:48:24 2023 +0100

    odbc: Make explicit how data are bound in bcp test

    Mainly style change, easier to understand how data will start.
    Also avoids double cast.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 21 12:18:37 2023 +0100

    odbc: Fix an issue compiling bcp test on 32 systems with unixODBC

    UnixODBC can define ODBCINT64 with a structure with 2 fields
    instead of just an integer if HAVE_LONG_LONG is not defined.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 21 11:47:35 2023 +0100

    tds: Fix possible issue with 32 bit machines using BCP

    The -2 constant should be signed extended to 64 bit and passed
    to tds_put_int8. This potentially does not happen on 32 bit
    as the ?: operator would return a size_t (unsigned 32 bit on
    32 bit systems).
    Force the type to get the correct value.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 18:10:55 2023 +0100

    odbc: Fix type setting

    The code was falling through the cases potentially setting
    wrong types.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 16:29:10 2023 +0100

    ctlib: More debugging on not implemented bcp_colfmt_ps

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 16:27:37 2023 +0100

    Remove some unused parameters

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 11:51:39 2023 +0100

    Remove main arguments if not used

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 10:17:24 2023 +0100

    utils: Remove not used "len" parameter from tds_des_set_key

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Oct 19 06:41:51 2023 +0100

    tds: Optimise scale down of numeric types

    Instead of using divisions, if possible, multiple by the reverse.
    This is what modern compiler does when they see a constant but
    it's pretty impossible that they use this technique using divisors
    from an array.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 18 18:54:20 2023 +0100

    Remove warning using "-Wold-style-declaration" option

    Move "static" and "inline" modifiers before others.
    Just style change.

Author: Sergey Sikorskiy <ssikorsk@ncbi.nlm.nih.gov>
Date:   Mon Jun 4 11:13:37 2018 -0400

    ct.c (ct_describe): Populate datafmt->format per Valgrind.

Author: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>
Date:   Mon Jun 4 11:13:37 2018 -0400

    cs.c (cs_convert): Fix *resultlen for conversions to SYBIMAGE.

    When converting to SYBIMAGE, set *resultlen to the number of bytes
    actually used, not the destination's full capacity.

    Frediano: Added test and fixed conversion is padding was specified.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 16 21:26:36 2023 +0100

    Minor compatibility for C++

    At the moment config.h is used only in C files but just for
    potential compatibility do not define "inline" if used for C++.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Jul 11 07:37:20 2021 +0100

    Include stdint.h in Visual Studio if available

    Check proper version of Visual Studio even for older versions.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 16 21:17:55 2023 +0100

    dblib: Correct application names in tests

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 16 21:16:28 2023 +0100

    dblib: Minor updates for empty_rowsets.c

    Minor style change for empty loop.
    Better check for error from dbresults.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Feb 1 19:06:38 2019 +0000

    Do not use extern "C" around headers

    Although this include file is not used by C++ code avoid to have
    extern "C" around include file which could be an issue if some
    include have C++ code.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 15 17:41:26 2023 +0100

    odbc: Remove unused definition

    TDS_SDIR_SEPARATOR not used in common.c.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 15 17:40:15 2023 +0100

    tds: Limit some variable scope

    Just style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 15 05:37:24 2023 +0100

    tds: Avoid warning using poll() function

    Due to some signed/not-signed calling poll with int type was
    causing a warning under Linux.
    All systems use unsigned number for length of poll

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 15 05:15:21 2023 +0100

    odbc: Avoid conversion warnings from SQLCHAR* to LPCSTR

    The two pointers differs in sign so add a cast to remove the
    warning.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Oct 14 20:42:21 2023 +0100

    Remove some conversion warnings for Windows

    Convert pointer to TDS_UINTPTR to avoid size warning.
    Avoid warning converting unsigned long to unsigned (even if on
    Windows are the same).
    TDS_SYS_SOCKET is defined a 64 bit for 64 bit, convert to int
    (handles are not so large anyway to require 64 bit).

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Oct 13 13:02:18 2023 +0100

    Fix minor potential script issues using "echo" command

    Allows to start error with dash and having do not interpret escape
    sequences.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Oct 13 11:37:58 2023 +0100

    tds: Fix conversion from NUMERIC -0 number to integers

    The weird number encoding failed to be converted to integers
    and was detected as overflow.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Fri Oct 13 09:24:14 2023 +0100

    tds: Report error from string_to_int8, do not override it

    Code similar to other similar funcions like string_to_int.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 9 19:57:13 2023 +0100

    ctlib: Add test for errors

    Check some errors from some functions to make sure they are
    consistent with proprietary library.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 9 19:33:45 2023 +0100

    ctlib: Allows to check last message in tests

    Add some utilities to save last message received from library.
    This will allow to check them after calling various CT-Library
    APIs.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 11 11:44:47 2023 +0100

    dblib: Add test for process limits

    Check that when limit is reached a proper error is reported.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 11 12:21:33 2023 +0100

    Improve previous patch

    Do not use TDS_DBG_FUNC but TDS_DBG_INFO1, FUNC is intended for
    function tracing like entering and exiting from a function.
    Rollback some not needed changes.
    Remove some obsolete code not even compiling (dbpivot.c).
    Allows longer lines.
    Use more proprietary compatible errors.
    Handle error for user API better passing context and connection.

Author: Pavel Ivanov <ivanovp@ncbi.nlm.nih.gov>
Date:   Mon Jun 4 11:13:37 2018 -0400

    Don't log directly to stdout or stderr.

    * Substitute tdsdump_log, _csclient_msg, or dbperror as appropriate,
      introducing some new error codes for the latter two functions.
    * Make _csclient_msg non-static to allow use throughout ctlib.
    * From cs_convert, call _csclient_msg in addition to tdsdump_log.

    Co-Authored-By: Aaron M. Ucko <ucko@ncbi.nlm.nih.gov>

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 11 13:38:47 2023 +0100

    ctlib: Add generic utilities to check function returns in tests

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 11 10:11:04 2023 +0100

    ctlib: Fix message number for idle state error

    The message number is specified as a byte.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Oct 10 10:56:35 2023 +0100

    Use replacement getopt in tests

    Make Windows version more compatible.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 9 10:47:12 2023 +0100

    ctlib: Remove duplicated code for handling errors in tests

    Most of code printing errors and warnings was duplicated, reuse
    code in common.c.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 9 10:28:22 2023 +0100

    ctlib: Cleanup DIRNAME from tests code

    Not used.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Oct 9 10:16:02 2023 +0100

    ctlib: Pass correct pointer calling ct_exit in tests

    Silly mistake.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 8 22:58:00 2023 +0100

    ctlib: Assure context is de-initialised before calling cs_ctx_drop in tests

    Avoids cs_ctx_drop failures.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 8 22:56:51 2023 +0100

    ctlib: Format message number from tests using hexadecimal

    The message number is composed by 4 parts (each one byte) so
    formatting as hexadecimal makes it more readable.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 8 22:55:52 2023 +0100

    ctlib: Remove warning using proprietary library for tests

    ct_command accept a no-constant pointer for SQL command.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 8 19:44:16 2023 +0100

    ctlib: Format message number from tests using hexadecimal

    The message number is composed by 4 parts (each one byte) so
    formatting as hexadecimal makes it more readable.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Oct 8 19:42:54 2023 +0100

    tds: Use bool in norm_fmt function

    Just style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Oct 4 10:35:38 2023 +0100

    Use bool for some tds_cursor_XXX functions

    Just style change.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Sep 28 09:13:22 2023 +0100

    Remove confusing warnings during compilation

    Strip ar warnings from nightly tests.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Sep 28 08:39:38 2023 +0100

    tds: Minor updates on convert code

    Remove unused forward declarations.
    Remove obsolete comment.
    Reduce the scope of some variables.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Sep 27 13:13:00 2023 +0100

    odbc: Reuse code in connection_string_parse test

    Most of the code was just repeated.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Wed Sep 27 12:33:01 2023 +0100

    odbc: Add test for connection string parsing

    Check parsing of not semicolon terminated parameter.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 20:21:17 2023 +0100

    tls: Add a test for OpenSSL hostname check

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 20:58:18 2023 +0100

    tls: Fix certificate hostname check for OpenSSL

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 14:17:16 2023 +0100

    Really minor code space updates

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 13:02:19 2023 +0100

    Fix typo in log (interupt -> interrupt)

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 13:01:51 2023 +0100

    Minor updates to manual files

    All changes from Debian packages.
    Minor typos.
    Minor formatting.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 13:00:27 2023 +0100

    Typos: information is uncountable in English

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 26 11:38:01 2023 +0100

    Update Autoconf to 2.71

    Add some compatibility for MacOS.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Sep 25 12:58:44 2023 +0100

    dblib: Update dbcolptr

    Minor style change, more similar to dbacolptr.
    Potentially caching some values.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Sep 25 12:58:04 2023 +0100

    dblib: Use bool for dbacolptr

    Minor style change

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sun Sep 24 09:54:22 2023 +0100

    odbc: Remove obsolete commented out code

    These settings were deprecated years ago, not reasons to keep them.

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Sep 23 14:27:27 2023 +0100

    doc: Update news page, add new release

Merge: 3107082a 369aed00
Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Sat Sep 23 10:59:17 2023 +0100

    Merge branch 'Branch-1_4'

Merge: cd75e139 dfe6ff23
Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Thu Sep 21 17:41:26 2023 +0100

    Merge branch 'Branch-1_4'

Merge: 68ebee23 3d3e006c
Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Mon Sep 18 17:53:47 2023 +0100

    Merge branch 'Branch-1_4'

Author: Frediano Ziglio <freddy77@gmail.com>
Date:   Tue Sep 12 14:45:24 2023 +0100

    cmake: Add ENABLE_MSDBLIB option

    Similar to configure --enable-msdblib.
    For compatibility with configure the option is disable by default.

