[DB-SIG] checking column types from cursor object in a database-independent way?
Dan Lenski
dlenski at gmail.com
Mon Apr 22 18:44:13 CEST 2013
Michael Bayer <mike_mp <at> zzzcomputing.com> writes:
> On Apr 21, 2013, at 9:39 PM, Daniel Lenski <dlenski <at> gmail.com> wrote:
>
> >
> > I *could* pass around a handle to the DB module along with the cursor
> > itself, as you've suggested, but that seems redundant and error-prone
> > to me. To my mind, this is a small gap in the DBAPI design:
> > (1) DBAPI does specify a set of module-dependent type objects
> > against which column type objects are to be compared
> > (2) DBAPI does specify a cursor object which will produce column
> > type objects after a query is executed
> > (3) DBAPI *doesn't* provide any way to get from the cursor object to
> > the module-defined type objects, at least not without passing around
> > module-dependent object.
>
> IMHO, the DBAPI is not meant to be used as a direct API within higher
level application code; it only aims to
> provide a consistent low-level API to a wide variety of databases. It
should always be framed within some
> kind of abstraction layer within real-world application. Therefore it
should not concern/complicate
> itself worrying about convenience accessors, this only makes it more
difficult for DBAPI implementors,
> leads to greater inconsistency between implementations, and makes it
harder to test for compliance.
>
I get your point about not crufting up DBAPI with a bunch of high-level
features that will need to be reimplemented for each module...
But this seems to me precisely the kind of feature that *should* exist at
this level, because it makes it easier for higher-level interfaces to
manipulate the underlying database objects in a generic way without carrying
around extra module-dependent state on their own.
More information about the DB-SIG
mailing list