FK columns can be directly referenced from now on

This commit is contained in:
Priec
2026-08-12 19:50:43 +02:00
parent cdaa1b2b7d
commit f8a333e540
5 changed files with 16 additions and 4 deletions

2
client

Submodule client updated: e17321c951...1d7d88e4c6

View File

@@ -62,7 +62,9 @@ message PostTableDefinitionRequest {
// two are named side by side. The "_id" suffix is allowed.
string table_name = 1;
// The table's columns, including its links. System columns are added on top.
// The table's columns, including its links and stored linked projections.
// A projection uses field_type FROM(link_column.source_column); its physical
// type and money metadata are inferred from the linked source column.
repeated ColumnDefinition columns = 3;
// Column names to index, matching names declared above. System columns
@@ -139,6 +141,7 @@ message AddTableColumnsRequest {
string table_name = 2;
// New user-defined columns only. Existing columns cannot be changed here.
// Stored linked projections use field_type FROM(link_column.source_column).
repeated ColumnDefinition columns = 3;
// Optional indexes for the new columns only.
@@ -188,6 +191,9 @@ message ColumnDefinition {
// LINK(table) → BIGINT referencing that table in the same profile, indexed
// automatically. A table may hold several links to the same
// target as long as the columns are named differently.
// FROM(link.source) → stored, read-only copy of an atomic column reached
// through another column in this definition whose type is
// LINK(...). SQL type and money metadata are inferred.
// DECIMAL args must be integers (no sign, no dot, no leading zeros);
// s ≤ p and p ≥ 1.
string field_type = 2;

Binary file not shown.

View File

@@ -11,7 +11,9 @@ pub struct PostTableDefinitionRequest {
/// two are named side by side. The "\_id" suffix is allowed.
#[prost(string, tag = "1")]
pub table_name: ::prost::alloc::string::String,
/// The table's columns, including its links. System columns are added on top.
/// The table's columns, including its links and stored linked projections.
/// A projection uses field_type FROM(link_column.source_column); its physical
/// type and money metadata are inferred from the linked source column.
#[prost(message, repeated, tag = "3")]
pub columns: ::prost::alloc::vec::Vec<ColumnDefinition>,
/// Column names to index, matching names declared above. System columns
@@ -102,6 +104,7 @@ pub struct AddTableColumnsRequest {
#[prost(string, tag = "2")]
pub table_name: ::prost::alloc::string::String,
/// New user-defined columns only. Existing columns cannot be changed here.
/// Stored linked projections use field_type FROM(link_column.source_column).
#[prost(message, repeated, tag = "3")]
pub columns: ::prost::alloc::vec::Vec<ColumnDefinition>,
/// Optional indexes for the new columns only.
@@ -147,6 +150,9 @@ pub struct ColumnDefinition {
/// LINK(table) → BIGINT referencing that table in the same profile, indexed
/// automatically. A table may hold several links to the same
/// target as long as the columns are named differently.
/// FROM(link.source) → stored, read-only copy of an atomic column reached
/// through another column in this definition whose type is
/// LINK(...). SQL type and money metadata are inferred.
/// DECIMAL args must be integers (no sign, no dot, no leading zeros);
/// s ≤ p and p ≥ 1.
#[prost(string, tag = "2")]

2
server

Submodule server updated: 195db2f04a...5b6b860372