mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-16 18:22:55 +00:00
feat: update promql-parser to v0.1.0 (#994)
feat: update promql-parser version to v0.1.0
This commit is contained in:
5
Cargo.lock
generated
5
Cargo.lock
generated
@@ -5260,8 +5260,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "promql-parser"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/GreptimeTeam/promql-parser.git?rev=fa186978a1234baf5a3e372da03aa663d859cdd2#fa186978a1234baf5a3e372da03aa663d859cdd2"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24766dbb98852e704a98fc2c003d2b3ffa48317ab09b4ae184925f0e60385764"
|
||||
dependencies = [
|
||||
"cfgrammar",
|
||||
"lazy_static",
|
||||
|
||||
@@ -13,7 +13,7 @@ common-catalog = { path = "../common/catalog" }
|
||||
datafusion.workspace = true
|
||||
datatypes = { path = "../datatypes" }
|
||||
futures = "0.3"
|
||||
promql-parser = { git = "https://github.com/GreptimeTeam/promql-parser.git", rev = "fa186978a1234baf5a3e372da03aa663d859cdd2" }
|
||||
promql-parser = "0.1.0"
|
||||
session = { path = "../session" }
|
||||
snafu = { version = "0.7", features = ["backtraces"] }
|
||||
table = { path = "../table" }
|
||||
|
||||
@@ -25,7 +25,7 @@ pub enum Error {
|
||||
#[snafu(display("Unsupported expr type: {}", name))]
|
||||
UnsupportedExpr { name: String, backtrace: Backtrace },
|
||||
|
||||
#[snafu(display("Unexpected token: {}", token))]
|
||||
#[snafu(display("Unexpected token: {:?}", token))]
|
||||
UnexpectedToken {
|
||||
token: TokenType,
|
||||
backtrace: Backtrace,
|
||||
|
||||
@@ -103,7 +103,10 @@ impl<S: ContextProvider> PromPlanner<S> {
|
||||
let input = self.prom_expr_to_plan(*expr.clone())?;
|
||||
|
||||
// calculate columns to group by
|
||||
let group_exprs = self.agg_modifier_to_col(input.schema(), modifier)?;
|
||||
let group_exprs = modifier.as_ref().map_or(Ok(Vec::new()), |m| {
|
||||
self.agg_modifier_to_col(input.schema(), m)
|
||||
})?;
|
||||
|
||||
// convert op and value columns to aggregate exprs
|
||||
let aggr_exprs = self.create_aggregate_exprs(*op, &input)?;
|
||||
|
||||
@@ -629,7 +632,7 @@ impl<S: ContextProvider> PromPlanner<S> {
|
||||
token::T_STDVAR => AggregateFunctionEnum::Variance,
|
||||
token::T_TOPK | token::T_BOTTOMK | token::T_COUNT_VALUES | token::T_QUANTILE => {
|
||||
UnsupportedExprSnafu {
|
||||
name: op.to_string(),
|
||||
name: format!("{op:?}"),
|
||||
}
|
||||
.fail()?
|
||||
}
|
||||
@@ -1135,7 +1138,9 @@ mod test {
|
||||
|
||||
// test group without
|
||||
if let PromExpr::Aggregate(AggregateExpr { modifier, .. }) = &mut eval_stmt.expr {
|
||||
*modifier = AggModifier::Without(vec![String::from("tag_1")].into_iter().collect());
|
||||
*modifier = Some(AggModifier::Without(
|
||||
vec![String::from("tag_1")].into_iter().collect(),
|
||||
));
|
||||
}
|
||||
let context_provider = build_test_context_provider("some_metric".to_string(), 2, 2).await;
|
||||
let plan = PromPlanner::stmt_to_plan(eval_stmt, context_provider).unwrap();
|
||||
|
||||
@@ -29,7 +29,7 @@ futures-util.workspace = true
|
||||
metrics = "0.20"
|
||||
once_cell = "1.10"
|
||||
promql = { path = "../promql" }
|
||||
promql-parser = { git = "https://github.com/GreptimeTeam/promql-parser.git", rev = "fa186978a1234baf5a3e372da03aa663d859cdd2" }
|
||||
promql-parser = "0.1.0"
|
||||
serde.workspace = true
|
||||
serde_json = "1.0"
|
||||
session = { path = "../session" }
|
||||
|
||||
Reference in New Issue
Block a user