MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / eval_expr_on_json

Function eval_expr_on_json

nodedb-query/src/window/helpers.rs:48–58  ·  view source on GitHub ↗

Evaluate a `SqlExpr` against a serde_json document, returning a serde_json value.

(expr: &SqlExpr, doc: &serde_json::Value)

Source from the content-addressed store, hash-verified

46
47/// Evaluate a `SqlExpr` against a serde_json document, returning a serde_json value.
48pub(super) fn eval_expr_on_json(expr: &SqlExpr, doc: &serde_json::Value) -> serde_json::Value {
49 match expr {
50 SqlExpr::Column(name) => get_field(doc, name),
51 SqlExpr::Literal(v) => serde_json::Value::from(v.clone()),
52 other => {
53 let ndb_doc = nodedb_types::Value::from(doc.clone());
54 let result = other.eval(&ndb_doc);
55 serde_json::Value::from(result)
56 }
57 }
58}
59
60pub(super) fn as_f64(v: &serde_json::Value) -> Option<f64> {
61 match v {

Callers 3

per_row_aggregateFunction · 0.85
build_partitionsFunction · 0.85
order_keys_equalFunction · 0.85

Calls 3

get_fieldFunction · 0.85
evalMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected