-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
Repl 2021-01-25, Repl 2021-02-08
-
None
-
None
-
None
-
None
-
None
-
None
-
None
We should be checking whether each field in the old command's reply type exists in the new command's reply type and hasn't become unstable in the new command. If the field is optional in the old command's reply type, it should be optional in the new command's reply type as well. This corresponds to the following pseudocode:
old_reply := old_cmd.reply_type
new_reply := new_cmd.reply_type
for each field old_field in old_reply:
if old_field.unstable:
continue
new_field := get field from new_reply with old_field's name
assert new_field exists and !new_field.unstable
if new_field.optional:
assert old_field.optional