risingwave_common/
operator.rs1use risingwave_common::id::{ActorId, FragmentId};
16use risingwave_pb::id::{ExecutorId, GlobalOperatorId, LocalOperatorId};
17
18pub fn unique_operator_id(
20 fragment_id: FragmentId,
21 operator_id: impl Into<LocalOperatorId>,
22) -> GlobalOperatorId {
23 (((fragment_id.as_raw_id() as u64) << 32) + operator_id.into().as_raw_id() as u64).into()
24}
25
26pub fn unique_executor_id(
28 actor_id: ActorId,
29 operator_id: impl Into<LocalOperatorId>,
30) -> ExecutorId {
31 (((actor_id.as_raw_id() as u64) << 32) + operator_id.into().as_raw_id() as u64).into()
32}
33
34pub fn unique_executor_id_into_parts(unique_executor_id: ExecutorId) -> (ActorId, LocalOperatorId) {
36 let actor_id = (unique_executor_id.as_raw_id() >> 32) as u32;
37 let operator_id = (unique_executor_id.as_raw_id() & 0xFFFFFFFF) as u32;
38 (actor_id.into(), operator_id.into())
39}
40
41pub fn unique_operator_id_into_parts(
42 unique_operator_id: GlobalOperatorId,
43) -> (FragmentId, LocalOperatorId) {
44 let fragment_id = (unique_operator_id.as_raw_id() >> 32) as u32;
45 let operator_id = (unique_operator_id.as_raw_id() & 0xFFFFFFFF) as u32;
46 (fragment_id.into(), operator_id.into())
47}
48
49pub fn unique_executor_id_from_unique_operator_id(
50 actor_id: ActorId,
51 unique_operator_id: GlobalOperatorId,
52) -> ExecutorId {
53 let (_, operator_id) = unique_operator_id_into_parts(unique_operator_id);
54 unique_executor_id(actor_id, operator_id)
55}