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 2f4c5cf..fbd4fe3 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.tables_data.rs b/common/src/proto/komp_ac.tables_data.rs index c5534ce..e874947 100644 --- a/common/src/proto/komp_ac.tables_data.rs +++ b/common/src/proto/komp_ac.tables_data.rs @@ -47,7 +47,7 @@ pub struct PostTableDataRequest { >, } /// 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