-
Notifications
You must be signed in to change notification settings - Fork 468
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
adapter: save system_parameter_defaults
to disk
#25924
Conversation
4fbe944
to
28dbfe7
Compare
Change the `testdrive` and `legacy-upgrad` mzcompose scripts to run ```sql ALTER SYSTEM SET {key} = '{value}' ``` for each (key, value) pair from the `system_parameter_defaults` associated with a `Materialized` service. This is needed in order to force these values durably to disk and avoid the failures seen in BuildKite runs like https://buildkite.com/materialize/tests/builds/77990.
…lue" This reverts commit f70b2946a8108bed6830ce032e6147a32c732752.
28dbfe7
to
a5d1131
Compare
I think we should create a new argument for |
else: | ||
c.up("materialized") | ||
|
||
for key, value in DEFAULT_SYSTEM_PARAMETERS.items(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CI and also my local testdrive run
bin/mzcompose --find testdrive run default array.td
still fail the consistency check, even though I'm now seeing an
ALTER SYSTEM SET enable_connection_validation_syntax = true
corresponding to this call when I run the test locally. However with this line added directly to array.td
the test passes.
$ postgres-execute connection=postgres://mz_system:materialize@${testdrive.materialize-internal-sql-addr}
ALTER SYSTEM SET enable_connection_validation_syntax = true;
Closing in favor of #25950. |
Save
system_parameter_defaults
to disk and revert back the hard-coded default forenable_equivalence_propagation
tofalse
.Motivation
This addresses an issue observed while trying to merge #24155.
More specifically, since
system_parameter_defaults
are not persisted to disk, Testdrive tests that run consistency checks re-hydrate the in-memory catalog without respecting the feature flags defined inDEFAULT_SYSTEM_PARAMETERS
and consequently fail with the following error:For example, see this Buildkite run.
We will always hit these issues when introducing a feature flag that affects the optimizer pipeline across the board, so it's better to come up with a more general solution than "add
ALTER SYSTEM SET <optimizer feature> = true
to all affected*.td
files".Tips for reviewer
If this causes issues outside of our Testdrive tests (in other CI tests or in production, I suggest to parameterize the behavior of the
system_parameter_defaults
loop inload_system_configuration
by another boolean parameterpersist_system_parameter_defaults: bool
.Checklist
$T ⇔ Proto$T
mapping (possibly in a backwards-incompatible way), then it is tagged with aT-proto
label.