Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-42972: Track sqlite3 statement objects #26475

Merged
merged 5 commits into from Jun 1, 2021

Conversation

erlend-aasland
Copy link
Contributor

@erlend-aasland erlend-aasland commented May 31, 2021

@erlend-aasland
Copy link
Contributor Author

erlend-aasland commented May 31, 2021

cc. @vstinner

Modules/_sqlite/cursor.c Outdated Show resolved Hide resolved
@bedevere-bot
Copy link

bedevere-bot commented May 31, 2021

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 I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

Erlend E. Aasland added 2 commits Jun 1, 2021
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().
Copy link
Member

@vstinner vstinner left a comment

LGTM, but I would like to see the minor issues being addressed first before merging your change.

Modules/_sqlite/statement.c Outdated Show resolved Hide resolved
Modules/_sqlite/statement.c Outdated Show resolved Hide resolved
Erlend Egeberg Aasland and others added 2 commits Jun 1, 2021
Co-authored-by: Victor Stinner <vstinner@python.org>
Copy link
Member

@vstinner vstinner left a comment

LGTM.

Modules/_sqlite/statement.c Show resolved Hide resolved
@vstinner vstinner merged commit fffa0f9 into python:main Jun 1, 2021
11 checks passed
@vstinner
Copy link
Member

vstinner commented Jun 1, 2021

Merged, thanks.

@erlend-aasland erlend-aasland deleted the sqlite-track-stmt branch Jun 1, 2021
@erlend-aasland
Copy link
Contributor Author

erlend-aasland commented Jun 1, 2021

Merged, thanks.

Thanks for reviewing, Victor & Pablo!

@miss-islington
Copy link
Contributor

miss-islington commented Jun 2, 2021

Thanks @erlend-aasland for the PR, and @vstinner for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10.
🐍🍒🤖

@miss-islington
Copy link
Contributor

miss-islington commented Jun 2, 2021

Sorry, @erlend-aasland and @vstinner, I could not cleanly backport this to 3.10 due to a conflict.
Please backport using cherry_picker on command line.
cherry_picker fffa0f92adaaed0bcb3907d982506f78925e9052 3.10

@vstinner
Copy link
Member

vstinner commented Jun 2, 2021

@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.

@erlend-aasland
Copy link
Contributor Author

erlend-aasland commented Jun 3, 2021

@erlend-aasland: Automated backport to 3.10 failed, can you try to backport the change manually?

Will do!

erlend-aasland pushed a commit to erlend-aasland/cpython that referenced this pull request Jun 3, 2021
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>
@bedevere-bot
Copy link

bedevere-bot commented Jun 3, 2021

GH-26515 is a backport of this pull request to the 3.10 branch.

vstinner pushed a commit that referenced this pull request Jun 3, 2021
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants