[New-bugs-announce] [issue44976] [sqlite3] lazy creation of result rows
Erlend E. Aasland
report at bugs.python.org
Sun Aug 22 05:06:30 EDT 2021
New submission from Erlend E. Aasland <erlend.aasland at innova.no>:
Currently, we build the first result row in the _pysqlite_query_execute() loop if sqlite3_step() returned SQLITE_ROW. When the user asks for a row (for example, using sqlite3.Cursor.fetchone()), this pre-built row is returned, and the next row is prepared.
Suggesting to lazily build result rows instead.
Cons:
- no result tuples are built unless sqlite3.Cursor.fetch*() is called
- no need to keep the next result row (tuple) in pysqlite_Cursor; rows are built on demand
- pysqlite_cursor_iternext() is vastly simplified (50% less lines of code)
- the main loop in _pysqlite_query_execute() is further simplified
Cons:
- code churn
git diff main --shortstat: 2 files changed, 29 insertions(+), 58 deletions(-)
----------
components: Extension Modules
messages: 400062
nosy: berker.peksag, erlendaasland, serhiy.storchaka
priority: normal
severity: normal
status: open
title: [sqlite3] lazy creation of result rows
type: enhancement
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44976>
_______________________________________
More information about the New-bugs-announce
mailing list