H2 1.4.198 breaks source and binary compatibility with 1.4.197: org.h2.value.Value.getResultSet()

70 views
Skip to first unread message

Gary Gregory

unread,
Feb 23, 2019, 8:24:55 AM2/23/19
to H2 Database
Hi All:

Thank you for a new version of H2 but H2 1.4.198 breaks source and binary compatibility with 1.4.197 by removing the method org.h2.value.Value.getResultSet().

For example, this breaks our build over at Apache Commons CSV.

What is your recommendation? If the removal was accidental, do you plan on issuing a new release?

Thank you,
Gary

Evgenij Ryazanov

unread,
Feb 23, 2019, 8:44:44 AM2/23/19
to H2 Database
Hello.

You should not use internals of H2 unless you're ready that they can be changed or removed in any version without a warning.

This method was removed intentionally. You can try to use Value.getResult()` instead, but it returns an instance of org.h2.api.ResultInterface that also is not a part of stable API.

Gary Gregory

unread,
Feb 23, 2019, 9:20:42 AM2/23/19
to H2 Database
Hm... ok. What about documenting internal classes as such then? The Javdoc for the *public* Value says:

 * This is the base class for all value classes.
 * It provides conversion and comparison methods.

Gary

Noel Grandin

unread,
Feb 23, 2019, 9:39:52 AM2/23/19
to h2-da...@googlegroups.com
Everything in H2 is internal unless specified otherwise.

Gary Gregory

unread,
Feb 23, 2019, 9:43:23 AM2/23/19
to H2 Database
And *that* is documented... where?

Gary

Evgenij Ryazanov

unread,
Feb 23, 2019, 9:59:39 AM2/23/19
to H2 Database
H2 is not a library. It's a database engine. Database engines are used via JDBC.

If you read H2 documentation (not the Javadoc) you can find that H2 additionally provides some API and tools for specific operations where JDBC is not enough, like usage of data types that doesn't have JDBC mappings, creation of user-defined functions, server control and so on.

Value is not a part of such API.

Gary Gregory

unread,
Feb 23, 2019, 10:01:40 AM2/23/19
to h2-da...@googlegroups.com
Evgenij, 

Thank you for the details.

Gary

--
You received this message because you are subscribed to a topic in the Google Groups "H2 Database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/h2-database/hCMqXth2OcA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to h2-database...@googlegroups.com.
To post to this group, send email to h2-da...@googlegroups.com.
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Noel Grandin

unread,
Feb 23, 2019, 10:44:59 AM2/23/19
to h2-da...@googlegroups.com
Do you have a link to the relevant Apache code? Perhaps we can suggest something that doesn't need to touch internal classes
Reply all
Reply to author
Forward
0 new messages