Re: queries against CIDR fail against 8.0.3? - Mailing list pgsql-jdbc

From Russell Francis
Subject Re: queries against CIDR fail against 8.0.3?
Date
Msg-id 433D8CA1.3050601@ev.net
Whole thread Raw
In response to Re: queries against CIDR fail against 8.0.3?  (Oliver Jowett <oliver@opencloud.com>)
Responses Re: queries against CIDR fail against 8.0.3?  (Kris Jurka <books@ejurka.com>)
List pgsql-jdbc
Oliver Jowett wrote:
> Russell Francis wrote:
>
> You will need to either create a PGobject subclass that returns the
> correct typename (cidr), or explicitly cast to cidr in your query:
>
> SELECT * FROM institution WHERE ( institution.network >>= ?::cidr )
> LIMIT 1
>
>
>>Does anyone have any ideas on how to address this issue?  Or at least an
>>explanation as to why it works in 7.3.9 but not 8.0.3?
>
>
> The 8.0 drivers type parameters more strongly than earlier drivers due
> to a change in the protocol used, so setObject(String) is passing the
> parameter explicitly as a 'text' value not as an untyped literal that
> gets implicitly casted to cidr. See the archives for more details.

Oliver & Kris,

Thanks much both of your responses were very helpful.  I have decided to
subclass PGobject to address the issue and have created a PGcidr class which
seems to be working well.

If there is any interest in adding this to the project, I would be happy
to submit what I have for review and also provide PGinet and PGmacaddr classes
to the core.

Thanks again,
Russ

pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: Intermittent I/O error?
Next
From: Kris Jurka
Date:
Subject: Re: queries against CIDR fail against 8.0.3?