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

Update embedded SQLite to 3.43.0 #1631

Merged
merged 2 commits into from
Sep 10, 2023
Merged

Update embedded SQLite to 3.43.0 #1631

merged 2 commits into from
Sep 10, 2023

Conversation

DL6ER
Copy link
Member

@DL6ER DL6ER commented Sep 6, 2023

What does this implement/fix?

SQlite3.43.0 has been released about two weeks ago.

CHANGELOG:

  1. Add support for Contentless-Delete FTS5 Indexes. This is a variety of FTS5 full-text search index that omits storing the content that is being indexed while also allowing records to be deleted.
  2. Enhancements to the date and time functions:
    1. Added new time shift modifiers of the form ±YYYY-MM-DD HH:MM:SS.SSS.
    2. Added the timediff() SQL function.
  3. Added the octet_length(X) SQL function.
  4. Added the sqlite3_stmt_explain() API.
  5. Query planner enhancements:
    1. Generalize the LEFT JOIN strength reduction optimization so that it works for RIGHT and FULL JOINs as well. Rename it to OUTER JOIN strength reduction.
    2. Enhance the theorem prover in the OUTER JOIN strength reduction optimization so that it returns fewer false-negatives.
  6. Enhancements to the decimal extension:
    1. New function decimal_pow2(N) returns the N-th power of 2 for integer N between -20000 and +20000.
    2. New function decimal_exp(X) works like decimal(X) except that it returns the result in exponential notation - with a "e+NN" at the end.
    3. If X is a floating-point value, then the decimal(X) function now does a full expansion of that value into its exact decimal equivalent.
  7. Performance enhancements to JSON processing results in a 2x performance improvement for some kinds of processing on large JSON strings.
  8. New makefile target "verify-source" checks to ensure that there are no unintentional changes in the source tree. (Works for canonical source code only - not for precompiled amalgamation tarballs.)
  9. Added the SQLITE_USE_SEH compile-time option that enables Structured Exception Handling on Windows while working with the memory-mapped shm file that is part of WAL mode processing. This option is enabled by default when building on Windows using Makefile.msc.
  10. The VFS for unix now assumes that the nanosleep() system call is available unless compiled with -DHAVE_NANOSLEEP=0.

There are no immediate benefits to Pi-hole from the list of these features, however, no. 7 might become relevant in the future in case we decide working with JSON directly in the database may be a good idea. This could be done to avoid having to add more and more columns are more details are to be stored. However, this has to be decided on a one-by-one analysis as adding columns has a number of other database benefits (being able to be indexed, sorted by, etc. without full test scans and interpretations).

Related issue or feature (if applicable): N/A

Pull request in docs with documentation (if applicable): N/A


By submitting this pull request, I confirm the following:

  1. I have read and understood the contributors guide, as well as this entire template. I understand which branch to base my commits and Pull Requests against.
  2. I have commented my proposed changes within the code.
  3. I am willing to help maintain this change if there are issues with it later.
  4. It is compatible with the EUPL 1.2 license
  5. I have squashed any insignificant commits. (git rebase)

Checklist:

  • The code change is tested and works locally.
  • I based my code and PRs against the repositories developmental branch.
  • I signed off all commits. Pi-hole enforces the DCO for all contributions
  • I signed all my commits. Pi-hole requires signatures to verify authorship
  • I have read the above and my PR is ready for review.

@DL6ER DL6ER added the SQLite3 label Sep 6, 2023
@DL6ER DL6ER requested a review from a team September 6, 2023 22:55
@DL6ER DL6ER merged commit 880ea49 into development-v6 Sep 10, 2023
17 checks passed
@DL6ER DL6ER deleted the update/sqlite_3.43.0 branch September 10, 2023 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants