Skip to content

bpo-45243: Expose SQLite connection limits as sqlite3.Connection attributes - #28790

Closed
erlend-aasland wants to merge 5 commits into
python:mainfrom
erlend-aasland:sqlite-limits-as-attributes
Closed

bpo-45243: Expose SQLite connection limits as sqlite3.Connection attributes#28790
erlend-aasland wants to merge 5 commits into
python:mainfrom
erlend-aasland:sqlite-limits-as-attributes

Conversation

@erlend-aasland

@erlend-aaslanderlend-aasland commented Oct 7, 2021

Copy link
Copy Markdown
Contributor

@erlend-aasland

Copy link
Copy Markdown
ContributorAuthor

Proposed alternative to #28463.

Comment threadModules/_sqlite/connection.c Outdated

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Casting the limit macros to void * and back again to int is perhaps a little bit too hackish. But it does allow for a single getter/setter.

@erlend-aasland
erlend-aaslandforce-pushed the sqlite-limits-as-attributes branch from a0c1251 to f4b9fcdCompareOctober 7, 2021 12:56
@erlend-aasland
erlend-aaslandforce-pushed the sqlite-limits-as-attributes branch from 5ec4adb to d04794dCompareOctober 7, 2021 13:29
@serhiy-storchaka

Copy link
Copy Markdown
Member
old=con.SQLITE_LIMIT_LENGTHcon.SQLITE_LIMIT_LENGTH=new

does not look nice to me. If go this way, I would prefer

old=con.limit.lengthcon.limit.length=new

But do we have precedences of such getters and setters in the stdlib?

There are also disadvantages in comparison with traditional getlimit()/setlimit().

  1. setlimit() sets a new limit and returns an old limit at one operation. Atomically (guarded by the GIL).
  2. getlimit()/setlimit() can be used for new limits not supported by the sqlite3 module yet. Just use some numeric constant.

@erlend-aasland

Copy link
Copy Markdown
ContributorAuthor

I'm not aware of similar attributes in the stdlib. I have no strong preference regarding this approach and GH-28463. I'm fine with closing this in favour of GH-28463.

@erlend-aasland
erlend-aasland deleted the sqlite-limits-as-attributes branch October 7, 2021 18:47
@erlend-aasland

Copy link
Copy Markdown
ContributorAuthor

This approach will be more tedious to maintain. I'm closing this in favour of GH-28463.

Sign up for freeto 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.

4 participants

@erlend-aasland@serhiy-storchaka@the-knights-who-say-ni@bedevere-bot