[DB-SIG] MySQL Python module bugs or what?
Chris Cogdon
chris@cogdon.org
Tue, 8 Oct 2002 09:13:32 -0700
On Tuesday, Oct 8, 2002, at 08:48 US/Pacific, Jekabs Andrushaitis wrote:
>> You have to use %s, even if you're dealing with integers. The
>> 'quoting'
>> code inside the DBI module turns all the parameters into
>> strings before
>> passing it to a python % operator.
>
> Is it how that is SUPPOSED to be, or just a case about MySQLdb?
> psycopg module in pyformat binding mode happily accepts most format
> strings like regular % operator does.
>
> I havent looked into DBAPI about this, but it seems to me that
> binding methods should be consistent between different modules.
You can probably use %s for any DBI module. The documentation
predicates using %s
It's possible that psycopg just happens to pass through integers as
integers, which both %d and %s will handle, but other DBIs always pass
through as strings.
So, yes, I believe it will work if you use %s ALL the time.
> We already have 4 different types of binding (if not more), but
> speaking
> of pyformat - isnt it supposed to accept anything Python % would
> accept?
No. 'pyformat' means specifically using pythons %(variable)s dictionary
binding, rather than the more C-like %s array binding. It was not
intended to reference the variable types.
--
("`-/")_.-'"``-._ Chris Cogdon <chris@cogdon.org>
. . `; -._ )-;-,_`)
(v_,)' _ )`-.\ ``-'
_.- _..-_/ / ((.'
((,.-' ((,/ fL