New features

Following is a list of additions to UltraLite introduced in version 10.0.1.

  • New platforms and devices   Windows Vista is now supported in this release.

  • Improved SQL performance   Historically, UltraLite would default to using the primary key index if, the UltraLite query optimizer determined that there was not any benefit to using an existing index for the query.

    With this version, instead of using the primary key, UltraLite will now access rows directly from the database pages. When this happens, you can expect to see query results returned in a different order from previous releases, because rows are no longer ordered by the primary key index. If the ordering of data is a concern, use an ORDER BY clause in your query. See Direct page scans and Use index scans.

  • Database property and option accessibility via SQL   Previous versions only allowed you to access database properties and options with methods from each UltraLite API. Now, UltraLite SQL introduces the following statement and function, so that you can set and retrieve properties and options via SQL (including Interactive SQL):

  • Increased number of concurrent connections   UltraLite now supports more concurrent connections. A single database still supports 14 connections. However, the number of overall concurrent database connections have increased:

    • 8 databases and 16 concurrent connections for Palm OS and Symbian OS.

    • 32 databases and 64 concurrent connections for all remaining platforms.

    Note

    The total number of SQLCAs you can use to connect to the engine is 31. Keep this number in mind knowing that some components use one SQLCA per database manager and one SQLCA per connection. That means, for example, if your application is using the UltraLite.NET API, your real connection limit is reduced to a total of 30 connections only.

  • Commit flush operations   Historically, any commit operation performed with either the COMMIT statement or API call would only complete after UltraLite flushed a transaction safely to storage. With this release, you can now configure these behaviors and logically separate them as distinct operations:

    • A logical commit now gives you the ability to roll transactions back in an application.

    • A checkpoint now gives you a recovery point after a failure. This allows you to recover to the last committed transaction that has been flushed to memory.

    However, you can also enhance the performance of UltraLite applications that use the autocommit feature—particularly if you use group commit flushes. See UltraLite and UltraLite Java edition database back up and recovery and Flush single or grouped transactions.

    This new behavior is supported with the following features: