release-22.2.0: stats: fix missing autostats on cluster startup #89316
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.
Backport 1/1 commits from #88673.
/cc @cockroachdb/release
Fixes #87247
Previously, automatic statistics may fail to be collected on tables
with no stats at cluster startup when the
sql.stats.automatic_collection.enabled
cluster setting is falsebut table storage parameter
sql_stats_automatic_collection_enabled
is true.
Method
ensureAllTables
does not put entries into the settingOverridesmap, and since storage parameter info is not normally looked up in the
table header in auto stats processing, we fall back on the cluster
setting to determine if auto stats should be collected.
To address this, this patch modifies auto stats to flag whether the
current batch of tables saved in the mutationCounts map comes from
cluster startup processing, and if so, ensures that storage
parameters controlling auto stats are always looked up in the table
header during that processing.
Release note (bug fix): This patch fixes missing automatic statistics
collection at cluster startup when the
sql.stats.automatic_collection.enabled
cluster setting is false,but there are tables with storage parameter
sql_stats_automatic_collection_enabled
set to true.Release justification: Low risk fix for missing autostats functionality