DB-API corner case (psycopg2)
Diez B. Roggisch
deets at nospam.web.de
Fri Aug 1 10:25:51 EDT 2008
Thomas Guettler schrieb:
> Hi,
>
> I discovered this:
>
> import psycopg2
> connection=psycopg2.connect("dbname='...' user='...'")
> cursor=connection.cursor()
> cursor.execute('''SELECT '%' ''') # Does not fail
> cursor.execute('''SELECT '%' ''', ()) # Does fail
>
> Traceback (most recent call last):
> File "/localhome/modw/tmp/t.py", line 5, in <module>
> cursor.execute('''SELECT '%' ''', ()) # Does fail
> IndexError: tuple index out of range
>
> Is this a bug in psycopg2?
>
> How do other PEP 249 implementation behave?
Not a bug. The second execute is the parametrized variant, which simply
tries to fetch the parameters from the passed collection. As you give an
empty collection, but specify one parameter, the error is quite obvious.
The first execute takes the SQL-string as literal.
Diez
More information about the Python-list
mailing list