Re: JDBC String to Bool spec

From: Mark Rotteveel <mark(at)lawinegevaar(dot)nl>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: JDBC String to Bool spec
Date: 2017-01-16 20:09:41
Message-ID: 7c2e158ed4db19a6bb66ad369e6fd233@lawinegevaar.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On 2017-01-16 20:16, Jorge Solórzano wrote:
> I guess you are right, the driver currently blindly converts incorrect
> values to false, IMO it should accept only values allowed in
> postgresql server since this is the PgJBDC driver, but is should also
> support a cast of float, double and decimal as this is required by the
> jdbc spec.

Interestingly, the JDBC 4.2 specification documentation allows more
types than the apidoc (see my previous email for a quote of the apidoc).
I will see if I can get Lance Andersen to amend the apidoc.

The JDBC specification mentions conversion for: TINYINT, SMALLINT,
INTEGER, BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, BOOLEAN,
CHAR, VARCHAR, LONGVARCHAR (and vice versa), the apidoc doesn't mention
the fixed and floating point types. Presumably this was added because
you can also call getInt on a double, etc.

> @vlsi, @davecramer, what is your opinion about blindly convert
> incorrect values to false? Should the driver accept this kind of
> behaviour?
>
> For instance something like this is allowed (and there is even a test
> for this):
>
> CREATE TABLE testboolstring (a varchar(30));
> INSERT INTO testboolstring VALUES('this is not true');
>
> when execute rs.getBoolean(1), it gets false, but it should be an
> cannotCastException.

You're right, but the question is: will you break existing code if you
apply this change?

Mark

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2017-01-16 20:21:13 Re: JDBC String to Bool spec
Previous Message Vladimir Sitnikov 2017-01-16 20:02:43 Re: JDBC String to Bool spec