Thread: Datatype of domains not reported correctly.

Datatype of domains not reported correctly.

From
Thomas Kellerer
Date:
Hi,

I noticed that the getColumns() driver dos not return the proper java.sql.Types value for columns
that are defined through a domain.

I was looking at the pagila sample database. The table film contains the column release_year which
is defined as year. The domain year is defined as

CREATE DOMAIN year AS integer
    CONSTRAINT year_check CHECK (((VALUE >= 1901) AND (VALUE <= 2155)));

When using getColumns() the driver returns the value 2001 for DATA_TYPE (which is
java.sql.Types.DISTINCT).

Maybe I'm missing something, but I would have expected the driver to return the numeric value for
the underlying datatype (java.sql.Types.INTEGER in this case).
Or at least java.sql.Types.OTHER (the way it's done for enums)

Regards
Thomas

Re: Datatype of domains not reported correctly.

From
Kris Jurka
Date:

On Sat, 1 Aug 2009, Thomas Kellerer wrote:

> I noticed that the getColumns() driver dos not return the proper
> java.sql.Types value for columns that are defined through a domain.
>
> CREATE DOMAIN year AS integer
>     CONSTRAINT year_check CHECK (((VALUE >= 1901) AND (VALUE <= 2155)));
>
> When using getColumns() the driver returns the value 2001 for DATA_TYPE
> (which is java.sql.Types.DISTINCT).

DISTINCT is the JDBC equivalent term for domains.

See Chapter 16 if the JDBC4 spec.

DISTINCT type - a user-defined type based on a built-in type; for
example: CREATE TYPE MONEY AS NUMERIC(10,2) FINAL

So I believe we're doing the right thing here, although our support for
DISTINCT elsewhere is probably lacking.

Kris Jurka

Re: Datatype of domains not reported correctly.

From
Thomas Kellerer
Date:
Kris Jurka wrote on 03.08.2009 19:44:
> DISTINCT is the JDBC equivalent term for domains.
>
> See Chapter 16 if the JDBC4 spec.
>
> DISTINCT type - a user-defined type based on a built-in type; for
> example: CREATE TYPE MONEY AS NUMERIC(10,2) FINAL
>
> So I believe we're doing the right thing here, although our support for
> DISTINCT elsewhere is probably lacking.

Thanks for the detailed answer. I have to admit that I didn't check the JDBC spec completely.

If the specs require this, I can live with it - although I think the spec is "wrong" here ;)

Regards
Thomas