Release Notes - Jaybird JCA/JDBC Driver - Version Jaybird 3.0.0 - Text format

Bug

  • [JDBC-86] - Regression: FBConnectionPoolDataSource throws FBSQLException when connections are re-used
  • [JDBC-93] - Problems with connection pooling on Sun Appserver 9.0_01 (Glassfish)
  • [JDBC-98] - attempting to resolve host reverses IP address
  • [JDBC-173] - TextBlobs with UTF8 showed in client as ISO
  • [JDBC-207] - NPE in ManagedConnection#internalCommit() on fatal error
  • [JDBC-208] - jdbc.TestFBResultSet#testRelAlias() fails under test.gds_type=NATIVE
  • [JDBC-216] - org.firebirdsql.encodings.Encoding_NotOneByte has nullpointer dereference
  • [JDBC-221] - FBSQLException contains least specific errorcode
  • [JDBC-237] - JNI Implementation for writing VARCHAR (SQL_VARYING) writes too much data
  • [JDBC-251] - Invalid DPB encoding for 2.5 servers
  • [JDBC-254] - AccessControlException in LoggerFactory can cause driver load to fail in restricted environment
  • [JDBC-259] - UnsatisfiedLinkError occurs in libjaybird22_x64.so undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE
  • [JDBC-260] - Error function findColumn not working with composed field alias
  • [JDBC-264] - FBNullField.setString(null) does not set field to null
  • [JDBC-266] - Incorrect limbo transaction numbers
  • [JDBC-268] - Characterset support is case-sensitive
  • [JDBC-271] - Null value incorrectly returned with native (local) protocol
  • [JDBC-272] - Could not find or load the firebird client library
  • [JDBC-281] - copyCharacterStream passes initial position 0, instead of 1
  • [JDBC-282] - Access Violation JVM crash during execution of org.firebirdsql.jdbc.TestFBResultSet
  • [JDBC-284] - Connection properties definition not processed correctly
  • [JDBC-285] - JNI implementation of parameter buffer writes incorrect integers
  • [JDBC-286] - DPB and SPB format are different
  • [JDBC-288] - FBPreparedStatement and FBCallableStatement not compliant for java.sql.Statement methods
  • [JDBC-291] - Exceptions during statement preparation leave connection and transaction open after explicit close
  • [JDBC-299] - Blob sizes > Integer.MAX_VALUE are reported incorrectly
  • [JDBC-305] - Holdable ResultSet is closed on autocommit
  • [JDBC-307] - ResultSet of type CLOSE_CURSORS_AT_COMMIT isn't closed on commit
  • [JDBC-308] - Change metadata queries to always return VARCHAR for strings
  • [JDBC-309] - JDBC 4 minor version decision uses wrong system property
  • [JDBC-312] - Batch insert with setBinaryStream inserts an empty BLOB
  • [JDBC-314] - Error when setting connection charset equals "file.encoding" java property
  • [JDBC-315] - FBConnectionProperties.setCharSet encoding issue
  • [JDBC-316] - Use of FBDriverNotCapableException sometimes gives confusing exception message
  • [JDBC-317] - Backport getTypeInfo and getColumns metadata fixes with lengths and radix
  • [JDBC-318] - getTypeInfo returns incorrect maximum sizes for CHAR and VARCHAR
  • [JDBC-323] - DatabaseMetaData.getTypeInfo column SEARCHABLE: incorrect value
  • [JDBC-325] - Hibernate reverse engineering in Netbeans gives NullPointerException
  • [JDBC-327] - Jaybird should specify dialect 3 in dpb when no explicit dialect was set.
  • [JDBC-331] - DatabaseMetaData.getPrimaryKeys returns wrong primary keys for tables containing underscores _
  • [JDBC-335] - Calls to getCrossReference fail
  • [JDBC-344] - FBXADataSource closes ResultSet in managed transaction
  • [JDBC-348] - Open (output) blob in auto-commit prevents connection close
  • [JDBC-350] - Processing and closing the ResultSet from callable statement and then using the getters throws NullPointerException
  • [JDBC-351] - executeUpdate with RETURN_GENERATED_KEYS should return update count instead of -1
  • [JDBC-353] - FBManagedConnectionFactory.tryCompleteInLimboTransaction doesn't work with recent Firebird 3 builds
  • [JDBC-362] - Can't use Jaybird with distributed transactions. Calling close on a connection triggers exception
  • [JDBC-363] - Problem with getting char NONE field for UTF8 connection
  • [JDBC-364] - Incorrect use of WeakHashMap in FBManagedConnectionFactory and FBDriver
  • [JDBC-370] - FBRowUpdater buildInsertStatement doesn't quote column names
  • [JDBC-372] - Current method of quoting in FBRowUpdater incorrect for dialect 1
  • [JDBC-374] - Firebird 2.1.7 crashes when running Jaybird 3.0 tests
  • [JDBC-383] - LibreOffice doesn't display tables with more than 41 records
  • [JDBC-388] - Connection.getMetaData().getColumns ResultSet contains wrong (empty) COLUMN_DEF if column type was defined using Domain
  • [JDBC-390] - Unable to retrieve update count after result set.
  • [JDBC-391] - SELECT statements are processed for getGeneratedKeys by appending RETURNING (+ all columnnames)
  • [JDBC-392] - Generated key grammar does not correctly handle quoted table names
  • [JDBC-393] - Generated key grammar does not detect returning clause in update and delete
  • [JDBC-394] - Generated key grammar does not detect returning clause in INSERT ... SELECT ... RETURNING
  • [JDBC-397] - Deadlock in event cancellation with fbclient 3.0.0.31839
  • [JDBC-400] - org.firebirdsql.jdbc.FBSQLException: Exception. couldn't close blob: org.firebirdsql.gds.GDSException: invalid BLOB handle
  • [JDBC-402] - prepared CallableStatement.getMetaData() call throws exception when no input parameters provided
  • [JDBC-410] - Incomplete statement state transitions
  • [JDBC-412] - DatabaseMetaData supportsGetGeneratedKeys reports true when antlr-runtime not available.
  • [JDBC-414] - FBCachedClob throws SQLException instead of SQLFeatureNotSupportedException
  • [JDBC-421] - Transaction mapping cannot be configured through JDBC URL
  • [JDBC-426] - DatabaseMetadata.getColumn returns 0 for DECIMAL_DIGITS
  • [JDBC-427] - FBBackupManager cannot restore backup with accented character in backup path
  • [JDBC-428] - No message for code 335545106 found.
  • [JDBC-430] - ResultSet methods not allowed for TYPE_FORWARD_ONLY throw wrong exception
  • [JDBC-432] - Support 48 bit (technically 64 bit) transaction ids.
  • [JDBC-433] - CLONE -Batch insert with setBinaryStream inserts an empty BLOB SUB_TYPE TEXT
  • [JDBC-435] - Deadlock in multi-threaded environment
  • [JDBC-449] - Could not initialize class org.firebirdsql.encodings.EncodingFactory$DefaultEncodingFactory
  • [JDBC-450] - Wrong FBResultSetMetaData.getPrecision() on "computed by" columns
  • [JDBC-453] - Allow absolute position with value 0
  • [JDBC-458] - JDBC 4.1+ mapping for BigInteger is missing
  • [JDBC-460] - Can't connect to the FB 3 server with AuthServer = Legacy_Auth.
  • [JDBC-461] - JNA library not included in distribution zip
  • [JDBC-462] - FBBigDecimal, unsupported field sqltype: 481
  • [JDBC-464] - ResultSetMetaData.getPrecision of a numeric column when no transaction is active throws an SQLException
  • [JDBC-469] - NullPointerException when closing `getMetaData` an a (closed) result set of a (closed) connection
  • [JDBC-470] - CLONE -ResultSetMetaData.getPrecision of a numeric column when no transaction is active throws an SQLException
  • [JDBC-472] - java.sql.SQLNonTransientException: Unsupported or unexpected operation code 0 in processOperation [SQLState:08000, ISC error code:337248276]
  • [JDBC-473] - Default connection encoding specified through org.firebirdsql.jdbc.defaultConnectionEncoding not actually set
  • [JDBC-474] - CONCUR_UPDATABLE Statement throws ClassCastException executing non-updatable statement
  • [JDBC-481] - Token recognition error for generated keys query with whitespace in (quoted) table name
  • [JDBC-490] - Tomcat Realm JDBCRealm Authentication Error

