Thanks for the complete reply and all of the hardwork in general. I do
think from the outside it has been a little unclear about the direction and
motivation of the project, but obviously that clears things up.

The type I wanted to implement was going to be a rational numeric (i.e.
a/b).
Do you think that patching H2 is the best way to go? Is it a datatype h2
would want to support internally?

On Fri, Aug 7, 2020 at 4:44 AM Evgenij Ryazanov <[email protected]> wrote:

> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/h2-database/a35157a7-fca4-4522-bfb0-c48d72a37785o%40googlegroups.com
> <https://groups.google.com/d/msgid/h2-database/a35157a7-fca4-4522-bfb0-c48d72a37785o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/h2-database/CAOZwqw%3D2Z3%2BdyMMcsgs4Cp674XNB9hb-F2xdC0FU%2BZKrB3uU6Q%40mail.gmail.com.

Reply via email to