Skip to content

Commit d6b2910

Browse files
committed
Also test the migration in the legacy upgrade tests
1 parent fe5dd31 commit d6b2910

File tree

2 files changed

+53
-6
lines changed

2 files changed

+53
-6
lines changed

misc/python/materialize/mzcompose/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@
4949

5050

5151
def get_default_system_parameters(
52-
version: MzVersion | None = None, zero_downtime: bool = False
52+
version: MzVersion | None = None,
53+
zero_downtime: bool = False,
54+
force_source_table_syntax: bool = False,
5355
) -> dict[str, str]:
5456
"""For upgrade tests we only want parameters set when all environmentd /
5557
clusterd processes have reached a specific version (or higher)
@@ -113,6 +115,7 @@ def get_default_system_parameters(
113115
"enable_table_keys": "true",
114116
"enable_variadic_left_join_lowering": "true",
115117
"enable_worker_core_affinity": "true",
118+
"force_source_table_syntax": "true" if force_source_table_syntax else "false",
116119
"persist_batch_columnar_format": (
117120
"both_v2" if version >= MzVersion.parse_mz("v0.112.0-dev") else "row"
118121
),

test/legacy-upgrade/mzcompose.py

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,20 +108,56 @@ def workflow_default(c: Composition, parser: WorkflowArgumentParser) -> None:
108108
else:
109109
if parallelism_count == 1 or parallelism_index == 0:
110110
test_upgrade_from_version(
111-
c, f"{version}", priors, filter=args.filter, zero_downtime=True
111+
c,
112+
f"{version}",
113+
priors,
114+
filter=args.filter,
115+
zero_downtime=True,
116+
force_source_table_syntax=False,
112117
)
113118
if parallelism_count == 1 or parallelism_index == 1:
114119
test_upgrade_from_version(
115-
c, f"{version}", priors, filter=args.filter, zero_downtime=False
120+
c,
121+
f"{version}",
122+
priors,
123+
filter=args.filter,
124+
zero_downtime=False,
125+
force_source_table_syntax=False,
126+
)
127+
test_upgrade_from_version(
128+
c,
129+
f"{version}",
130+
priors,
131+
filter=args.filter,
132+
zero_downtime=False,
133+
force_source_table_syntax=True,
116134
)
117135

118136
if parallelism_count == 1 or parallelism_index == 0:
119137
test_upgrade_from_version(
120-
c, "current_source", priors=[], filter=args.filter, zero_downtime=True
138+
c,
139+
"current_source",
140+
priors=[],
141+
filter=args.filter,
142+
zero_downtime=True,
143+
force_source_table_syntax=False,
121144
)
122145
if parallelism_count == 1 or parallelism_index == 1:
123146
test_upgrade_from_version(
124-
c, "current_source", priors=[], filter=args.filter, zero_downtime=False
147+
c,
148+
"current_source",
149+
priors=[],
150+
filter=args.filter,
151+
zero_downtime=False,
152+
force_source_table_syntax=False,
153+
)
154+
test_upgrade_from_version(
155+
c,
156+
"current_source",
157+
priors=[],
158+
filter=args.filter,
159+
zero_downtime=False,
160+
force_source_table_syntax=True,
125161
)
126162

127163

@@ -144,13 +180,14 @@ def test_upgrade_from_version(
144180
priors: list[MzVersion],
145181
filter: str,
146182
zero_downtime: bool,
183+
force_source_table_syntax: bool,
147184
) -> None:
148185
print(
149186
f"+++ Testing {'0dt upgrade' if zero_downtime else 'regular upgrade'} from Materialize {from_version} to current_source."
150187
)
151188

152189
system_parameter_defaults = get_default_system_parameters(
153-
zero_downtime=zero_downtime
190+
zero_downtime=zero_downtime,
154191
)
155192
deploy_generation = 0
156193

@@ -289,6 +326,13 @@ def test_upgrade_from_version(
289326
c.rm(mz_service)
290327

291328
print(f"{'0dt-' if zero_downtime else ''}Upgrading to final version")
329+
system_parameter_defaults = get_default_system_parameters(
330+
zero_downtime=zero_downtime,
331+
# We can only force the syntax on the final version so that the migration to convert
332+
# sources to the new model can be applied without preventing sources from being
333+
# created in the old syntax on the older version.
334+
force_source_table_syntax=force_source_table_syntax,
335+
)
292336
mz_to = Materialized(
293337
name=mz_service,
294338
options=list(mz_options.values()),

0 commit comments

Comments
 (0)