<?xml version="1.0"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JBake</title>
    <link>https://www.lawinegevaar.nl</link>
    <atom:link href="https://www.lawinegevaar.nl/feed.xml" rel="self" type="application/rss+xml" />
    <description>JBake Bootstrap Template</description>
    <language>en-gb</language>
    <pubDate>Thu, 29 Jan 2026 18:29:38 +0100</pubDate>
    <lastBuildDate>Thu, 29 Jan 2026 18:29:38 +0100</lastBuildDate>

    <item>
      <title>Jaybird 6.0.4 and Jaybird 5.0.11 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_6.0.4_and_Jaybird_5.0.11_released.html</link>
      <pubDate>Thu, 22 Jan 2026 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_6.0.4_and_Jaybird_5.0.11_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 6.0.4 and Jaybird 5.0.11, providing bug fixes. Jaybird is the &lt;a href=&quot;https://firebirdsql.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird&lt;/a&gt; JDBC driver.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_changes&quot;&gt;Changes&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following was fixed or changed since Jaybird 6.0.3:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Statement close of a leaked statement by the cleaner did not detect fatal connection errors (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/879&quot;&gt;#879&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;Statement.cancel()&lt;/code&gt; causes lockup (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/892&quot;&gt;#892&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Negative buffer size on Firebird 2.5 if information response is 32KiB or greater (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/895&quot;&gt;#895&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBServiceManager.getAuthPlugins()&lt;/code&gt; reported the &lt;code&gt;dbCryptConfig&lt;/code&gt; value (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/901&quot;&gt;#901&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency update: updated &lt;code&gt;net.java.dev.jna:jna-jpms&lt;/code&gt; from 5.17.0 to 5.18.1 (used by &lt;code&gt;jaybird-native&lt;/code&gt;) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/910&quot;&gt;#910&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency update: updated &lt;code&gt;org.bouncycastle:bcprov-jdk18on&lt;/code&gt; from 1.81 to 1.83 (used by &lt;code&gt;chacha64-plugin&lt;/code&gt;) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/912&quot;&gt;#912&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBDatabaseMetaData.getJDBCMinorVersion()&lt;/code&gt; should report 4 (for JDBC 4.4) on Java 24 and higher (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/913&quot;&gt;#913&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following was fixed or changed since Jaybird 5.0.10:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Backported fatal error detection improvements for &lt;code&gt;FBPooledConnection&lt;/code&gt; from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/899&quot;&gt;#899&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBServiceManager.getAuthPlugins()&lt;/code&gt; reported the &lt;code&gt;dbCryptConfig&lt;/code&gt; value (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/902&quot;&gt;#902&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;Statement.cancel()&lt;/code&gt; causes lockup (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/904&quot;&gt;#904&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Incomplete detection of fatal connection errors for deferred actions (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/905&quot;&gt;#905&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency update: updated &lt;code&gt;net.java.dev.jna:jna&lt;/code&gt; from 5.17.0 to 5.18.1 (used by native and embedded protocols) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/911&quot;&gt;#911&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBDatabaseMetaData.getJDBCMinorVersion()&lt;/code&gt; should report 4 (for JDBC 4.4) on Java 24 and higher (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/914&quot;&gt;#914&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to &lt;a href=&quot;https://groups.google.com/g/firebird-java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird-java&lt;/a&gt; or reported on the issue tracker &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/FirebirdSQL/jaybird/issues&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_6_0_4&quot;&gt;Jaybird 6.0.4&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 6 supports Firebird 3.0 and higher, on Java 17, Java 21, and Java 25.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 6 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_5_0_11&quot;&gt;Jaybird 5.0.11&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, Java 11, Java 17, Java 21, and Java 25 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 6.0.2 and Jaybird 5.0.8 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_6.0.2_and_Jaybird_5.0.8_released.html</link>
      <pubDate>Sat, 31 May 2025 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_6.0.2_and_Jaybird_5.0.8_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 6.0.2 and Jaybird 5.0.8.
Both releases provide support for upcoming Firebird 5.0.3 inline blobs, and some other improvements.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For more information on inline blobs, for Firebird 5.0.3 and higher, see also &lt;a href=&quot;https://firebirdsql.org/en/community-news/new-article-data-access-methods-used-in-firebird&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;New Article: Data access methods used in Firebird&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_changes&quot;&gt;Changes&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following was fixed or changed since Jaybird 6.0.1 / Jaybird 5.0.7:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: added &lt;code&gt;authPlugins&lt;/code&gt; property on &lt;code&gt;FBManager&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/866&quot;&gt;#866&lt;/a&gt; / &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/865&quot;&gt;#865&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: increased default and maximum SQL info sizes used for retrieving statement information like columns, parameters and plan information (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/869&quot;&gt;#869&lt;/a&gt; / &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/868&quot;&gt;#868&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: backported inline blob support (Firebird 5.0.3 and higher) from Jaybird 7 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/870&quot;&gt;#870&lt;/a&gt; / &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/871&quot;&gt;#871&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: The time zone mapping was updated (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/874&quot;&gt;#874&lt;/a&gt; / &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/875&quot;&gt;#875&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to &lt;a href=&quot;https://groups.google.com/g/firebird-java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird-java&lt;/a&gt; or reported on the issue tracker &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/FirebirdSQL/jaybird/issues&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_6_0_2&quot;&gt;Jaybird 6.0.2&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 6 supports Firebird 3.0 and higher, on Java 17, Java 21, and Java 24.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 6 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_5_0_8&quot;&gt;Jaybird 5.0.8&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, Java 11, Java 17, Java 21, and Java 24 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 6.0.1 and Jaybird 5.0.7 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_6.0.1_and_Jaybird_5.0.7_released.html</link>
      <pubDate>Fri, 4 Apr 2025 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_6.0.1_and_Jaybird_5.0.7_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 6.0.1 and Jaybird 5.0.7.
