[DB-SIG] API suggestion: expose 'quote' method

M.-A. Lemburg mal at lemburg.com
Thu Jun 5 13:16:10 EDT 2003


Chris Cogdon wrote:
> 
> On Wednesday, Jun 4, 2003, at 01:02 US/Pacific, M.-A. Lemburg wrote:
> 
>> Chris Cogdon wrote:
>>
>>> But... I DO understand the difficulty in exposing a function that 
>>> doesn't currently exist (such as the ODBC driver). And it may NOT be 
>>> worth the difficulty in adding that functionality as a requirement 
>>> for a later API. (Perhaps optional? At least if it's doable, we could 
>>> get a consistent interface).
>>
>>
>> That we could do, but note that quoting would be requiring type
>> information in database specific ways, plus it may sometimes also
>> need encoding or code page information for string values, e.g.
>> a database running with UTF-8 code page will want to see UTF-8
>> in string literals.
> 
> I believe the python driver ALREADY has access to this information, 
> since it needs it to determine how to correctly pass this information to 
> the DBMS, be it in a string or binary format. 

Not necessarily. In ODBC the database can tell the driver to send
the data using a certain data type, but that information is only
known for SQL statements that you actually plan to actually execute
(and not even in all cases).

I wonder whether you've seen a module I've been working on a few
years ago:

     http://www.egenix.com/files/python/dbinfo.py

This tries to take care of quoting among other things. Note that
the information about how quoting is done can easily be separated
out of the DB-API layer and sometimes that makes more sense than
trying to put more load on the DB API implementors.

We use a much more advanced version of dbinfo.py in our commercial
software -- works great :-) We use it mostly to generate schemas
for various database backends.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Software directly from the Source  (#1, Jun 05 2003)
 >>> Python/Zope Products & Consulting ...         http://www.egenix.com/
 >>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
EuroPython 2003, Charleroi, Belgium:                        19 days left




More information about the DB-SIG mailing list