-
Notifications
You must be signed in to change notification settings - Fork 30.3k
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
Enable all SQLite extensions that do not require code changes. #56476
Comments
Would you have any objection, @cjihrig? (I'm about to mention better-sqlite3 again 😅 ) better-sqlite has some of these |
After taking another look at this, I noticed that the RBU extension is not fit to be added. However, from the list you shared here, I now see even more viable extensions that I didn't know existed until now (like geopoly). |
No objection, but I think we should evaluate each one of these individually. We need to weigh features against any impact on performance and/or binary size. |
I'm very busy at this time and cannot contribute, but what are the steps required to do this properly? Do tests have to be written?
How would this impact be effectively measured? I'm interested in the perspectives being considered when deciding on each extension. |
If new functionality is enabled, there should be at least one test to prevent regressions.
For #56541 I wrote a script and compared the execution time with and without the change. To evaluate the binary size, you can look at the file size of the node binary. |
What is the problem this feature will solve?
SQLite has a few compile-time extensions that are not enabled by default in Node.js, meaning developers cannot use them out of the box.
Inspired by #56447, I suggest enabling all SQLite extensions that do not require additional code written by default (just as the math functions from #56447). We should target the entire SQLite amalgamation and all the other default extensions (again, such as the math functions from #56447).
Potential candidates include:
-DSQLITE_ENABLE_FTS5
.-DSQLITE_ENABLE_FTS3
and-DSQLITE_ENABLE_FTS3_PARENTHESIS
.-DSQLITE_ENABLE_RTREE
.-DSQLITE_ENABLE_DBSTAT_VTAB
.-DSQLITE_ENABLE_RBU
.Unless there are explicit reasons why these should not be included, I see no reason to withhold them from developers.
What is the feature you are proposing to solve the problem?
Add the extensions' compile-time extension flags to Node.
What alternatives have you considered?
Compiling and linking your build of SQLite with the extensions enabled is a major hassle for developers and users alike.
The text was updated successfully, but these errors were encountered: