From: | Mike Mascari <mascarm(at)mascari(dot)com> |
---|---|
To: | Greg Stark <gsstark(at)mit(dot)edu> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: placeholder syntax |
Date: | 2004-06-21 18:06:35 |
Message-ID: | 40D723AB.4050006@mascari.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Greg Stark wrote:
> Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>
>>Abhijit Menon-Sen <ams(at)wiw(dot)org> writes:
>>
>>>Should Postgres accept ? as a placeholder?
>>
>>In short, I think this notation sucks and I don't want to emulate it.
>
> Certainly it sucks. Unfortunately it's the supported ODBC API which is
> emulated by everyone else, including JDBC and DBI. So the world's pretty much
> stuck with it.
>
> However this isn't Postgres's problem. If you want to write code that works
> with multiple databases then you're going to want to be using something like
> ODBC or JDBC or DBI anyways. In which case it's the driver's responsibility to
> provide the standard API which includes translating ? into appropriate syntax
> for the database.
This brings back memories. This is how the whole Access hack for the
parse-time transformation of '= NULL' to 'IS NULL' came about. IIRC,
older versions of Access would invoke SQLPrepare() with a statement
like:
SELECT *
FROM employees
WHERE employeeid = ?
then invoke SQLBindParameter() with NULL as the value, followed by
SQLExecute() and the backend would receive:
SELECT *
FROM employees
WHERE employeeid = NULL
Later versions of one of the Access components (jet, mdac,
access.exe - who knows where) changed its behavior and never
performed similarly...
Mike Mascari
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Hallgren | 2004-06-21 21:31:29 | Re: placeholder syntax |
Previous Message | Greg Stark | 2004-06-21 17:31:57 | Re: placeholder syntax |