Il giorno ven, 28-01-2005 alle 15:11 -0600, Ian Bicking ha scritto:
It doesn't use bound parameters like ?, instead it does all the SQL generation itself including quotation. So it has to know what database you are using to actually create the SQL, like "mysql", "postgresql", etc.
This is.. er.. "horrible". PostgreSQL supports a *lot* of different types and the only way to support them all is to let the driver do the quoting (possibly with the user adding its own quoting rules, see PEP-246 adapt() in psycopg 2). I suppose your driver is not quoting PostGis or or even simple geometrical types mapped to Python instances, right?
No, but it could, as it has hooks for new types of data. I'm not saying its the best technique, but then psycopg's technique isn't all that great either (falling back on __repr__ is particular bad, IMHO).
At some level sqlbuilder does its own SQL generation, that's the whole point of it. The way it does it is fairly simple, there's a registry of converters, and also a __sqlrepr__ method that things like AND and expressions define which generates compound statements. It would be good to use parameters, but it is a lot harder to keep track of those, which is why it hasn't happened yet.
-- Ian Bicking / [EMAIL PROTECTED] / http://blog.ianbicking.org _______________________________________________ DB-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/db-sig
