While profiling a c-treeACE SQL Server environment, it was discovered the process increased memory usage over time under specific conditions. Several areas were profiled in depth for memory utilization and potential for memory consumption was addressed:
An ExecuteDirect() ODBC function call was found to cause memory leakage when a SELECT statement timed out, and the statement was not properly closed. To prevent memory from being returned, failed statements are now closed.
When a c-treeACE SQL client disconnected, a small (99 byte) leak was found in early versions of c-treeACE SQL 9.3.
Multiple SQL parsing and optimization routines failed to release internal structures resulting in memory leakage over time. These have been identified and corrected.