This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年08月03日 08:07 by plemarre, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| iterdump.diff | peter.otten, 2012年08月06日 20:44 | review | ||
| Messages (8) | |||
|---|---|---|---|
| msg167296 - (view) | Author: Martin v. Löwis (loewis) * (Python committer) | Date: 2012年08月03日 08:09 | |
Can you please elaborate? Structure your report as follows: 1. this is what I did 2. this is what happened 3. this is what should have happened instead. |
|||
| msg167297 - (view) | Author: Pierre Le Marre (plemarre) | Date: 2012年08月03日 08:27 | |
I use Python 3.2.3 on GNU/Linux 64bits (openSUSE 12.2).
I have created an in-memory connection with the following code:
conn = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES, check_same_thread=False)
conn.row_factory = sqlite3.Row
Then I have filled the database, but when it comes to copy it via conn.iterdump(), it crashed with the following message:
File "/usr/lib64/python3.2/sqlite3/dump.py", line 30, in _iterdump
for table_name, type, sql in sorted(schema_res.fetchall()):
TypeError: unorderable types: sqlite3.Row() < sqlite3.Row()
It seems that the error appears because of the use of "sorted()". In fact, if I don't change conn.row_factory or if I use a custom class _Row implementing __lt__ method (see below) this error does not appear.
class _Row(sqlite3.Row):
def __lt__(self, x):
return False
|
|||
| msg167543 - (view) | Author: Pierre Le Marre (plemarre) | Date: 2012年08月06日 07:59 | |
By the way, this issue does not appear with Python 3.2.2. |
|||
| msg167579 - (view) | Author: Peter Otten (peter.otten) * | Date: 2012年08月06日 20:44 | |
Here's a minimal fix that modifies the sql in sqlite3.dump._iterdump() to sort the tables by name. It is then no longer necessary to sort the resultset in Python for the unit tests to pass. |
|||
| msg170875 - (view) | Author: Pierre Le Marre (plemarre) | Date: 2012年09月21日 09:52 | |
Thanks for the patch. In which version will be your patch integrated? |
|||
| msg179559 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2013年01月10日 15:33 | |
For the record, this is a regression introduced by the fix for issue 9750. I plan to commit the fix shortly, thanks for the report and patch. |
|||
| msg179566 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2013年01月10日 16:31 | |
New changeset 2cdb599172ab by R David Murray in branch '3.2': #15545: fix sqlite3.iterdump regression on unsortable row_factory objects. http://hg.python.org/cpython/rev/2cdb599172ab New changeset 6a85894c428f by R David Murray in branch '3.3': merge #15545: fix sqlite3.iterdump regression on unsortable row_factory objects. http://hg.python.org/cpython/rev/6a85894c428f New changeset 7a62b5ee32ec by R David Murray in branch 'default': merge #15545: fix sqlite3.iterdump regression on unsortable row_factory objects. http://hg.python.org/cpython/rev/7a62b5ee32ec New changeset bb4e4f0cec2e by R David Murray in branch '2.7': #15545: sort iterdump via SQL instead of in python code http://hg.python.org/cpython/rev/bb4e4f0cec2e |
|||
| msg179568 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2013年01月10日 16:35 | |
Peter, I see you've made contributions before, but you don't show as having a contributor agreement on file according to the tracker. Have you sent one in? If not, would you, please? Thanks again for the fix. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:33 | admin | set | github: 59750 |
| 2013年01月10日 16:35:59 | r.david.murray | set | status: open -> closed messages: + msg179568 components: + Library (Lib), - None resolution: fixed stage: commit review -> resolved |
| 2013年01月10日 16:31:33 | python-dev | set | nosy:
+ python-dev messages: + msg179566 |
| 2013年01月10日 15:33:51 | r.david.murray | set | versions:
+ Python 2.7, Python 3.3, Python 3.4 nosy: + r.david.murray messages: + msg179559 type: crash -> behavior stage: commit review |
| 2012年09月21日 09:52:46 | plemarre | set | messages: + msg170875 |
| 2012年08月06日 20:44:04 | peter.otten | set | files:
+ iterdump.diff nosy: + peter.otten messages: + msg167579 keywords: + patch |
| 2012年08月06日 07:59:43 | plemarre | set | messages: + msg167543 |
| 2012年08月03日 08:27:02 | plemarre | set | messages: + msg167297 |
| 2012年08月03日 08:09:32 | loewis | set | nosy:
+ loewis messages: + msg167296 |
| 2012年08月03日 08:07:56 | plemarre | create | |