Tony:
  I should also mention that the reason that "qmark" ("?") delimiters were
selected as the choice for specified-by-order parameter markers, rather
than "numeric" (":n") in simply popularity.  Postgres is pretty much alone
in using numeric, where several other popular databases all use qmark.
  The most important reason for leaving the .paramstyle attribute in place
is so that Postgres applications need not be re-written -- we assume that
anyone who writes a Postgres adapter will allow "numeric" parameters as an
extension to the standard.


> On Fri, Sep 13, 2013 at 6:54 PM, Tony Locke <tlo...@tlocke.org.uk> wrote:
>
>> Hi, I'm a contributor to the PG8000 Postgres driver:
>>
>> https://github.com/mfenniak/pg8000/tree/py3
>>
>> Having read the interesting DBAPI 3.0 wiki page:
>>
>> https://wiki.python.org/moin/DbApi3
>>
>> I thought I'd give a suggestion for unified parameters. Apologies if
>> this has been suggested before, I did have a look at the archives :-)
>>
>> In DBAPI 2.0, the parameters to execute() can be a sequence or a
>> mapping. In DBAPI 3.0, the paramstyle attribute should be removed, and
>> the style determined by whether the parameters are a sequence or
>> mapping. For a sequence the 'numeric' style is expected, and for a
>> mapping the 'named' style. For example:
>>
>> execute("select * from emp where name = :1", ['horatio'])
>>
>> execute("select * from emp where name = :name", {'name': 'horatio'})
>>
>> The reason I like this solution is that if someone asked me how
>> parameters work in DBAPI, this one would be the easiest to explain!
>>
>> Any thoughts?
>>
>> Cheers,
>>
>> Tony.
>> _______________________________________________
>> DB-SIG maillist  -  DB-SIG@python.org
>> https://mail.python.org/mailman/listinfo/db-sig
>>
>
>
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
https://mail.python.org/mailman/listinfo/db-sig

Reply via email to