self.__props = {}
self.__keys = []
metadata = self.cursor.description
+
if metadata is not None:
for i, item in enumerate(metadata):
# sqlite possibly prepending table name to colnames so strip
colname = item[0].split('.')[-1]
if self.context.typemap is not None:
- rec = (self.context.typemap.get(colname.lower(), types.NULLTYPE), i)
+ type = self.context.typemap.get(colname.lower(), types.NULLTYPE)
else:
- rec = (types.NULLTYPE, i)
+ type = types.NULLTYPE
+ rec = (type, type.dialect_impl(self.dialect), i)
+
if rec[0] is None:
raise DBAPIError("None for metadata " + colname)
if self.__props.setdefault(colname.lower(), rec) is not rec:
def _get_col(self, row, key):
rec = self._convert_key(key)
- return rec[0].dialect_impl(self.dialect).convert_result_value(row[rec[1]], self.dialect)
+ return rec[1].convert_result_value(row[rec[2]], self.dialect)
def _fetchone_impl(self):
return self.cursor.fetchone()
"""
def _get_col(self, row, key):
rec = self._convert_key(key)
- return row[rec[1]]
+ return row[rec[2]]
def _process_row(self, row):
sup = super(BufferedColumnResultProxy, self)
# including modifying any of its related items lists, as its already
# been exposed to being modified by the application.
- populate_existing = context.populate_existing or self.always_refresh
identitykey = self.identity_key_from_row(row)
+ populate_existing = context.populate_existing or self.always_refresh
if context.session.has_key(identitykey):
instance = context.session._get(identitykey)
if self.__should_log_debug: