Re: Problems with question marks in operators (JDBC, ECPG, ...)

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Jan de Visser <jan(at)de-visser(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Problems with question marks in operators (JDBC, ECPG, ...)
Date: 2015-05-20 13:06:41
Message-ID: CADK3HH+YKA_4iiF4zRB_hC9_XXOYSuGyNgZNkR4cTo9+9Ja7FQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 19 May 2015 at 19:18, Jan de Visser <jan(at)de-visser(dot)net> wrote:

> On May 19, 2015 09:31:32 PM Greg Sabino Mullane wrote:
> > Jan de Visser wrote:
> > >> Well, one could argue that it *is* their problem, as they should be
> using
> > >> the standard Postgres way for placeholders, which is $1, $2, $3...
> > >
> > > Shirley you are joking: Many products use JDBC as an abstraction layer
> > > facilitating (mostly) seamless switching between databases. I know the
> > > product I worked on did. Are you advocating that every single statement
> > > should use "SELECT * FROM foo WHERE bar = $1" on pg and "SELECT * FROM
> > > foo WHERE bar = ?" on every other database?
> >
> > I'm not joking, and don't call me Shirley. If you are running into
> > situations where you have question mark operators in your queries, you
> have
> > already lost the query abstraction battle. There will be no seamless
> > switching if you are using jsonb, hstore, ltree, etc. My statement was
> more
> > about pointing out that Postgres already offers a complete placeholder
> > system, which drivers are free to implement if they want.
>
> I must have misunderstood you <strike>Shirley</strike> Greg, because to me
> it
> parsed as if you were suggesting (paraphrasing) "ah forget about those
> pesky
> standardized drivers and their pesky syntax requirements. Just use ours
> like a
> big boy".
>
> I understand that once you start using '?' as (part of) operator names in
> your
> queries you're not portable anymore. I just thought that your proposed
> solution was to throw all portability out the window. But I was probably
> (hopefully?) wrong.
>
> jan
>
>
>
Using anything other than ? in JDBC is a non-starter you might as well just
stop supporting java entirely.

Back to the issue at hand. Does anyone have a recommendation for a
replacement operator besides ?

When I first noticed this one thought was to create duplicate operators
specifically for the use of the JDBC driver.

I had dismissed this at the time, now I'm not so sure

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca

>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Srinivas Karthik V 2015-05-20 13:14:57 PostgreSQL 8.3 index page count clarification
Previous Message Jon Nelson 2015-05-20 12:38:35 Re: Change pg_cancel_*() to ignore current backend