Apache Derby 10.1.1.0 Release
Distributions
Use the links below to download a distribution of Apache Derby from the archives. It is good practice to verify the integrity of the distribution files.
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.
db-derby-10.1.1.0-bin.zip [PGP] [MD5]
db-derby-10.1.1.0-bin.tar.gz [PGP] [MD5]
db-derby-10.1.1.0-lib.zip [PGP] [MD5]
db-derby-10.1.1.0-lib.tar.gz [PGP] [MD5]
db-derby-10.1.1.0-src.zip [PGP] [MD5]
db-derby-10.1.1.0-src.tar.gz [PGP] [MD5]
There are two separate Eclipse plugins for Derby:
- derby_core_plugin - provides the Derby jar files to other plugins in Eclipse.
- derby_ui_plugin - provides an Apache Derby Nature in Eclipse for easy database application development.
derby_core_plugin_10.1.1.zip [PGP] [MD5]
derby_ui_plugin_1.1.0.zip [PGP] [MD5]
Please note: both plugins must be installed for full functionality. For information on installing and using the Derby plugins for Eclipse, please see the Using the 10.1 Core and 1.1 UI Derby plug-ins page.
Release Overview
Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs.
What's new in 10.1.1.0:
- New open source Derby network client driver
- Support for J2ME/CDC/Foundation with JSR-169 JDBC subset
- Online compress functionality for reclaiming disk space during operation
- XA support for Network Server
- Increased identifier lengths to 128 characters for all identifiers
- Added SQL: INTERSECT and EXCEPT
- Added SQL: SYNONYM
- JDBC Updatable Result Sets
- ORDER by expressions
- Allow insertions into an identity column
- Support for explicit Java method signature in function and procedure defintions
For a comprehensive list of changes, consult the CHANGES file in your distribution.
10.1.1.0 functionality includes:
- Embedded engine with JDBC driver
- Network Server
- Network client JDBC driver
- Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)
SQL support:
- 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
Other features:
- Full ACID transaction support with all four isolation levels
- Row and table level locking
- Configurable authentication including LDAP support
- Import/Export
- On-line backup and recovery support
- Optional on-disk encryption
- Platform independent database format
- Full support for Java 2 Security Manager
JDK/JDBC support:
- JDK 1.3, 1.4, 1.5, and J2ME support
- JSR-169, JDBC 2.1, and JDBC 3.0 support
Release Notes
Derby version 10.1.1.0
This is the first official release for Derby as a subproject of the Apache DB proejct. The build number of this release is 208786. For information on getting started using Derby, refer to the Getting Started manual.
The IBM Universal JDBC Driver is no longer required to use the Derby Network Server. A new Derby network client driver, packaged as derbyclient.jar, is now provided for remote network access to the Derby Network Server. For more information on using the Derby network client driver, see the Derby Server and Administration Guide.
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 10.0.2.1 release:
Key | Summary |
DERBY-8 | Connection object gets created with un-supported holdability on getting Connection object from XAConnection "inside" the global transaction |
DERBY-10 | Provide XA Support for Network Server |
DERBY-19 | NPE when trying to create a database at a directory that is not allowed |
DERBY-55 | Derby documentation mentions script and batch files that don't exist |
DERBY-56 | NsSample sample program refered to in documentation is missing |
DERBY-58 | dblook options doco incorrect |
DERBY-62 | TableName not serializable |
DERBY-66 | Derby does not support open cursor across commits for XA transactions and hence DatabaseMetaData.supportsOpenCursorsAcrossCommit should return false. |
DERBY-82 | Add documentation for property - derby.language.logQueryPlan |
DERBY-87 | org.apache.derby.database.UserUtility.add does not exist but is documented |
DERBY-91 | XA .sql tests fail with jar files |
DERBY-92 | Cannot connect to Derby using DB2 Universal Driver |
DERBY-96 | partial log record writes that occur because of out-of order writes need to be handled by recovery. |
DERBY-97 | Support J2ME/CDC/Foundation with JSR169 JDBC subset |
DERBY-101 | Limit on Number of log that can be created should be increased (current limit is 4194303) |
DERBY-102 | can not insert more than 32270 charakters in long varchar, clob |
DERBY-104 | Get rid of the Max lenght of 18 for constraint names |
DERBY-106 | HashJoinStrategy leads to java.lang.OutOfMemoryError |
DERBY-107 | Add Support for ODBC Metadata Calls to Derby |
DERBY-114 | Buildworld target refers to non-existent jars target |
DERBY-115 | BEFORE triggers missing from CREATE TRIGGER documentation |
DERBY-116 | Content comment for SYSTRIGGERS.TRIGGERDEFINITION is misleading |
DERBY-121 | Network Server reading blob/clob data size |
DERBY-122 | Suite jdk14 is skipped incorrectly with J2SE 5.0 |
DERBY-123 | Derby incorrectly rounds double values down during insert into NUMERIC |
DERBY-124 | Result type for CONCAT operator with blobs appears to be incorrect. |
DERBY-126 | Documentation bug. Doc says column default can be edited - it looks like it cannot |
DERBY-127 | Aliased Columns not recognized after "group by... order by" combination |
DERBY-130 | IDENTITY_VAL_LOCAL not reset when new Connection returned from PooledConnection |
DERBY-132 | in place table/index compress which returns space to OS |
DERBY-134 | Sorted string columns are sorted in a case sensitive way |
DERBY-139 | LOCAL as a reserved keyword does not match other databases |
DERBY-153 | Bad Eclipse plugin version specification |
DERBY-155 | Add DISTINCT keyword support to INTERSECT and EXCEPT |
DERBY-158 | PRIMARY KEY does not imply NOT NULL |
DERBY-161 | DATE function as documented in the manuals does not support integer arguments. i.e. DATE(1232) does not work although the manual specifies that this format will return a date field that is "x" number of days since day 0. |
DERBY-164 | unicodeEscape command in ij doesn't work |
DERBY-168 | Can't ALTER a column to have a new DEFAULT value. |
DERBY-173 | For the concurrency of ResultSet, Network Server should not send the concurrency of Statement. |
DERBY-174 | setNull does not work with java.sql.Types.TIMESTAMP |
DERBY-175 | setNull does not work with java.sql.Types.BLOB when batching is turned on |
DERBY-180 | XCL47 SQLState duplicated in messages_en.properties? |
DERBY-181 | Function/Procedure specific name documented but not supported |
DERBY-182 | BUILDING.txt 3.4.6 refers to a readme file for testing that does not exist |
DERBY-186 | isFirst() returns true when relative(x) goes beyond result set |
DERBY-189 | ResultSetMetaData.getSchemaName and ResultSetMetaData.isWritable donot return correct values |
DERBY-194 | getPrecision() on TIME and TIMESTAMP is zero |
DERBY-198 | Add Support for network Server USRIDONL security |
DERBY-199 | Derby does not support array of column names or column indexes to execute or executeUpdate. Document incorrectly implies that Derby supports this functionality |
DERBY-214 | Remove System.exit() calls from the DB2jServerImpl.java |
DERBY-217 | issue with BLOBs and batch updates in 10.1.0.0 |
DERBY-218 | Add Relaxed Durability option |
DERBY-219 | EXCEPT/INTERSECT fails in views |
DERBY-220 | Javadoc build should include a timestamp and/or the svn revision number in a visible location. |
DERBY-225 | insert of decimal value larger than max succeeds with jdk15 |
DERBY-227 | Reference manual has incorrect information for supported resultset types for prepareCall JDBC api |
DERBY-228 | need some OSGI related changes to MANIFEST.MF |
DERBY-229 | Column names on ResultSet.updateXXX and getXXX methods are handled incorrectly |
DERBY-230 | "Schema already exists" when creating a table |
DERBY-235 | unable to create a database using a different storage factory than the one provided by default with the engine |
DERBY-236 | Sane Mode and in our test environment, bootPassword gets written out in plain text to service.properties |
DERBY-237 | Boot errors from store must not lose error messages/stack traces in between. |
DERBY-242 | DatabaseMetaData.supportsGetGeneratedKeys needs to return FALSE, since Derby only has limited support. |
DERBY-243 | connection toString should uniquely identify the connection |
DERBY-246 | XA end() fails with Connection is closed error |
DERBY-247 | Network Server demo program should support Derby network client driver |
DERBY-248 | Network Server frameworks scripts should support Derby network client driver |
DERBY-249 | Builds fail during splitmessages step if path contains spaces |
DERBY-250 | With client setObject( parameterIndex, x, java.sql.DOUBLE) throws conversion exception if the object passed is a BigDecimal with more than 31 digits |
DERBY-251 | DISTINCT query is returning duplicate rows |
DERBY-255 | Closing a resultset after retrieving a large > 32K value with Network Server does not release locks |
DERBY-258 | Incorrect method resolution with explicit method signature |
DERBY-265 | In Network Server retrieving BLOB values with autocommit off causes NullPointerException in INSANE build / AssertFailure in in BaseContainerHandle.getTransaction in SANE Build |
DERBY-266 | test tools/dblook_test.java fails if run in a directory having "*derby/*" in its path |
DERBY-279 | Tagging in DITA docs causes Derby builds to fail. |
DERBY-287 | Return value of IDENTITY_VAL_LOCAL for different connections is not related. |
DERBY-288 | JDBC 2.0 Connection Methods Supported table in displays correctly in html but not in pdf form of Reference manual |
DERBY-302 | Takes over 3 minutes to insert a 500kb String into CLOB |
DERBY-309 | Regression: store/backupRestore1.java fails |
DERBY-313 | testing/README.htm property descriptions: testSpecialProps wrongly named; useprocess omitted |
DERBY-314 | eclipse plugin needs improved network server process handling |
DERBY-318 | SYS.SYSCOLUMN problem with "GENERATED BY DEFAULT" column w/ Network Server |
DERBY-319 | Derby returns incorrect values for "LENGTH" column of DatabaseMetaData.getProcedureColumns() result set. |
DERBY-320 | Failed test: derbyall/derbynetclientmats/derbynetmats.fail:lang/updatableResultSet.java |
DERBY-322 | Remove resultSetHoldability property from ClientDataSource |
DERBY-325 | Database cannot be started due to recovery failure |
DERBY-334 | Add initial SQL support for XML datatype/functions in Derby, based on SQL/XML specs. |
DERBY-335 | Enhance Derby by adding SYNONYM support. A synonym is an alternate name for a view or a table. |
DERBY-337 | dblook doesn't generate SQL statements for SQL functions. |
DERBY-339 | Network client XA should only keep XA state for transaction branch association, to track whether to send commit in autocommit mode. All other state and state related decisions should be deferred to the server. |
DERBY-344 | NPE while performing a 'select distinct ' on a database in softupgrademode with 10.1 |
DERBY-348 | example.html file for the SimpleApp does not describe the arguments accepted by the program |
DERBY-361 | Unknown page format error while doing recovery after a a crash while doing in place compress. |
DERBY-366 | In jdk13, when a connection transitions from global transaction to local transaction, its default holdability of HOLD_CURSORS_OVER_COMMIT is not restored. |
DERBY-373 | Documentation errors in "Server/Admin" Guide. |
DERBY-374 | Invalid URL with Derby Client when connecting to Network Server causes protocol exception. |
DERBY-375 | Specification of incomplete server properties on command line causes NPE with NetworkServerControl when starting the server. |
DERBY-377 | There is no information available in the manuals on how to upgrade a database from 10.0 to 10.1 version. |
DERBY-389 | With Network Server Database hangs after some time with many connections executing prepareStatement() |
DERBY-405 | SYNONYM should not be allowed in SESSION schema because that can confusion wih temporary tables |
DERBY-416 | Parameter in one of the error messages is not replaced by the desired value. |
DERBY-420 | missing classes in published javadoc and incorrect copyright date |
Below is a list of open code issues documented in the JIRA bug tracking system for the project at the time of the release:
Key | Summary |
DERBY-1 | Can't create a new db on OS X |
DERBY-5 | Network Server Protocol error when select fails and "order by" is specified |
DERBY-7 | Bug in NULLIF Function |
DERBY-15 | May get a non-uniue conglomerate id in a very unlikely XA edge case |
DERBY-17 | Network Server Needs to generate CRRTKN on ACCRDB if client does not send it |
DERBY-20 | LIKE handles strings with control characters incorrectly. |
DERBY-22 | Exception XCL16 incorrectly raised for ResultSet of method return after nested commit. |
DERBY-23 | just booting jdbc driver and shutting down seem to leak memory |
DERBY-26 | Dropping a nested trigger and rerunning the querry causes NullPointerException |
DERBY-27 | UCASE/LCASE function should change case according to database locale, but uppercases according to the JVM locale. |
DERBY-28 | Execute Statement of a SYSIBM sps gives java linkage error and class not found exception. |
DERBY-39 | Strange error in JOIN ON clause |
DERBY-48 | A connection request that has a default schema that is being created by another transaction will fail to connect |
DERBY-70 | Incorrect documentation about class loading from installed jar files. |
DERBY-92 | Cannot connect to Derby using DB2 Universal Driver |
DERBY-105 | drop table statement shows wrong message after dropping table |
DERBY-129 | Derby should throw a truncation error or warning when CASTing a parameter/constant to char or char for bit datatypes and the data is too large for the datatype. |
DERBY-131 | AVG precision is INTEGER instead of DOUBLE |
DERBY-138 | Public javadoc should include the org.apache.derby.diag package to show usage of LockTable and other public VTI's |
DERBY-148 | N/w server needs 2 jvm properties to be set to start on IPv6/IPv4 dual stack windows machines |
DERBY-151 | Thread termination -> XSDG after operation is 'complete' |
DERBY-154 | Does Network Server support scroll sensitive read-only and updatable resultsets? |
DERBY-160 | Foreign key constraint failure closes the cursors in embedded mode but not in Network Server mode |
DERBY-162 | Date format documentation incomplete. |
DERBY-163 | Timestamp formatting |
DERBY-166 | NULL is not a valid constraint type |
DERBY-172 | Trigger activation |
DERBY-176 | Derby throws ERROR XBCM1: Java linkage error thrown during load of generated class org.apache.derby.exe.aced07c066x0102xca87x3319x00004aa5686e1 during execution of large query |
DERBY-177 | Unnecessary waiting within EmbedDatabaseMetaData.getIndexInfo() |
DERBY-179 | Hibernate bad support |
DERBY-183 | Parameter names required in CREATE FUNCTION |
DERBY-195 | isSearchable() returns true for a calculated field |
DERBY-204 | Derby javadoc has lots of warnings |
DERBY-211 | Network Server returns no result sets for a procedure call that returns no result |
DERBY-215 | Correlation name not allowed for updatable columns in updatable cursors |
DERBY-238 | Testharness: testEncryptionAlgorithm property is not being picked up correctly for some encryption suites |
DERBY-240 | loading special locale fails with jdk131 and jars |
DERBY-241 | Encrypted run of stress.multi test failed once with a boot error with ibm142 |
DERBY-244 | with linux, depending on env setting $LANG and console encoding, some i18n tests fail |
DERBY-283 | On IPv6/Ipv4 dual stack windows machines, the network server needs the following jvm properties to be prefixed while starting the server |
DERBY-299 | NetworkServerControlImpl should not have Hard coded message for Unexpected expections |
DERBY-300 | Creation of SQLWarning on a getConnection causes hang on 131 vms when server and client are in same vm. |
DERBY-301 | test harness does not work correctly when colons or spaces are in the directory name |
DERBY-304 | If by mistake you give he location for the db backup as the db itself , then windows created directories recursively until windows crashes! |
DERBY-310 | Document and/or change Derby client code to match behavior with Embedded driver where possible. |
DERBY-315 | jdbcapi/rsgetXXXcolumNames fails with DerbyNet framework |
DERBY-321 | ASSERT FAILED invalid space required 10012 newDataToWrite.getUsed() 10012 nextRecordOffset 189 ... on a database recoverty. |
DERBY-328 | Derby doesn't build properly in turkish locale |
DERBY-331 | create table fails when a constraint defintion follows a column default |
DERBY-333 | Malformed if statement in org.apache.derby.impl.drda.Database.getDRDAStatement() |
DERBY-341 | Client should disallow XAConnection getConnection() when a global transaction has been started and a logical connection has already been obtained |
DERBY-345 | Need to add a property to startNetworkServer.* to specify be able to set the derby.system.home property |
DERBY-349 | setByte() with executeBatch causes hang with client if mapping is invalid, e.g. setByte to DATE |
DERBY-352 | Clobs on insert using streams should not instantiate into memory |
DERBY-353 | It is desirable to have IDENTITY_VAL_LOCAL() function return last recent user specified value or system generated value for BY DEFAULT identity columns. |
DERBY-365 | inplace compress on synonym throws an assert failure. (may be it should not be allowed). |
DERBY-374 | Invalid URL with Derby Client when connecting to Network Server causes protocol exception. |
DERBY-375 | Specification of incomplete server properties on command line causes NPE with NetworkServerControl when starting the server. |
DERBY-377 | There is no information available in the manuals on how to upgrade a database from 10.0 to 10.1 version. |
DERBY-385 | servlet Back to Main Page link points to csnet instead of derbynet |
DERBY-387 | SimpleNetworkClientSample.java network server example has an error which causes it to fail |
DERBY-390 | Import/export fails with table names that are quoted in SQL like import to table "Order" |
DERBY-392 | Disable creating indexes on long varchar for bit data. Long varchar column doesn't allow creating indexes already. |
DERBY-395 | Server-side "trace on" and "trace off" commands do not appear to be working correctly. |
Testing
Tests were run on the following platforms. Results are listed separately for each platform.
Type test | platform, jvm version | by.: |
derbyall suite | Windows 2003, Sun JDK 1.5.0_02 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | Windows 2003, IBM JDK 1.4.2 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | RHEL 3 (Linux 2.4.21), Sun JDK 1.4.2_08 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | RHEL 3 (Linux 2.4.21), IBM JDK 1.4.2 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | RHEL 3 (Linux 2.4.21), IBM JDK 1.3.1 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | Windows 2000, IBM JDK 1.4.2 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | Windows 2000, WSDD 5.6 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | Windows 2000, WCTME 5.7 | Myrna Van Lunteren (m.v.lunteran@gmail.com) |
derbyall suite | Windows XP, Sun JDK 1.5.0 | Ole Solberg (ole.solberg@sun.com) |
derbyall suite | Linux 2.4.21, Sun JDK 1.5.0 | Ole Solberg (ole.solberg@sun.com) |
derbyall suite | Solaris 10 (x86), Sun JDK 1.5.0 | Ole Solberg (ole.solberg@sun.com) |
derbyall suite | Solaris 10 (Sparc), Sun JDK 1.5.0 | Ole Solberg (ole.solberg@sun.com) |
derbyall suite | Solaris 9 (Sparc), Sun JDK 1.5.0 | Ole Solberg (ole.solberg@sun.com) |
derbyall suite | Windows XP, IBM JDK 1.4.2 | Ramandeep Kaur (ramank@yngvi.org) |
derbyall suite | SUSE Pro 9.1 (Linux 2.6.x), Sun JDK 1.5.0_03 | Ramandeep Kaur (ramank@yngvi.org) |
derbyall suite | Fedora Core Release 3, IBM JDK 1.4.2 | Rajesh Kartha (kartha@source-zone.org) |
derbyall suite | SLES 9, Sun JDK 1.5.0_03 | Rajesh Kartha (kartha@source-zone.org) |
derbyall suite | Windows 2000, Sun JDK 1.5.0_03 | Rajesh Kartha (kartha@source-zone.org) |
derbyall suite | Windows 2000, IBM JDK 1.4.2 | Rajesh Kartha (kartha@source-zone.org) |
derbyall suite | Solaris 9, Sun JDK 1.4.2_07 | Andrew McIntyre (mcintyre.a@gmail.com) |
derbyall suite | Mac OS X 10.4.1, Apple JDK 1.4.2_07 | Andrew McIntyre (mcintyre.a@gmail.com) |
Several test issues were reported, but no specific code issues were noted.
Tests for a specific platform can be run using the derbyTesting.jar file that can be found in the lib directory of the -lib or -bin distributions.
Instructions on how to run the tests can be found in the testing README.
Verifying releases
It is essential that you verify the integrity of the downloaded files using the PGP and MD5 signatures. MD5 verification ensures the file was not corrupted during the download process. PGP verification ensures that the file came from a certain person.
The PGP signatures can be verified using PGP or GPG. First download the Apache Derby KEYS as well as the asc signature file for the particular distribution. It is important that you get these files from the ultimate trusted source - the main ASF distribution site, rather than from a mirror. Then verify the signatures using ...
% pgpk -a KEYS % pgpv db-derby-X.Y.tar.gz.asc or % pgp -ka KEYS % pgp db-derby-X.Y.tar.gz.asc or % gpg --import KEYS % gpg --verify db-derby-X.Y.tar.gz.asc
To verify the MD5 signature on the files, you need to use a program called md5 or md5sum, which is included in many unix distributions. It is also available as part of GNU Textutils. Windows users can get binary md5 programs from here, here, or here.
We strongly recommend you verify your downloads with both PGP and MD5.