Mercurial > p > mysql-python > mysqldb-2
comparison MySQLdb/converters.py @ 66:5a7c30cd9de2 MySQLdb
By exposing connection on result, decoders can be simplified: Only the field object is needed. Turned on leak testing and found a leak writing BLOBs. removed one of the old stubs in Cursor.
author | adustman |
---|---|
date | Sun, 29 Mar 2009 16:26:30 +0000 |
parents | 2d6a35051f64 |
children | 98d968f5af11 |
comparison
equal
deleted
inserted
replaced
65:7a60c4574baf | 66:5a7c30cd9de2 |
---|---|
161 if o is None: return o | 161 if o is None: return o |
162 return f(o) | 162 return f(o) |
163 _filter_NULL.__name__ = f.__name__ | 163 _filter_NULL.__name__ = f.__name__ |
164 return _filter_NULL | 164 return _filter_NULL |
165 | 165 |
166 def default_decoder(cursor, field): | 166 def default_decoder(field): |
167 return str | 167 return str |
168 | 168 |
169 def simple_decoder(cursor, field): | 169 def simple_decoder(field): |
170 return simple_field_decoders.get(field.type, None) | 170 return simple_field_decoders.get(field.type, None) |
171 | 171 |
172 character_types = [ | 172 character_types = [ |
173 FIELD_TYPE.BLOB, | 173 FIELD_TYPE.BLOB, |
174 FIELD_TYPE.STRING, | 174 FIELD_TYPE.STRING, |
175 FIELD_TYPE.VAR_STRING, | 175 FIELD_TYPE.VAR_STRING, |
176 FIELD_TYPE.VARCHAR, | 176 FIELD_TYPE.VARCHAR, |
177 ] | 177 ] |
178 | 178 |
179 def character_decoder(cursor, field): | 179 def character_decoder(field): |
180 if field.type not in character_types: | 180 if field.type not in character_types: |
181 return None | 181 return None |
182 if field.charsetnr == 63: # BINARY | 182 if field.charsetnr == 63: # BINARY |
183 return str | 183 return str |
184 | 184 |
185 charset = cursor.connection.character_set_name() | 185 charset = field.result.connection.character_set_name() |
186 def char_to_unicode(s): | 186 def char_to_unicode(s): |
187 return s.decode(charset) | 187 return s.decode(charset) |
188 | 188 |
189 return char_to_unicode | 189 return char_to_unicode |
190 | 190 |