optimization on the client steel scripts3 - removing datafusion from the steel dependencies

This commit is contained in:
Priec
2026-07-18 00:07:32 +02:00
parent d5bce6378a
commit 28da618ca7
10 changed files with 663 additions and 12 deletions

View File

@@ -133,6 +133,18 @@ pub struct ScriptDependency {
/// Relationship table used to match the owner row to the related collection.
#[prost(string, tag = "6")]
pub via_table: ::prost::alloc::string::String,
/// Source currency for an fx_conversion dependency.
#[prost(string, tag = "7")]
pub from_currency: ::prost::alloc::string::String,
/// Target currency for an fx_conversion dependency.
#[prost(string, tag = "8")]
pub to_currency: ::prost::alloc::string::String,
/// Persisted exchange-rate provider/source identifier.
#[prost(string, tag = "9")]
pub source: ::prost::alloc::string::String,
/// Requested YYYY-MM-DD date, or empty for the latest stored snapshot.
#[prost(string, tag = "10")]
pub as_of_date: ::prost::alloc::string::String,
}
/// Identifies the active form row whose external Steel inputs must be hydrated.
#[derive(Clone, PartialEq, ::prost::Message)]
@@ -213,6 +225,30 @@ pub struct HydrateScriptDependenciesResponse {
/// Exact related aggregate inputs declared by stored scripts.
#[prost(message, repeated, tag = "2")]
pub aggregates: ::prost::alloc::vec::Vec<HydratedAggregateValue>,
/// Exact resolved rates declared by the table's stored scripts.
#[prost(message, repeated, tag = "3")]
pub fx_rates: ::prost::alloc::vec::Vec<HydratedFxRate>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct HydratedFxRate {
#[prost(string, tag = "1")]
pub from_currency: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub to_currency: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub source: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub requested_as_of_date: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub rate: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub effective_date: ::prost::alloc::string::String,
#[prost(int64, tag = "7")]
pub rate_set_id: i64,
#[prost(int32, tag = "8")]
pub revision: i32,
#[prost(string, tag = "9")]
pub base_currency: ::prost::alloc::string::String,
}
/// Generated client implementations.
pub mod table_script_client {
@@ -423,9 +459,9 @@ pub mod table_script_client {
///
/// The server derives the required inputs from stored script_dependencies;
/// callers do not choose arbitrary tables or columns. Direct related-column
/// reads are grouped by related row, while related aggregates are evaluated
/// through the analytics runtime. Returned values include logical type and
/// currency metadata so the client can create correctly typed ScriptValues.
/// reads and related aggregates are evaluated through SQLx in one read-only
/// PostgreSQL snapshot. Returned values include logical type and currency
/// metadata so the client can create correctly typed ScriptValues.
///
/// Current-table column values are intentionally not returned. The client
/// supplies those directly from row_data so unsaved edits participate in
@@ -526,9 +562,9 @@ pub mod table_script_server {
///
/// The server derives the required inputs from stored script_dependencies;
/// callers do not choose arbitrary tables or columns. Direct related-column
/// reads are grouped by related row, while related aggregates are evaluated
/// through the analytics runtime. Returned values include logical type and
/// currency metadata so the client can create correctly typed ScriptValues.
/// reads and related aggregates are evaluated through SQLx in one read-only
/// PostgreSQL snapshot. Returned values include logical type and currency
/// metadata so the client can create correctly typed ScriptValues.
///
/// Current-table column values are intentionally not returned. The client
/// supplies those directly from row_data so unsaved edits participate in