risingwave_common/
operator.rs1use risingwave_common::id::{ActorId, FragmentId};
16
17pub fn unique_operator_id(fragment_id: FragmentId, operator_id: u64) -> u64 {
19 assert!(operator_id <= u32::MAX as u64);
20 ((fragment_id.as_raw_id() as u64) << 32) + operator_id
21}
22
23pub fn unique_executor_id(actor_id: ActorId, operator_id: u64) -> u64 {
25 assert!(operator_id <= u32::MAX as u64);
26 ((actor_id.as_raw_id() as u64) << 32) + operator_id
27}
28
29pub fn unique_executor_id_into_parts(unique_executor_id: u64) -> (u32, u32) {
31 let actor_id = (unique_executor_id >> 32) as u32;
32 let operator_id = (unique_executor_id & 0xFFFFFFFF) as u32;
33 (actor_id, operator_id)
34}
35
36pub fn unique_operator_id_into_parts(unique_operator_id: u64) -> (u32, u32) {
37 let fragment_id = (unique_operator_id >> 32) as u32;
38 let operator_id = (unique_operator_id & 0xFFFFFFFF) as u32;
39 (fragment_id, operator_id)
40}
41
42pub fn unique_executor_id_from_unique_operator_id(
43 actor_id: ActorId,
44 unique_operator_id: u64,
45) -> u64 {
46 let unique_operator_id = unique_operator_id & 0xFFFFFFFF;
48 ((actor_id.as_raw_id() as u64) << 32) + unique_operator_id
49}