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

sqlite: cache column names in stmt.all() #55373

Merged
merged 1 commit into from
Oct 15, 2024

Conversation

indutny
Copy link
Member

@indutny indutny commented Oct 13, 2024

While the statement is running, it is impossible to modify the column names and thus it is beneficial to create the host-language (JS) keys once per all rows and reuse them for all results.

With this change the performance of .all() improves by around 25% depending on the number of columns and rows in the result.

@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. sqlite Issues and PRs related to the SQLite subsystem. labels Oct 13, 2024
While the statement is running, it is impossible to modify the column
names and thus it is beneficial to create the host-language (JS) keys
once per all rows and reuse them for all results.

With this change the performance of `.all()` improves by around 25%
depending on the number of columns and rows in the result.
@indutny indutny force-pushed the feature/cache-sqlite-columns branch from 2294c13 to b6f3f6d Compare October 13, 2024 05:10
Copy link

codecov bot commented Oct 13, 2024

Codecov Report

Attention: Patch coverage is 93.33333% with 1 line in your changes missing coverage. Please review.

Project coverage is 88.41%. Comparing base (d881fcb) to head (b6f3f6d).
Report is 20 commits behind head on main.

Files with missing lines Patch % Lines
src/node_sqlite.cc 93.33% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #55373      +/-   ##
==========================================
+ Coverage   88.40%   88.41%   +0.01%     
==========================================
  Files         652      652              
  Lines      186777   186784       +7     
  Branches    36047    36051       +4     
==========================================
+ Hits       165111   165140      +29     
+ Misses      14919    14897      -22     
  Partials     6747     6747              
Files with missing lines Coverage Δ
src/node_sqlite.cc 83.72% <93.33%> (+1.87%) ⬆️

... and 23 files with indirect coverage changes

@lpinca lpinca added the request-ci Add this label to start a Jenkins CI on a PR. label Oct 15, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Oct 15, 2024
@nodejs-github-bot
Copy link
Collaborator

@anonrig anonrig added the commit-queue Add this label to land a pull request using GitHub Actions. label Oct 15, 2024
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Oct 15, 2024
@nodejs-github-bot nodejs-github-bot merged commit 6abd545 into nodejs:main Oct 15, 2024
59 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in 6abd545

@indutny indutny deleted the feature/cache-sqlite-columns branch October 15, 2024 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. sqlite Issues and PRs related to the SQLite subsystem.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants