Release Schedule

273 views
Skip to first unread message

Mark Paluch

unread,
May 26, 2020, 10:20:34 AM5/26/20
to H2 Database
Hey there, 

is there a common place where we can find a schedule for releases, specifically 1.4.201. Asking here since H2 seems to not use Github Milestones.

Cheers, 
Mark

Andrei Tokar

unread,
May 26, 2020, 8:09:32 PM5/26/20
to H2 Database
Hi Mark,

Unfortunately, there is no set release schedule for H2, and so far they have been happening in ad-hoc fashion, when Thomas Mueller finds a time to do so, since he is the only person.

Silvio

unread,
Jun 2, 2020, 10:04:25 AM6/2/20
to H2 Database
Hi Andrei,

I am more than happy with H2 not having a set release schedule. But having no schedule or even rule of thumb at all is the other extreme.

For us users it would be great if any commitment was expressed to try and make meaningful improvements available by releasing a new version, say, twice a year. If that is too much any other order of magnitude estimate would be fine.

What would be even more welcome would be a couple of hints about what things people are working on towards the coming release or the next one. To be honest the road map on the site does not really fulfill this function since it is not frequently updated and contains many items that have been on there for years.

Everybody understands H2 is free software and that people are working on it in their spare time. But having almost no information at all is a bit unfortunate.

I myself (and I am sure many others) would be more than willing to make a build now and then and test specific features if that helps you guys getting things production ready.

Matt Pavlovich

unread,
Jun 2, 2020, 10:21:49 AM6/2/20
to H2 Database
+1

I'm fairly new to the H2 development community, and curious if there have been discussions about bringing on additional maintainers/committers that would be able help with releases?

-Matt

moldowan

unread,
Aug 23, 2020, 4:13:16 PM8/23/20
to H2 Database
Hi everyone,

I am trying to get Hibernate updated from h2 1.4.196 to the latest version: https://github.com/hibernate/hibernate-orm/pull/3412
After struggling with a "hidden" time zone cache in h2 (see comment) we were able to get tests passing with 1.4.197.
We cannot use 1.4.198 or .199 (see comment) and with .200 we are running into https://github.com/h2database/h2database/issues/2773.

Long story short: I would really really help to know when to expect 1.4.201 (+/- a month or so)!

Cheers,
Falko

Evgenij Ryazanov

unread,
Aug 23, 2020, 9:42:46 PM8/23/20
to H2 Database
Hello.

1. 1.4.200 was the last release in 1.4 series of releases and upcoming 2.0.202 has significant changes everywhere and shouldn't be considered as drop-in replacement, you may need some adjustments for it.

2. We have some known unintended regressions that need to be fixed before the release of H2 2.0, so the release is delayed until they will be fixed. There is no exact timeline.

3. 1.4.200 definitely has a bug, but I have no idea why you ever use `ResultSet.getTimestamp()` on a `TIME` column. Applications normally use ResultSet.getObject(column, LocalTime.class) (this is the best choice for H2) or legacy ResultSet.getTime(column) (has problems at least in one time zone due to own design flaws of java.sql.Time). Even more, conversion from TIME to TIMESTAMP was aligned with the SQL Standard in H2 1.4.200 (due to bug in JDBC layer in this version you need to use CAST directly in the SQL code to see how it works). This conversion in not compatible with old versions of H2 anyway.

niklas...@gmail.com

unread,
Aug 27, 2020, 9:50:31 AM8/27/20
to H2 Database
Hi  Evgenij , 

3. 1.4.200 definitely has a bug, but I have no idea why you ever use `ResultSet.getTimestamp()` on a `TIME` column. Applications normally use ResultSet.getObject(column, LocalTime.class) (this is the best choice for H2) or legacy ResultSet.getTime(column) (has problems at least in one time zone due to own design flaws of java.sql.Time). Even more, conversion from TIME to TIMESTAMP was aligned with the SQL Standard in H2 1.4.200 (due to bug in JDBC layer in this version you need to use CAST directly in the SQL code to see how it works). This conversion in not compatible with old versions of H2 anyway.,

1.4.200s getDate() has also problems with ancient dates. When accessing h2 using SQL Workbench/J the following commands:
---
create table  test (someDate Date, someTimestamp Timestamp);

insert into test (someDate, someTimestamp) values ('0001-01-01', '0001-01-01 00:00:00');

select * from test;
---

return '0001-01-03' and '0001-01-03 00:06:32.000'. Since LocalDate/LocalDateTime seem to work without problems, I tried to change the getters in org.h2.jdbc.JdbcResultSet to e.g.

    public Timestamp getTimestamp(int columnIndex) throws SQLException {
LocalDateTime localDateTime = getObject(columnIndex, LocalDateTime.class);
return localDateTime != null ? Timestamp.valueOf(localDateTime) : null;
    }

and the setters in org.h2.jdbc.JdbcPreparedStatement to e.g.

 public void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws SQLException {
      if (isDebugEnabled()) {
            debugCode("setTimestamp(" + parameterIndex + ", " + quoteTimestamp(x) + ");");
        }
      setObject(parameterIndex, x != null ? x.toLocalDateTime() : null);
  }

With this change the correct values are returned. Would you accept a pull request that implements this change? Or will this cause other problems?

Best regards,
  Niklas

  

Evgenij Ryazanov

unread,
Aug 27, 2020, 1:44:00 PM8/27/20
to H2 Database
Please, read the documentation:

Current behavior is a compromise between bugs of legacy datetime API and we don't want to change it again. Just don't use it any more, Java 8 and JDBC 4.2 have much better classes without horrible design flaws.

Evgenij Ryazanov

unread,
Aug 27, 2020, 1:54:27 PM8/27/20
to H2 Database
If a third-party tool uses those legacy classes, you may want to submit a feature request in its bugtracker about usage of modern API with compatible drivers.
Reply all
Reply to author
Forward
0 new messages