DBAPI 3.0: Unified parameter style
Tony Locke <[email protected]> Fri, 13 Sep 2013 18:54:35 +0100
| Newsgroups | gmane.comp.python.db |
|---|---|
| Message-ID | <CAPpF0yNvQhAFJ3d0=os5tKa3U+5UQ7bOqBHS5eWqz36OOBD6Eg@mail.gmail.com> |
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 - [email protected]
https://mail.python.org/mailman/listinfo/db-sig