Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/catalog-protos/objects_hashes.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"name": "objects.rs",
"md5": "dfd89e1c62b7f1663d6429846a76159f"
"md5": "01adcd318b9bd73c0d05165b311e6073"
},
{
"name": "objects_v74.rs",
Expand Down Expand Up @@ -38,5 +38,9 @@
{
"name": "objects_v82.rs",
"md5": "dfd89e1c62b7f1663d6429846a76159f"
},
{
"name": "objects_v83.rs",
"md5": "01adcd318b9bd73c0d05165b311e6073"
}
]
3 changes: 2 additions & 1 deletion src/catalog-protos/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@ pub mod objects_v79;
pub mod objects_v80;
pub mod objects_v81;
pub mod objects_v82;
pub mod objects_v83;
pub mod serialization;

/// The current version of the `Catalog`.
///
/// We will initialize new `Catalog`s with this version, and migrate existing `Catalog`s to this
/// version. Whenever the `Catalog` changes, e.g. the types we serialize in the `Catalog`
/// change, we need to bump this version.
pub const CATALOG_VERSION: u64 = 82;
pub const CATALOG_VERSION: u64 = 83;

/// The minimum `Catalog` version number that we support migrating from.
///
Expand Down
8 changes: 8 additions & 0 deletions src/catalog-protos/src/objects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1308,6 +1308,14 @@ pub struct RoleAttributes {
pub inherit: bool,
pub superuser: Option<bool>,
pub login: Option<bool>,
// `default` + `skip_serializing_if` makes the JSON round-trip
// `{...}` → None → `{...}` byte-stable for roles that were left in
// pre-v81 wire shape by the v80→v81 migration's `is_cloud` heuristic
// no-op path. Without these annotations, an absent field deserializes
// to None and re-serializes to `"auto_provision_source": null`, which
// is byte-distinct from the on-disk record and breaks consolidation of
// retractions emitted by subsequent in-band writes. See v82_to_v83.rs.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_provision_source: Option<AutoProvisionSource>,
}

Expand Down
Loading
Loading