New submission from Erlend E. Aasland <erlend.aasl...@innova.no>:
Today, the sqlite3 extension module keeps two[1] lists of statements: 1. The statement cache[2], stored in pysqlite_Connection.statement_cache 2. A weak ref. list (hard coded limited to 200 statements in _pysqlite_drop_unused_statement_references()), stored in pysqlite_Connection.statements AFAICS, there's no benefit in keeping both. Suggesting to remove the latter. Pro's: - less lines of code to maintain - clearer code - one less data member in pysqlite_Connection - improved test coverage (there are currently no coverage for _pysqlite_drop_unused_statement_references()[3]) Con's: - the current code works / "code churn" $ git diff --shortstat 1 file changed, 13 insertions(+), 60 deletions(-) [1] Actually, there's three lists: SQLite also keeps a list, available using sqlite3_stmt_next() [2] See bpo-42862 for suggested improvements to the current cache implementation [3] See bpo-43553 for improving the code coverage of the sqlite3 extension module ---------- assignee: erlendaasland components: Extension Modules messages: 393282 nosy: berker.peksag, erlendaasland, serhiy.storchaka priority: normal severity: normal status: open title: [sqlite3] optimisation: remove statement weak ref list from connection object type: resource usage versions: Python 3.11 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue44079> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com