Platforms:
OpenVMS/Itanium
- DBMS Linter has been ported to OpenVMS/Itanium platform.
Moxa IA-240
- DBMS Linter has been ported to Moxa IA-240 minicomputer.
Windows
- Conflict resolution mechanisms (regarding conflicts leading to system reboot after install/update operations) optimized
- Conflict resolution (when installing two or more copies of Linter on one computer for JDBC, ODBC and .NET components) added.
- Conflict resolution when installing two or more copies of Linter on one computer modified.
- Installation and modification of earlier installed components without administration rights corrected.
- Command file generation for delayed first installation corrected.
- Deletion of some components (particularly ODBC, JDBC and .NET) corrected.
Linux и QNX
- Enhanced distribution compression method implemented (the distribution size is now 1.5 times smaller).
- Deinitialization of shared libraries on upload added.
Android
- lindesk utility added to the build for Andriod.
DBMS Kernel and SQL translator:
- Transaction work optimization in the Optimistic mode enhanced.
- Working with files over 2 Gb optimized.
- The first two arguments of the LIN_INDEX_INFO function are now similar to those of LINTER_DICT_INFO.
- The ACCESS function arguments can now be implicitly converted to required types.
- LIMIT construction action corrected for the following special cases: 1) if "LIMIT 0", "LIMIT N,0" or "FETCH FIRST 0" is set, 0 rows are selected; 2) if "LIMIT -1", "LIMIT N,-1" or "FETCH FIRST -1" is set, all rows are selected (if N is non-negative, all rows starting from the Nth row in the selection will be fetched).
- The default value of the /TCP key for Windows is now the same as for UNIX.
- Reuse of rows for a partially filled table after ALTER TABLE SET RECORDS LIMIT now starts only when the row limit is reached.
- It is now allowed to delete a global temporary table if there is only one channel currently working with it.
- BY SYSTEM authorization by domain name in Windows is now allowed.
- Thread stack size for executing asynchronous user handlers for a multithread client enlarged.
Stored Procedure Language:
- Incorrect SMALLINT processing case for a stored procedure parameter eliminated.
- Incorrect behavior of the read_blob_char, read_blob_nchar and read_blob_date functions (in case the input buffer is full) corrected.
- UTF-8 support for the dupchar procedure added.
- The work of strpos, nstrpos, ltrim, add_motnhs and datesplit functions optimized.
- UNICODE string concatenation in procedures corrected.
- Return of a NULL value from a procedure corrected.
- REAL >DOUBLE conversion improved.
- If an exception inside a procedure returning a cursor is not fetched, the error code is no longer ignored.
- BADCURSOR and CURNOTOPEN exception return corrected..
- DIVZERO and BADPARAM exception processing corrected.
- The use of BYTE type in conversion functions inside stored procedures is now allowed.
- BIGINT value syntax processing corrected.
- ID character set corrected.
- OUTOFCURSOR check for external actions with cursors corrected.
Utilities:
The resolution settings for all graphic utilities are now stored in a single file. Numerous changes have been made to the RELAPI graphic library for compatibility with various QT versions.
lindeskx
- Progress bar work improved.
- LOD file loading with different delimiters in different rows corrected
- Viewing function for images over 100 Mb implemented.
- If there is no node in the inspector tree, the object browser can be opened via the toolbar.
- The work of the SQL text marking parsers, inl commands and extended query editor optimized.
dbcgui (network client) and dbsgui (network server)
- dbcgui log format corrected.
- Corrections for some X11 window managers implemented.
- Configuration node signature update (when changing the default server via the context menu) corrected.
- Driver thread startup mechanism for MSVS5.5 x64 / Qt 4.2.1 corrected.
testdb
- Special data restoration case added (in case the $$$SYSRL table converter is damaged).
- Problem diagnostics in indexes improved (the file number and file page number are now displayed instead of the combined node number).
- Problem diagnostic errors associated with LOGON/LOGOFF triggers eliminated.
gendb
- Program behavior corrected (in case an undefined environment variable is used to specify the directory).
- File size checks added.
- Automatic localization (message language selection depending on the environment variables specified) added.
inl
- BLOB GET syntax modified (it is now allowed not to specify the table user name).
Interfaces:
Path finding procedures when installing the PHP, Perl and Ruby interfaces corrected.
LinQT
- Unused NCurs field deleted from QLinterDriver class.
- It is now possible to specify the Qt library directory (not QTDIR) when building the interface.
- QSqlField::length() function operation in QT 4 optimized.
- EXECUTE and CALL sentence processing for stored procedures unified.
- The influence of earlier executed QSqlQuery::exec() on working with parameters after QSqlQuery::prepare() eliminated.
- Situations with truncation of maximum-length column name by one character eliminated.
- Working with BLOB values in the new interface optimized. Warnings are now returned when trying to call functions not supported by the current interface version.
ADO.NET
- ColumnOrdinal field filling corrected.
- Work with varying-length stored procedure input parameters improved.
- It is now prohibited to use the command.ExecuteReader() method to create several opened DataReader objects. InvalidOperationException is generated in this case.
Call (intlib)
- Maximum negative BIGINT value processing corrected.
- Conversion of expressions to text for CHECK corrected.
- SMALLINT values output in CHECK text corrected.
- Text generation for the TRIM, LTRIM and RTRIM functions corrected.
Perl
- Memory leakage case eliminated.
- 64-bit version operation improved.
PCC (embedded SQL)
- The message language is now selected automatically depending on the environment variables.
LinAPI
- EXECUTE and CALL sentence processing for stored procedures unified.
PHP
- Build support for new PHP versions added.
LinCPP
- XML parser work corrected.
Ruby
- Memory leakage case eliminated.
ODBC
- BIGINT data precision return value corrected.
Problems Eliminated:
- with erroneous deactivation of data page search, which slowed down the UPDATE operation;
- with the operation of the RANK, DENSE_RANK, FIRST_VALUE and LAST_VALUE functions if there is no PARTITION BY;
- with the processing of NULL values by the FIRST_VALUE and LAST_VALUE functions;
- with IN-MEMORY tables having the AUTOLOAD flag;
- with erroneous temporary unlocking of records locked by FOR UPDATE;
- with the operation of the query cache when submitting a non-pretranslated query after an identical pre-translated query;
- with the operation of the response cache if there are logoff triggers;
- with synchronization by time and the work of events by timer in Windows;
- with possible omission of event activation in case the event is being activated by another channel;
- with multiple generation of GENERATED AS IDENTITY column values during the execution of one query;
- with inserting a SYS_GUID() value into a VARBYTE column;
- with inserting a SESSIONID pseudo-value into a table;
- with specifying the default temporary files directory in DBMS Linter for Linux;
- with creation of unused log files when working in the read-only mode;
- with saving a workstation information reference in the system directory if the workstation description has been deleted;
- with the CONVERT function behavior if the codepage name is incorrect;
- with the logoff trigger behavior if the last operation returned an error code;
- with the processing of BEFORE STATEMENT and INSTEAD OF triggers for UPDATE;
- with the operation of the NULLIFERROR construction if the nested function argument is a CAST expression;
- with type conversion inside CASE- and DECODE-expressions;
- with batch data loading in the autocommit mode in Linter Multiversion;
- with erroneous prohibition of NULL values for GENERATED columns (except GENERATED AS IDENTITY);
- with the erroneous prohibition of the ALL keyword for the COUNT function;
- with the omission of incorrect calls to columns from queries with HAVING but without GROUP BY;
- with the REAL->DOUBLE conversion in CASE/DECODE;
- with duplicate columns in the CORRESPONDING list;
- with the ALTER TABLE ADD COLUMN operation erroneously marking data pages as full;
- with displacement of the active page in the read-only mode;
- with inputting information into GENERATED AS IDENTITY columns in the optimistic mode in Linter Multiversion;
- with the SET QUANT TIMEOUT command.