UltraLiteJ new features

Following is a list of additions to UltraLiteJ introduced in version 12.0.0. For information about supported platforms and versions, see [external link] http://www.sybase.com/detail?id=1061806.

  • Support for external BLOB files   UltraLiteJ, using BlackBerry OS or Java SE, supports the partitioning of database files such that external files may now be used to store large BLOB values, with the files referenced using specific columns in the database. This is implemented as part of the CREATE TABLE SQL function.

    A sample usage scenario might include having a BlackBerry application use the smaller but faster persistent store to store an UltraLiteJ database while storing large BLOB values, such as pictures, in larger (but slower) flash drives or SD cards. An added benefit is that applications that capture pictures and store them in the database do not waste battery power and time copying the pictures into the database.

    See CREATE TABLE statement [UltraLite].

  • BlackBerry internal flash and SD cards support   UltraLiteJ can read and write UltraLiteJ databases to either internal flash memory or SD cards. See ConfigFileME interface [BlackBerry] [UltraLiteJ].

  • Support for multiple versions of UltraLiteJ   In order to allow multiple versions of UltraLiteJ to co-exist in the BlackBerry and Java ME environment, UltraLiteJ JAR files, COD files, and the Java package name now include the major version number, as follows:

    • The JAR file is called UltraLiteJ12.jar
    • The COD files are called UltraLiteJ12.cod
    • All public classes are contained in package com.ianywhere.ultralitej12
    • The class Unsigned64 has been moved to package com.ianywhere.ultralitej12

  • Encryption and securing UltraLiteJ applications   A new sample demonstrating how to write a very secure UltraLiteJ application for BlackBerry smartphones has been added. See Samples\UltraLite\UltraLiteJ\BlackBerryEncryption\ReadMe.html for details. For a more complete discussion on BlackBerry security, read the white paper "UltraLiteJ Security on BlackBerry Devices" at [external link] http://www.sybase.com/detail_list?id=9814.

  • new ST_Geometry data type   The ST_Geometry data type supports functions that can be applied to spatial values. See ST_Geometry type.

  • TIMESTAMP WITH TIMEZONE data type   The TIMESTAMP WITH TIMEZONE data type allows date and time values to be stored together with time zone offsets. A time zone offset is the number of minutes before or after UTC. See UltraLite Initialize Database utility (ulinit) and UltraLite timestamp_with_time_zone_format creation parameter.

  • RAND SQL function support   UltraLiteJ supports the RAND SQL function. See RAND function [Numeric].

  • Support for CREATE SYNCHRONIZATION PROFILE, ALTER SYNCHRONIZATION PROFILE, DROP SYNCHRONIZATION PROFILE, and SYNCHRONIZE   These statements are intended to provide an alternative way to organize sync parameters and to launch synchronizations using SQL. The existing Connection.createSyncParm(), Connection.synchronize(SyncParm) and related APIs continue to work. See:

  • New table constraint for CREATE TABLE and ALTER TABLE   An additional table constraint (SYNCHRONIZE ON | OFF | ALL) can be specified in a CREATE TABLE or an ALTER TABLE statement. See:

  • IF EXISTS clause added   A new IF EXISTS clause can now optionally be specified in DROP INDEX, DROP PUBLICATION, DROP SYNCHRONIZATION PROFILE, and DROP TABLE statements. See:

  • IF NOT EXISTS clause added   A new IF NOT EXISTS clause can now optionally be specified in CREATE TABLE, CREATE INDEX, CREATE PUBLICATION, and CREATE SYNCHRONIZATION PROFILE statements. See:

  • CREATE SYNCHRONIZATION PROFILE now also supports OR REPLACE clause   The CREATE SYNCHRONIZATION PROFILE statement now also support the option to replace a table. See CREATE SYNCHRONIZATION PROFILE statement [UltraLite].

  • File transfer through MobiLink   UltraLiteJ can upload and download files in the remote database through the MobiLink server.

    The desktop version of UltraLiteJ can download any type of file from MobiLink to the local file system, or upload any type of file in the local file system to MobiLink.

    The BlackBerry OS version of UltraLiteJ can download valid, unencrypted, non-obfuscated database files from MobiLink and store them in the object store, or upload these types of databases to MobiLink. It can download any type of file from MobiLink to the media card or flash storage and upload any type of file from flash and media cards to MobiLink.

    For more information about UltraLiteJ file transfers, see FileTransfer interface [UltraLiteJ].

  • UltraLiteJ Database Transfer utility can open and transfer databases on the BlackBerry's file system   UltraLiteJ automatically decides the location of the database (object store or file system) based on the database name. If the name starts with file:// (case sensitive), then the utility will try to find the database in the file system; otherwise it will find the database in the object store.

  • BlackBerry install directory renamed   The install directory for BlackBerry smartphone files has been renamed to use the minimum BlackBerry OS version. The UltraLite\UltraLiteJ\Java MERIM11 directory is now UltraLite\UltraLiteJ\BlackBerry4.2 to indicate files compatible with BlackBerry OS 4.2 and later.

  • Blobfile type support for ULjLoad and ULjUnload   The UltraLiteJ load and unload utilities support custom implementations of the blobfile type. For a sample UltraLiteJ database implementation of blobfile types, see UltraLite Java Edition Database Unload utility (ULjUnload) and UltraLite Java Edition Database Load utility (ULjLoad).

  • Improved row limiting algorithm   The row limiting algorithm has been improved to consider that rows from tables with many columns may use more resources than rows from tables with few columns.

  • System table changes   The following changes have been made to the UltraLiteJ system tables:

    • column_default_value column in syscolumn system table supports the DEFAULT AUTOFILENAME default clause   This column can handle VARCHAR types that are specified with a column default value of DEFAULT AUTOFILENAME. See syscolumn system table.

    • filename_colid column added to syscolumn system table   This column stores the column id of the referenced file_name column in the schema definition; otherwise, this column is null. See syscolumn system table.

    • table_partition_size column added to systable system table   This column stores the defined partition size value. See systable system table.

  • Encryption performance changes   The following improvements have been made to the EncryptionControl interface to improve performance in slow CPU environments:

    • UltraLiteJ now only encrypts data and system critical pages.

    • The decrypt method now accepts an additional parameter to specify the number of bytes that need to be decrypted. See EncryptionControl.decrypt method [UltraLiteJ].

    For more information about the EncryptionControl interface, see EncryptionControl interface [UltraLiteJ].

 New UltraLiteJ API features