Improvement

  • [JDBC-144] - Timout problem with pooled firebird connection on JBoss
  • [JDBC-182] - Migrate logging to java.util.logging
  • [JDBC-187] - Implement (if possible) JDBC 4.0 methods currently throwing FBDriverNotCapableException
  • [JDBC-197] - Implement Firebird wire protocol improvements
  • [JDBC-205] - Use octetsAsBytes behaviour by default
  • [JDBC-214] - Improve cleanup of unclosed resources like connections
  • [JDBC-218] - Include GLOBAL TEMPORARY as table type in DatabaseMetaData#getTables()
  • [JDBC-222] - Update object conversions to conform to JDBC 4.1 and 4.2
  • [JDBC-223] - Revise and extend Escape syntax support for JDBC 4.1
  • [JDBC-231] - DatabaseMetaData use of quoted/unquoted identifiers is inconsistent
  • [JDBC-238] - Socket receivebuffer less effective than possible
  • [JDBC-243] - CLONE -Add basic support for JDBC 4.0 stream/reader methods on PreparedStatement and CallableStatement
  • [JDBC-256] - Implement new remote backup option of services API
  • [JDBC-267] - Not all Java ChatSet names/aliases are available
  • [JDBC-269] - Decisions on charactersets happen in to many places
  • [JDBC-279] - Use connect timeout while establishing (socket) connection
  • [JDBC-292] - Allow nested JDBC escapes
  • [JDBC-321] - Implement BOOLEAN support
  • [JDBC-322] - Add metadata information for FB 3 IDENTITY columns
  • [JDBC-332] - Provide ability to call analogue of isc_portable_integer()
  • [JDBC-405] - Add field index to DataTruncation
  • [JDBC-407] - Specify isc_tpb_lock_timeout using JDBC connectionProperties property
  • [JDBC-418] - Remove set/getUnicodeStream support
  • [JDBC-429] - Handle get/set/updateNString/NClob/NCharacterStream as get/set/updateString/Clob/CharacterStream
  • [JDBC-437] - Add preliminary Java 9 / JDBC 4.3 support
  • [JDBC-447] - Use blob character set when encoding/decoding blobs
  • [JDBC-463] - The Native/Local connection is too slow.
  • [JDBC-475] - Statement + ResultSet setFetchDirection should ignore FETCH_REVERSE and FETCH_UNKNOWN instead of throwing an exception
  • [JDBC-478] - Allow Blob.setBytes and Clob.setString when position is 1
  • [JDBC-482] - Remove retrieval of sql counts on execute in GDS layer
  • [JDBC-484] - Add getServerVersion to management API
  • [JDBC-485] - Add Oldest Interesting, Oldest Active, Oldest Snapshot and Next Transaction information to FBStatisticsManager
  • [JDBC-486] - Remove dependency on JAXB

