DBMS Kernel and SQL translator:
- It is now forbidden to delete base tables and views that have references from views (in standard DROP TABLE/VIEW), including cascade drop (using DROP TABLE/VIEW CASCADE), which guarantees the integrity of the database and eliminates possible discrepancies between interdependent tables and views during operations that may lead to such discrepancies.
- “GROUP BY primary_key” syntax added, making it possible to write GROUP BY T.PK (where PK is the primary key of the T table) instead of GROUP BY T.C1, T.C2,... and improving the readability of GROUP BY queries by eliminating the duplicates of all non-aggregated result columns from the GROUP BY construction.
- CASE construction format enhanced: it is now possible to enumerate several values in a WHEN construction. Also, the selection in a CASE construction may be based not only on the scalar value, but also on the row constructor.
- Row processing functionality enhanced: OVERLAY function added to replace a substring in a string to the specified string. The source string, the target substring and the replacing string may be expressions.
- Performance of index search operations enhanced (in some cases twice compared to the previous versions).
- LOCALTIME, LOCALTIMESTAMP, CURRENT_DATE and CURRENT_TIME pseudo-values support added to make the work with the local time more convenient.
- DBMS kernel shutdown without warning allowed for background row purge (for Linter Multiversion).
- Date output formats in kernel logs and testdb corrected and unified.
- The situation with performance drop when reading long BLOB values (when the call interface does not expressly specify the BLOB column number) corrected.
- Sorting stack size for hierarchic queries increased.
Work Enhancements:
- With log processing end during recovery (when it is possible to ignore the local failure and continue processing.
- With omitting the deletion of table files during restart if the creation of the table was interrupted during the previous session.
- With BLOB processing in the log during hot backup copying.
- In case of index damage.
- With BLOB files in the old (continuous) bitmap format.
- With counting page numbers in the new (interrupted) bitmap format.
- With restoring databases containing files over 2Gb
- With using one sequence by different channels in one connection.
- With trigger/procedure channel rollback.
- With quick data loading in case of long buffer.
- With determining the sorting pool size in case of increased record size limit.
- With DIFFERENCE and SOUNDEX functions with parameters in an encoding other than CP866.
- With loading BLOB values longer than the maximum size limit.
- With creating/dropping indexes concurrently with other operations.
- With optimization of queries with multiple connections containing ROWID and ROWTIME column calls.
- With hierarchic query sorting on QNX.
- With the kernel memory pool during the TEST TABLE command execution.
- With processing of incorrectly described code pages.
- With locking/unlocking pages when working with global events.
- With saving multi-row text of stored events.
- With the work of the /OUTFLIMIT key on Win32.
- With automatic elimination of some problems with the database (when the database file bitmap does not correspond to the distribution of various page types in it).
Data Security and Enciphering:
- It is now possible to use cryptoalgorithms from the openssl library to encipher data, calculating the checksums, and customizing this functionality.
- GOST protocol and AES256 support in network utilities added.
- openssl can now be used for hot backup copying.
- Client and server ssl authentication for TLS protocol using certificates added (along with support of withdrawn certificate lists).
Platforms:
- Shared memory for sorting is now allocated using the mmap mechanism (instead of the less effective and less reliable ipc sysv) for Linux.
- Linter distribution build for Android enhanced, including the cross-build on Win32.
- Linter distribution for Sparc Solaris assembled by the gcc compiler tested and corrected.
Interfaces:
LinQT:
- New interface for working with BLOB values added.
- New examples added, including the new BLOB data interface work example.
- “No data” situation processing corrected.
Intlib:
- UTF8 encoding auto-detection added.
ADO.NET:
- Parameter buffer relocation during its extension improved.
- LinterDbConnectionStringBuilder class extended (default value support added).
JDBC:
- Thread stack enlarged to avoid possible problems.
Ruby:
- GetAnswerInfo function work improved (column description array format modified – indexes are now numbers, not names).
Stored Procedure Language:
- Default values for BYTE and VARBYTE parameters added (using the HEXTORAW construction).
- Constant value for VARCHAR parameters when calling a procedure from a query improved.
Utilities:
lindeskx:
- The set of processed SQL window commands increased (inl utility commands added).
dbstore:
- The database can be optionally loaded to a single file (-sf key)./li>
testdb:
- Index check is no longer interrupted prematurely.
loarel:
- Quick loading of tables containing BOOLEAN fields improved.
- Problem diagnostics when loading tables with AUTOINC –fields improved.
hrserver.
- Quick interface enabling after disabling.
- Checkpoint information can be transferred between servers in all cases.
Documentation:
The following documentation files have been updated:
- DBMS Setup on Win32.
- DBMS Setup on UNIX and QNX.
- DBMS Startup and Shutdown on Win32.
- DBMS Startup and Shutdown on UNIX and QNX.