c-treeACE V11.0 Release Notes

Copyright Notice
FairCom Typographical Conventions
Notable Compatibility Changes
c-treeACE Server - Change defaults for V11 release
Correct Error Messages Now Returned by fc_create_user Procedure
SQL - Changed error message for error -20139
SQL - BINARY fields not padded with 0x00
Automatic c-treeDB Batch Buffer Resize
Proper positioning of ctdbSeekRecord with active record sets
Server process exit code more informative
Physical read of variable-length transaction controlled file skips records added by a third-party transaction not yet committed
Linux File System Performance and Safety Advisory
COMMIT_DELAY Configuration Now Defaults to 1 ms on Linux Systems
New Extended Data Types Support
Dynamic Dump Stream Files No Longer Segment by Default
Auto-Numbering Replication Defaults Changed
“Add Unique Keys First” Feature Applied to ctADD2END Files
Maximum LIST_MEMORY Setting Increased to 10MB
Maximum Index Members per File (MAXMEMB)
Maximum Number of Indices per Data File (MAX_DAT_KEY) Default Increased to 64
Maximum Number of Open Files per User (MAX_FILES_PER_USER) Default Increased to 32767
Allow a Single Byte or SByte to be passed as a BINARY Value in ADO.NET
c-treeACE Memory Allocation Limit Disabled
c-treeACE SQL SETENV limit raised to 8192
c-treeACE SQL Stored Procedure Server-side Debugging Options
Java Stored Procedure Runtime Classes no Longer Require ctreedbs in Path
PHP - Components Now Match non-Thread-Safe Defaults for Windows IIS PHP Installations
c-treeACE SQL JDBC Socket Timeout Defaults to 0
c-treeACE SQL JDBC Java 1.5 Compatible Driver Availability
Windows Servers Now Statically Linked with ZLIB Compression Libraries
Core Engine Updates and Corrections
Critical Production Updates
Corrected Unhandled Exception When File Password Included in Open File Call
Corrected Read and Write Errors after Connection Termination
Prevent c-treeACE Server WRITE_ERR Termination with Open Transactions Aborted by Quiesce
Corrected Unexpected c-treeACE Server Internal Error 7495 Crash
Prevent c-tree Server Unhandled Exception During Update of Compressed Record
Inconsistent Locking of Header for Non-HUGE Index Files and Variable-Length Data Files in FPUTFGET
Avoid c-treeACE Server Termination with Internal Error 8987 When Using UNBUFFERED_IO Configuration Option
Prevent Unhandled Exception When a Single Connection Opens a File More than 1024 Times
Corrected Prime Cache Thread Unhandled Exception When Opening File Pending Delete
Corrected Errors When Changing a Temporary Index Condition
Deadlock Corrected in Data Cache Retrieval Function
Unhandled Exception When Accessing Pruned Memory Index Node
Useful Updates
License File Handling Improvements
Specify Shared Memory Keys on Unix
c-tree Server Name and Port Displayed in Windows System Tray Balloon
Optional c-treeACE READ_ERR Diagnostic Logging
Allow Connection Termination Requests to Interrupt Batch Operations
Delete Node Queue Messages Now Suppressed by Default
Suppress SSL Library Loading Error Messages on Server Start Up
Suppress Logging “file is opened without mirror” When MIRRORS NO is Specified
Permit Failed c-treeACE Server ctThrdInit() Calls to Return to Caller Instead of Exiting Process
Path Separator Now Automatically Appended to TMPNAME_PATH Directory
c-treeACE Professional SDK Build Improvements
Dynamic Dump and Restore Updates
Non c-tree Files Now Back Up to Correct Directory
Proper Dynamic Dump Subdirectory Creation on Unix
Dynamic Dump Error now Returned to ctdump with !BLOCK_RETURN Option
Flush ctdump Utility Filesystem Output Before Exiting
!CLNIDXX Script Option no Longer Crashes ctrdmp Restore Utility on 64-bit Systems
ctrdmp Stabilized During Recovery Phase
ctfdmp, ctldmp, and ctrdmp Utilities Now Display Version Information on Startup
Transaction Control and Recovery Strengthened
Avoid Server Shutdown When Finding Outdated Transaction Log
Index Member Key Counts Now Properly Updated During Automatic Recovery
Ensure Correct Log Update for Very Large Transactions
Checkpoint Inconsistency Error Prevented with Deferred OPNTRAN Feature with Superfiles
Correct Data File Counts Now Maintained After Resource Update Rollback
Incorrect IICT Behaviors Corrected
Prevent LEOF_ERR Errors After Forward Roll
Server Engine Updates
Memory Index Node Resources Now Properly Freed
Improved Server Stability When Using VSS For Backup
Non-HUGE Reads Past 4GB Now Correctly Return Error
ITIM_ERR (160) Corrected When CT_STRING UNCSEG Segment Is Not Null Terminated
IKRS_ERR (109) Corrected When Client Library Supports Fewer Key Segments Than Index Definition
FNOP_ERR (12) Corrected When Reopening Deferred Closed File with Alternate Path
RRED_ERR (407) Corrected When Rebuilding VARLEN FPUTFGET Indexes
IERR_COD (923) Corrected When Compacting VARLEN TRNLOG Data and COMPATIBILITY LOCK_EXCL_TRAN is in Use
DMAP_ERR (957) Corrected On Overlapping ISAM File Open/Close Calls
DLOK_ERR (42) Corrected for Memory File Add or Update Failures
MHDR_ERR (549) Corrected With Mirrored File Opens
RENF_ERR (67) Corrected During File Compact
Errors 128, 150, and Possible Hangs Corrected With Batch Inserts or Updates Containing IDENTITY Fields and TCP/IP Connections
Sort Error 484 Corrected During Sort File Create With Large Number of Keys
Improved Variable-Length Data File Space Management
Modified Rebuild Callback Event Handling
Correct Key Value Now Updated with Physical Order Read and ISAM Key Buffers Disabled
Named User Counts Now Correctly Applied at Group Level
Correct File Block Behavior with Unix File Access
UNIFRMAT Builds Now Able to Open V9 Created Files
Memory Usage Stabilization
Fixed Memory Leak When Creating Superfile Member with TRANPROC Support Disabled
Fixed Memory Leak When OPNIFIL Fails with Error 124
Fixed Memory Leak When Closing File without Freeing Range
Communications Layer Fixes
Errors Ignored When IP Address Return for Host System Fails
Error 133 and Long Connect Times Now Avoided During Many TCP/IP Disconnects
Shutting Down with Connected Clients on Unix Now Frees Shared Memory Resources
Allow Start of Unix-Based c-treeACE Server When Shared Memory Key Files Are Deleted
Memory Leak in ISAM Unix Shared Memory Protocol Corrected
File Transfer with Unix Shared Memory No Longer Generates Client Exception
c-treeDB API Fixes
Avoid Error 4108 on Compressed Files During Batch Find
Create Table Now Updates sysindexes in Server DLL Model
ctdbAlterTable Now Retains Row-Level Security Information
Avoid CTDBRET_CANTCHKUID Error During ctdbConnect()
Proper Errors Now Returned by ctdbGetIndexByUID
Prevent TNON_ERR (71) From ctdbRemoveTable
ctdbRenameTable Now Correctly Renames Index With Same Name as Table
Identity Field Now Properly Processed in ctdbInsertBatch
ctdbFreeRecord Memory Leak Corrected When Record Set is Active
Correct Length Now Always Set for CT_2STRING With setFieldAsBlob and setFieldAsString
Field Callbacks Added for CHAR and VARCHAR Fields
Identify Legacy c-treeDB Segment Error More Clearly
ctdbRenameTable Now Renames Tables When Working Within SESSION_CTREE Mode
Core System Updates
BATSETX no Longer Fails on First Call with a Buffer too Small
Batch Update Now Correctly Recognizes BAT_RET_BLK Record Format
Blocking Record Read Improvements
Client TFRMKEY API No Longer Writes Non-Zero High Word Record Offsets into Key Value
GETIFIL No Longer Fails Due to Alignment Adjustments
Corrected Error Handling for ctVERIFYidx and ctVerifyFile APIs
Corrected ctVERIFYidx Reports For Non-ctPREIMG Files With Key Marks
Error IAIX_ERR (608) Corrected When Compacting or Rebuilding Files Containing SRLSEG or SCHSEG Segment Modes
Improved Handling of Encryption Attributes During File Compact and Rebuild
Client Library Exception Corrected When ctWNGV is NULL
ctGetFileUsers() Now Returns Correct User File Number for Multiple File Open Instances of a Single Connection
Identity Field Support Now Available in LOCLIB model with Single-User TRANPROC
Interim Build Modifications
Unhandled Exception Fixed for Transaction-Controlled Index File Under Heavy Update Activity in V10.4
Unhandled Exception Fixed When Shutting Down c-treeACE Server DLL on System That Does Not Support Memory Tracking
Incorrect Index Member Key Counts Corrected When Using KEEPOPEN_LIST
Automatic Recovery Issues Corrected with Aborted Index Operations Introduced in V10.4
c-treeACE SQL Updates and Corrections
Critical Production Updates
Prevent c-treeACE SQL Termination When Accessing LONG Types
Prevent Crash With ON Clauses Containing Sub-Queries
Prevent Crash When Creating Dynamic Indexes
Prevent SQL PANIC Condition with Selected Queries
Prevent Crash During Outer Join Optimization
Prevent Unhandled Exception for SQL Insert Statements Involving ROWID
Prevent Potential Crash While Reading LONG VARCHAR Data
Prevent Crash From ODBC SQLCursor() Call With NULL
Crashes and Hangs Corrected if an SQL Query Contains Many INNER JOINS Based on Equality
Prevent Large Number of IN Values Causing a Server Crash
LONG Type Stability Improvements
Ensure SQL Database Creation at Server Startup Completes Before Allowing ISAM Connections and Server Shutdown
Avoid Infinite Parsing Recursion
Avoid Crash When Database Name Exceeds Maximum Length
Correct Handling of Recursive Subquery Clauses
Corrected Direct SQL Update of LONG Fields
Prevent MM Subsystem Crash
Corrected Infinite Parser Loop
Corrected Buffer Overruns When Using Direct SQL Interface
Partial Sort Table Scan No Longer Eliminates Potentially Significant Records
Corrected Result Sets Returned with LEFT OUTER JOIN and TOP and SKIP Conditions
Corrected Query Results with Literals Over 2048 Characters
Correct Results Now Returned When Subquery Contains SKIP
c-treeACE SQL APIs
ADO.NET Provider Exception Classes Made “Serializable”
ADO.NET Provider - Improved Handling of NUMERIC Type
ADO.NET Provider - Changed TINYINT Handling from byte to sbyte
ADO.NET Provider - Charset Option in Connection String Is not Longer Ignored
ADO.NET Provider - Improved Connection Pooling
ADO.NET Provider - CtreeSqlDataReader Close() No Longer Aborts Automatic Transactions
ADO.NET Provider - FcSQLException Constructor Now Thread-Safe Preventing Initialization Errors
ADO.NET Provider - Last Byte Now Returned from LONG Columns with Length Less than Three
ADO.NET Provider - OUT Stored Procedures Parameters Now Correctly Set
ADO.NET Provider - OUT/INOUT SP parameters not set to NULL
ADO.NET Provider - Prevent Reusing a Disposed CtreeSqlConnection
ADO.NET Provider - Removed Unexpected Assert Exceptions
ADO.NET Provider - SqlDataReader.GetSchemaTable() Now Returns Correct Information
ADO.NET Provider - Prevent Mixing Transaction Contexts
ADO.NET Provider - Improved Exception Handling
ADO.NET Provider - Corrected -20123 Error When Updating Rows with LONG Fields
ADO.NET Provider - Corrected LVARCHAR Empty String Handling
ADO.NET Provider - Improved Handling of FLOAT, DOUBLE, and REAL Data Types
ADO.NET Provider - Corrected TimeStamp Values Returned
ODBC - Infinite Loop Corrected in Client Driver
ODBC - SQL_C_DEFAULT Now Correctly Maps BIGINT to 64-bit Integer
ODBC - SQLBindCol with NULL Indicator and ROWSET Size > 1 No Longer Crashes Client
ODBC - SQLExecDirect with Parameters Set to SQL_DATA_AT_EXEC No Longer Generates Client Crash or Syntax Error
ODBC - SQL_ROWSET_SIZE Attribute Now Returns Correct Number of Rows
ODBC - SQLGetData Memory Overwrite Corrected
ODBC - SQLGetInfo Returns Corrected Information
ODBC - SQLGetTypeInfo Returns Corrected Information
ODBC - SQLNativeSql Now Returns Correct Statement Length
ODBC - SQLSetCursorName Corrected Buffer Addressing
JDBC - Character Set Can Now Be Specified in the Connection URL
JDBC - Allow Disabling Socket Timeout
JDBC - Corrected Error -26049 (Invalid column number) During SELECT ... FOR UPDATE Query
JDBC - Corrected Exception When Character Set Not Provided In URL Connection String
JDBC - Driver.connect Method Now Compliant with Incorrect URL Handling
JDBC - LVARCHAR Empty String Now Correctly Returned
JDBC - Improved Type Conversion Error Message
JDBC - DatabaseMetaData.getTable Now Conforms to JDBC Standards
JDBCjava.sql.Connection.isValid Now Returns Correct State
PHP - Components Now Match non-Thread-Safe Defaults for Windows IIS PHP Installations
PHP - Integer Values Now Correctly Handled
Direct SQL - ctsqlSetParameter Memory Corruption Corrected
Direct SQL - Corrected ctsqlNumericToString and ctsqlStringToNumeric Unicode Handling
DSQL - ctsqlExecute() Unhandled Exception Corrected
Multiple “Internal Error” Conditions Corrected
Corrected Memory Leak When Error Occurs Creating Table with IDENTITY Field
ALTER TABLE Now Checks REFERENCES Permissions When Adding Foreign Key Constraints
SYSDATE Default Field Values Now Allowed With ALTER TABLE
Unix Client Shared Memory Connections No Longer Leak Memory
AIX Clients No Longer Drop Inactive Shared Memory Connections
Avoid Connection Errors If First COMM_PROTOCOL Module Fails to Initialize
Correct Error Messages Now Returned by fc_create_user Procedure
Correct Return of LVARCHAR Data When Using CT_STRING Data Type
Correct VARCHAR Data Now Returned in Complex Queries
Proper NULL Values Now Returned for LVARCHAR Columns When Sorting for ORDER BY
LONG VARBINARY Support Added for ORDER BY Clauses
Query Speed Improved From Dynamic Index Usage
Corrected TRUNCATE Scalar Function Result
Corrected Rounding of Sub-Query Numeric Values
Empty Column Names No Longer Returned When Column Length Is 64-characters
Case-Insensitive CONTAINS Now Properly Matches Uppercase Data
MAX Scalar Function on Field With Descending Index No Longer Returns MIN Value
SUSER_NAME and USER_NAME Scalar Functions Improved
Corrected GRANT of Column Permissions for non-DBA Users with Table Grant Permissions
REVOKE GRANT OPTION Now Correctly Removes Column Permissions
Corrected Index Creation for Selected Imported Tables
Optimizer Improvements for Field Type Constraints
Error -20134 No Longer Returned When Setting LONG Fields to NULL
Error -20133 No Longer Improperly Returned When Setting UID in DEFAULT Clause
Error -20142 No Longer Returned with UDF Execution After Table Import
Corrected DH_REBUILD_SEL_CUTOFF Handling
Replication Agent Updates
Improved Replication Agent Handling of Compressed Records
Maintain Replication Agent Connection During Dynamic Dump of Target Server
Prevent Replication Agent Termination Related to Locked State Record on Target Server
Improved Error Handling for Replication Agent HTRN_ERR (520)
Avoid Replication Agent Halt if Target Connection is Lost During Checkpoint Processing
Support Partial Record Rewrite in Local/Master Synchronous Replication
Replication Agent Stability Improvements
Avoid ICUR_ERR When Using Replication Agent Administrator
Corrected ctReplSetPosByTime Error 76
Utility Improvements
“Change DIAGNOSTICS” Menu Option Restored for ctadmn Administrator Utility
Flush ctstat Statistics Utility Output Before Pausing
ctstat -filelocks and -userlocks Options Now Show Lock Information When a Large Number of Locks Are Held
ctinfo Now Reports Mismatch Between Data and Index Filemode When Data File Has No Indices
Compact and Rebuild Utilities Now Correctly Update IFIL Resource When -updifil Option is Specified
cttrnmod No Longer Terminates with Unhandled Exception When Data File Uses Extension Other Than .dat
ctquiet Utility Now Accepts Passwords Over 16 Bytes
ctsqlcdb Now Returns Non-zero on Error
ctsqlutl Column Rename Improved
ctcv67 Now Includes Support for Partial Key Distinct Counts
ctstap - Single-Threaded Version of Multi-Threaded Test