bpo-42972: Track sqlite3 statement objects#26475
Conversation
|
cc. @vstinner |
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase |
By allocating and tracking creation of statement object in pysqlite_statement_create(), the caller does not need to worry about GC syncronization, and eliminates the possibility of getting a badly created object. All related fault handling is moved to pysqlite_statement_create().
vstinner
left a comment
There was a problem hiding this comment.
LGTM, but I would like to see the minor issues being addressed first before merging your change.
ee00a0d to
6b1ea0c
Compare
Co-authored-by: Victor Stinner <vstinner@python.org>
6b1ea0c to
4f03b79
Compare
|
Merged, thanks. |
Thanks for reviewing, Victor & Pablo! |
|
Thanks @erlend-aasland for the PR, and @vstinner for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10. |
|
Sorry, @erlend-aasland and @vstinner, I could not cleanly backport this to |
|
@erlend-aasland: Automated backport to 3.10 failed, can you try to backport the change manually? @pablogsal: I'm not sure if this change is really a bugfix or an enhancement. I'm ok to backport it even after beta2 release. |
Will do! |
Allocate and track statement objects in pysqlite_statement_create. By allocating and tracking creation of statement object in pysqlite_statement_create(), the caller does not need to worry about GC syncronization, and eliminates the possibility of getting a badly created object. All related fault handling is moved to pysqlite_statement_create(). Co-authored-by: Victor Stinner <vstinner@python.org>. (cherry picked from commit fffa0f9) Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
|
GH-26515 is a backport of this pull request to the 3.10 branch. |
Allocate and track statement objects in pysqlite_statement_create. By allocating and tracking creation of statement object in pysqlite_statement_create(), the caller does not need to worry about GC syncronization, and eliminates the possibility of getting a badly created object. All related fault handling is moved to pysqlite_statement_create(). Co-authored-by: Victor Stinner <vstinner@python.org>. (cherry picked from commit fffa0f9) Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
https://bugs.python.org/issue42972