Patch list for RDM Embedded Version 10.1 10.1.3 Build 665 15-Sep-2012 Issue Description ----- ------------------------------------------------------------- 4164 Area: sql Corrected issue where d_trrollback on a large transaction could cause huge amounts of memory to be allocated 4166 Area: examples Replaced unsuppored RSQL API call rsqlDisconnect with rsqlCloseDB in the HelloWorldRSQL tutorial 4172 Area: sql SQL varchar key lookups could fail if the contents were larger than the portion stored in the database 4193 Area: sql The ON clause now requires that only equi-join predicates (e.g. "ON col1 = col2") be specified. Where more than one is needed these can be AND'd together. Any other conditional that is included will cause new error code errONCLAUSE to be returned. 4200 Area: inmemory Persistent shared memory files are now deleted from memory after they have been written to disk and closed 4203 Area: utilities Re-added the missing schemaxlate tool for Unix to the package 4206 Area: tfss Updated TFSS to be thread safe, allow multiple user logins, and prevent any database from being opened more than once (to protect against two users opening the same database, since TFSS does not have locks) 4214 Area: cache Prelog file rename failure on commit could lead to corruption. ow, on commit, we retry rename of file, else copy file, else clear changed pages from cache. 4230 Area: dbcheck Dbcheck now checks for record totals, which are new in 10.1. Totals will not be reported if running with a database created in an earlier version. 4243 Area: rsql Fixed memory leak where if an SQL statement was prepared, and then executed over and over again, any error information from some or all of the executions was getting leaked. As long as the statement stayed open (and didn't get re-prepared), the memory was not being freed 4275 Area: dbimport Dbimport was not processing the final line in a csv import text if there were no end of line character before the end of the file 4279 Area: dbimport Removed error display during dbimport when an empty line was found in the csv file 4287 Area: sql Corrected issue where tfserver with -nodisk flag would not allow a sql database to be created 4301 Area: dbimport Added a new error message that is generated if a dbimport specification file is missing the final 'END' or '}' token 4419 Area: dbrev Fixed multiple errors in dbrev that caused it to fail on certain databases 4432 Area: runtime dbdefrag and dbcluster would fail with error -213 (S_TX_DBACTIVE) on all databases if they had already been opened 4476 Area: dbrepair Resolved issue with orphaned member sets. NOTE!!!! The dbrepair_db database structure has changed - pre-existing instances of this database should be deleted 4520 Area: runtime A crash was fixed that could occur if one thread is in the middle of opening a database while a second thread is in the middle of committing a change to the same database 4522 Area: runtime Records in legacy databases with non-default field alignment were not inserted or read correctly 4827 Area: dbcheck Dbcheck failed to open a database where at least one file is larger than 4Gb 4834 Area: dbrev Dbrev corrupted set owners whose last member's database address changed. It stored the null database address in the last-member pointer instead of the correct address. 4844 Area: xml XML exports of uint8_t and int8_t fields were incorrect on big-endian systems 4849 Area: datdump datdump incorrectly displayed a single char/unsigned char field as a string 4895 Area: dbrepair A loop in the member list for a set caused dbrepair to get into an infinite loop 4965 Area: psp Allow a symbolic link to be used as a database directory under docroot 4987 Area: C++ Interface Only set a key cursor to no record if we update a field the key cursor is based on 4995 Area: Dbexp/Dbimp Improved support in xml dbexp/dbimp for binary fields 5016 Area: dbswap Running dbswap on a database could corrupt the set and member tables 5023 Area: dbswap Dbswap did not handle non-native endian database images 5048 Area: runtime d_keyfrst/d_keynext loop was slower than previous versions so a number of changes were made to the way keynext was handled to reduce the number of memcpys and reduce the total code that is executed to increase performance 5052 Area: runtime When using a structure key (an index that is a structure - which is different than a compound key made of more than one column/ field) the d_keyread() function could overwrite the user buffer 5059 Area: build Found some additional compiler optimizations that were added to increase execution speed performance on Linux platforms 10.1.2 Build 613 31-Oct-2011 Issue Description ----- ------------------------------------------------------------- 4040 Area: SQL Some outer joins are not returning the correct results with null valued column references. 4046 Area: SQL Missing rows from natural left and right joins. 4154 Area: SQL Fixed an issue introduced in 10.1.1 which made SQL databases created in 10.1.0 incompatible. 10.1.1 Build 599 24-Oct-2011 Issue Description ----- ------------------------------------------------------------- 2617 Area: tfs The maximum number of users are now configurable through the tfs.ini file. 3888 Area: SQL Updated the getData example to match the bookshop database schema 3907 Area: datamove override_inmem has been fixed for dbget 3910 Area: ddl ddlp preprocessor option '-p' used to not generatate output files 3912 Area: docs Syntax for SQL create database statement was incorrectly displaying the native DDL grammar. 3915 Area: ddl ddlp -p used to always give an error on linux/unix due to the preprocessor inserting # directive lines not ignored by ddlp. 3916 Area: ddlp Ddlp used to corrupt generated files where the ddl file had include statement with a '/' in the file name argument. 3922 Area: util dbrepair used to calculate the number of members incorrectly for sets larger than 65535. 3927 Area: rdm Added settings to the rdm.ini file for maxcachepages and prealloc_cache. 3929 Area: rdm Recalculating static data should be removed. 3935 Area: SQL NULL values were not always properly sorted for keys 3947 Area: runtime Added memory pooling to reduce the amount of memory allocations/deallocations; other minor performance enhancements. 3950 Area: header Newly added FLDCMP_FCN declaration no longer causes compiler warnings. 3951 Area: docs Add d_timeout to lock function summary in ref manual 3953 Area: rdm Compiling a schema including BLOB fields no longer causes an "illegal field" error. 3957 Area: SQL SQL optimizer's cost estimate for FK THRU PK KEY access method is now correct. 3962 Area: runtime Poor performance when the hash bucket number is not prime. 3966 Area: util Fixed crash in dbrepair due to reading bad owner record data. Also fixed key files not getting rebuilt. 3968 Area: runtime The performance on TFSS was bad compared to TFST. It is now faster than TFST. 3970 Area: runtime Increased Performance of SQL's use of transaction marks. 3983 Area: dio customer getting S_FAULT (-902) errors followed by key corruption 3992 Area: task trmark memory pool now supports different size buffers 3996 Area: TFS persistent inmemory files are now saved on TFSS and the .cat file is included on TFST. 3999 Area: libfcns Corrected the fd_entries calcuation function to handle non-string fields correctly. 4004 Area: runtime d_keynext() now returns the correct next key value. 4008 Area: transactions Added a logfile_compression option to the dbname.ini file. 4010 Area: psp In-memory databases that contain at least one key files with a pagesize of 4K or larger now succeed. 4015 Area: runtime Performance enhancement for d_initialize when using persistant in memory databases. 4020 Area: runtime Added new error code S_SINGLEUSER error code used for the standalone TFS. 4025 Area: build Setting up the build environment to target Windows did not work correctly when QNX Momentics was installed due to a script error. 4027 Area: rsql With TFSS rsql no longer returns errSYSTEM on a second login. 4028 Area: tfss Crash in rsqlFuncTest 4032 Area: destroy d_destroy does not work with an open database when tfss is used 4034 Area: locks Corruption can occur with a mix of read/write locks -fixed 4050 Area: prdbd prdbd should display buckets for the file table 4059 Area: cppapi The cppapi was attempting to access locking tables which are not allocated when using the TFSS. 4060 Area: runtime TFSS no longer requires or uses locks 4069 Area: xml The import code was trying to use a private task for the temporary database. This will not work with the TFSS as it only supports a single task. 4081 Area: rdbc, odrv Fixed a crash caused by specifying a SQL_ATTR_MAX_LENGTH larger than target column size. 4086 Area: util dbdefrag is now changing vardata slot owner db_addrs when the owner records are relocated. 4102 Area: runtime When a legacy database was being read the dbd size, character, and endian values were being overwritten by incorrect values. 4108 Area: TFST Persistent inmemory databases created using SQL when using TFST was not stored correctly. Opening such databases from SQL would fail. 4109 Area: rsql Selecting from sys$key no longer segfault. 4113 Area: Runtime Implemented sparse keys for compund keys. 4115 Area: Runtime Implemented dba4/dba8 settings 4116 Area: SQL Implemented dba4/dba8 settings. 4130 Area: runtime d_keyread() on a key containing db_addr fields was not returning the correct data 4132 Area: XML The tmpdb_close() function was using the task field even though it was invalid. It needed to validate it first.