Fixed #33460 -- Used VALUES clause for insert in bulk on SQLite. #15354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Edit: ticket is 33460
Instead of using the old work-around of
UNION ALL SELECT ...
SQLite 3.7.11 introduced the ability to use multiple values directly; SQLite 3.9 is Django's currently documented minimum supported version.
This looks to have a potentially positive effect on
django.db.backends.sqlite3.features.DatabaseFeatures.max_query_params
; prior to this change, increasing that value (e.g due to using3.32+
to get at higherSQLITE_MAX_VARIABLE_NUMBER
) would cause testlookup.tests.LookupTests.test_in_bulk_lots_of_ids
to fail withdjango.db.utils.OperationalError: too many terms in compound SELECT
but doesn't have that problem afterwards.(SQLite 3.8.8 made multiple values not subject to the
SQLITE_LIMIT_COMPOUND_SELECT
)Queries executed changes from:
to:
Let's see what CI says, for a start!