Both releases provide a number of performance improvements to blob handling, and some bug fixes.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We plan to offer more blob performance improvements in upcoming releases of Jaybird 5 and 6, for Firebird 5.0.3 and higher (see also &lt;a href=&quot;https://www.firebirdsql.org/en/community-news/new-article-data-access-methods-used-in-firebird&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;New Article: Data access methods used in Firebird&lt;/a&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_6_0_1&quot;&gt;Jaybird 6.0.1&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following was fixed or changed since Jaybird 6.0.0:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: backported deferred blob open optimization from Jaybird 7 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/842&quot;&gt;#842&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;NullPointerException&lt;/code&gt; in &lt;code&gt;getGeneratedKeys()&lt;/code&gt; with blob columns after (auto)commit (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/846&quot;&gt;#846&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Fetch response with status=0 (FETCH_OK) and count=0 was logged on DEBUG as an unexpected response (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/848&quot;&gt;#848&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: backported fetching all known blob info items on open from Jaybird 7 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/852&quot;&gt;#852&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency update: updated &lt;code&gt;net.java.dev.jna:jna-jpms&lt;/code&gt; from 5.16.0 to 5.17.0 (used by &lt;code&gt;jaybird-native&lt;/code&gt;) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/854&quot;&gt;#854&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency update: updated &lt;code&gt;org.bouncycastle:bcprov-jdk18on&lt;/code&gt; from 1.79 to 1.80 (used by &lt;code&gt;chacha64-plugin&lt;/code&gt;) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/856&quot;&gt;#856&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 6 supports Firebird 3.0 and higher, on Java 17, Java 21, and Java 24.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to &lt;a href=&quot;https://groups.google.com/g/firebird-java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird-java&lt;/a&gt; or reported on the issue tracker &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/FirebirdSQL/jaybird/issues&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 6 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_5_0_7&quot;&gt;Jaybird 5.0.7&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 5.0.6:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: backported deferred blob open optimization from Jaybird 7 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/841&quot;&gt;#841&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;NullPointerException&lt;/code&gt; in &lt;code&gt;getGeneratedKeys()&lt;/code&gt; with blob columns after (auto)commit (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/846&quot;&gt;#846&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Fetch response with status=0 (FETCH_OK) and count=0 was logged on DEBUG as an unexpected response (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/848&quot;&gt;#848&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: backported performance improvements for blob reading and writing from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/850&quot;&gt;#850&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: backported fetching all known blob info items on open from Jaybird 7 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/852&quot;&gt;#852&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency update: updated &lt;code&gt;net.java.dev.jna:jna-jpms&lt;/code&gt; from 5.15.0 to 5.17.0 (used by native and embedded protocols) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/855&quot;&gt;#855&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, Java 11, Java 17, Java 21, and Java 24 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to &lt;a href=&quot;https://groups.google.com/g/firebird-java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird-java&lt;/a&gt; or reported on the issue tracker &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/FirebirdSQL/jaybird/issues&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 6.0.0 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_6.0.0_released.html</link>
      <pubDate>Fri, 27 Dec 2024 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_6.0.0_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the first release of Jaybird 6.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 6 is&amp;#8201;&amp;#8212;&amp;#8201;from a JDBC perspective&amp;#8201;&amp;#8212;&amp;#8201;an incremental change from Jaybird 5.
However, internally, Jaybird underwent some major changes, the biggest was splitting off the native and embedded protocols to a separate plugin artifact (&lt;code&gt;jaybird-native&lt;/code&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_whats_new&quot;&gt;What&amp;#8217;s new&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The major changes and new features in Jaybird 6 are:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Minimum supported Java version is Java 17.&lt;br&gt;
See &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#java-support&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Java support&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Minimum supported Firebird version is Firebird 3.0.&lt;br&gt;
See &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#firebird-support&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird support&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The pure Java protocol&amp;#8201;&amp;#8212;&amp;#8201;by default --no longer connects to Firebird 2.5 and older, as those versions are not supported.&lt;br&gt;
See &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#unsupported-protocol&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Pure Java will not connect to unsupported Firebird versions by default&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The native and embedded protocols have been moved to a separate artifact, jaybird-native.&lt;br&gt;
See &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#native-plugin&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;NATIVE and EMBEDDED support moved to a separate artifact&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#ooremote-removed&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;OOREMOTE (OpenOffice/LibreOffice protocol) removed&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#modules&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Modularization of Jaybird&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#create-database-if-not-exist&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Connection property createDatabaseIfNotExist&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#report-actual-pid&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Report actual process ID (pid)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#chacha64&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Logging facade removed&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#chacha64&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Support for ChaCha64 wire encryption&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#package-metadata&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Opt-in feature for package information in DatabaseMetaData&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#async-fetch&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Asynchronous fetching&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#blob-performance&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Blob performance improvements&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#allow-tx-stmts&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Support for executing transaction management statements&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#wire-buffer-sizes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Configurable buffer sizes for the wire protocol&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#event-manager-broken-connection&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Broken connection detection for event manager&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#native-library-path&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Connection property to specify native library path&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#client-info&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Rewritten client info properties support&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#timestamp-localdate-localtime&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;TIMESTAMP fields now accept LocalDate and LocalTime&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#no-close-after-last&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ResultSet in auto-commit no longer closed after last row&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#scroll-rs-update-behavior&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Changes to behaviour of updatable scrollable result sets&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#custom-socket-factory&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Custom socket factory for pure Java connections&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;#8230;&amp;#8203; and &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#other-fixes-and-changes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;other fixes and changes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Upgrading from Jaybird 5 should be straightforward, but please make sure to read &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#compatibility-changes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Compatibility changes&lt;/a&gt; before using Jaybird 6.
If you&amp;#8217;re using Jaybird with the native or embedded connections, you will need to make some additional changes.
See also &lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#upgrading-from-jaybird-5-to-jaybird-6&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Upgrading from Jaybird 5 to Jaybird 6&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/FirebirdSQL/jaybird/issues&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 6 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/docs/drivers/java/6.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.6 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.6_released.html</link>
      <pubDate>Wed, 16 Oct 2024 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.6_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 5.0.6.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been fixed since Jaybird 5.0.5:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Exceptions during statement execution did not always complete the statement, which could delay transaction commit in auto-commit mode (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/806&quot;&gt;#806&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Closing a connection when the database was shutdown, or the connection was otherwise broken, could result in a &lt;code&gt;NullPointerException&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/812&quot;&gt;#812&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Error &amp;#8220;Column unknown; IND.RDB$CONDITION_SOURCE&amp;#8221; when calling &lt;code&gt;DatabaseMetaData.getIndexInfo&lt;/code&gt; on Firebird 5.0 with a Firebird 4.0 (ODS 13.0) database (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/813&quot;&gt;#813&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Calling &lt;code&gt;ResultSet.wasNull()&lt;/code&gt; when on the insert-row throws a &lt;code&gt;SQLException&lt;/code&gt; instead of reporting the null-state of the last retrieved column (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/816&quot;&gt;#816&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Inserting a row into a result set backed by a server-side scrollable cursor could include the inserted row twice (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/819&quot;&gt;#819&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: Updated JNA dependency to version 5.15.0 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/823&quot;&gt;#823&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17, 21, and 23 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://firebirdsql.org/docs/drivers/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.5 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.5_released.html</link>
      <pubDate>Fri, 14 Jun 2024 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.5_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 5.0.5.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been fixed since Jaybird 5.0.4:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBResultSetMetaData.getPrecision&lt;/code&gt; would always estimate the precision of &lt;code&gt;NUMERIC&lt;/code&gt; or &lt;code&gt;DECIMAL&lt;/code&gt; columns instead of obtaining the actual precision if the column position was 71 or higher (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/731&quot;&gt;#731&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optimized the query to retrieve extended field info for &lt;code&gt;ResultSetMetaData.getPrecision&lt;/code&gt; to only retrieve columns of type &lt;code&gt;NUMERIC&lt;/code&gt; or &lt;code&gt;DECIMAL&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/732&quot;&gt;#732&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;PreparedStatement.executeBatch()&lt;/code&gt; of statement without parameters throws &amp;#8220;Statement used in batch must have parameters [SQLState:07001, ISC error code:335545186]&amp;#8221; on Firebird 4.0 or higher (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/788&quot;&gt;#788&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: &lt;code&gt;ResultSetMetaData.isAutoIncrement(int)&lt;/code&gt; reports &lt;code&gt;true&lt;/code&gt; for identity columns &lt;strong&gt;if&lt;/strong&gt; Jaybird can identify the underlying table and column (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/793&quot;&gt;#793&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Boolean connection property &lt;code&gt;extendedMetadata&lt;/code&gt; (default &lt;code&gt;true&lt;/code&gt;) to disable querying of extended metadata for &lt;code&gt;getPrecision(int)&lt;/code&gt; and &lt;code&gt;isAutoIncrement(int)&lt;/code&gt; of &lt;code&gt;ResultSetMetaData&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/795&quot;&gt;#795&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: The &lt;code&gt;FILTER_CONDITION&lt;/code&gt; of &lt;code&gt;DatabaseMetaData.getIndexInfo&lt;/code&gt; is populated for Firebird 5.0 partial indices (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/797&quot;&gt;#797&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;ResultSet.isBeforeFirst()&lt;/code&gt; and &lt;code&gt;ResultSet.isAfterLast()&lt;/code&gt; should always report &lt;code&gt;false&lt;/code&gt; for an empty result set (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/807&quot;&gt;#807&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: &lt;code&gt;Statement.getResultSet&lt;/code&gt; no longer throws a &lt;code&gt;SQLException&lt;/code&gt; with message &amp;#8220;Only one result set at a time/statement&amp;#8221; if the current result set has already been returned by &lt;code&gt;executeQuery&lt;/code&gt; or a previous call to &lt;code&gt;getResultSet&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/762&quot;&gt;#762&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: Updated JNA dependency to version 5.14.0 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/810&quot;&gt;#810&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17, 21, and 22 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Installing Firebird 3 on Xubuntu</title>
      <link>https://www.lawinegevaar.nl/firebird/installing-firebird-3-on-xubuntu.html</link>
      <pubDate>Fri, 5 Apr 2024 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/installing-firebird-3-on-xubuntu.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A recent question on firebird-support about using Firebird on Xubuntu, and the problems the asker ran into, lead me to trying it out myself.
This post is basically a collection of the steps I took to get Firebird up and running on Xubuntu.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I&amp;#8217;m usually a Windows user, and although I have collected some Linux knowledge over the years, I&amp;#8217;m far from an expert.
In other words, this might not be the optimal to do things.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_preparing_the_vm&quot;&gt;Preparing the VM&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;To start, I&amp;#8217;m installing Xubuntu as a Hyper-V virtual machine, as it&amp;#8217;s included in my Windows 11 Pro installation.
If you don&amp;#8217;t have Hyper-V, you might be able to use something like &lt;a href=&quot;https://www.virtualbox.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Virtual Box&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I downloaded the Xubuntu 23.10 (Mantic Minotaur) desktop ISO image through &lt;a href=&quot;https://xubuntu.org/download/#non-lts&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://xubuntu.org/download/#non-lts&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;In the Hyper-V Manager, I created a new VM using the &quot;Quick Create&quot; option:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Select the &amp;#8220;Local installation source&amp;#8221; option and browse to and select the ISO image.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Uncheck the &amp;#8220;This machine will run Windows (enables Windows Secure Boot)&amp;#8221; option&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optionally, click on &amp;#8220;More options&amp;#8221; and set the name and network for the VM (I used the name &amp;#8220;Xubuntu 23.10&amp;#8221;)&lt;/p&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;/firebird/xubuntu-install/hyper-v-quick-create.png&quot; alt=&quot;Screenshot of the Hyper-V Quick Create screen showing the options entered as described above&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &amp;#8220;Create Virtual Machine&amp;#8221; to start the VM and start the installation process&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wait for Hyper-V to initialize the VM, and then click on &amp;#8220;Connect&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hyper-V displays a message that the virtual machine is turned off, click on &amp;#8220;start&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A Grub (Linux boot loader) window is shown, select the &amp;#8220;Try or install Xubuntu&amp;#8221; option, or wait for it to start automatically&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_installing_xubuntu&quot;&gt;Installing Xubuntu&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Now, the Xubuntu installer allows you to select your language, and either &amp;#8220;Try Xubuntu&amp;#8221; or &amp;#8220;Install Xubuntu&amp;#8221;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Select &amp;#8220;Install Xubuntu&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Choose your keyboard layout, and click &amp;#8220;Continue&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &amp;#8220;Updates and other software&amp;#8221; screen, leave the defaults as is, and click &amp;#8220;Continue&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &amp;#8220;Installation type&amp;#8221; screens, choose the appropriate option for your installation.
Given we&amp;#8217;re installing a VM, which has its own virtual harddrive, the standard option &amp;#8220;Erase disk and install Xubuntu&amp;#8221; is good, and click &amp;#8220;Install now&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &amp;#8220;Write the changes to disks&amp;#8221; confirm the change by clicking &amp;#8220;Continue&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &amp;#8220;Where are you?&amp;#8221; screen select your location (this is for the timezone configuration), and click &amp;#8220;Continue&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the &amp;#8220;Who are you?&amp;#8221; screen enter the requested information, and click &amp;#8220;Continue&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The installation will now install Xubuntu in the VM.
This can take a while depending on your machine and internet speed.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;After a while, the &amp;#8220;Installation Complete&amp;#8221; popup will show&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Click &amp;#8220;Restart Now&amp;#8221;, and wait for Xubuntu to start up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the VM has restarted, enter the password you set previously to login&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_installing_firebird&quot;&gt;Installing Firebird&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Now we&amp;#8217;re ready to install Firebird.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As I said before, I&amp;#8217;m normally a Windows user, so maybe some steps taken are not the optimal way to do things.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We&amp;#8217;re going to install Firebird from the terminal.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To start a terminal, press Alt+F2 which will popup the &amp;#8220;Application Finder&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Type &amp;#8220;term&amp;#8221; and select the &amp;#8220;xfce4-terminal&amp;#8221;, and click &amp;#8220;Launch&amp;#8221;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Although the latest Firebird version is Firebird 5.0.0, Xubuntu comes with Firebird 3.0.11, through the &lt;a href=&quot;https://ubuntu.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Ubuntu&lt;/a&gt; and ultimately the &lt;a href=&quot;https://www.debian.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Debian&lt;/a&gt; projects.
It is also possible to install Firebird using the installer from the &lt;a href=&quot;https://firebirdsql.org/en/server-packages/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird site&lt;/a&gt;, but for this blog, I&amp;#8217;m using the package provided by Xubuntu.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Although the terminal is textual, I will show screenshots of terminal output.
That is because I&amp;#8217;m writing this blog on Windows, and&amp;#8201;&amp;#8212;&amp;#8201;at least by default&amp;#8201;&amp;#8212;&amp;#8201;you can&amp;#8217;t share the clipboard between the Hyper-V VM and the host, and I&amp;#8217;m too lazy to find out if this can be changed or to use an alternative like exchanging files between the VM and the host.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;In some cases I do provide textual output, but there I have transcribed the output (possibly with typos), or&amp;#8201;&amp;#8212;&amp;#8201;for &lt;em&gt;isql&lt;/em&gt; output&amp;#8201;&amp;#8212;&amp;#8201;retried it on Windows and copied and modified the output to match the output in the VM.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;First, I&amp;#8217;m going to show how you can find what&amp;#8201;&amp;#8212;&amp;#8201;if any&amp;#8201;&amp;#8212;&amp;#8201;Firebird packages are available.
This might help you if you&amp;#8217;re using a future Xubuntu version, which for example might provide Firebird 4.0 or Firebird 5.0 instead of Firebird 3.0&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To find packages, you can use &lt;code&gt;apt search&lt;/code&gt;.
To look for packages with &amp;#8220;firebird&amp;#8221; in their name or description, enter &lt;code&gt;apt search firebird&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;/firebird/xubuntu-install/apt-search-firebird.png&quot; alt=&quot;Output of &apos;apt search firebird&apos;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;It lists multiple packages, but the ones we&amp;#8217;re interested in are the packages starting with &amp;#8220;firebird3.0&amp;#8221;, and primarily the &amp;#8220;firebird3.0-server&amp;#8221; package.
Some of the other packages, like for example &lt;a href=&quot;http://flamerobin.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&amp;#8220;flamerobin&amp;#8221;&lt;/a&gt;&lt;sup class=&quot;footnote&quot;&gt;[&lt;a id=&quot;_footnoteref_1&quot; class=&quot;footnote&quot; href=&quot;#_footnotedef_1&quot; title=&quot;View footnote.&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; might also be of interest to you.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To install a package, you use &lt;code&gt;apt install&lt;/code&gt;, but installation requires super user privileges (comparable to Windows Administrator privilege/UAC), so you need to run it with &lt;code&gt;sudo&lt;/code&gt; (which means as much as &amp;#8220;do as super user&amp;#8221;).&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Run &lt;code&gt;sudo apt install firebird3.0-server&lt;/code&gt;, and when prompted enter your password (the user created by the installer is allowed to elevate its privileges to a super user).&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; will show which packages it will install in addition to &lt;code&gt;firebird3.0-server&lt;/code&gt;.
Confirm with Enter or enter Y followed by Enter&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The installer will prompt for a password for the SYSDBA user (the main administrator account for Firebird).&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For purposes of this blog, I&amp;#8217;m using the well-known password &amp;#8220;masterkey&amp;#8221;, but for a real installation, please use a strong password.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;You can also let the installer generate a random password for you by leaving the password empty.
You can find this password in the &lt;code&gt;/etc/firebird/3.0/SYSDBA.password&lt;/code&gt; file.
For a secure installation, don&amp;#8217;t forget to delete this file later.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Enter a password followed by Enter.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wait for the install to complete&lt;/p&gt;
&lt;div class=&quot;imageblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;img src=&quot;/firebird/xubuntu-install/apt-install-firebird3.0-server.png&quot; alt=&quot;Output of &apos;sudo apt install firebird3.0-server&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_using_firebird_server&quot;&gt;Using Firebird Server&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The Xubuntu &amp;#8220;firebird3.0-server&amp;#8221; package also installs the &amp;#8220;firebird3.0-utils&amp;#8221; package, which includes &lt;em&gt;isql-fb&lt;/em&gt;, a commandline query tool for Firebird.
In a &amp;#8220;default&amp;#8221; Firebird installation, this tool is actually called &lt;em&gt;isql&lt;/em&gt; (short for Interactive SQL), but because other database systems and for example UnixODBC also use a tool called &lt;em&gt;isql&lt;/em&gt;, this Debian/Ubuntu/Xubuntu package renamed it to &lt;em&gt;isql-fb&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For more information on &lt;em&gt;isql&lt;/em&gt;/&lt;em&gt;isql-fb&lt;/em&gt;, you can read the &lt;a href=&quot;https://firebirdsql.org/file/documentation/html/en/firebirddocs/isql/firebird-isql.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird&amp;#8217;s isql Interactive SQL Utility&lt;/a&gt; manual.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;After installation, the Firebird server will have been started automatically, and is ready for immediate use.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sidebarblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;div class=&quot;title&quot;&gt;File and directory layout&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The layout of files for the Xubuntu Firebird installation differs from &amp;#8220;default&amp;#8221; Firebird installations.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The location of some important files:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;dlist&quot;&gt;
&lt;dl&gt;
&lt;dt class=&quot;hdlist1&quot;&gt;Configuration files like &lt;code&gt;firebird.conf&lt;/code&gt;, &lt;code&gt;databases.conf&lt;/code&gt;, etc&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;&lt;code&gt;/etc/firebird/3.0/&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt class=&quot;hdlist1&quot;&gt;Security database&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;&lt;code&gt;/var/lib/firebird/3.0/system/security3.fdb&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt class=&quot;hdlist1&quot;&gt;Log file&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;&lt;code&gt;/var/log/firebird/firebird3.0.log&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The default expectation of the Xubuntu package is that you put (server-based) database files in &lt;code&gt;/var/lib/firebird/3.0/data&lt;/code&gt;.
If you want to put it somewhere else, make sure the directory is owned by the user &lt;code&gt;firebird&lt;/code&gt;, and&amp;#8201;&amp;#8212;&amp;#8201;optionally, but recommended&amp;#8201;&amp;#8212;&amp;#8201;the group &lt;code&gt;firebird&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Unfortunately, specifying a relative path when creating a database puts it in &lt;code&gt;/tmp&lt;/code&gt;, so make to sure to specify an absolute path, or define an alias in &lt;code&gt;/etc/firebird/3.0/databases.conf&lt;/code&gt; before creating the database.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A simple example of creating a database through the localhost Firebird server:&lt;/p&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;mark@xubuntu2310-vm:~$ isql-fb -user sysdba -f stdin
Enter password:
Use CONNECT or CREATE DATABASE to specify a database
SQL&amp;gt; create database &apos;localhost:/var/lib/firebird/3.0/data/testdatabase.fdb&apos; default character set UTF8;
SQL&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;sidebarblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Stopping and starting Firebird server&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;You can stop and start the Firebird server in two ways:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Stop: &lt;code&gt;/etc/init.d/firebird3.0 stop&lt;/code&gt;&lt;br&gt;
Start: &lt;code&gt;/etc/init.d/firebird3.0 start&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This will call &lt;code&gt;systemctl&lt;/code&gt; of the next option.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stop: &lt;code&gt;systemctl stop firebird3.0.service&lt;/code&gt;&lt;br&gt;
Start: &lt;code&gt;systemctl start firebird3.0.service&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Both options will prompt you for your password through a popup, or you can run the command with &lt;code&gt;sudo&lt;/code&gt; to get the prompt in the terminal.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_using_firebird_embedded&quot;&gt;Using Firebird Embedded&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Firebird also comes with an embedded mode, which allows you to access databases without going through Firebird server.
However, using Firebird Embedded does require some care, because by default it will share things like lock files and temporary directories with the normal Firebird installation (and this is recommended!).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Given the privileges required to access those directories, for normal Firebird Embedded usage, this means that you need to add yourself to the &lt;code&gt;firebird&lt;/code&gt; group.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;code&gt;sudo usermod -a -G firebird &amp;lt;your-username&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Next run &lt;code&gt;newgrp firebird&lt;/code&gt; to make the additional group privileges available to your user account&lt;/p&gt;
&lt;div class=&quot;admonitionblock tip&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-tip&quot; title=&quot;Tip&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The command &lt;code&gt;newgrp firebird&lt;/code&gt; only has effect in your current terminal.
As long as you don&amp;#8217;t log out and log back in, you will need to run &lt;code&gt;newgrp firebird&lt;/code&gt; in each new terminal you open!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;If you expect to start a lot of different terminals, you may want to log out and log back in before continuing, as it removes the need for using &lt;code&gt;newgrp&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Example connecting using Firebird Embedded to the database created previously:&lt;/p&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;mark@xubuntu2310-vm:~$ isql-fb -user sysdba /var/lib/firebird/3.0/data/testdatabase.fdb
Database: /var/lib/firebird3.0/data/testdatabase.fdb, User: SYSDBA
SQL&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The difference with connecting through the server is that we don&amp;#8217;t specify a hostname, and we only need to specify a username, and no password.
The fact that you have filesystem access to the database is considered sufficient authorization to access the database.
The username is used to determine which privileges and roles you have available within the database.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_creating_a_database_in_your_home_directory&quot;&gt;Creating a database in your home directory&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;When using Firebird Embedded, you can also create databases in your home directory.
These databases will only be accessible by your user account (unless you compromise security by giving the &lt;code&gt;firebird&lt;/code&gt; user and/or group access to your home directory, which you should not do).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;mark@xubuntu2310-vm:~$ isql-fb
Use CONNECT or CREATE DATABASE to specify a database
SQL&amp;gt; create database &apos;/home/mark/personal-database.fdb&apos;;
SQL&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;You do need to specify the absolute path (or you can use &lt;code&gt;~&lt;/code&gt; to resolve your home directory).
If you don&amp;#8217;t specify a username when starting &lt;code&gt;isql-fb&lt;/code&gt; or in the &lt;code&gt;CREATE DATABASE&lt;/code&gt; statement, it will use your Linux username as the database username:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;SQL&amp;gt; select current_user from RDB$DATABASE;

USER
===============================
MARK

SQL&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_the_end&quot;&gt;The End&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This concludes the quick tutorial on installing Firebird on Xubuntu.
If you want to know more about Firebird, consult the &lt;a href=&quot;https://firebirdsql.org/en/firebird-rdbms/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;documentation&lt;/a&gt; on the Firebird website.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For questions, you can reach out to the community on &lt;a href=&quot;https://groups.google.com/g/firebird-support&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;firebird-support&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;footnotes&quot;&gt;
&lt;hr&gt;
&lt;div class=&quot;footnote&quot; id=&quot;_footnotedef_1&quot;&gt;
&lt;a href=&quot;#_footnoteref_1&quot;&gt;1&lt;/a&gt;. FlameRobin is a GUI query tool for Firebird
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.4 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.4_released.html</link>
      <pubDate>Sun, 10 Mar 2024 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.4_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 5.0.4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been fixed since Jaybird 5.0.3:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Firebird 5.0 is now formally supported&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Potential NPE when &lt;code&gt;warningMessageCallback&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt; while reading operations or consuming packets (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/778&quot;&gt;#778&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: FBRowUpdater incorrectly considers result set with only partial PK updatable&amp;#8201;&amp;#8212;&amp;#8201;backported from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/780&quot;&gt;#780&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Use of offset timezone names (e.g. &lt;code&gt;+05:00&lt;/code&gt;) for &lt;code&gt;sessionTimeZone&lt;/code&gt; would result in a warning being logged, and an incorrect conversion applied (in UTC instead of the offset) when using the legacy time types&amp;#8201;&amp;#8212;&amp;#8201;backported from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/787&quot;&gt;#787&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 21 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.3 and 4.0.10 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.3_and_4.0.10_released.html</link>
      <pubDate>Fri, 24 Nov 2023 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.3_and_4.0.10_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 5.0.3 and Jaybird 4.0.10.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;With this release, Jaybird 4 is end-of-life.
We recommend upgrading to Jaybird 5.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_5_0_3&quot;&gt;Jaybird 5.0.3&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 5.0.2:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: Do not reject attempts to read blob id 0&amp;#8201;&amp;#8212;&amp;#8201;backported from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/765&quot;&gt;#765&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Previously, Jaybird rejected attempts to read blobs with blob id &lt;code&gt;0&lt;/code&gt; (not on all code paths, for some only when assertions are enabled).
Formally, blob id &lt;code&gt;0&lt;/code&gt; is not a valid blob id, but in practice they can occur (e.g. due to bugs, or access components/drivers explicitly setting a blob column to id &lt;code&gt;0&lt;/code&gt;).
Other drivers and tools simply send the requests for blob id &lt;code&gt;0&lt;/code&gt; to the server, which then treats it as an empty blob.
For consistency, we decided to let Jaybird handle it the same.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: on &lt;code&gt;CHAR&lt;/code&gt; fields, a too short value could be returned if the string contained one or more codepoints represented by surrogate pairs and the string length in &lt;code&gt;char&lt;/code&gt; exceeded the maximum string length&amp;#8201;&amp;#8212;&amp;#8201;backported from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/770&quot;&gt;#770&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We now truncate the returned string if the codepoint count exceeds the maximum string length.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;CallableStatement.getXXX(String)&lt;/code&gt; could return value from wrong column&amp;#8201;&amp;#8212;&amp;#8201;backported from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/772&quot;&gt;#772&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Updated: error messages updated from Firebird 5.0.0.1272&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17, and 21 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_4_0_10&quot;&gt;Jaybird 4.0.10&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.10 is the last release of Jaybird 4, and Jaybird 4 is now end-of-life.
We recommend upgrading to Jaybird 5.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.9&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Reconnect transaction with a transaction id exceeding 0x7FFF_FFFF did not work (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/734&quot;&gt;#734&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;CallableStatement.getXXX(String)&lt;/code&gt; could return value from wrong column&amp;#8201;&amp;#8212;&amp;#8201;backported from Jaybird 6 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/773&quot;&gt;#773&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Updated: error messages updated from Firebird 5.0.0.1272&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17, and 21 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Firebird External Table Generator (ext-table-gen) 2.0 released</title>
      <link>https://www.lawinegevaar.nl/firebird/ext-table-gen-v2.0-released.html</link>
      <pubDate>Sat, 4 Nov 2023 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/ext-table-gen-v2.0-released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I am happy to announce the release of version 2.0 of &amp;#8220;Firebird External Table Generator&amp;#8221; (&lt;em&gt;ext-table-gen&lt;/em&gt; for short).
(It was released back in September, but I forgot to put up a post on my own website.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&amp;#8220;Firebird External Table Generator&amp;#8221; is a commandline tool to transform CSV files to &lt;a href=&quot;https://www.firebirdsql.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird&lt;/a&gt; external table files (a binary format for external table data).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Compared to version 1.0, a lot of new features have been added:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Support for additional data types:&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Integral number types:&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;smallint&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;integer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;bigint&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;int128&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exact numeric types (fixed point):&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;numeric&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;decimal&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Datetime types:&lt;/p&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;date&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;time (without time zone)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;timestamp (without time zone)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Customizing the CSV parser configuration (custom separators, quotes, escapes, etc.)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;You can find the 2.0 release at &lt;a href=&quot;https://github.com/mrotteveel/ext-table-gen/releases/tag/v2.0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ext-table-gen v2.0&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Documentation and release notes can be found on &lt;a href=&quot;https://mrotteveel.github.io/ext-table-gen/&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mrotteveel.github.io/ext-table-gen/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The project itself is hosted on &lt;a href=&quot;https://github.com/mrotteveel/ext-table-gen&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/mrotteveel/ext-table-gen&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Firebird External Table Generator (ext-table-gen) 1.0 released</title>
      <link>https://www.lawinegevaar.nl/firebird/ext-table-gen-v1.0-released.html</link>
      <pubDate>Wed, 28 Jun 2023 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/ext-table-gen-v1.0-released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I am happy to announce the release of &amp;#8220;Firebird External Table Generator&amp;#8221; (&lt;em&gt;ext-table-gen&lt;/em&gt; for short).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&amp;#8220;Firebird External Table Generator&amp;#8221; is a commandline tool to transform &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc4180&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;RFC 4180&lt;/a&gt; CSV files to &lt;a href=&quot;https://www.firebirdsql.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird&lt;/a&gt; external table files (a binary format for external table data).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;External tables are a good way for bulk-loading data into Firebird.
Unfortunately, external tables use a fixed-width &lt;em&gt;binary&lt;/em&gt; format, and not (more) standard formats like CSV.
It is not always easy to create an appropriate external table file, and this is where &lt;em&gt;ext-table-gen&lt;/em&gt; can be used.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;At a high level, &lt;em&gt;ext-table-gen&lt;/em&gt; provides the following features:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Derive a &lt;code&gt;CHAR&lt;/code&gt;-based external table definition (i.e. a &lt;code&gt;CREATE TABLE&lt;/code&gt; statement and a configuration for &lt;em&gt;ext-table-gen&lt;/em&gt;) from a CSV file&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Transform a CSV file to an external table file (either based on the CSV file itself, or based on a configuration file)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The current version only supports &lt;code&gt;CHAR&lt;/code&gt; columns, which makes the generated file essentially a fixed-width text format.
Future versions may introduce support for additional column types.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;You can find the 1.0 release at &lt;a href=&quot;https://github.com/mrotteveel/ext-table-gen/releases/tag/v1.0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ext-table-gen v1.0&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Documentation and release notes can be found on &lt;a href=&quot;https://mrotteveel.github.io/ext-table-gen/&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mrotteveel.github.io/ext-table-gen/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The project itself is hosted on &lt;a href=&quot;https://github.com/mrotteveel/ext-table-gen&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/mrotteveel/ext-table-gen&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.2 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.2_released.html</link>
      <pubDate>Wed, 7 Jun 2023 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.2_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 5.0.2.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been fixed since Jaybird 5.0.1:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Reconnect transaction with a transaction id exceeding 0x7FFF_FFFF did not work (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/734&quot;&gt;jaybird#734&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: add connection property &lt;code&gt;parallelWorkers&lt;/code&gt; to set Firebird 5.0 &lt;code&gt;isc_dpb_parallel_workers&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/737&quot;&gt;jaybird#737&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: add &lt;code&gt;MaintenanceManager.upgradeOds()&lt;/code&gt; for the Firebird 5.0 gfix/service repair action to perform a minor ODS upgrade of a database (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/738&quot;&gt;jaybird#738&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: add parallel workers support for &lt;code&gt;BackupManager&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/739&quot;&gt;jaybird#739&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: add parallel workers support for &lt;em&gt;sweep&lt;/em&gt; in &lt;code&gt;MaintenanceManager&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/740&quot;&gt;jaybird#740&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;DatabaseConnectionProperties.setServerBatchBufferSize(int)&lt;/code&gt; ignored provided value and always set default (&lt;code&gt;0&lt;/code&gt;, or &amp;#8220;use server-side maximum&amp;#8221;) (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/741&quot;&gt;jaybird#741&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: add &lt;code&gt;MaintenanceManager.fixIcu()&lt;/code&gt; for the Firebird 3.0 gfix/service repair action &amp;#8220;ICU&amp;#8221; to update or rebuild collations and indexes when the ICU version changed (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/744&quot;&gt;jaybird#744&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: The first call to &lt;code&gt;getTableStatistics()&lt;/code&gt; of a &lt;code&gt;FBTableStatisticsManager&lt;/code&gt; instance returned only a few or even no tables; if no tables were returned, subsequent calls would also return no tables (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/747&quot;&gt;jaybird#747&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 20 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.1 and 4.0.9 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.1_and_4.0.9_released.html</link>
      <pubDate>Tue, 31 Jan 2023 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.1_and_4.0.9_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 5.0.1 and Jaybird 4.0.9.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_5_0_1&quot;&gt;Jaybird 5.0.1&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been fixed since Jaybird 5.0.0:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Executing DML with a RETURNING clause containing a blob column would return the blob-id instead of the blob value (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/728&quot;&gt;jaybird#728&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;CallableStatement.getString&lt;/code&gt; and &lt;code&gt;CallableStatement.getObject&lt;/code&gt; would incorrectly trim string values (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/729&quot;&gt;jaybird#729&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;ResultSetMetaData.getPrecision(int)&lt;/code&gt; of a connectionless result set could throw a &lt;code&gt;NullPointerException&lt;/code&gt; if the column was of type &lt;code&gt;FLOAT&lt;/code&gt; or &lt;code&gt;DOUBLE PRECISION&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/730&quot;&gt;jaybird#730&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 supports Firebird 2.5 and higher, on Java 8, 11, 17 and 19 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_4_0_9&quot;&gt;Jaybird 4.0.9&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been fixed since Jaybird 4.0.8:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Some methods of &lt;code&gt;FBClob&lt;/code&gt; threw &lt;code&gt;NullPointerException&lt;/code&gt; when attempting to use after implicit or explicit &lt;code&gt;free()&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/719&quot;&gt;jaybird#719&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: If the default JVM time zone is a GMT offset, e.g. &lt;code&gt;GMT-08:00&lt;/code&gt;, configure &lt;code&gt;sessionTimeZone&lt;/code&gt; with offset only, e.g. &lt;code&gt;-08:00&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/720&quot;&gt;jaybird#720&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Executing DML with a RETURNING clause containing a blob column would return the blob-id instead of the blob value (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/728&quot;&gt;jaybird#728&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;CallableStatement.getString&lt;/code&gt; would incorrectly trim string values (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/729&quot;&gt;jaybird#729&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;ResultSetMetaData.getPrecision(int)&lt;/code&gt; of a connectionless result set could throw a &lt;code&gt;NullPointerException&lt;/code&gt; if the column was of type &lt;code&gt;FLOAT&lt;/code&gt; or &lt;code&gt;DOUBLE PRECISION&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/730&quot;&gt;jaybird#730&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 11 and higher using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.0 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.0_released.html</link>
      <pubDate>Mon, 9 Jan 2023 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.0_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the first release of Jaybird 5.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 is&amp;#8201;&amp;#8212;&amp;#8201;from a JDBC perspective&amp;#8201;&amp;#8212;&amp;#8201;an incremental change from Jaybird 4.
However, internally, Jaybird underwent some major changes, the biggest was the removal of JCA (Java Connector Architecture) support.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The major changes and new features in Jaybird 5 are:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Java 7 support dropped&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Java Connector Architecture (JCA) support removed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ChaCha wire protocol encryption support (Java 11 and higher only)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changes to properties&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unification of database and service addressing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changes to JDBC URL syntax&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Removal of LOCAL protocol implementation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stream blobs are now the default&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New parser for generated keys handling (back-ported to Jaybird 4.0.8)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4.0 server-side batch updates&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 5.0 multi-row RETURNING support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird Embedded locator service provider (experimental)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Table statistics of a connection (experimental)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5.0.0 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 5.0.0-beta-1 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_5.0.0-beta-1_released.html</link>
      <pubDate>Tue, 3 Jan 2023 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_5.0.0-beta-1_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the first beta for Jaybird 5.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We&amp;#8217;d really appreciate it if you take the time to test this version of Jaybird with your applications.
Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to the &lt;a href=&quot;https://groups.google.com/g/firebird-java&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;firebird-java Google Group&lt;/a&gt; or reported on the issue tracker &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues&quot; class=&quot;bare&quot;&gt;https://github.com/FirebirdSQL/jaybird/issues&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5 is&amp;#8201;&amp;#8212;&amp;#8201;from a JDBC perspective&amp;#8201;&amp;#8212;&amp;#8201;an incremental change from Jaybird 4.
However, internally, Jaybird underwent some major changes, the biggest was the removal of JCA (Java Connector Architecture) support.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The major changes and new features in Jaybird 5 are:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Java 7 support dropped&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Java Connector Architecture (JCA) support removed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ChaCha wire protocol encryption support (Java 11 and higher only)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changes to properties&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unification of database and service addressing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changes to JDBC URL syntax&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Removal of LOCAL protocol implementation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stream blobs are now the default&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New parser for generated keys handling (back-ported to Jaybird 4.0.8)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4.0 server-side batch updates&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 5.0 multi-row RETURNING support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird Embedded locator service provider (experimental)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Table statistics of a connection (experimental)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 5.0.0-beta-1 is for testing purposes only, and not intended for production use.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The 5.0.0-beta-1 will have a short life, and we plan to release the GA version mid-January.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 5.0.0-beta-1 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/5.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.8 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.8_released.html</link>
      <pubDate>Sun, 27 Nov 2022 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.8_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.8 has been released&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.7:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: Backported new generated keys parser from Jaybird 5 to remove dependency on ANTLR (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/718&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#718&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;With this change, Jaybird no longer relies on &lt;code&gt;antlr-runtime-4.7.2.jar&lt;/code&gt;, if you don&amp;#8217;t need it yourself, you can remove this library from the classpath.
See &lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#generated-keys-parser-replaced&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;New parser for generated keys handling&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and 19 using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#getting-jaybird-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.7 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.7_released.html</link>
      <pubDate>Fri, 11 Nov 2022 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.7_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.7 has been released&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.6:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: &lt;code&gt;(VAR)CHAR&lt;/code&gt; is now sent to the server with &lt;code&gt;blr_varying2&lt;/code&gt; or &lt;code&gt;blr_text2&lt;/code&gt; which includes the character set information (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/692&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#692&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changed: Usages of &lt;code&gt;String.toUpperCase&lt;/code&gt; and &lt;code&gt;String.toLowerCase&lt;/code&gt; now use &lt;code&gt;Locale.ROOT&lt;/code&gt; to prevent locale-sensitivity issues (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/697&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#697&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Support for NBackup &quot;clean history&quot; option (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/706&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#706&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The &lt;code&gt;org.firebirdsql.management.NBackupManager&lt;/code&gt; interface has three new methods: &lt;code&gt;setCleanHistory(boolean)&lt;/code&gt; to enable (or disable) cleaning of history during backup, and &lt;code&gt;setKeepDays(int)&lt;/code&gt; and &lt;code&gt;setKeepRows(int)&lt;/code&gt; to specify the number of days or rows to keep history.
These options require Firebird 4.0.3 or higher.&lt;br&gt;
This feature was backported from Jaybird 5.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Calling &lt;code&gt;PreparedStatement.setClob&lt;/code&gt; or &lt;code&gt;PreparedStatement.setBlob&lt;/code&gt; with a &lt;code&gt;null&lt;/code&gt; &lt;code&gt;Clob&lt;/code&gt;, &lt;code&gt;Reader&lt;/code&gt;, &lt;code&gt;Blob&lt;/code&gt;, or &lt;code&gt;InputStream&lt;/code&gt; would result in a &lt;code&gt;NullPointerException&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/712&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#712&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As part of this change the behaviour of &lt;code&gt;setClob&lt;/code&gt; methods accepting a &lt;code&gt;Reader&lt;/code&gt; was changed to be identical to &lt;code&gt;setCharacterStream&lt;/code&gt;, and &lt;code&gt;setBlob&lt;/code&gt; accepting an &lt;code&gt;InputStream&lt;/code&gt; to &lt;code&gt;setBinaryStream&lt;/code&gt;.
The end result before and after this change is identical, but it can result in different memory and performance characteristics, as the stream is now consumed on execute, and not on set.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11, 17 and 19 (support for Java 17 and 19 using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#getting-jaybird-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.6 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.6_released.html</link>
      <pubDate>Wed, 27 Apr 2022 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.6_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.6 has been released&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.5:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Improvement: &lt;code&gt;Connection.isValid(int)&lt;/code&gt; now uses the timeout as a network timeout, if possible (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/685&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#685&lt;/a&gt;)&lt;/p&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This is only supported for pure Java connections. For native connections, the timeout is ignored (and a &lt;code&gt;SQLWarning&lt;/code&gt; is registered).&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;NativeResourceUnloadWebListener&lt;/code&gt; would fail in Servlet containers with a &lt;code&gt;NoClassDefFoundError&lt;/code&gt; if JNA wasn&amp;#8217;t on the classpath (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/686&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#686&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Calling &lt;code&gt;isBeforeFirst()&lt;/code&gt;, &lt;code&gt;isAfterLast()&lt;/code&gt;, &lt;code&gt;isFirst()&lt;/code&gt;, or &lt;code&gt;isLast()&lt;/code&gt; on a closed result set resulted in a &lt;code&gt;NullPointerException&lt;/code&gt; instead of a &lt;code&gt;SQLException&lt;/code&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/689&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#689&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 17 (support for Java 17 using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#getting-jaybird-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.5 and 3.0.12 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.5_and_3.0.12_released.html</link>
      <pubDate>Thu, 30 Dec 2021 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.5_and_3.0.12_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.5 and 3.0.12 have been released.
Jaybird 3.0.12 is the final release of Jaybird 3.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.4 and 3.0.11:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;JnaService&lt;/code&gt; implementation call to &lt;code&gt;isc_service_query&lt;/code&gt; incorrectly includes type (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/678&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#678&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_4_0_5&quot;&gt;Jaybird 4.0.5&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 17 (support for Java 17 using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.5/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_3_0_12&quot;&gt;Jaybird 3.0.12&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3 supports Firebird 2.0 and higher, on Java 7, 8, 11, and 17.
Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;With the release of 3.0.12, Jaybird 3 is now end-of-life, and we recommend upgrading to Jaybird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.12/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.12 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.x/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.4 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.4_released.html</link>
      <pubDate>Sat, 2 Oct 2021 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.4_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.4 has been released.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.3:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: ResultSet.updateRow() sets fields to null in result set only (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/37&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#37&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Support for NBackup GUID-based backup and in-place restore (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/672&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#672&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Logic error could lead to incorrect logging of &lt;em&gt;&quot;Specified statement was not created by this connection&quot;&lt;/em&gt; (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/674&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#674&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changed: Updated Firebird 4.0 reserved words based on 4.0.0.2496 (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/597&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#597&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Protocol 15 and 16 had same priority, so Firebird 4.0 might select protocol 15, leading to timeout support not available. (&lt;a href=&quot;https://github.com/FirebirdSQL/jaybird/issues/676&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaybird#676&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_4_0_4&quot;&gt;Jaybird 4.0.4&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 17 (support for Java 17 using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.4/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.4/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Archive of old Firebird Yahoo Groups</title>
      <link>https://www.lawinegevaar.nl/firebird/list_archive.html</link>
      <pubDate>Sun, 11 Apr 2021 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/list_archive.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;In December 2019, Yahoo shutdown the online archive of Yahoo Groups.
At that time I had created a backup of all Firebird groups I had access to.
I finally got around to publishing it online.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;You can find the archive at &lt;a href=&quot;http://fb-list-archive.s3-website-eu-west-1.amazonaws.com/&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://fb-list-archive.s3-website-eu-west-1.amazonaws.com/&lt;/a&gt;.
Update 2026-01-29: the archive has been moved to &lt;a href=&quot;https://fb-list-archive.lawinegevaar.nl/&quot; class=&quot;bare&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://fb-list-archive.lawinegevaar.nl/&lt;/a&gt; (the old URL will redirect for the time being).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The archive contains all posts up to the 14th of December 2019.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I&amp;#8217;ll try to also add the posts sent between the shutdown of the archive and the shutdown of Yahoo Groups at the end of 2020 at some time in the future.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.3 and 3.0.11 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.3_and_3.0.11_released.html</link>
      <pubDate>Sat, 20 Mar 2021 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.3_and_3.0.11_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.3 and 3.0.11 have been released.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.2 and 3.0.10:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Changed: Closing a statement will now be sent to the server immediately (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-638&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-638&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_4_0_3&quot;&gt;Jaybird 4.0.3&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 15 (support for Java 15 using the Java 11 version of the driver);
Java 16 has not been fully tested yet.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.3/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.3 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.3/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_3_0_11&quot;&gt;Jaybird 3.0.11&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Although Jaybird 3 is still maintained, we recommend upgrading to Jaybird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3 supports Firebird 2.0 and higher, on Java 7, 8, 11 and 15;
Java 16 has not been fully tested yet.
Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.11/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.11 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.11/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.2 and 3.0.10 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.2_and_3.0.10_released.html</link>
      <pubDate>Sun, 17 Jan 2021 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.2_and_3.0.10_released.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.2 and 3.0.10 have been released.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_4_0_2&quot;&gt;Jaybird 4.0.2&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.1:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: First letter of JDBC escape was case-sensitive (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-632&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-632&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Some usernames cannot authenticate using SRP (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-635&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-635&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;ServiceConfigurationError&lt;/code&gt; while loading plugins could prevent Jaybird from loading (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-636&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-636&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 15 (support for Java 15 using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.2/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.2 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.2/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_jaybird_3_0_10&quot;&gt;Jaybird 3.0.10&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Although Jaybird 3 is still maintained, we recommend upgrading to Jaybird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 3.0.10:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Added: A static utility method &lt;code&gt;FBDriver.normalizeProperties&lt;/code&gt; which, given a JDBC url and a &lt;code&gt;Properties&lt;/code&gt; object, returns a &lt;code&gt;Map&amp;lt;String, String&amp;gt;&lt;/code&gt; containing the merged properties normalized to the common property name. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-627&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-627&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Use of &lt;code&gt;isc_dpb_no_db_triggers&lt;/code&gt; no longer logs a warning (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-628&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-628&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: First letter of JDBC escape was case-sensitive (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-632&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-632&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Some usernames cannot authenticate using SRP (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-635&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-635&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;ServiceConfigurationError&lt;/code&gt; while loading plugins could prevent Jaybird from loading (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-636&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-636&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3 supports Firebird 2.0 and higher, on Java 7, 8, 11 and 15.
Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.10/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.10 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.10/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.1 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.1_released.html</link>
      <pubDate>Tue, 11 Aug 2020 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.1_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.1 has been released.
Jaybird 4.0.1 is the first maintenance release of Jaybird 4, and introduces support for INT128 (a new type in Firebird 4), improves support for the Firebird 4 WITH TIME ZONE types by adding support for java.time.ZonedDateTime and making some of the derivation rules more consistent with Firebird.
It also provides some bug fixes and other changes.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed since Jaybird 4.0.0&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Changes to the transaction configuration (transaction parameter buffer configuration) of one connection are no longer propagated to other connections with the same connection properties (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-386&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-386&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Search index of Javadoc in Java 11 version used incorrect links (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-619&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-619&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: The cleanup of native resources didn&amp;#8217;t dispose the native library held by JNA, as a change in implementation no longer allowed directly access to the JNA &lt;code&gt;NativeLibrary&lt;/code&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-620&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-620&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: When updating a row through an updatable result set, selected but not updated blob fields were set to &lt;code&gt;NULL&lt;/code&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-623&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-623&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Added: Support for type &lt;code&gt;INT128&lt;/code&gt; (reported as JDBC type &lt;code&gt;NUMERIC&lt;/code&gt;) (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-624&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-624&lt;/a&gt;)&lt;br&gt;
See also &lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.x/release_notes.html#firebird-4-int128-support&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird 4 INT128 support&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Added: A static utility method &lt;code&gt;FBDriver.normalizeProperties&lt;/code&gt; which, given a JDBC url and a &lt;code&gt;Properties&lt;/code&gt; object, returns a &lt;code&gt;Map&amp;lt;String, String&amp;gt;&lt;/code&gt; containing the merged properties normalized to common property name. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-627&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-627&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Use of &lt;code&gt;isc_dpb_no_db_triggers&lt;/code&gt; no longer logs a warning (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-628&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-628&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Incompatible change: While making changes to time zone support, the API of  &lt;code&gt;org.firebirdsql.gds.ng.tz.TimeZoneDatatypeCoder&lt;/code&gt; was made almost entirely private. This should not affect normal user code.&lt;br&gt;
Although we try to avoid these types of incompatible changes in point releases, we explicitly allow them for the &lt;code&gt;org.firebirdsql.gds.ng&lt;/code&gt; package and sub-packages.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changed: conversions from &lt;code&gt;TIME WITH TIME ZONE&lt;/code&gt; now use 2020-01-01 as base date for named zones (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-629&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-629&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Added support for &lt;code&gt;java.time.ZonedDateTime&lt;/code&gt; for the &lt;code&gt;WITH TIME ZONE&lt;/code&gt; types (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-630&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-630&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;Connection.setNetworkTimeout&lt;/code&gt; incorrectly used the provided &lt;code&gt;Executor&lt;/code&gt; to set the timeout (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-631&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-631&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 supports Firebird 2.5 and higher, on Java 7, 8, 11 and 14 (using the Java 11 version of the driver).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.1/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.1 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.1/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.9 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.9_released.html</link>
      <pubDate>Fri, 22 May 2020 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.9_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0.9 has been released. This release contains the following changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: changes to the transaction configuration (transaction parameter buffer configuration) of one connection are no longer propagated to other connections with the same connection properties (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-386&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-386&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Firebird 4 data type bind configuration support (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-603&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-603&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Jaybird now supports UTF-8 URL encoding for connection properties in the JDBC url. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-604&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-604&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: When updating a row through an updatable result set, selected but not updated blob fields were set to &lt;code&gt;NULL&lt;/code&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-623&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-623&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8, 11 and 14. Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.9/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.9 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.9/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.0 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.0_released.html</link>
      <pubDate>Sat, 14 Mar 2020 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.0_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the first release of Jaybird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 is - compared to Jaybird 3 - an incremental release that builds on the foundations of Jaybird 3.
The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The main new features are:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wire encryption support (backported to Jaybird 3.0.4)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Database encryption support (backported to Jaybird 3.0.4)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wire compression support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Authentication plugin improvements&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 data type bind configuration support (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 DECFLOAT support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 extended numeric precision support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 time zone support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 statement timeout support (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JDBC RowId support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getPseudoColumns implemented&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getVersionColumns implemented&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getFunctions implemented (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getFunctionColumns implemented (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved JDBC function escape support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New JDBC protocol prefix jdbc:firebird:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;URL encoding in query part of JDBC URL (backported to Jaybird 3.0.9)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generated keys support improvements&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Operation monitoring&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.0/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.0 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.0/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.0-beta-2 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.0-beta-2_released.html</link>
      <pubDate>Sun, 19 Jan 2020 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.0-beta-2_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the second beta for Jaybird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We&amp;#8217;d really appreciate it if you take the time to test this version of Jaybird with your applications.
Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker &lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC&quot; class=&quot;bare&quot;&gt;http://tracker.firebirdsql.org/browse/JDBC&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 is - compared to Jaybird 3 - an incremental release that builds on the foundations of Jaybird 3.
The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The main new features are:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wire encryption support (backported to Jaybird 3.0.4)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Database encryption support (backported to Jaybird 3.0.4)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wire compression support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Authentication plugin improvements&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 data type bind configuration support (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 DECFLOAT support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 extended numeric precision support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 time zone support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 statement timeout support (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JDBC RowId support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getPseudoColumns implemented&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getVersionColumns implemented&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getFunctions implemented (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DatabaseMetaData getFunctionColumns implemented (since Jaybird 4.0.0-beta-2)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved JDBC function escape support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New JDBC protocol prefix jdbc:firebird:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;URL encoding in query part of JDBC URL (backported to Jaybird 3.0.9)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generated keys support improvements&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Operation monitoring&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.0-beta-2 is for testing purposes only, and not intended for production use.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.0-beta-2/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.0-beta-2 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.0-beta-2/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.8 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.8_released.html</link>
      <pubDate>Mon, 25 Nov 2019 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.8_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0.8 has been released. This release contains one bug fix:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: On Firebird 3 and 4 with &lt;code&gt;WireCrypt = Enabled&lt;/code&gt;, the connection could hang or throw exceptions like &lt;em&gt;&quot;Unsupported or unexpected operation code&quot;&lt;/em&gt;. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-599&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-599&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8, 11 and 13. Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.8/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.8 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.8/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.7 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.7_released.html</link>
      <pubDate>Sun, 10 Nov 2019 00:00:00 +0100</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.7_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0.7 has been released. This release contains a new feature and two bug fixes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: attempts to use a blob after it was freed or after transaction end could throw a &lt;code&gt;NullPointerException&lt;/code&gt; or just work depending on whether the connection had a new transaction. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-587&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-587&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Instances of &lt;code&gt;java.sql.Blob&lt;/code&gt; and &lt;code&gt;java.sql.Clob&lt;/code&gt; obtained from a result set were freed after calls to &lt;code&gt;ResultSet.next()&lt;/code&gt;. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-588&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-588&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: added &lt;code&gt;FBEventManager.createFor(Connection)&lt;/code&gt; to create an &lt;code&gt;EventManager&lt;/code&gt; for an existing connection. Backported from Jaybird 4. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-594&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-594&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8, 11 and 13. Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.7/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.7 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.7/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Firebird support in Flyway</title>
      <link>https://www.lawinegevaar.nl/firebird/firebird_support_in_flyway.html</link>
      <pubDate>Sat, 17 Aug 2019 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/firebird_support_in_flyway.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;&lt;a href=&quot;https://flywaydb.org/&quot;&gt;Flyway&lt;/a&gt; is a database migration (versioning) tool that supports a wide variety of database systems.
Recently, they accepted my &lt;a href=&quot;https://github.com/flyway/flyway/pull/2376&quot;&gt;pull request&lt;/a&gt; to add support for &lt;a href=&quot;https://www.firebirdsql.org/&quot;&gt;Firebird&lt;/a&gt; in Flyway 6.0.
Although my pull request supported Firebird 2.1 and higher, the Flyway team has decided to only support Firebird 3 and higher.
I assume this was decided as Firebird 2.5 and earlier are all end-of-life.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
At this time, the release of Flyway 6.0 has not been announced yet, but it is already available from Maven central.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Flyway provides a number of ways to migrate database:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://flywaydb.org/getstarted/firststeps/commandline&quot;&gt;Command-line tool&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://flywaydb.org/getstarted/firststeps/api&quot;&gt;Java API&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://flywaydb.org/getstarted/firststeps/maven&quot;&gt;Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://flywaydb.org/getstarted/firststeps/gradle&quot;&gt;Gradle&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Personally, I prefer to use the Java API to migrate the database from within an application.
However, that solution requires the application to have access to credentials with sufficient rights in the database, which isn&amp;#8217;t alway an option.
Depending on your deployment model, it might be better to provide a separate application or use one of the other three options to migrate a database.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I will show a small example of use of Flyway with Firebird 3 below.
Be sure to read &lt;a href=&quot;https://flywaydb.org/getstarted/&quot;&gt;Flyway&amp;#8217;s Get Started&lt;/a&gt; and &lt;a href=&quot;https://flywaydb.org/documentation/&quot;&gt;Flyway&amp;#8217;s documentation&lt;/a&gt; for more information and an overview of all features.
This example doesn&amp;#8217;t cover all options available.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;In its current form, the example does what is better done using the command-line or the Maven or Gradle plugins.
Consider it a stepping stone for a migration feature as part of a bigger application.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_using_flyway_with_a_firebird_database&quot;&gt;Using Flyway with a Firebird database&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This example will use Gradle as its build and dependency tool, and for running the example.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The full code of the example is available from &lt;a href=&quot;https://github.com/mrotteveel/firebird-flyway-example&quot; class=&quot;bare&quot;&gt;https://github.com/mrotteveel/firebird-flyway-example&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;build.gradle&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;groovy&quot;&gt;plugins {
    id &apos;java&apos;
    id &apos;application&apos;
}

group &apos;nl.lawinegevaar&apos;
version &apos;1.0-SNAPSHOT&apos;

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    implementation &apos;org.firebirdsql.jdbc:jaybird-jdk18:3.0.6&apos;
    implementation &apos;org.flywaydb:flyway-core:6.0.0&apos;
}

application {
    mainClassName = &apos;nl.lawinegevaar.firebird.flyway.example.Main&apos;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;To execute the migrations, we&amp;#8217;ll use the following simple main class.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Main&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;package nl.lawinegevaar.firebird.flyway.example;

import org.flywaydb.core.Flyway;

import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {
        DatabaseProperties databaseProperties = DatabaseProperties.loadDefault();
        migrateDatabase(databaseProperties);
    }

    private static void migrateDatabase(DatabaseProperties databaseProperties) {
        Flyway flyway = Flyway.configure()
                .dataSource(
                        databaseProperties.getUrl(),
                        databaseProperties.getUser(),
                        databaseProperties.getPassword())
                .load();
        flyway.migrate();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This example assumes an existing empty database is used.
The database connection information is configured in a &lt;code&gt;database.properties&lt;/code&gt; file in &lt;code&gt;src/main/resources&lt;/code&gt;.
This properties file is accessed through &lt;code&gt;DatabaseProperties&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This simple application can be built and run using Gradle:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;./gradlew run&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;When run without existing migrations, the following logging will be produced: &lt;sup class=&quot;footnote&quot;&gt;[&lt;a id=&quot;_footnoteref_1&quot; class=&quot;footnote&quot; href=&quot;#_footnotedef_1&quot; title=&quot;View footnote.&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;Aug 17, 2019 10:14:15 AM org.flywaydb.core.internal.license.VersionPrinter printVersionOnly
INFO: Flyway Community Edition 6.0.0 by Boxfuse
Aug 17, 2019 10:14:16 AM org.flywaydb.core.internal.database.DatabaseFactory createDatabase
INFO: Database: jdbc:firebirdsql://localhost/flyway-example.fdb (Firebird 3.0 3.0)
Aug 17, 2019 10:14:16 AM org.flywaydb.core.internal.command.DbValidate validate
INFO: Successfully validated 0 migrations (execution time 00:00.064s)
Aug 17, 2019 10:14:16 AM org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory create
INFO: Creating Schema History table &quot;flyway_schema_history&quot; ...
Aug 17, 2019 10:14:16 AM org.flywaydb.core.internal.command.DbMigrate migrateGroup
INFO: Current version of schema &quot;default&quot;: &amp;lt;&amp;lt; Empty Schema &amp;gt;&amp;gt;
Aug 17, 2019 10:14:16 AM org.flywaydb.core.internal.command.DbMigrate logSummary
INFO: Schema &quot;default&quot; is up to date. No migration necessary.&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Flyway has now created a &lt;code&gt;flyway_schema_history&lt;/code&gt; table which is used to track the executed migrations.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_first_migration&quot;&gt;First migration&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Now, lets add a migration to add a simple person table.
Flyway uses a naming format with scripts prefixed by a version, followed by a descriptive name.
See &lt;a href=&quot;https://flywaydb.org/documentation/migrations#sql-based-migrations&quot;&gt;SQL-based migrations&lt;/a&gt; for details.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The file we create is &lt;code&gt;src/main/resources/db/migrations/V1__Create_person_table.sql&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;V1__Create_person_table.sql&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;sql&quot;&gt;create table PERSON (
    ID int generated by default as identity constraint PK_PERSON primary key,
    NAME varchar(100) not null
);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Executing our program, this now logs:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;...
Aug 17, 2019 10:20:24 AM org.flywaydb.core.internal.command.DbValidate validate
INFO: Successfully validated 1 migration (execution time 00:00.083s)
Aug 17, 2019 10:20:24 AM org.flywaydb.core.internal.command.DbMigrate migrateGroup
INFO: Current version of schema &quot;default&quot;: &amp;lt;&amp;lt; Empty Schema &amp;gt;&amp;gt;
Aug 17, 2019 10:20:24 AM org.flywaydb.core.internal.command.DbMigrate doMigrateGroup
INFO: Migrating schema &quot;default&quot; to version 1 - Create person table
Aug 17, 2019 10:20:24 AM org.flywaydb.core.internal.command.DbMigrate logSummary
INFO: Successfully applied 1 migration to schema &quot;default&quot; (execution time 00:00.091s)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_second_migration&quot;&gt;Second migration&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Now, we want to add some data to the person table:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;V2__Add_people.sql&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;sql&quot;&gt;insert into PERSON (NAME) values (&apos;Mark&apos;);
insert into PERSON (NAME) values (&apos;William&apos;);
insert into PERSON (NAME) values (&apos;Andrew&apos;);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Running this will produce:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;...
Aug 17, 2019 10:26:48 AM org.flywaydb.core.internal.command.DbValidate validate
INFO: Successfully validated 2 migrations (execution time 00:00.110s)
Aug 17, 2019 10:26:48 AM org.flywaydb.core.internal.command.DbMigrate migrateGroup
INFO: Current version of schema &quot;default&quot;: 1
Aug 17, 2019 10:26:48 AM org.flywaydb.core.internal.command.DbMigrate doMigrateGroup
INFO: Migrating schema &quot;default&quot; to version 2 - Add people
Aug 17, 2019 10:26:48 AM org.flywaydb.core.internal.command.DbMigrate logSummary
INFO: Successfully applied 1 migration to schema &quot;default&quot; (execution time 00:00.047s)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_procedural_sql_in_a_migration&quot;&gt;Procedural SQL in a migration&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;A migration script is a collection of statement separated by a statement terminator, by default this is a semi-colon (&lt;code&gt;;&lt;/code&gt;).
To be able to execute procedural SQL statements (eg &lt;code&gt;create procedure&lt;/code&gt; or &lt;code&gt;execute block&lt;/code&gt;) in a migration, the statement terminator must be changed.
To change the statement terminator, the Firebird support in Flyway supports the &lt;code&gt;SET TERM&lt;/code&gt; statement that is also used by ISQL and other Firebird tools.&lt;sup class=&quot;footnote&quot;&gt;[&lt;a id=&quot;_footnoteref_2&quot; class=&quot;footnote&quot; href=&quot;#_footnotedef_2&quot; title=&quot;View footnote.&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As an example of creating a stored procedure:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;title&quot;&gt;V3__Factorial_procedure.sql&lt;/div&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;sql&quot;&gt;set term #;
create procedure factorial(max_value integer)
  returns (factorial bigint)
as
  declare variable counter integer;
begin
  factorial = 1;
  counter = 0;
  while (counter &amp;lt;= max_value) do
  begin
    if (counter &amp;gt; 0) then
      factorial = factorial * counter;
    counter = counter + 1;
  end
end#
set term ;#&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_caveats&quot;&gt;Caveats&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_mixing_ddl_and_dml_in_a_single_migration&quot;&gt;Mixing DDL and DML in a single migration&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Although Firebird has transactional DDL, it is not possible to use objects created in a transaction in DML in that same transaction.
Phrased differently, DML in Firebird can only use objects (tables, columns, etc) as they existed at the start of the transaction.
As a result, it is not possible to create a table and in the same migration populate it with data.&lt;sup class=&quot;footnote&quot;&gt;[&lt;a id=&quot;_footnoteref_3&quot; class=&quot;footnote&quot; href=&quot;#_footnotedef_3&quot; title=&quot;View footnote.&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;
You can logically group related DDL and DML together by using minor version numbers in your migration, for example &lt;code&gt;V4_1__Create_department_table.sql&lt;/code&gt; and &lt;code&gt;V4_2__Add_departments.sql&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_unsupported_statement_types&quot;&gt;Unsupported statement types&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following statements are not supported as they will invalidate the transaction handle used by Jaybird:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;SET TRANSACTION&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;COMMIT [WORK]&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ROLLBACK [WORK]&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_dialect_3_only&quot;&gt;Dialect 3 only&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Flyway uses quoted identifiers for its version table and assumes single quote string literals when parsing scripts.
This means that Flyway will only work on dialect 3 databases.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Flyway is a powerful tool to manage changes to your database, and I think it is good news that Firebird is now supported.
This example only shows the most basic usage of Flyway, so make sure to read the &lt;a href=&quot;https://flywaydb.org/documentation/&quot;&gt;full documentation&lt;/a&gt; so you don&amp;#8217;t miss out on other useful features.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;If you need help, or more information, ask a question on the Firebird-Java mailinglist.
You can subscribe by sending an email to &lt;a href=&quot;mailto:firebird-java-subscribe@yahoogroups.com&quot;&gt;firebird-java-subscribe@yahoogroups.com&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;footnotes&quot;&gt;
&lt;hr&gt;
&lt;div class=&quot;footnote&quot; id=&quot;_footnotedef_1&quot;&gt;
&lt;a href=&quot;#_footnoteref_1&quot;&gt;1&lt;/a&gt;. some warnings produced by Jaybird have been removed
&lt;/div&gt;
&lt;div class=&quot;footnote&quot; id=&quot;_footnotedef_2&quot;&gt;
&lt;a href=&quot;#_footnoteref_2&quot;&gt;2&lt;/a&gt;. &lt;code&gt;SET TERM&lt;/code&gt; is not part of the Firebird server statement syntax
&lt;/div&gt;
&lt;div class=&quot;footnote&quot; id=&quot;_footnotedef_3&quot;&gt;
&lt;a href=&quot;#_footnoteref_3&quot;&gt;3&lt;/a&gt;. You can add a &lt;code&gt;COMMIT RETAIN;&lt;/code&gt; statement to your script to commit in the middle of a script. This is not recommend as this will break the transactionality of your script, which can result in maintenance and recovery headaches if a script partially succeeds and partially fails
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Introducing firebird-testcontainers-java</title>
      <link>https://www.lawinegevaar.nl/firebird/introducing_firebird-testcontainers-java.html</link>
      <pubDate>Sun, 2 Jun 2019 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/introducing_firebird-testcontainers-java.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I have just released &lt;code&gt;org.firebirdsql:firebird-testcontainers-java:1.0.0&lt;/code&gt;, based on &lt;a href=&quot;https://www.testcontainers.org/&quot;&gt;Testcontainers&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This library allows you to start a Firebird docker container for a JUnit 4 or 5 test or manually from your code.
This can be useful for JUnit-based integration tests.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For a very simple example, add to your pom.xml:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;xml&quot;&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.firebirdsql&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;firebird-testcontainers-java&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;
    &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.firebirdsql.jdbc&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;jaybird-jdk18&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;3.0.6&amp;lt;/version&amp;gt;
    &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;And create a test:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;/**
  * Simple test demonstrating use of {@code @Rule}.
  */
public class ContainerExampleTest {

     @Rule
     public final FirebirdContainer container = new FirebirdContainer();

     @Test
     public void canConnectToContainer() throws Exception {
         try (Connection connection = DriverManager
                 .getConnection(container.getJdbcUrl(), container.getUsername(),
                     container.getPassword());
              Statement stmt = connection.createStatement();
              ResultSet rs = stmt.executeQuery(&quot;select CURRENT_USER from RDB$DATABASE&quot;)) {
             assertTrue(&quot;has row&quot;, rs.next());
             assertEquals(&quot;user name&quot;,
                 container.getUsername().toUpperCase(), rs.getString(1));
         }
     }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See &lt;a href=&quot;https://github.com/FirebirdSQL/firebird-testcontainers-java&quot; class=&quot;bare&quot;&gt;https://github.com/FirebirdSQL/firebird-testcontainers-java&lt;/a&gt; and &lt;a href=&quot;https://www.testcontainers.org/&quot; class=&quot;bare&quot;&gt;https://www.testcontainers.org/&lt;/a&gt; for details.&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.6 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.6_released.html</link>
      <pubDate>Sat, 25 May 2019 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.6_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 3.0.6.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This release is largely a bugfix release, but contains additional support for Firebird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0.6 contains the following fixes and changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Exceptions during fetch of cached result sets (holdable over commit, scrollable and metadata) prevented prepared statement reuse/re-execute with error &lt;em&gt;&quot;Statement state CURSOR_OPEN only allows next states [CLOSING, PREPARED, ERROR], received EXECUTING&quot;&lt;/em&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-531&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-531&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: Added &lt;code&gt;FBManager.setDefaultCharacterSet&lt;/code&gt; to set default database character set during database creation (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-541&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-541&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Support for Firebird 3 case sensitive user names (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-549&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-549&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Savepoints did not work in connection dialect 1 as savepoint names were always quoted (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-556&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-556&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changed: The &lt;code&gt;DatabaseMetaData&lt;/code&gt; statement cache introduced in Jaybird 3 was unlimited, it is now limited to 12 prepared statements; the least recently used statement will be closed and removed when a new statement is added (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-557&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-557&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;UPDATE OR INSERT&lt;/code&gt; with existing &lt;code&gt;RETURNING&lt;/code&gt; clause handled incorrectly for generated keys (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-566&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-566&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Exceptions during initialization of result sets would not properly close the database cursor leading to error &lt;em&gt;&quot;Current statement state (CURSOR_OPEN) does not allow call to prepare&quot;&lt;/em&gt; on reuse of the statement (or errors similar to described for JDBC-531 above). (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-571&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-571&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: boolean connection property &lt;code&gt;ignoreProcedureType&lt;/code&gt; to disable usage of metadata for stored procedure types in &lt;code&gt;CallableStatement&lt;/code&gt;. When set to &lt;code&gt;true&lt;/code&gt;, call escapes and &lt;code&gt;EXECUTE PROCEDURE&lt;/code&gt; will default to use &lt;code&gt;EXECUTE PROCEDURE&lt;/code&gt; and not switch to &lt;code&gt;SELECT&lt;/code&gt; for selectable stored procedures. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-576&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-576&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: connection properties &lt;code&gt;timeZoneBind&lt;/code&gt; and &lt;code&gt;sessionTimeZone&lt;/code&gt; for limited support for Firebird 4 &lt;code&gt;TIME(STAMP) WITH TIME ZONE&lt;/code&gt; types, and &lt;code&gt;decfloatBind&lt;/code&gt; for limited support for Firebird 4 &lt;code&gt;DECFLOAT&lt;/code&gt; types. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-583&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-538&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Connection property &lt;code&gt;defaultIsolation&lt;/code&gt;/&lt;code&gt;isolation&lt;/code&gt; did not work through &lt;code&gt;DriverManager&lt;/code&gt;, but only on &lt;code&gt;DataSource&lt;/code&gt; implementations. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-584&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-584&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8 and 9 and higher. Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.6/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.6 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.6/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 4.0.0-beta-1 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_4.0.0-beta-1_released.html</link>
      <pubDate>Sat, 27 Apr 2019 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_4.0.0-beta-1_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the first beta for Jaybird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We&amp;#8217;d really appreciate it if you take the time to test this version of Jaybird with your applications.
Bug reports about undocumented changes in behavior are appreciated.
Feedback can be sent to the Firebird-java mailing list or reported on the issue tracker &lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC&quot; class=&quot;bare&quot;&gt;http://tracker.firebirdsql.org/browse/JDBC&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4 is - compared to Jaybird 3 - an incremental release that builds on the foundations of Jaybird 3.
The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The main new features are:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wire encryption support (backported to Jaybird 3.0.4)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Database encryption support (backported to Jaybird 3.0.4)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Authentication plugin improvements&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 DECFLOAT support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 extended numeric precision support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Firebird 4 time zone support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JDBC RowId support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JDBC DatabaseMetaData.getPseudoColumns implemented&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JDBC DatabaseMetaData.getVersionColumns implemented&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved JDBC function escape support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New JDBC protocol prefix jdbc:firebird:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generated keys support improvements&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 4.0.0-beta-1 is for testing purposes only, and not intended for production use.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.0-beta-1/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 4.0.0-beta-1 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/4.0.0-beta-1/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 2.2.15 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_2.2.15_released.html</link>
      <pubDate>Sat, 6 Apr 2019 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_2.2.15_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 2.2.15.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 2.2.15 is the last version of Jaybird 2.2.x, and we will not plan new changes or fixes for 2.2.x.
This effectively means that Jaybird 2.2.x is End-Of-Life.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;If you run into problems, we will recommend that you switch to Jaybird 3 (or 4 once it is released).
Contact us on Firebird-Java for questions.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 2.2.15 contains the following fixes and changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Exceptions during fetch of cached result sets (holdable over commit, scrollable and metadata) prevented prepared statement reuse/re-execute with error &lt;em&gt;&quot;Attempt to reopen an open cursor&quot;&lt;/em&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-531&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-531&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Jaybird cannot parse Firebird version numbers with revisions (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-534&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-534&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Incorrect parsing of Firebird version numbers (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-535&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-535&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 2.2 supports Firebird 1.0 and higher, on Java 6, 7 and 8. For Java 11 or higher, use Jaybird 3.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.15/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 2.2.15 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.15/release_notes.html#jaybird-on-maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.5 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.5_released.html</link>
      <pubDate>Fri, 7 Sep 2018 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.5_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 3.0.5.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This release is largely a bugfix release, but contains additional support for Firebird 3.0.4 and Firebird 4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0.5 contains the following fixes and changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBManager&lt;/code&gt; does not accept page size of 32768 (Firebird 4 and higher) (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-468&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-468&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Jaybird cannot parse Firebird version numbers with revisions (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-534&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-534&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Incorrect parsing of Firebird version numbers (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-535&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-535&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Added support for the Srp256 authentication plugin (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-536&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-536&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Incorrect warning &lt;em&gt;&quot;Specified statement was not created by this connection&quot;&lt;/em&gt; logged for statements that fail with an exception on prepare (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-538&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-538&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Remote close of event channel (eg on Firebird server stop or crash) leads to high CPU usage and excessive error logging as socket channel is not removed from selector (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-542&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-542&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Properties &lt;code&gt;wireCrypt&lt;/code&gt; and &lt;code&gt;dbCryptConfig&lt;/code&gt; not available on &lt;code&gt;FBEventManager&lt;/code&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-544&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-544&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Documentation: wire protocol encryption requires unlimited strength Cryptographic Jurisdiction Policy (or equivalent), this was previously not documented (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-545&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-545&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8 and 9 and higher. Basic Java 9 and higher compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.5/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.5 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.5/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.4 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.4_released.html</link>
      <pubDate>Sat, 5 May 2018 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.4_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 3.0.4.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This release of Jaybird introduces two new features: wire protocol encryption and database encryption callback support.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0.4 contains the following fixes and changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;New feature: Back-ported wire encryption support from Jaybird 4 (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-415&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-415&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Native/embedded (JNA) connections truncate varchars to length 255 on read (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-518&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-518&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New feature: Database encryption callback support in pure Java protocol (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-527&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-527&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8 and 9. Basic Java 9 compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.4/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.4 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.4 downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.4/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Migration steps SourceForge CVS to GitHub</title>
      <link>https://www.lawinegevaar.nl/firebird/cvs_migration.html</link>
      <pubDate>Sun, 15 Oct 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/cvs_migration.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This post serves as documentation of the steps to migrate the remaining CVS repositories of the Firebird project from SourceForge to GitHub.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_general_steps&quot;&gt;General steps&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Some steps for the migration are inspired by (or plainly copied from) &lt;a href=&quot;https://sourceforge.net/p/forge/documentation/CVS/&quot; class=&quot;bare&quot;&gt;https://sourceforge.net/p/forge/documentation/CVS/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The most important step, the migration itself, is explicitly not taken from the SourceForge documentation, as this turned out to be lossy (several branches were not included in the migration for unclear reasons).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The migration will be done on Windows 10 using Windows Subsystem for Linux with Ubuntu, but these instruction should work on a &apos;real&apos; Linux install.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_tools_to_install&quot;&gt;Tools to install&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Using &lt;code&gt;sudo apt-get install&lt;/code&gt;:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;cvs&lt;/code&gt; (to be able to process the CVS repository)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;rcs&lt;/code&gt; (for parsing the log files using &lt;code&gt;rlog&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git&lt;/code&gt; (obviously)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;make&lt;/code&gt; (to &apos;install&apos; cvs2svn)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;In a suitable working directory, install the latest development version of cvs2svn (the last released version might run into problems with multi-line commit messages).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;# in ~/repomigration
git clone https://github.com/mhagger/cvs2svn.git
cd cvs2svn
sudo make install&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Contrary to its name, cvs2svn also provides a conversion tool called cvs2git.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also &lt;a href=&quot;http://cvs2svn.tigris.org/cvs2svn.html&quot; class=&quot;bare&quot;&gt;http://cvs2svn.tigris.org/cvs2svn.html&lt;/a&gt; and &lt;a href=&quot;http://cvs2svn.tigris.org/cvs2git.html&quot; class=&quot;bare&quot;&gt;http://cvs2svn.tigris.org/cvs2git.html&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_retrieving_and_updating_the_cvs_repository&quot;&gt;Retrieving and updating the CVS repository&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Initial retrieval of CVS repository:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;# in ~/repomigration
mkdir cvsrepo
rsync -av firebird.cvs.sourceforge.net::cvsroot/firebird/* ~/repomigration/cvsrepo&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Subsequent updates can be retrieved using just:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;# in ~/repomigration/cvsrepo
rsync -av firebird.cvs.sourceforge.net::cvsroot/firebird/* ~/repomigration/cvsrepo&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_authors&quot;&gt;Authors&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Git uses email addresses as the usernames of committers, while CVS uses just a username. We will first need to obtain all usernames from the repository, and then associate email addresses (and if possible, user names).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For this migration we will associate the original SourceForge usernames with their &lt;code&gt;username@users.sourceforge.net&lt;/code&gt; email address. If users want to associate these commits with their GitHub user account, they will need to associate this email address with their GitHub account (as a secondary address)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Get usernames from CVS logs:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;for vfile in `find /home/mark/repomigration/cvsrepo -name &apos;*,v&apos;`; do
  rlog $vfile | sed -nr &apos;s/^date:.* author: ([^;]+).*/\1/p&apos;
done | sort -u &amp;gt;~/repomigration/cvs-author-names&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Remove the user &lt;code&gt;root&lt;/code&gt; if present, and then transform to email addresses and add name information from SourceForge profile in a format that can be applied in the cvs2git options file:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;for uname in `cat ~/repomigration/cvs-author-names`; do
  json=`curl https://sourceforge.net/rest/u/$uname/profile`
  fname=`echo &quot;$json&quot; | sed -nr &apos;s/\{&quot;username&quot;: &quot;[^&quot;]+&quot;, &quot;name&quot;: &quot;([^&quot;]+)&quot;.*/\1/p&apos;`
  echo &quot;    &apos;$uname&apos; : (&apos;$fname&apos;, &apos;$uname@users.sourceforge.net&apos;),&quot;
done &amp;gt;~/repomigration/authors.txt&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Review the &lt;code&gt;authors.txt&lt;/code&gt; and make changes were necessary (eg maybe some users indicated they want their commits associated with another email address, real names are not present in the source forge profile, etc).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_conversion_of_a_module&quot;&gt;Conversion of a module&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Before conversion, make sure the local copy of the repository is up-to-date (using rsync). In the description below, I assume migrating the &lt;code&gt;OdbcJdbc&lt;/code&gt; module to git project &lt;code&gt;firebird-odbc-driver&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The cvs2git tool can only do per module conversions. To make migration easier, it is advisable to use an options file, as documented on &lt;a href=&quot;http://cvs2svn.tigris.org/cvs2svn.html&quot; class=&quot;bare&quot;&gt;http://cvs2svn.tigris.org/cvs2svn.html&lt;/a&gt; and &lt;a href=&quot;http://cvs2svn.tigris.org/cvs2git.html&quot; class=&quot;bare&quot;&gt;http://cvs2svn.tigris.org/cvs2git.html&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For our purpose we took a copy of the &lt;code&gt;cvs2git-example.options&lt;/code&gt; from the &lt;code&gt;cvs2svn&lt;/code&gt; folder created in &lt;a href=&quot;#_tools_to_install&quot;&gt;Tools to install&lt;/a&gt;, and made the following modifications. Most of these changes can be used for conversion for all modules, but some settings are per module (or may need some tuning per module).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;(optional) Set &lt;code&gt;ctx.tmpdir&lt;/code&gt; to a name specific to the module being converted (eg &lt;code&gt;r&apos;/home/mark/repomigration/cvs2git-OdbcJdbc&apos;&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the contents of &lt;code&gt;authors.txt&lt;/code&gt; to the &lt;code&gt;author_transform&lt;/code&gt; list.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(optional) Change the entry &lt;code&gt;&apos;cvs2git&apos; : &apos;cvs2git &amp;lt;&lt;a href=&quot;mailto:admin@example.com&quot;&gt;admin@example.com&lt;/a&gt;&amp;gt;&apos;&lt;/code&gt; to the domain of your project (in our case I changed the email address to &lt;code&gt;firebird@firebirdsql.org&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In &lt;code&gt;run_options.set_project&lt;/code&gt; replace &lt;code&gt;r&amp;#8217;test-data/main-cvsrepos&apos;&lt;/code&gt; with the path to the module in the repository copy (eg &lt;code&gt;r&apos;/home/mark/repomigration/cvsrepo/OdbcJdbc&apos;&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In &lt;code&gt;ctx.cvs_log_decoder&lt;/code&gt; uncomment &lt;code&gt;&apos;latin1&apos;&lt;/code&gt; (and maybe &lt;code&gt;&apos;utf-8&apos;&lt;/code&gt;) and &lt;code&gt;fallback_encoding=&apos;ascii&apos;&lt;/code&gt; (especially if you receive warnings about log parsing)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(optional) Change &lt;code&gt;ctx.symbol_info_filename&lt;/code&gt; from &lt;code&gt;None&lt;/code&gt; to (for example) &lt;code&gt;&apos;symbol-info.txt&apos;&lt;/code&gt;, this may help in analyzing and fixing problems with name-conflicts between tags and branches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(optional) Enable &lt;code&gt;changeset_database.use_mmap_for_cvs_item_to_changeset_table&lt;/code&gt; (but read the warning in the options file!)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(optional) If you are missing branches, comment out &lt;code&gt;ExcludeTrivialImportBranchRule()&lt;/code&gt;, as an example the OdbcJdbc module had a branch that was equal to the original initial commit of the CVS repository, and was therefor excluded by this heuristic&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Download &lt;a href=&quot;http://www.apache.org/dev/svn-eol-style.txt&quot; class=&quot;bare&quot;&gt;http://www.apache.org/dev/svn-eol-style.txt&lt;/a&gt; and &lt;a href=&quot;http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types&quot; class=&quot;bare&quot;&gt;http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types&lt;/a&gt; and make changes if necessary.&lt;/p&gt;
&lt;div class=&quot;olist loweralpha&quot;&gt;
&lt;ol class=&quot;loweralpha&quot;&gt;
&lt;li&gt;
&lt;p&gt;Uncomment the &lt;code&gt;AutoPropsPropertySetter&lt;/code&gt; (and related lines) and point it to &lt;code&gt;svn-eol-style.txt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Uncomment the &lt;code&gt;MimeMapper&lt;/code&gt; and point it to &lt;code&gt;mime.types&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Uncomment the &lt;code&gt;EOLStyleFromMimeTypeSetter&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add add &lt;code&gt;from cvs2svn_lib.svn_run_options import SVNEOLFixPropertySetter&lt;/code&gt; to the import list at the start, and at the end of &lt;code&gt;ctx.file_property_setters.extend&lt;/code&gt; add &lt;code&gt;SVNEOLFixPropertySetter(),&lt;/code&gt; to normalize up line-endings (test carefully if you really want to do this)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Be sure to read through the options file documentation, there are some settings you might want to tune further (eg the settings in &lt;code&gt;ctx.file_property_setters.extend&lt;/code&gt; for line endings, etc). The cvs2git default behavior leaves the content as originally stored in the CVS repository (aka &apos;treat everything as binary&apos;).&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The settings of step 9 have no effect if &lt;code&gt;SVNEOLFixPropertySetter()&lt;/code&gt; isn&amp;#8217;t added. Be aware that this can introduce issues further down the road, like line-ending changes between commits depending on the platform and configuration of the contributor. This applies especially for files that are prone to require specific line-endings (eg Windows &lt;code&gt;.bat&lt;/code&gt; files). It might advisable to add a &lt;code&gt;.gitattributes&lt;/code&gt; after migration and update affected files a described on &lt;a href=&quot;https://www.git-scm.com/docs/gitattributes/&quot; class=&quot;bare&quot;&gt;https://www.git-scm.com/docs/gitattributes/&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;To convert (replace &lt;code&gt;firebird-odbc-driver.options&lt;/code&gt; with your options file)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;cvs2git --options=firebird-odbc-driver.options&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Conversion can take a while.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Then perform (replace the &lt;code&gt;firebird-odbc-driver&lt;/code&gt; and &lt;code&gt;cvs2git-OdbcJdbc&lt;/code&gt; with your specific names):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;git init firebird-odbc-driver.git
cd firebird-odbc-driver.git
cat ../cvs2git-OdbcJdbc/git-blob.dat ../cvs2git-OdbcJdbc/git-dump.dat | git fast-import
# might fail if this branch doesn&apos;t exist
git branch -D TAG.FIXUP
python ~/repomigration/cvs2svn/contrib/git-move-refs.py
# delete branches prefixed `unlabelled-` (old branches that had their name deleted from CVS)
git branch --list &apos;unlabeled-*&apos; | xargs git branch -D
git gc --prune=now
git repack -a -d -f --depth=50 --window=250&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock warning&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-warning&quot; title=&quot;Warning&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Deleting the &lt;code&gt;unlabeled-*&lt;/code&gt; branches may lead to loss of history if those branches were never fully merged back in a still existing branch. However as they had their name deleted in CVS, it was likely that the branch was no longer important. Weigh your options carefully, and keep a backup of the CVS repository!&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Verifying contents of repository (replace the &lt;code&gt;firebird-odbc-driver&lt;/code&gt; and &lt;code&gt;cvs2git-OdbcJdbc&lt;/code&gt; with your specific names):&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;mkdir /tmp/compare-firebird/
python ~/repomigration/cvs2svn/contrib/verify-cvs2svn.py \
    --git \
    ~/repomigration/cvsrepo/OdbcJdbc/ \
    ~/repomigration/firebird-odbc-driver.git/ \
    --tmp=/tmp/compare-firebird/ \
    --diff&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_publishing_the_repository_to_github&quot;&gt;Publishing the repository to GitHub&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Create an empty repository on GitHub (replace &lt;code&gt;PROJECT&lt;/code&gt; and &lt;code&gt;REPOSITORY&lt;/code&gt; with the right values)&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;bash&quot;&gt;git remote add origin git@github.com:PROJECT/REPOSITORY.git
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
git push origin --mirror&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Make sure your SSH key for GitHub is loaded.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_repository_specific_steps&quot;&gt;Repository specific steps&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_odbcjdbc_to_firebird_odbc_driver&quot;&gt;OdbcJdbc to firebird-odbc-driver&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Add line &lt;code&gt;NetfraRemote.lib = svn:eol-style=CRLF&lt;/code&gt; to &lt;code&gt;svn-eol-style.txt&lt;/code&gt; in an attempt to fixup an incorrect binary file.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect2&quot;&gt;
&lt;h3 id=&quot;_manual_to_firebird_documentation&quot;&gt;manual to firebird-documentation&lt;/h3&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;After migration and publication to GitHub, checkout on Windows and perform steps:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;In branch &lt;code&gt;master&lt;/code&gt; and &lt;code&gt;B_Release&lt;/code&gt; do:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;code&gt;.gitignore&lt;/code&gt; with content:&lt;/p&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;lib/*
!lib/_readme_libs.txt

tools/*
!tools/_readme_tools.txt
!tools/get_tools_linux.sh

dist/
inter/&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;And then do&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;git add .
git commit -m &quot;Add .gitignore&quot;
git push&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This will ignore the files and folders populated for the build process.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;code&gt;.gitattributes&lt;/code&gt; with content:&lt;/p&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;* text=auto
*.xml           text
*.xsl           text
*.docbook       text
*.css           text
*.bat           text    eol=crlf
*.sh            text

*.bmp           binary
*.gif           binary
*.ico           binary
*.jar           binary
*.jpg           binary
*.jpeg          binary
*.png           binary&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;And then do&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;git read-tree --empty
git add .
git commit -m &quot;Add .gitattributes and update affected files&quot;
git push&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird with Firebird embedded example</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_embedded_example.html</link>
      <pubDate>Fri, 8 Sep 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_embedded_example.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I just published a small example program using Firebird 3 Embedded with Jaybird 3. You can find it on &lt;a href=&quot;https://github.com/mrotteveel/jaybird-embedded-example&quot; class=&quot;bare&quot;&gt;https://github.com/mrotteveel/jaybird-embedded-example&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This example is Windows (64 bit) specific, but should easily translate to other platforms (just a matter of including the equivalent libraries in the &lt;code&gt;fb&lt;/code&gt; folder).&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_running_the_example&quot;&gt;Running the example&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;To compile and run the example application from the commandline, use:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;gradlew run -Dexec.args=&quot;--create&quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Or use &lt;code&gt;gradlew build&lt;/code&gt; and unzip the distribution in &lt;code&gt;build\distributions&lt;/code&gt; and from the unzipped folder execute:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;.\bin\embedded-example.bat --create&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Specifying the &lt;code&gt;--create&lt;/code&gt; option is only necessary on first run to create the (default) database file. See &lt;code&gt;--help&lt;/code&gt; for other options.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_details_on_embedded_use&quot;&gt;Details on embedded use&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The &lt;code&gt;fb&lt;/code&gt; folder of the example program contains all DLL files necessary for Firebird embedded to work:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;fb
|--intl
|  |--fbintl.conf
|  \--fbintl.dll
|--plugins
|  |--engine12.dll
|  |--fbtrace.dll
|  |--legacy_auth.dll
|  |--legacy_usermanager.dll
|  |--srp.dll
|  |--udr_engine.conf
|  \--udr_engine.dll
|--fbclient.dll
|--icudt52.dll
|--icudt52l.dll
|--icuin52.dll
\--icuuc52.dll&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The &lt;code&gt;fb&lt;/code&gt; folder is a trimmed down version of a normal Firebird installation. It is possible that some of the DLLs in the &lt;code&gt;plugins&lt;/code&gt; folder are not necessary (this may require tweaking &lt;code&gt;firebird.conf&lt;/code&gt;), and error logging suggests it might be necessary to include &lt;code&gt;ib_util.dll&lt;/code&gt; as well, but the example program works without it. If you need additional configuration, then you can include a &lt;code&gt;firebird.conf&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;By default Jaybird 3 is only able to use the pure Java implementation of the wire protocol. For Jaybird to be able to use Firebird Embedded, you need to do two things:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;olist arabic&quot;&gt;
&lt;ol class=&quot;arabic&quot;&gt;
&lt;li&gt;
&lt;p&gt;Include the &lt;a href=&quot;https://github.com/java-native-access/jna&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JNA (Java Native Access) library&lt;/a&gt; (version 4.4.0 at time of writing)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the &lt;code&gt;fb&lt;/code&gt; folder (or equivalent) to the search path for JNA&lt;/p&gt;
&lt;div class=&quot;olist loweralpha&quot;&gt;
&lt;ol class=&quot;loweralpha&quot; type=&quot;a&quot;&gt;
&lt;li&gt;
&lt;p&gt;Either specify the &lt;code&gt;jna.library.path&lt;/code&gt; system property with the absolute or relative path to the folder&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Or include the folder on the &lt;code&gt;PATH&lt;/code&gt; environment variable&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Another option is to make the &lt;code&gt;fb&lt;/code&gt; folder the current working directory when executing the program, but this has the downside that it would be harder to support both 32 bit and 64 bit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Supporting both 32 bit and 64 bit should be a matter of having a &lt;code&gt;fb32&lt;/code&gt; and a &lt;code&gt;fb64&lt;/code&gt; and adding both to the search path.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The example application will add the &lt;code&gt;fb&lt;/code&gt; folder to the JNA search path itself when the system property &lt;code&gt;jna.library.path&lt;/code&gt; hasn&amp;#8217;t been specified explicitly:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;private static void tryConfigureJNA() {
    String jnaPath = System.getProperty(&quot;jna.library.path&quot;);
    if (jnaPath == null || jnaPath.isEmpty()) {
        Path path = Paths.get(&quot;fb&quot;).toAbsolutePath();
        System.out.println(&quot;Attempting to set jna.library.path to: &quot; + path);
        System.setProperty(&quot;jna.library.path&quot;, path.toString());
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;To actually use Firebird Embedded is then just a matter of specifying the right connection URL:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre class=&quot;prettyprint highlight&quot;&gt;&lt;code data-lang=&quot;java&quot;&gt;&quot;jdbc:firebirdsql:embedded:&quot; + getDatabasePath()&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Be aware that with the default configuration, &lt;code&gt;fbclient.dll&lt;/code&gt; will try the embedded engine, but if that doesn&amp;#8217;t work (eg &lt;code&gt;engine12.dll&lt;/code&gt; cannot be loaded), it will then try the localhost server. This behaviour can be changed by adding a &lt;code&gt;firebird.conf&lt;/code&gt; with setting &lt;code&gt;Providers = Engine12&lt;/code&gt; (which will disable the &lt;code&gt;Remote&lt;/code&gt; and &lt;code&gt;Loopback&lt;/code&gt; providers).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.2 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.2_released.html</link>
      <pubDate>Sat, 19 Aug 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.2_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 3.0.2.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed in Jaybird 3.0.2:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Specifying an unknown Java character set in connection property  &lt;code&gt;charSet&lt;/code&gt; or &lt;code&gt;localEncoding&lt;/code&gt; was handled as if no connection character set had been specified, now we throw an exception that the character set is unknown. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-498&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-498&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Changed: Specifying a connection character set is no longer required, and will now default to &lt;code&gt;NONE&lt;/code&gt; again, if system property &lt;code&gt;org.firebirdsql.jdbc.defaultConnectionEncoding&lt;/code&gt; is not specified. (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-502&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-502&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8 and 9. Basic Java 9 compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.2/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.2 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.2 downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.2/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.1 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.1_released.html</link>
      <pubDate>Mon, 5 Jun 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.1_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 3.0.1.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The following has been changed or fixed in Jaybird 3.0.1:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBTraceManager.loadConfigurationFromFile&lt;/code&gt; strips line breaks (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-493&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-493&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: &lt;code&gt;FBDatabaseMetaData.getTables&lt;/code&gt; does not list tables where  &lt;code&gt;rdb$relation_type&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt; (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-494&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-494&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improvement: Character sets are now initialized lazily (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-495&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-495&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fixed: Memory leak caused by retaining blob handles until connection close (&lt;a href=&quot;http://tracker.firebirdsql.org/browse/JDBC-497&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JDBC-497&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8 and 9. Basic Java 9 compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.1/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.1 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.1 downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.1/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock tip&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-tip&quot; title=&quot;Tip&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Documentation crowd-funding&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The Firebird Project is currently holding a crowd-funding for the Firebird Developer Guide. Your donation is much appreciated!&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See &lt;a href=&quot;https://www.firebirdsql.org/en/doc-funding-2017/&quot; class=&quot;bare&quot;&gt;https://www.firebirdsql.org/en/doc-funding-2017/&lt;/a&gt; for details.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Running Jaybird tests on docker</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_tests_docker.html</link>
      <pubDate>Fri, 26 May 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_tests_docker.html</guid>
      	<description>
	&lt;div id=&quot;preamble&quot;&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Vlad Mihalcea recently posted the blog &lt;a href=&quot;https://vladmihalcea.com/2017/02/09/how-to-run-integration-tests-at-warp-speed-with-docker-and-tmpfs&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;How to run integration tests at warp speed using Docker and tmpfs&lt;/a&gt;, and I thought it would be interesting to see what needed to be done to run the &lt;a href=&quot;https://github.com/FirebirdSQL/jaybird&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird&lt;/a&gt; tests against a &lt;a href=&quot;https://www.firebirdsql.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Firebird&lt;/a&gt; instance on docker.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I am writing this post as documentation for myself, but I hope it might be useful for others as well. Note that I don&amp;#8217;t have a lot of experience with docker, so do not assume that things in this blog are docker best practices.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As a baseline, a normal test run from IntelliJ on my local machine takes about 10 - 11 minutes for Jaybird master (Jaybird 3.1).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_initial_setup&quot;&gt;Initial setup&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;For this experiment, I used the &lt;a href=&quot;https://hub.docker.com/r/jacobalberty/firebird/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jacobalberty/firebird&lt;/a&gt; image.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The Jaybird tests include tests for events, and the documentation of the image suggests that to use events, you need to add &lt;code&gt;--net=host&lt;/code&gt; to the &lt;code&gt;docker run&lt;/code&gt; command, or &lt;code&gt;RemoteAuxPort&lt;/code&gt; must be set and mapped. I use Docker for Windows, and unfortunately &lt;code&gt;--net=host&lt;/code&gt; is not supported on Windows.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I started the image with:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;docker run `
 --name firebird257 `
 -p 3050:3050 `
 -p 13050:13050 `
 --tmpfs /databases:rw `
 -e ISC_PASSWORD=masterkey `
 -e TZ=Europe/Amsterdam `
 -d `
 jacobalberty/firebird:2.5.7-ss&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock note&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-note&quot; title=&quot;Note&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;I&amp;#8217;m using powershell, which uses &lt;code&gt;`&lt;/code&gt; as the line continuation character, for Windows cmd use &lt;code&gt;^&lt;/code&gt;, for Linux (bash) use &lt;code&gt;\&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Note the use of &lt;code&gt;--tmpfs /databases:rw&lt;/code&gt; to ensure the databases folder is using tmpfs, which is in-memory.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;To get events to work I edited the &lt;code&gt;/var/firebird/etc/firebird.conf&lt;/code&gt; (which, btw, is not a best practice!) to set &lt;code&gt;RemoteAuxPort=13050&lt;/code&gt;, and stopped and started the image with &lt;code&gt;docker stop firebird257&lt;/code&gt; and &lt;code&gt;docker start firebird257&lt;/code&gt;. A better solution would be to overlay the config file, but my docker-fu is lacking in this area for the moment.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As I&amp;#8217;m binding port 3050 directly in this example, I need to make sure that no other instance of Firebird is running on that port locally.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_first_attempt&quot;&gt;First attempt&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;As my configuration above binds the image to &lt;code&gt;127.0.0.1:3050&lt;/code&gt;, I had assumed I could just run all tests from my IDE and be done with it, unfortunately this failed with:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;SEVERE: Exception creating database
java.sql.SQLException: unavailable database [SQLState:08001, ISC error code:335544375]
	at org.firebirdsql.gds.ng.FbExceptionBuilder$Type$1.createSQLException(FbExceptionBuilder.java:498)
	at org.firebirdsql.gds.ng.FbExceptionBuilder.toFlatSQLException(FbExceptionBuilder.java:299)
	...&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Oops. When Jaybird is run against a database on &lt;code&gt;127.0.0.1&lt;/code&gt; or &lt;code&gt;localhost&lt;/code&gt;, the test harness will try to put the database in the current working directory by transforming the relative path to an absolute path. And this obviously fails when you try to pass that absolute Windows path to a Linux image.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fortunately, all &lt;code&gt;127.x.x.x&lt;/code&gt; addresses point to the local loopback, so running the tests against &lt;code&gt;127.0.0.2&lt;/code&gt; should work just fine.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_second_attempt&quot;&gt;Second attempt&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Adding &lt;code&gt;-Dtest.db.host=127.0.0.2&lt;/code&gt; to the run configuration of the tests should do the trick.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;And it seems to work, although a number of tests fail. These failures can be explained though, as these tests expect the database or backup file to exist on the local filesystem, which now is not the case (just like when testing against a real remote database server). We&amp;#8217;ll ignore these failures for now.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Unfortunately, the runtime of the test is 9+ minutes, and that is not significantly different from the original results. Inspection of the image using &lt;code&gt;docker exec -i -t firebird257 /bin/bash&lt;/code&gt; and checking the &lt;code&gt;/databases&lt;/code&gt; folder shows that the databases aren&amp;#8217;t created in the &lt;code&gt;/databases&lt;/code&gt; folder. It turns out they are being created in &lt;code&gt;/tmp&lt;/code&gt; instead. This is probably caused by Jaybird using &lt;code&gt;/fbtest.fdb&lt;/code&gt; as the database name instead of just &lt;code&gt;fbtest.fdb&lt;/code&gt;, or maybe that is a result of the configuration in the image, I&amp;#8217;m not sure. Explicitly specifying the &lt;code&gt;/databases&lt;/code&gt; path should do the trick.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_third_attempt&quot;&gt;Third attempt&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;This time we also add &lt;code&gt;-Dtest.db.dir=/databases&lt;/code&gt; to the run configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;And finally, we hit pay dirt: a run time of 3 minutes and 30 seconds. A reduction of about 7 minutes.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Up to now I have run the tests from my IDE, to run the ant build this way:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;listingblock&quot;&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;pre&gt;build -Dtest.db.host=127.0.0.2 -Dtest.db.dir=/databases&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The performance improvement from running the tests from ant seems to be the same in absolute terms (from 12 minutes to 6-7 minutes without the build itself).&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;sect1&quot;&gt;
&lt;h2 id=&quot;_conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;div class=&quot;sectionbody&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;The results are certainly interesting. I will now need to find a cleaner way to change the configuration, and also run the tests against Firebird 3 (which requires additional configuration changes to work with Jaybird). To be continued.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>Jaybird 3.0.0 released</title>
      <link>https://www.lawinegevaar.nl/firebird/jaybird_3.0.0_released.html</link>
      <pubDate>Sun, 7 May 2017 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/jaybird_3.0.0_released.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We are happy to announce the release of Jaybird 3.0.0.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 is a big change from Jaybird 2.2 and earlier. The entire low-level implementation has been rewritten to be able to support protocol improvements in newer Firebird versions. We have also made changes with a stricter interpretation of the JDBC requirements, and removed some parts that were either obsolete or not functioning correctly.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Most notable changes in Jaybird 3:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Support for wire protocol versions 11, 12, and 13 (without support for encryption and compression); protocol version 13 contributed by &lt;a href=&quot;https://github.com/nakagami&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Hajime Nakagami&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Support for the Firebird 3 SRP (Secure Remote Password) authentication mechanism (contributed by &lt;a href=&quot;https://github.com/nakagami&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Hajime Nakagami&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Support for streaming backup and restore (contributed by &lt;a href=&quot;https://github.com/ls4f&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Ivan Arabadzhiev&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved Firebird 3 support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved and stricter JDBC support (including improved &lt;code&gt;java.time&lt;/code&gt; support, and more optional methods implemented)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Initial JDBC 4.3 (Java 9) support (without real module support)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New implementation of the native/embedded Type 2 driver using JNA (a jaybird &lt;code&gt;.dll&lt;/code&gt;/&lt;code&gt;.so&lt;/code&gt; is no longer needed)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improved character set handling&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Removal of (buggy) connection pool implementation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Removal/replacement of (internal) GDS API&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;And a large number of smaller bug fixes, improvements, and changes.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;admonitionblock caution&quot;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class=&quot;icon&quot;&gt;
&lt;i class=&quot;fa icon-caution&quot; title=&quot;Caution&quot;&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class=&quot;content&quot;&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;We recommend that you do not consider Jaybird 3.0 a drop-in replacement for Jaybird 2.2, and study the &lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.0/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;release notes&lt;/a&gt; carefully.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Test your application with Jaybird 3.0 before using it in production.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Jaybird 3.0 supports Firebird 2.0 and higher, on Java 7, 8 and 9. Basic Java 9 compatibility is provided through the Java 8 version of the driver.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.0/release_notes.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.0 release notes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/en/jdbc-driver/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jaybird 3.0.0 downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firebirdsql.org/file/documentation/drivers_documentation/java/3.0.0/release_notes.html#maven&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Instructions for Maven&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>FBDTP Version 1.0.2.201106021154</title>
      <link>https://www.lawinegevaar.nl/firebird/version_1.0.2.201106021154.html</link>
      <pubDate>Thu, 2 Jun 2011 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/version_1.0.2.201106021154.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bugfix version&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fixes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Loading of multi-action triggers&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Column loading for tables containing blobs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Loading of constraints&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Loading of index columns&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Order of indices in DDL generation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Linebreaks in DDL stored procedures and triggers&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DDL generation for sequences&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Leave delegation to plugin config, don&amp;#8217;t hardcode&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Gotcha&amp;#8217;s:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Largely untested (only minor testing done under Eclipse 3.5.2 with DTP 1.7.2 and Eclipse 3.6.2 with DTP 1.8.2)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Download: &lt;a href=&quot;https://github.com/mrotteveel/fbdtp/releases/download/1.0.2/firebird_DTP_1.0.2.201106021154.zip&quot;&gt;firebird_DTP_1.0.2.201106021154.zip&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>FBDTP Version 1.0.1.200907101543</title>
      <link>https://www.lawinegevaar.nl/firebird/version_1.0.1.200907101543.html</link>
      <pubDate>Fri, 10 Jul 2009 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/version_1.0.1.200907101543.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Bugfix and &apos;less-is-more&apos; release&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Code cleanup&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;More delegation to standard DTP implementation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sourcecode added to distribution&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Fixes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Now all stored procedures are shown&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Numeric fields are shown correctly in &apos;Data &amp;gt; Edit&apos; (tested in Eclipse 3.5 / DTP 1.7)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stored procedures code should be correct (unverified)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trigger code is loaded&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Menu &apos;Sample contents&apos; now works correctly&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Gotcha&amp;#8217;s:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;(slightly) tested on Eclipse 3.5 / DTP 1.7, untested on Eclipse 3.4 / DTP 1.6&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Some datatypes introduced in Firebird 2.1 might not work correctly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DDL for sequence/generators cannot be shown yet&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Some formatting issues with &apos;Export DDL&apos; (especially for triggers)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Due to changes it is possible that some exceptions occur (especially on the &apos;SQL Results&apos; tab with previous queries); fix by removing all previous results or removing Firebird specific results&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Download: &lt;a href=&quot;https://github.com/mrotteveel/fbdtp/releases/download/1.0.1/firebird_DTP_1.0.1.200907101543.zip&quot;&gt;firebird_DTP_1.0.1.200907101543.zip&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>FBDTP Version 1.0.0.200906062028</title>
      <link>https://www.lawinegevaar.nl/firebird/version_1.0.0.200906062028.html</link>
      <pubDate>Sat, 6 Jun 2009 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/version_1.0.0.200906062028.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;First step integrating Roman Rokytskyy work.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Used other (generic) UI for connection&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The full jdbc-URL must be used&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Connection now uses two &apos;virtual&apos; schemas, SYSTEM and USER, to
separate system metadata (RDB$.. and MON$.. tables/views) from the usermetadata&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sequences (generators) are now visible&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Selectable stored procedures are now grouped under stored procedures&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Constraints are now shown&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Gotcha&amp;#8217;s:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Untested&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Only five stored procedures are shown&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Numeric fields are not shown correctly in the &apos;edit&apos;-view (context-menu on a table or view)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stored procedure code is not correct (body usually is correct, but signature is wrong)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DDL for sequence/generators cannot be shown yet&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trigger code is not loaded&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependencies are not shown&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Some datatypes introduced in Firebird 2.1 might not work correctly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The option &apos;Sample contents&apos; (context menu on a table or view) does not work&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Download: &lt;a href=&quot;https://github.com/mrotteveel/fbdtp/releases/download/1.0.1/firebird_DTP_1.0.0.200906062028.zip&quot;&gt;firebird_DTP_1.0.0.200906062028.zip&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>
    <item>
      <title>FBDTP Version 1.0.0.200905311358</title>
      <link>https://www.lawinegevaar.nl/firebird/version_1.0.0.200905311358.html</link>
      <pubDate>Sun, 31 May 2009 00:00:00 +0200</pubDate>
      <guid isPermaLink="false">firebird/version_1.0.0.200905311358.html</guid>
      	<description>
	&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;First version based on Brian Fitzpatrick&amp;#8217;s work.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Gotcha&amp;#8217;s:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;ulist&quot;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Database version is 2.1, but it should work with most - if not all - Firebird versions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The connectionprofile wizard has a browse button (copied from the
SQLite or Derby implementation): this doesn&amp;#8217;t work correctly forfirebird and will be removed in a next version (see also next bullet)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Manually enter the &apos;Database location&apos; as the string that would normally follow after the &lt;code&gt;jdbc:firebirdsql:&lt;/code&gt;-part of the connection URL&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Only rudimentary support for Firebird is available right now, so don&amp;#8217;t expect too much&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Specifying optional properties has not been tested yet&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stored Procedures are split among &apos;Stored Procedures&apos; and  &apos;User-Defined Functions&apos;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User-Defined Functions are not shown&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stored Procedure definitions are not shown correctly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sequences (generators) are not shown&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependencies / constraints are not displayed&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;paragraph&quot;&gt;
&lt;p&gt;Download: &lt;a href=&quot;https://github.com/mrotteveel/fbdtp/releases/download/1.0.1/firebird_DTP_1.0.0.200905311358.zip&quot;&gt;firebird_DTP_1.0.0.200905311358.zip&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
	</description>
    </item>

  </channel> 
</rss>
