[Twisted-Python] mapped resultsets for adbapi:

Dave Peticolas dave at krondo.com
Fri Jun 4 12:04:13 EDT 2004

Would you mind posting this patch to the tracker?



---- Original Message ----
From:		Stephen Waterbury
Date:		Thu 6/3/04 23:43
To:		twisted
Subject:	[Twisted-Python] mapped resultsets for adbapi:  "runQueryMapped"


I don't know whether this is of interest to anyone else, but
I needed it for my stuff and I was hoping it might be suitable for
inclusion in adbapi:  it defines a new adbapi.ConnectionPool method
called 'runQueryMapped' (and corresponding '_runQueryMapped') whose
return value is a list of dicts that map column names to values
(rather than the list of lists of values that runQuery returns).

Attached are patches for adbapi.py and test_enterprise.py.


* shouldn't break any existing code, as it is a completely separate
  method from runQuery and _runQuery.

* portable, should work with any DBAPI-conforming adaptor, since it
  builds the dictionaries from the cursor.description, which is part
  of the DBAPI spec.  The reason I needed to do this inside of adbapi
  is that adbapi doesn't expose cursor.description ... which is fine,
  as it seems cleaner to keep it inside adbapi anyway.

* unit test included (I've only run the test against SQLite, pyPgSQL,
  and psycopg, as I don't have the others installed on my machine).


* only one I can think of is that it's unnecessary if you are using
  either reflector, which I'm not, or pyPgSQL's 'PgResultSet' attributes
  based on the cursor's column names, which I was but am not any more,
  since that is not portable and not part of the DBAPI spec.  While
  modifying my code to work with other backends (esp. psycopg and
  sqlite), I came up with this.

If it's decided not to include it, that's okay, I'll just keep patching
my Twisted source.  It's also fine if you want to name it something
else.  :)

Twisted-Python mailing list
Twisted-Python at twistedmatrix.com

More information about the Twisted-Python mailing list