required columns

This commit is contained in:
Priec
2026-09-02 18:41:45 +02:00
parent e45424d7da
commit ac29d9577b
5 changed files with 139 additions and 2 deletions

View File

@@ -70,6 +70,10 @@ service TableDefinition {
// indexes are created or dropped even when rows have already been stored.
rpc SetTableIndexes(SetTableIndexesRequest) returns (SetTableIndexesResponse);
// Changes whether one existing column is required. Enabling the requirement
// is rejected while an active row has no value for the column.
rpc SetColumnRequired(SetColumnRequiredRequest) returns (SetColumnRequiredResponse);
// Replaces the optional user-visible aliases for a fixed-option column.
// Stored values remain stable machine values and scripts never depend on labels.
rpc SetColumnOptionAliases(SetColumnOptionAliasesRequest) returns (SetColumnOptionAliasesResponse);
@@ -632,6 +636,24 @@ message SetTableIndexesResponse {
int64 row_version = 3;
}
message SetColumnRequiredRequest {
string profile_name = 1;
string table_name = 2;
// Stable column identity returned in GetProfileDetails.column_behaviors.
int64 column_id = 3;
bool required = 4;
// Row version returned by GetProfileDetails when the column was read.
int64 expected_row_version = 5;
}
message SetColumnRequiredResponse {
bool success = 1;
int64 column_id = 2;
bool required = 3;
// New row version after the update, or the current version for a no-op.
int64 row_version = 4;
}
// One public option name. `value` identifies the option by its current public
// alias and `alias` is its desired public alias; stored values remain internal.
message OptionValueAlias {