New Feature

  • [JDBC-149] - Support for isc_dpb_utf8_filename
  • [JDBC-217] - Implement SRP for new Firebird 3.0 authentication
  • [JDBC-240] - Always treat (VAR)CHAR CHARACTER SET OCTETS as if it is actually (VAR)BINARY
  • [JDBC-338] - Implement JDBC 4.2 java.time (JSR 310) object conversions
  • [JDBC-340] - Implement ResultSet.getObject(int/String, Class<?>)
  • [JDBC-380] - Allow setting page size when creating a database with FBManager
  • [JDBC-399] - Use isc_tpb_autocommit for autocommit, instead of starting and committing transactions for each action.
  • [JDBC-446] - Deny connection with no character set specified by default
  • [JDBC-452] - Support prepared statement + generated keys option with batch execution

Task

  • [JDBC-195] - Remove obsolete code for JDK 1.4 and earlier, JDBC 2.0 and earlier from the codebase
  • [JDBC-201] - Migrate JUnit tests to JUnit 4
  • [JDBC-211] - Cleanup Jaybird interfaces
  • [JDBC-212] - FBStatementFactory seems to be unnecessary, remove it?
  • [JDBC-215] - Replace or remove classes in example
  • [JDBC-246] - Remove org.firebirdsql.jdbc.FBWrappingDataSource in src/compatibility
  • [JDBC-257] - Investigate options for more intelligent decision of encoding for connection without explicit characterset
  • [JDBC-262] - Move tests in src/test_30 to src/test if they are not specific to JDBC 3.0
  • [JDBC-263] - Remove Java 5 / JDBC 3.0 specific support
  • [JDBC-273] - Refactor ParameterBufferBase in gds.impl.jni and gds.impl.wire to a common abstract base class
  • [JDBC-360] - Reimplement signalling of (connection) errors in FBManagedConnection
  • [JDBC-378] - Check if bytebuffers in JNA need to be pooled
  • [JDBC-404] - Upgrade generated keys grammar to antlr 4
  • [JDBC-409] - Verify new native driver implementation on Linux
  • [JDBC-442] - Upgrade from ANTLR 3.4 to ANTLR 4.5
  • [JDBC-448] - Validate IPv6 address handling
  • [JDBC-476] - Update value returned by FBDatabaseMetaData.getSQLKeywords
  • [JDBC-480] - Upgrade to antlr 4.6
  • [JDBC-488] - Upgrade to antlr 4.7
  • [JDBC-489] - Upgrade JNA to 4.4.0

Sub-task

  • [JDBC-103] - Improve the error handling on URL parsing
  • [JDBC-287] - Refactor parameterbuffer implementations to reduce code duplication
  • [JDBC-328] - Check handle invalidation in new protocol implementation
  • [JDBC-329] - Add Java 8 / JDBC 4.2 support to Jaybird 3.0
  • [JDBC-438] - JDBC 4.3: override Statement.enquoteLiteral to use double quotes in dialect 1
  • [JDBC-439] - JDBC 4.3: override Statement.enquoteIdentifier with limitations of Firebird / dialect 1
  • [JDBC-440] - JDBC 4.3: override Statement.isSimpleIdentifier with limitations of Firebird
  • [JDBC-441] - JDBC 4.3 override Statement.enquoteNCharLiteral to use Statement.enquoteLiteral
  • [JDBC-467] - Firebird 4: object name length increased to 63

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.