From daba328ca1dab64bba38dbf0e6831314cb31f978 Mon Sep 17 00:00:00 2001 From: Priec Date: Thu, 16 Jul 2026 23:00:23 +0200 Subject: [PATCH] refering different tables that are not directly FK6 --- client | 2 +- common/proto/tables_data.proto | 14 ++++++++++++++ common/src/proto/descriptor.bin | Bin 98890 -> 99787 bytes common/src/proto/komp_ac.tables_data.rs | 22 +++++++++++++++++++--- server | 2 +- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/client b/client index 07c6efc..382c704 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 07c6efcc22a738dd422ddb19883737e2953e92f1 +Subproject commit 382c704a08d8c18a355432983e3ed0aaade0e902 diff --git a/common/proto/tables_data.proto b/common/proto/tables_data.proto index 91e1d05..f8a3fce 100644 --- a/common/proto/tables_data.proto +++ b/common/proto/tables_data.proto @@ -133,6 +133,9 @@ message PostTableDataResponse { // The id of the inserted row. int64 inserted_id = 3; + + // Rows whose stored script values changed through dependency propagation. + repeated RecomputedRow recomputed_rows = 4; } // One row in a bulk insert request. @@ -199,6 +202,14 @@ message PutTableDataResponse { // The id of the updated row. int64 updated_id = 3; + + // Rows whose stored script values changed through dependency propagation. + repeated RecomputedRow recomputed_rows = 4; +} + +message RecomputedRow { + string table_name = 1; + int64 row_id = 2; } // Soft-delete a single row. @@ -217,6 +228,9 @@ message DeleteTableDataRequest { message DeleteTableDataResponse { // True if a row was marked deleted (id existed and was not already deleted). bool success = 1; + + // Rows whose stored script values changed through dependency propagation. + repeated RecomputedRow recomputed_rows = 2; } // Fetch a single non-deleted row by id. diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 2f4c5cf0d380866a2ce341051e8275450a9e8e15..fbd4fe333fc12ba1f93b533238fc331b5b35309b 100644 GIT binary patch delta 2889 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, } /// Insert response. -#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct PostTableDataResponse { /// True if the insert succeeded. #[prost(bool, tag = "1")] @@ -58,6 +58,9 @@ pub struct PostTableDataResponse { /// The id of the inserted row. #[prost(int64, tag = "3")] pub inserted_id: i64, + /// Rows whose stored script values changed through dependency propagation. + #[prost(message, repeated, tag = "4")] + pub recomputed_rows: ::prost::alloc::vec::Vec, } /// One row in a bulk insert request. #[derive(Clone, PartialEq, ::prost::Message)] @@ -125,7 +128,7 @@ pub struct PutTableDataRequest { >, } /// Update response. -#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct PutTableDataResponse { /// True if the update succeeded (or no-op on empty data). #[prost(bool, tag = "1")] @@ -136,6 +139,16 @@ pub struct PutTableDataResponse { /// The id of the updated row. #[prost(int64, tag = "3")] pub updated_id: i64, + /// Rows whose stored script values changed through dependency propagation. + #[prost(message, repeated, tag = "4")] + pub recomputed_rows: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct RecomputedRow { + #[prost(string, tag = "1")] + pub table_name: ::prost::alloc::string::String, + #[prost(int64, tag = "2")] + pub row_id: i64, } /// Soft-delete a single row. #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] @@ -151,11 +164,14 @@ pub struct DeleteTableDataRequest { pub record_id: i64, } /// Soft-delete response. -#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct DeleteTableDataResponse { /// True if a row was marked deleted (id existed and was not already deleted). #[prost(bool, tag = "1")] pub success: bool, + /// Rows whose stored script values changed through dependency propagation. + #[prost(message, repeated, tag = "2")] + pub recomputed_rows: ::prost::alloc::vec::Vec, } /// Fetch a single non-deleted row by id. #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] diff --git a/server b/server index a7af82a..40d76eb 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit a7af82a5dd8c3cc349e5d5de3325d339799cfffb +Subproject commit 40d76eb75c2b1b2027bc2a3d19330800e819e63c