diff --git a/client b/client index 643795a..6da324a 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 643795ac6f9dff97bd9595b344b0d659bb4c6c37 +Subproject commit 6da324a924df6c2a4917c2085e83816e9b464702 diff --git a/common/proto/table_script.proto b/common/proto/table_script.proto index 2d5a71f..7cb680a 100644 --- a/common/proto/table_script.proto +++ b/common/proto/table_script.proto @@ -70,6 +70,12 @@ message PostTableScriptRequest { // • current-table references are read directly from the active row // • other tables require an explicit link from the source table // (table_definition_links) or the request fails + // - Related collections use allowlisted aggregate shorthand: + // @sum(table.column), @min(table.column), @max(table.column), + // @count(table.column), @count_distinct(table.column), + // @any(table.boolean), @all(table.boolean), + // @count_rows(table), @exists(table) + // The related table must be a direct child or share exactly one parent. // - Raw SQL access is not supported; steel_query_sql is rejected // // Math operations: @@ -130,4 +136,7 @@ message ScriptDependency { string column = 3; // Deprecated legacy field. Raw SQL dependencies are no longer produced. string query_fragment = 4; + string operation = 5; + // Relationship table used to match the owner row to the related collection. + string via_table = 6; } diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index a79f34b..d174007 100644 Binary files a/common/src/proto/descriptor.bin and b/common/src/proto/descriptor.bin differ diff --git a/common/src/proto/komp_ac.table_script.rs b/common/src/proto/komp_ac.table_script.rs index f190859..ca5cd46 100644 --- a/common/src/proto/komp_ac.table_script.rs +++ b/common/src/proto/komp_ac.table_script.rs @@ -29,6 +29,12 @@ pub struct PostTableScriptRequest { /// • current-table references are read directly from the active row /// • other tables require an explicit link from the source table /// (table_definition_links) or the request fails + /// * Related collections use allowlisted aggregate shorthand: + /// @sum(table.column), @min(table.column), @max(table.column), + /// @count(table.column), @count_distinct(table.column), + /// @any(table.boolean), @all(table.boolean), + /// @count_rows(table), @exists(table) + /// The related table must be a direct child or share exactly one parent. /// * Raw SQL access is not supported; steel_query_sql is rejected /// /// Math operations: @@ -107,6 +113,11 @@ pub struct ScriptDependency { /// Deprecated legacy field. Raw SQL dependencies are no longer produced. #[prost(string, tag = "4")] pub query_fragment: ::prost::alloc::string::String, + #[prost(string, tag = "5")] + pub operation: ::prost::alloc::string::String, + /// Relationship table used to match the owner row to the related collection. + #[prost(string, tag = "6")] + pub via_table: ::prost::alloc::string::String, } /// Generated client implementations. pub mod table_script_client { diff --git a/server b/server index 37f329a..1bbb78b 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 37f329a2b20a569c5cb3cfc6f01c1f790d3631a9 +Subproject commit 1bbb78b494af32a13b6ab039d635df1cdae3cf6e