New submission from Erlend E. Aasland <erlend.aasl...@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 <rep...@bugs.python.org> <https://bugs.python.org/issue44976> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com