Fragment 51787 (Actor 736698,736699)
StreamMaterialize { columns: [party_id, customer_relationship_id], stream_key: [customer_relationship_id], pk_columns: [customer_relationship_id], pk_conflict: NoCheck }
├── output: [ internal_last_seen_value(customer_relationships.party_id), customer_relationships.id ]
├── stream key: [ customer_relationships.id ]
└── StreamProject { exprs: [internal_last_seen_value(customer_relationships.party_id), customer_relationships.id] }
├── output: [ internal_last_seen_value(customer_relationships.party_id), customer_relationships.id ]
├── stream key: [ customer_relationships.id ]
└── StreamHashAgg { group_key: [customer_relationships.id], aggs: [internal_last_seen_value(customer_relationships.party_id), count] }
├── output: [ customer_relationships.id, internal_last_seen_value(customer_relationships.party_id), count ]
├── stream key: [ customer_relationships.id ]
└── StreamLocalityProvider { locality_columns: [customer_relationships.id] }
├── output: [ customer_relationships.id, customer_relationships.party_id, parties.id ]
├── stream key: [ customer_relationships.id, customer_relationships.party_id ]
└── MergeExecutor
├── output: [ customer_relationships.id, customer_relationships.party_id, parties.id ]
└── stream key: [ customer_relationships.party_id, customer_relationships.id ]
Fragment 51788 (Actor 736700,736701)
StreamSyncLogStore
├── output: [ customer_relationships.id, customer_relationships.party_id, parties.id ]
├── stream key: [ customer_relationships.party_id, customer_relationships.id ]
└── StreamHashJoin { type: Inner, predicate: customer_relationships.party_id = parties.id }
├── output: [ customer_relationships.id, customer_relationships.party_id, parties.id ]
├── stream key: [ customer_relationships.party_id, customer_relationships.id ]
├── MergeExecutor
│ ├── output: [ customer_relationships.id, customer_relationships.party_id ]
│ └── stream key: [ customer_relationships.party_id, customer_relationships.id ]
└── MergeExecutor { output: [ parties.id ], stream key: [ parties.id ] }
Fragment 51789 (Actor 736703,736702)
StreamLocalityProvider { locality_columns: [customer_relationships.party_id] }
├── output: [ customer_relationships.id, customer_relationships.party_id ]
├── stream key: [ customer_relationships.party_id, customer_relationships.id ]
└── MergeExecutor { output: [ customer_relationships.id, customer_relationships.party_id ], stream key: [ customer_relationships.id ] }
Fragment 51790 (Actor 736708,736709)
StreamProject { exprs: [customer_relationships.id, customer_relationships.party_id] } { output: [ customer_relationships.id, customer_relationships.party_id ], stream key: [ customer_relationships.id ] }
└── StreamDynamicFilter { predicate: ($expr2 > now), output_watermarks: [[$expr2]], output: [customer_relationships.id, customer_relationships.party_id, $expr2], cleaned_by_watermark: true }
├── output: [ customer_relationships.id, customer_relationships.party_id, $expr2 ]
├── stream key: [ customer_relationships.id ]
├── StreamProject { exprs: [customer_relationships.id, customer_relationships.party_id, AtTimeZone(Coalesce(customer_relationships.effective_to, '9999-12-31':Date)::Timestamp, 'UTC':Varchar) as $expr2] }
│ ├── output: [ customer_relationships.id, customer_relationships.party_id, $expr2 ]
│ ├── stream key: [ customer_relationships.id ]
│ └── StreamDynamicFilter { predicate: ($expr1 <= now), output: [customer_relationships.id, customer_relationships.party_id, customer_relationships.effective_to, $expr1], cleaned_by_watermark: true }
│ ├── output: [ customer_relationships.id, customer_relationships.party_id, customer_relationships.effective_to, $expr1 ]
│ ├── stream key: [ customer_relationships.id ]
│ ├── StreamProject { exprs: [customer_relationships.id, customer_relationships.party_id, customer_relationships.effective_to, AtTimeZone(customer_relationships.effective_from::Timestamp, 'UTC':Varchar) as $expr1] }
│ │ ├── output: [ customer_relationships.id, customer_relationships.party_id, customer_relationships.effective_to, $expr1 ]
│ │ ├── stream key: [ customer_relationships.id ]
│ │ └── StreamFilter { predicate: (customer_relationships.type = 'CUSTOMER':Varchar) AND (customer_relationships.status = 'ACTIVE':Varchar) AND IsNull(customer_relationships.disabled_at) }
│ │ ├── output:
│ │ │ ┌── customer_relationships.id
│ │ │ ├── customer_relationships.party_id
│ │ │ ├── customer_relationships.effective_from
│ │ │ ├── customer_relationships.effective_to
│ │ │ ├── customer_relationships.type
│ │ │ ├── customer_relationships.status
│ │ │ └── customer_relationships.disabled_at
│ │ ├── stream key: [ customer_relationships.id ]
│ │ └── StreamTableScan { table: customer_relationships, columns: [id, party_id, effective_from, effective_to, type, status, disabled_at] }
│ │ ├── output:
│ │ │ ┌── customer_relationships.id
│ │ │ ├── customer_relationships.party_id
│ │ │ ├── customer_relationships.effective_from
│ │ │ ├── customer_relationships.effective_to
│ │ │ ├── customer_relationships.type
│ │ │ ├── customer_relationships.status
│ │ │ └── customer_relationships.disabled_at
│ │ ├── stream key: [ customer_relationships.id ]
│ │ ├── Upstream { output: [ id, party_id, effective_from, effective_to, type, status, disabled_at ], stream key: [] }
│ │ └── BatchPlanNode { output: [ id, party_id, effective_from, effective_to, type, status, disabled_at ], stream key: [] }
│ └── MergeExecutor { output: [ now ], stream key: [] }
└── MergeExecutor { output: [ now ], stream key: [] }
Fragment 51791 (Actor 736704)
StreamNow { output: [ now ], stream key: [] }
Fragment 51792 (Actor 736705)
StreamNow { output: [ now ], stream key: [] }
Fragment 51793 (Actor 736711,736710)
StreamProject { exprs: [parties.id] } { output: [ parties.id ], stream key: [ parties.id ] }
└── StreamFilter { predicate: IsNull(parties.disabled_at) } { output: [ parties.id, parties.disabled_at ], stream key: [ parties.id ] }
└── StreamTableScan { table: parties, columns: [id, disabled_at] } { output: [ parties.id, parties.disabled_at ], stream key: [ parties.id ] }
├── Upstream { output: [ id, disabled_at ], stream key: [] }
└── BatchPlanNode { output: [ id, disabled_at ], stream key: [] }