Hello. It's a long story. Apache Ignite used released versions of H2 internally. Because it needed more than H2 can provide, some new functionality were contributed to H2, usually without taking own needs of H2 into account. Some of this functionality wasn't used by H2 itself and other projects at all, it only created some unwanted complexity, some hypothetically was usable for other projects, some was actually used in them, such as TableEngine. All this stuff was basically unmaintained, when some problem in H2 required massive changes including these third-party features nobody wanted or be able to help with them. At some point a fork of H2 was made for Apache Ignite due to their own reasons. After that we decided to remove support for Apache Ignite from mainline H2 due to all its complexity and because it actually blocks other long-standing issues. Some features were preserved, however.
CustomDataTypeHandler never was a part of stable API. It was placed into org.h2.api package, but it has warnings in its documentation since the beginning. Existence of this poorly designed class blocked bugfixes for issues with very basic SQL features of H2. There were only two options: drop it completely or redesign it from the scratch without any backward compatibility, but nobody wanted to write a new implementation of it in 2019 and nobody cared about it till then, it's not a functionality that everyone uses and H2 doesn't have commercial customers any more and doesn't provide any guarantees to anyone. Actually there is no place for it in the new type system, it can be used only as a storage container. But we already have storage containers for arbitrary data. We have standard VARBINARY, BINARY, and BLOB data types for them. You can define an own domain to give your custom data type some better name clearly describing its content. H2 also has JAVA_OBJECT data type for serializable objects. There are no good reasons to duplicate functionality of domains here. The SQL Standard also has user-defined data types, but H2 doesn't support them yet and they can't be easily introduced, it's a large piece of work and we need to implement SQL/PSM first. Maybe both these features will be introduced as real supported and standard-compliant features in the future, but, again, they need a lot of work. H2 1.4.200 was the last release in 1.4 series of releases. The upcoming H2 2.0 has many incompatibilities with 1.4.200 and not every application can use the new version or snapshot builds from current sources without additional changes. We have some plans to write a migration guide for the upcoming release, but currently it isn't available anywhere. -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to h2-database+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/h2-database/a35157a7-fca4-4522-bfb0-c48d72a37785o%40googlegroups.com.