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.

Author erlendaasland
Recipients berker.peksag, erlendaasland, serhiy.storchaka
Date 2021-05-08.19:43:24
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1620503004.28.0.3842383449.issue44079@roundup.psfhosted.org>
In-reply-to
Content
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
History
Date User Action Args
2021-05-08 19:43:24erlendaaslandsetrecipients: + erlendaasland, berker.peksag, serhiy.storchaka
2021-05-08 19:43:24erlendaaslandsetmessageid: <1620503004.28.0.3842383449.issue44079@roundup.psfhosted.org>
2021-05-08 19:43:24erlendaaslandlinkissue44079 messages
2021-05-08 19:43:24erlendaaslandcreate