Apache Derby 10.0.2.1 Incubator Release
There are three different distributions:
- bin distribution - contains the documentation, javadoc, and jar files for Derby.
- lib distribution - contains only the jar files for Derby.
- src distribution - contains the Derby source tree at the point which the binaries were built.
Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs.
10.0.2.1 functionality includes:
- Embedded engine with JDBC driver
- Network Server
- Command line tools ij (SQL scripting), dblook (schema dump) and sysinfo (system info)
- Schemas, tables, tempoaray tables, views, triggers, indexes, savepoints
- Java procedures and functions
- Standard datatypes including BLOB and CLOB
- Sub-queries and joins
- Primary key, foreign key, unique and check constraints
- Referential actions
- Full ACID transaction support with all four isolation levels
- Row and table level locking
- Configurable authentication including LDAP support
- On-line backup and recovery support
- Optional on-disk encryption
- Platform independent database format
- Full support for Java 2 Security Manager
- JDK 1.3, 1.4 and 1.5 support
- JDBC 2.1 and JDBC 3.0 support
Derby version 10.0.2.1
This is the first incubator release for Derby. The build number of this release is 106978. For getting started, refer to the Getting Started manual.
The version of the IBM Universal JDBC Driver required with the Derby Network Server is 2.4.
A detailed list of changes can be found in the CHANGES file in each of the distributions listed below.
This release fixes the following reported JIRA issues since the start of the Derby project as an Apache incubator project:
|Trigger of the form: create trigger ... values myFunction(); has no effect.
|Triggers do not evaluate functions in VALUES trigger actions.
|ResultsetMetaData.getColumnClassName() for CLOB and BLOB datatypes is incorrect.
|Connection.close() method inconsistently throws exception on closed connection
|Connection.setTypeMap throws unimplemented exception with empty map
|Setting default value for a char(1) for bit data column does not work
|DRDA Chaining in Network Server is incorrect
|When using encryption, do not store the length information about the external key in service.properties
|Support for like ? Escape ?
|Request support for CAST() in Like clause
|getMaxColumnNameLength() database metadata function returns incorrect value.
|dblook currently has driver classes hard coded
|TableName not serializable
|Network Server on a 64 bit JVM fails with: Execution failed because of a Distributed Protocol Error: DRDA_Proto_SYNTAXRM; CODPNT arg = 2116; Error Code Value = 14
|IBM (c) message in properties files
|SQLDecimal.getWholeDigits returns invalid result on JDK1.5.0
|Incorrect string conversion for DECIMAL on JDK1.5
|Documentation Bug re BETWEEN
|Documentation Error - Developer's Guide - 'C' index
|dblook options doco incorrect
Below is a list of open code documented in the JIRA bug tracking system for the project at the time of the release:
|Can't create a new db on OS X
|Identity column not filled consecutively with "insert ... select distinct"
|Network Server Protocol error when select fails and "order by" is specified
|Bug in NULLIF Function
|Connection object gets created with un-supported holdability on getting Connection object from XAConnection "inside" the global transaction
|Quoted table names mishandled in select list expansion
|Quoted names with embedded period mishandled in from list
|May get a non-uniue conglomerate id in a very unlikely XA edge case
|Network Server Needs to generate CRRTKN on ACCRDB if client does not send it
|Exposed name matching has bugs when the column name is qualified with a schema name.
|NPE when trying to create a database at a directory that is not allowed
|LIKE handles strings with control characters incorrectly.
|Exception XCL16 incorrectly raised for ResultSet of method return after nested commit.
|just booting jdbc driver and shutting down seem to leak memory
|INSERT INTO SELECT DISTINCT ... skips some values for autoincrement column
|Dropping a nested trigger and rerunning the querry causes NullPointerException
|UCASE/LCASE function should change case according to database locale, but uppercases according to the JVM locale.
|Execute Statement of a SYSIBM sps gives java linkage error and class not found exception.
|Following the provided documentation and running ij results in a java.lang.InternalException
|detection of incorrect types comparison is done at ? parameters
|Strange error in JOIN ON clause
|Do not store encryption block size for encrypted database when using external key
|Some possible improvements to IN optimization
|A connection request that has a default schema that is being created by another transaction will fail to connect
|Need NetworkServerControl shutdown API method that does not shutdown derby embedded
|NsSample sample program refered to in documentation is missing
|derby snapshot zip does not contain network server war file
|Some derby javadoc issues should be cleaned up
|TableName not serializable
|updateNull doesnot work with Embedded Driver
|Network Server user ID and password encryption requires IBMJCE
|Derby supports open cursor across commits and hence DatabaseMetaData.supportsOpenCursorsAcrossCommit return true.
|Merge TransactionResourceImpl into EmbeddedConnection
|Ability to compile under JDK1.5
|Clean up import and JavaDoc for MethodNode hierarchy
|NPE when creating a trigger on a table and default schema doesn't exist.
|sweep of name changes to Derby
|dblook displays message keys instead of their associated text
|Add documentation for database encryption using external key
|Need to document new property derby.drda.keepAlive
|Cannot create CHAR column with size greater than 254
|Documentation refers to SYSIBM system schema
|Incorrect documentation about class loading from installed jar files.
|Stored procedure cannot be invoked with VALUES statement
|Provide Derby Documentation in PDF format and improve navigation
|Add documentation for property - derby.language.logQueryPlan
|org.apache.derby.database.UserUtility.add does not exist but is documented
Tests were run on the following platforms. Results are listed separately for each platform.
|platform, jvm version
|SUN J2EE complience test jdbc suite (version 141); xa suite (version 141 plus patch)
|OS: WIN 2000. jvm: Sun jdk 142.
|WIN 2000/ibm142, WIN 2000/jdk142
|Cloudscape functional Tests yet to be contributed to apache
|WIN 2000/ibm142, WIN 2000/jdk142
Tests for a specific platform can be run using the corresponding derbyTesting.jar file that can be found here: derbyTesting.jar
Instructions on how to run the tests can be found in the testing README.
The following known issues were documented in the JIRA bug tracking system for tests on the day of the release:
|Test instructions incomplete for setting classpath.
|RunSuite summary rounds incorrectly
Note: the issue of derby-77 indicates that one needs to have derbyLocale_*.jar in the classpath or 1 test (derbynet/sysinfo) will fail.
The derbyall suite of this build has one failure; the test lang/UnitTests.java cannot be found. This will show up in the summary file derbyall.sum, and as 1 failed test in derbyall_report.txt.