uniqueness only on nondeleted data4 import metadata

This commit is contained in:
Filipriec
2026-08-29 00:18:47 +02:00
parent 070defe72b
commit 96f8d7bf39
4 changed files with 258 additions and 1 deletions

View File

@@ -23,6 +23,12 @@ service TableStructureService {
// - Returns an error if any validated table has no visible columns in
// information_schema (e.g., physical table missing)
rpc GetTableStructure(GetTableStructureRequest) returns (GetTableStructureResponse);
// Describes the public values accepted by staged table-data import. Unlike
// GetTableStructure, this is an input contract: it includes logical types,
// omission/null behavior, stable identities and link targets.
rpc GetTableImportDescriptor(GetTableImportDescriptorRequest)
returns (GetTableImportDescriptorResponse);
}
// Request identifying the profile (schema) and tables to inspect.
@@ -91,3 +97,52 @@ message TableColumn {
// Stable public identity of a managed user column. Zero for system columns.
int64 column_id = 10;
}
message GetTableImportDescriptorRequest {
string profile_name = 1;
string table_name = 2;
}
enum ImportValueKind {
IMPORT_VALUE_KIND_UNSPECIFIED = 0;
IMPORT_VALUE_KIND_NULL = 1;
IMPORT_VALUE_KIND_STRING = 2;
IMPORT_VALUE_KIND_BOOLEAN = 3;
IMPORT_VALUE_KIND_NUMBER = 4;
IMPORT_VALUE_KIND_INTEGER_STRING = 5;
IMPORT_VALUE_KIND_LINK_DISPLAY = 6;
}
message ImportLinkDescriptor {
int64 target_table_id = 1;
string target_profile_name = 2;
string target_table_name = 3;
repeated string target_row_display_columns = 4;
}
message ImportFieldDescriptor {
// Stable identity of a managed user column. System columns have zero here
// and are identified by their server-owned name.
int64 column_id = 1;
string name = 2;
string logical_type = 3;
string storage_type = 4;
bool writable = 5;
bool required = 6;
bool may_omit = 7;
bool accepts_null = 8;
bool system = 9;
bool generated = 10;
string generated_from = 11;
optional ImportLinkDescriptor link = 12;
repeated ImportValueKind accepted_value_kinds = 13;
}
message GetTableImportDescriptorResponse {
string requested_profile_name = 1;
string storage_profile_name = 2;
string table_name = 3;
int64 table_id = 4;
int64 table_revision = 5;
repeated ImportFieldDescriptor fields = 6;
}