Fragment 26068 (Actor 132672,132671)
StreamMaterialize { columns: [client_id, portfolios], stream_key: [client_id], pk_columns: [client_id], pk_conflict: NoCheck }
├── output: [ clients_dm.id, jsonb_agg($expr2 order_by(portfolios_plain_mv.portfolio_id ASC)) ]
├── stream key: [ clients_dm.id ]
└── StreamProject { exprs: [clients_dm.id, jsonb_agg($expr2 order_by(portfolios_plain_mv.portfolio_id ASC))] }
├── output: [ clients_dm.id, jsonb_agg($expr2 order_by(portfolios_plain_mv.portfolio_id ASC)) ]
├── stream key: [ clients_dm.id ]
└── StreamHashAgg { group_key: [clients_dm.id], aggs: [jsonb_agg($expr2 order_by(portfolios_plain_mv.portfolio_id ASC)), count] }
├── output: [ clients_dm.id, jsonb_agg($expr2 order_by(portfolios_plain_mv.portfolio_id ASC)), count ]
├── stream key: [ clients_dm.id ]
└── MergeExecutor
├── output:
│ ┌── clients_dm.id
│ ├── $expr2
│ ├── portfolios_plain_mv.portfolio_id
│ ├── clients_portfolios_dm.portfolio_id
│ ├── clients_portfolios_dm.effective_start_date
│ ├── portfolios_plain_mv.service_type_id
│ ├── position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded
│ ├── position_snapshot_mv_next.flag
│ ├── portfolio_to_account_groups_mv.account_group_id
│ ├── portfolios_plain_mv.base_currency_code
│ ├── intraday_position_summary_mv_next.position_type
│ └── pnl_snapshot_mv_next.position_type
└── stream key:
┌── clients_dm.id
├── clients_portfolios_dm.portfolio_id
├── clients_portfolios_dm.effective_start_date
├── portfolios_plain_mv.service_type_id
├── portfolios_plain_mv.portfolio_id
├── position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded
├── position_snapshot_mv_next.flag
├── portfolio_to_account_groups_mv.account_group_id
├── portfolios_plain_mv.base_currency_code
├── intraday_position_summary_mv_next.position_type
└── pnl_snapshot_mv_next.position_type
Fragment 26069 (Actor 132674,132673)
StreamProject
└─exprs:
┌─clients_dm.id
├─JsonbBuildObject('id':Varchar, portfolios_plain_mv.portfolio_id, 'name':Varchar, portfolios_plain_mv.name, 'number':Varchar, portfolios_plain_mv.number, 'serviceTypeId':Varchar, portfolios_plain_mv.service_type_id, 'serviceType':Varchar, service_types_dm.type, 'marketValue':Varchar, JsonbBuildObject('amount':Varchar, Coalesce(intraday_position_summary_mv_next.market_value, position_snapshot_mv_next.market_value)::Varchar, 'currencyCode':Varchar, portfolios_plain_mv.base_currency_code), 'marketValueSystemCurrency':Varchar, JsonbBuildObject('amount':Varchar, Case(Not(IsNull(intraday_position_summary_mv_next.market_value)), intraday_position_summary_mv_next.market_value_system_currency::Varchar, position_snapshot_mv_next.market_value_system_currency::Varchar), 'currencyCode':Varchar, clients_dm.base_currency_code), 'unrealizedGainLoss':Varchar, JsonbBuildObject('value':Varchar, JsonbBuildObject('amount':Varchar, Case(Not(IsNull(intraday_position_summary_mv_next.market_value)), (intraday_position_summary_mv_next.market_value - intraday_position_summary_mv_next.total_average_cost)::Varchar, pnl_snapshot_mv_next.unrealized_gain_loss::Varchar), 'currencyCode':Varchar, portfolios_plain_mv.base_currency_code), 'percentage':Varchar, Case(Not(IsNull(intraday_position_summary_mv_next.market_value)), Case((IsNull(intraday_position_summary_mv_next.total_average_cost) OR (intraday_position_summary_mv_next.total_average_cost = 0:Decimal)), null:Varchar, ((intraday_position_summary_mv_next.market_value - intraday_position_summary_mv_next.total_average_cost) / intraday_position_summary_mv_next.total_average_cost)::Varchar), Case((IsNull(pnl_snapshot_mv_next.total_average_cost) OR (pnl_snapshot_mv_next.total_average_cost = 0:Decimal)), null:Varchar, (pnl_snapshot_mv_next.unrealized_gain_loss / pnl_snapshot_mv_next.total_average_cost)::Varchar)))) as $expr2
├─portfolios_plain_mv.portfolio_id
├─clients_portfolios_dm.portfolio_id
├─clients_portfolios_dm.effective_start_date
├─portfolios_plain_mv.service_type_id
├─position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded
├─position_snapshot_mv_next.flag
├─portfolio_to_account_groups_mv.account_group_id
├─portfolios_plain_mv.base_currency_code
├─intraday_position_summary_mv_next.position_type
└─pnl_snapshot_mv_next.position_type
├── output: [ clients_dm.id, $expr2, portfolios_plain_mv.portfolio_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.position_type ]
├── stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.position_type ]
└── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, pnl_snapshot_mv_next.unrealized_gain_loss, pnl_snapshot_mv_next.total_average_cost, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.position_type, pnl_snapshot_mv_next.currency_code ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.position_type ] }
Fragment 26070 (Actor 132680,132679)
StreamSyncLogStore { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, pnl_snapshot_mv_next.unrealized_gain_loss, pnl_snapshot_mv_next.total_average_cost, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.position_type, pnl_snapshot_mv_next.currency_code ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.position_type ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolio_to_account_groups_mv.account_group_id = pnl_snapshot_mv_next.account_group_id AND portfolios_plain_mv.base_currency_code = pnl_snapshot_mv_next.currency_code } { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, pnl_snapshot_mv_next.unrealized_gain_loss, pnl_snapshot_mv_next.total_average_cost, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.position_type, pnl_snapshot_mv_next.currency_code ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type, pnl_snapshot_mv_next.position_type ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.position_type ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type ] }
└── MergeExecutor { output: [ pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.currency_code, pnl_snapshot_mv_next.unrealized_gain_loss, pnl_snapshot_mv_next.total_average_cost, pnl_snapshot_mv_next.position_type ], stream key: [ pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.position_type, pnl_snapshot_mv_next.currency_code ] }
Fragment 26071 (Actor 132678,132677)
StreamSyncLogStore { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.position_type ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolio_to_account_groups_mv.account_group_id = intraday_position_summary_mv_next.account_group_id AND portfolios_plain_mv.base_currency_code = intraday_position_summary_mv_next.currency_code } { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.position_type ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code, intraday_position_summary_mv_next.position_type ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code ] }
└── MergeExecutor { output: [ intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, intraday_position_summary_mv_next.position_type ], stream key: [ intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.position_type ] }
Fragment 26072 (Actor 132675,132676)
StreamSyncLogStore { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolio_to_account_groups_mv.account_group_id = position_snapshot_mv_next.account_group_id AND portfolios_plain_mv.base_currency_code = position_snapshot_mv_next.currency_code } { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, portfolio_to_account_groups_mv.account_group_id, portfolios_plain_mv.base_currency_code ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolio_to_account_groups_mv.portfolio_id ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id ] }
└── MergeExecutor { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ] }
Fragment 26073 (Actor 132682,132681)
StreamSyncLogStore { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolio_to_account_groups_mv.portfolio_id ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id ] }
└── StreamHashJoin { type: LeftOuter, predicate: portfolios_plain_mv.portfolio_id = portfolio_to_account_groups_mv.portfolio_id } { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, portfolio_to_account_groups_mv.account_group_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolio_to_account_groups_mv.portfolio_id ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id, portfolios_plain_mv.portfolio_id ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, service_types_dm.service_type_id ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id ] }
└── MergeExecutor { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id ], stream key: [ portfolio_to_account_groups_mv.portfolio_id ] }
Fragment 26074 (Actor 132578,132579)
StreamTemporalJoin { type: Inner, append_only: false, predicate: portfolios_plain_mv.service_type_id = service_types_dm.service_type_id, nested_loop: false } { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, service_types_dm.type, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, service_types_dm.service_type_id ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, portfolios_plain_mv.service_type_id ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
└── MergeExecutor { output: [ service_types_dm.service_type_id, service_types_dm.type ], stream key: [ service_types_dm.service_type_id ] }
Fragment 26075 (Actor 132684,132683)
StreamSyncLogStore { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
└── StreamHashJoin { type: Inner, predicate: clients_portfolios_dm.portfolio_id = portfolios_plain_mv.portfolio_id } { output: [ clients_dm.id, clients_dm.base_currency_code, portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.client_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
└── MergeExecutor { output: [ portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id ], stream key: [ portfolios_plain_mv.portfolio_id ] }
Fragment 26076 (Actor 132685,132686)
StreamSyncLogStore { output: [ clients_dm.id, clients_dm.base_currency_code, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.client_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
└── StreamHashJoin { type: Inner, predicate: clients_dm.id = clients_portfolios_dm.client_id } { output: [ clients_dm.id, clients_dm.base_currency_code, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.client_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_dm.id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
├── MergeExecutor { output: [ clients_dm.id, clients_dm.base_currency_code ], stream key: [ clients_dm.id ] }
└── MergeExecutor { output: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
Fragment 26077 (Actor 132688,132687)
StreamProject { exprs: [clients_dm.id, clients_dm.base_currency_code] } { output: [ clients_dm.id, clients_dm.base_currency_code ], stream key: [ clients_dm.id ] }
└── StreamFilter { predicate: IsNull(clients_dm.disabled_at) } { output: [ clients_dm.id, clients_dm.base_currency_code, clients_dm.disabled_at ], stream key: [ clients_dm.id ] }
└── StreamTableScan { table: clients_dm, columns: [id, base_currency_code, disabled_at] } { output: [ clients_dm.id, clients_dm.base_currency_code, clients_dm.disabled_at ], stream key: [ clients_dm.id ] }
├── Upstream { output: [ id, base_currency_code, disabled_at ], stream key: [] }
└── BatchPlanNode { output: [ id, base_currency_code, disabled_at ], stream key: [] }
Fragment 26078 (Actor 132690,132689)
StreamProject { exprs: [clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date] } { output: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ], stream key: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
└── StreamDynamicFilter { predicate: ($expr1 <= now), output: [clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, $expr1, clients_portfolios_dm.effective_start_date], cleaned_by_watermark: true } { output: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, $expr1, clients_portfolios_dm.effective_start_date ], stream key: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
├── StreamProject { exprs: [clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, AtTimeZone(clients_portfolios_dm.effective_start_date::Timestamp, 'UTC':Varchar) as $expr1, clients_portfolios_dm.effective_start_date] } { output: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, $expr1, clients_portfolios_dm.effective_start_date ], stream key: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
│ └── StreamFilter { predicate: IsNull(clients_portfolios_dm.disabled_at) AND IsNull(clients_portfolios_dm.effective_end_date) } { output: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, clients_portfolios_dm.disabled_at, clients_portfolios_dm.effective_end_date ], stream key: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
│ └── StreamTableScan { table: clients_portfolios_dm, columns: [client_id, portfolio_id, effective_start_date, disabled_at, effective_end_date] } { output: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date, clients_portfolios_dm.disabled_at, clients_portfolios_dm.effective_end_date ], stream key: [ clients_portfolios_dm.client_id, clients_portfolios_dm.portfolio_id, clients_portfolios_dm.effective_start_date ] }
│ ├── Upstream { output: [ client_id, portfolio_id, effective_start_date, disabled_at, effective_end_date ], stream key: [] }
│ └── BatchPlanNode { output: [ client_id, portfolio_id, effective_start_date, disabled_at, effective_end_date ], stream key: [] }
└── MergeExecutor { output: [ now ], stream key: [] }
Fragment 26079 (Actor 132691)
StreamNow { output: [ now ], stream key: [] }
Fragment 26080 (Actor 132692,132693)
StreamProject { exprs: [portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id] } { output: [ portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id ], stream key: [ portfolios_plain_mv.portfolio_id ] }
└── StreamFilter { predicate: IsNull(portfolios_plain_mv.closing_date) } { output: [ portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, portfolios_plain_mv.closing_date ], stream key: [ portfolios_plain_mv.portfolio_id ] }
└── StreamTableScan { table: portfolios_plain_mv, columns: [portfolio_id, name, number, base_currency_code, service_type_id, closing_date] } { output: [ portfolios_plain_mv.portfolio_id, portfolios_plain_mv.name, portfolios_plain_mv.number, portfolios_plain_mv.base_currency_code, portfolios_plain_mv.service_type_id, portfolios_plain_mv.closing_date ], stream key: [ portfolios_plain_mv.portfolio_id ] }
├── Upstream { output: [ portfolio_id, name, number, base_currency_code, service_type_id, closing_date ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, name, number, base_currency_code, service_type_id, closing_date ], stream key: [] }
Fragment 26081 (Actor 132576,132577)
StreamTableScan { table: service_types_dm, columns: [service_type_id, type] } { output: [ service_types_dm.service_type_id, service_types_dm.type ], stream key: [ service_types_dm.service_type_id ] }
├── Upstream { output: [ service_type_id, type ], stream key: [] }
└── BatchPlanNode { output: [ service_type_id, type ], stream key: [] }
Fragment 26082 (Actor 132695,132694)
StreamProject { exprs: [portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id ], stream key: [ portfolio_to_account_groups_mv.portfolio_id ] }
└── StreamFilter { predicate: (portfolio_to_account_groups_mv.type = 'all':Varchar) } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type ], stream key: [ portfolio_to_account_groups_mv.portfolio_id ] }
└── StreamTableScan { table: portfolio_to_account_groups_mv, columns: [portfolio_id, account_group_id, type] } { output: [ portfolio_to_account_groups_mv.portfolio_id, portfolio_to_account_groups_mv.account_group_id, portfolio_to_account_groups_mv.type ], stream key: [ portfolio_to_account_groups_mv.portfolio_id ] }
├── Upstream { output: [ portfolio_id, account_group_id, type ], stream key: [] }
└── BatchPlanNode { output: [ portfolio_id, account_group_id, type ], stream key: [] }
Fragment 26083 (Actor 132697,132696)
StreamProject { exprs: [position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag] } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ] }
└── StreamFilter { predicate: (position_snapshot_mv_next.position_type = 'POSITION':Varchar) } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, position_snapshot_mv_next.position_type ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ] }
└── StreamTableScan { table: position_snapshot_mv_next, columns: [account_group_id, currency_code, market_value, market_value_system_currency, holding_values_latest_mv_next.type_expanded, flag, position_type] } { output: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.market_value, position_snapshot_mv_next.market_value_system_currency, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag, position_snapshot_mv_next.position_type ], stream key: [ position_snapshot_mv_next.account_group_id, position_snapshot_mv_next.currency_code, position_snapshot_mv_next.holding_values_latest_mv_next.type_expanded, position_snapshot_mv_next.flag ] }
├── Upstream { output: [ account_group_id, currency_code, market_value, market_value_system_currency, holding_values_latest_mv_next.type_expanded, flag, position_type ], stream key: [] }
└── BatchPlanNode { output: [ account_group_id, currency_code, market_value, market_value_system_currency, holding_values_latest_mv_next.type_expanded, flag, position_type ], stream key: [] }
Fragment 26084 (Actor 132699,132698)
StreamFilter { predicate: (intraday_position_summary_mv_next.position_type = 'POSITION':Varchar) } { output: [ intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, intraday_position_summary_mv_next.position_type ], stream key: [ intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.position_type ] }
└── StreamTableScan { table: intraday_position_summary_mv_next, columns: [account_group_id, currency_code, market_value, total_average_cost, market_value_system_currency, position_type] } { output: [ intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.market_value, intraday_position_summary_mv_next.total_average_cost, intraday_position_summary_mv_next.market_value_system_currency, intraday_position_summary_mv_next.position_type ], stream key: [ intraday_position_summary_mv_next.account_group_id, intraday_position_summary_mv_next.currency_code, intraday_position_summary_mv_next.position_type ] }
├── Upstream { output: [ account_group_id, currency_code, market_value, total_average_cost, market_value_system_currency, position_type ], stream key: [] }
└── BatchPlanNode { output: [ account_group_id, currency_code, market_value, total_average_cost, market_value_system_currency, position_type ], stream key: [] }
Fragment 26085 (Actor 132700,132701)
StreamFilter { predicate: (pnl_snapshot_mv_next.position_type = 'POSITION':Varchar) } { output: [ pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.currency_code, pnl_snapshot_mv_next.unrealized_gain_loss, pnl_snapshot_mv_next.total_average_cost, pnl_snapshot_mv_next.position_type ], stream key: [ pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.position_type, pnl_snapshot_mv_next.currency_code ] }
└── StreamTableScan { table: pnl_snapshot_mv_next, columns: [account_group_id, currency_code, unrealized_gain_loss, total_average_cost, position_type] } { output: [ pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.currency_code, pnl_snapshot_mv_next.unrealized_gain_loss, pnl_snapshot_mv_next.total_average_cost, pnl_snapshot_mv_next.position_type ], stream key: [ pnl_snapshot_mv_next.account_group_id, pnl_snapshot_mv_next.position_type, pnl_snapshot_mv_next.currency_code ] }
├── Upstream { output: [ account_group_id, currency_code, unrealized_gain_loss, total_average_cost, position_type ], stream key: [] }
└── BatchPlanNode { output: [ account_group_id, currency_code, unrealized_gain_loss, total_average_cost, position_type ], stream key: [] }