What's New in JDataStore 6
JDataStore 6 offers several new features and customer-requested enhancements of existing features. This document provides brief descriptions of these features. The Release Notes provide more complete information. Some of these are also discussed in the JDataStore 6 Developer's Guide, which contains a new chapter devoted to UDFs and stored procedures. In addition, the Guide's SQL Reference section has been extensively rewritten.
JDataStore's new features include:
Improved support for industry standards
JDataStore now completes the entire J2EE CTS 1.3.1 test suite including the JDBC, XA, and JTA test trees. It supports JDK 1.4 and implements all JDBC classes and methods required for JDBC level 3 compliance (JDBC 3).
New JDBC extended properties
JDataStore 6 provides new extended properties for obtaining new java.sql.Connection objects. These include the ability to:
- create databases when they don't already exist
- specify a directory for temporary files
- specify the max bytes for memory sort operations
- specify heuristic completion of uncommitted transactions when a distributed transaction is interrupted during a two-phase commit
Semicolon-separated extended property settings in JDBC URLs
The extended properties discussed in the section above can be called in JDBC URLs using semicolons to separate the properties. For example:
jdbc:borland:dslocal:mydatabase.jds;create=true;tempDir=/tmp
Additional implementation for JDBC 2 interfaces
JDataStore 6 now implements the following JDBC classes, interfaces and methods:
- All interfaces, classes, and methods required for batch update support.
java.sql.CallableStatement for stored procedures
- Scrollable/updateable JDBC cursors
DatabaseMetaData methods that provide information on imported/exported foreign keys>
Additional implementation for JDBC 3 interfaces (requires JDK 1.4)
All JDBC interfaces, classes and methods required for JDBC 3 compliance are now implemented. This includes support for
SavePoints
,
ParameterMetaData
, and
Statement.getGeneratedKeys()
.
"heuristicCompletion" extended JDBC property for XA distributed transactions
heuristicCompletion
is a new JDBC extended property that controls how XA transactions that are prepared, but not finished (no commit or rollback) will be heuristically completed. There are three possible string settings for this property:
commit
,
rollback
, and
none
.
New keywords
The following keywords are new in JDataStore 6:
ACTION
ANY
CALL
CHECK
EXCEPT
FOREIGN
INTERSECT
NO
REFERENCES
SOME
USER
DATE and TIME data types
The
DATE
and
TIME
data types now store local date and local time. The
TIMESTAMP
type has not changed. It is still stored in GMT time.
The FLOAT data type
The FLOAT data type has been changed to comply with the SQL92 standard: it is an abbreviation of FLOAT(p) where p is the largest supported precision in bits of this floating point number.
Two new system functions
USER( ) returns the username of the current connection.
CONVERT() converts a scalar expression to one of the following SQL types:
| BIGINT |
BINARY |
BIT |
| CHAR |
DATE |
DECIMAL |
| DOUBLE |
FLOAT |
INTEGER |
| LONGVARBINARY |
LONGVARCHAR |
REAL |
| SMALLINT |
TIME |
TINYINT |
| VARBINARY |
VARCHAR |
|
Subqueries
General support for SQL92 subqueries has been added to JDataStore 6.0, including
IN
predicates,
EXISTS
predicates,
ALL
and
ANY
predicates, and scalar subqueries.
Foreign keys
JDataStore 6 now supports the use of
FOREIGN KEY
s in
CREATE TABLE
and
ALTER TABLE
statements. The syntax is:
::=
[CONSTRAINT ] FOREIGN KEY ()
::=
REFERENCES [( )]
[ON DELETE ]
[ON UPDATE ]
[NO CHECK]
::=
NO ACTION
| CASCADE
| SET DEFAULT
| SET NULL
Table expressions
JDataStore 6 has added support for the UNION, INTERSECT, and EXCEPT SQL92 table expressions.
Single-row SELECT
The SELECT ... INTO statement has been added to JDataStore 6.0.
Stored procedures and UDFs
JDataStore 6 now includes extensive support for UDFs and stored procedures. The Release Notes> provide details on how to create and use UDFs and stored procedures. This information is also included in a new chapter of the JDataStore 6 Developer's Guide.