MCPcopy Create free account
hub / github.com/apache/paimon-rust / query

Method query

crates/paimon/src/btree/query.rs:47–100  ·  view source on GitHub ↗
(
        &self,
        op: PredicateOperator,
        literals: &[Datum],
        data_type: &DataType,
    )

Source from the content-addressed store, hash-verified

45 F: Fn(&[u8], &[u8]) -> Ordering + Send + Sync,
46{
47 async fn query(
48 &self,
49 op: PredicateOperator,
50 literals: &[Datum],
51 data_type: &DataType,
52 ) -> io::Result<RoaringTreemap> {
53 match op {
54 PredicateOperator::Eq => {
55 let key = serialize_datum(&literals[0], data_type);
56 self.query_equal(&key).await
57 }
58 PredicateOperator::Lt => {
59 let key = serialize_datum(&literals[0], data_type);
60 self.query_less_than(&key).await
61 }
62 PredicateOperator::LtEq => {
63 let key = serialize_datum(&literals[0], data_type);
64 self.query_less_or_equal(&key).await
65 }
66 PredicateOperator::Gt => {
67 let key = serialize_datum(&literals[0], data_type);
68 self.query_greater_than(&key).await
69 }
70 PredicateOperator::GtEq => {
71 let key = serialize_datum(&literals[0], data_type);
72 self.query_greater_or_equal(&key).await
73 }
74 PredicateOperator::In => {
75 let keys: Vec<Vec<u8>> = literals
76 .iter()
77 .map(|lit| serialize_datum(lit, data_type))
78 .collect();
79 let key_refs: Vec<&[u8]> = keys.iter().map(|k| k.as_slice()).collect();
80 self.query_in(&key_refs).await
81 }
82 PredicateOperator::IsNull => Ok(self.null_bitmap().clone()),
83 PredicateOperator::IsNotNull => self.all_non_null_rows().await,
84 PredicateOperator::NotEq => {
85 let key = serialize_datum(&literals[0], data_type);
86 self.query_not_equal(&key).await
87 }
88 PredicateOperator::NotIn => {
89 let mut all_non_null = self.all_non_null_rows().await?;
90 let keys: Vec<Vec<u8>> = literals
91 .iter()
92 .map(|lit| serialize_datum(lit, data_type))
93 .collect();
94 let key_refs: Vec<&[u8]> = keys.iter().map(|k| k.as_slice()).collect();
95 let excluded = self.query_in(&key_refs).await?;
96 all_non_null -= excluded;
97 Ok(all_non_null)
98 }
99 }
100 }
101}
102
103/// Detected between pattern from predicate pairs.

Callers 3

evaluate_leafMethod · 0.80
getMethod · 0.80
deleteMethod · 0.80

Calls 11

serialize_datumFunction · 0.85
query_equalMethod · 0.80
query_less_thanMethod · 0.80
query_less_or_equalMethod · 0.80
query_greater_thanMethod · 0.80
query_inMethod · 0.80
null_bitmapMethod · 0.80
all_non_null_rowsMethod · 0.80
query_not_equalMethod · 0.80
iterMethod · 0.45

Tested by

no test coverage detected