github FreeTDS/freetds R1_5RC1
FreeTDS 1.5 release candidate 1

pre-release3 days ago

User visible (not in a particular order):

  • Generic:
    • Do not write to stdout/stderr;
    • (*) Fix certificate check for hostnames with wildcards;
    • (*) Update to Autoconf 2.71;
    • (*) Fix conversions of "-0" numeric;
    • (*) Minor compatibility for 32 bit for bulk copy;
    • Distribute OpenSSL libraries with Appveyour artifacts;
    • Use Unicode and wide characters for file paths for Windows;
    • Remove ANSI encoding code from SSPI code, always full Unicode;
    • (*) Set control method for final OpenSSL BIO to avoid some errors;
    • (*) Get Windows code page using Windows API for compatibility;
    • (*) Do not try to use pthread_cond_timedwait_relative_np on newer Android;
    • Fix compatibility connecting to some old MSSQL 2000 server;
    • (*) Support Sybase server not configured with UTF-8 charset;
    • (*) Change some file license from GPL to LGPL;
    • (*) Support very old Sybase ASE versions;
    • (*) Ignore query errors during connection initial setup increase
      compatibility with different servers like OpenServer;
    • Support strict encryption for naked TLS (TDS 8.0);
    • (*) Don't leak allocations on syntax errors converting to binary;
    • Accommodate FreeBSD/Citrus iconv;
    • Fall back on unsupported address families locking for host address;
    • Avoid potential hangs on short replies reading TDS packets;
    • Add support for TDS 8.0;
    • Reject invalid NULL data in tds7_send_record (bulk transfer);
    • Allows freetds.conf to be stored in ~/.config (Unix).
  • ODBC:
    • Fixed some attribute size for 64 bit platforms (now more compatible
      with MS driver);
    • (*) Prevent setting some wrong type in internal decriptors;
    • (*) Fix leak in odbc_parse_connect_string;
    • Fix an issue compiling bcp test on 32 systems with unixODBC;
    • (*) Fix getting SQL_ATTR_METADATA_ID attribute;
    • Check for maximum value for SQL_ATTR_QUERY_TIMEOUT;
    • (*) Return better error for invalid character set;
    • Check errors from SQLInstallDriverExW and SQLRemoveDriver;
    • Update some driver registration field for Windows;
    • (*) Remove minor leak parsing connection string;
    • Add Encrypt and HostNameInCertificate settings;
    • (*) Fix bug cancelling not active statements;
    • Fix SQLGetInfo SQL_DRIVER_HSTMT and SQL_DRIVER_HDESC;
    • Avoid shared object version for ODBC driver;
    • Allows SERVER to override DSN or SERVERNAME settings;
    • Allows to set version to AUTO from Windows dialog;
    • (*) Fix handling of SQL_C_STINYINT;
    • Fix return value when bulk operation not using status array fails;
    • Implement SQLDescribeParam using sp_describe_undeclared_parameters.
  • Applications:
    • datacopy:
      • Allows copy when dest_collen > src_collen;
      • Increase CREATE TABLE command buffer to accommodate larger queries.
    • defncopy:
      • (*) Use memory instead of temporary file;
      • (*) Fix MS column length for N(VAR)CHAR types;
      • (*) Quote strings and identifiers;
      • (*) Handle correctly order of index recordset;
      • (*) Quote key index names.
  • CT-Library:
    • Error reporting more compatible with Sybase;
    • Return CT-Library type values, not TDS ones;
    • Fix *resultlen for conversions to SYBIMAGE from cs_convert;
    • Populate datafmt->format to avoid not initialized values;
    • More debugging on not implemented bcp_colfmt_ps;
    • Makes sure we don't use a negative number as string length;
    • Use client type, not propagate TDS one;
    • (*) Fix crash using ct_command with CS_MORE option;
    • (*) _blk_get_col_data: Consistently return TDS_FAIL on failure;
    • (*) Formally define BLK_VERSION_{155,157,160};
    • (*) Cap binary/image copying to the destination length;
    • (*) Conditionally distinguish NULL and empty results;
    • (*) Issue an error for unsupported server types from ct_describe;
    • Add support for setting hints for bulk copy using blk_props;
    • Support getting CS_ENDPOINT (socket file descriptor) using ct_con_props;
    • Support getting CS_PRODUCT_NAME using ct_con_props;
    • Introduce CS_INTERRUPT_CB and corresponding return values: CS_INT_*;
    • Better support new date/time types (DATETIME2, etc.) in bulk copy;
    • Report system errors' descriptions.
  • DB-library:
    • Improve error reporting;
    • Allows to set port number with DBSETLPORT;
    • Allows encryption option.
  • pool:
    • Disable Nagle algorithm on user socket for performance;
    • (*) Ignore extension in login packet for compatibility.
  • server:
    • Reply correct version for TDS 7.4;
    • Avoid leaks in tds_get_query_head;
    • Set SO_REUSEADDR option;
    • Better support for string conversion and UTF-8;
    • Improve sending data, fix sending metadata;
    • Update prelogin reply allowing TDS 7.2;
    • Fix tds_send_login_ack product name length;
    • Support no-ASCII characters in environment names;
    • Return 0 rows during login;
    • Pass correct packet size environment in test server;
    • Do not overwrite error before displaying it;
    • Improve message writing functions;
    • Set TCP_NODELAY after accepting connected sockets.

(*) Feature backported in stable 1.4 branch.

Implementation:

  • Remove various minor leaks;
  • Remove some potential NULL dereference;
  • (*) Add support for SYBSINT1 type conversion;
  • Improve GNU compatibility in CMake using GNUInstallDirs;
  • Remove many warnings compiling code with stricter options;
  • Optimize numeric precision change;
  • Use more bool type for boolean instead of integer;
  • Minor compatibility with tests and Sybase/SAP libraries;
  • Avoid some warnings from CMake;
  • Various improvements to bounce utility:
    • Allows multiple connections;
    • Allows to specify a server name;
    • Allows to write dumps.
  • Use 64 bit constants, add (U)INT64_C macros;
  • Move tds_new macros to include/freetds/macros.h;
  • Move tds_strndup to utils;
  • Add GitHub actions to CI;
  • Allows FREETDS_SRCDIR overrides for tests;
  • Avoid potential zero-byte allocations (whose behavior is undefined)
    in libTDS;
  • Unify header guards definitions;
  • Unify tests includes in ctlib;
  • Accommodate Windows static builds;
  • Inform CMake of some accidentally Autotools-only tests;
  • Add Visual Studio 2022 to Appveyor test matrix;
  • Add tds_socket_set_nodelay utility;
  • Change TDSCOLUMN::column_bindlen field to signed type;
  • Use TDS server instead of Adaptive Server in error messages;
  • Add and reuse TDS_END_LEN_STRING utility;
  • Acknowledge non-exhaustive TDS_SERVER_TYPE switch statements;
  • Use replacement getopt in tests for more compatibility;
  • Include stdint.h in Visual Studio if available.

Caution

Do not use Source code links below, they are auto generated and broken.

Don't miss a new freetds release

NewReleases is sending notifications on new releases.