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

Function parse_generated_expr

nodedb-query/src/expr_parse/parser.rs:30–51  ·  view source on GitHub ↗

Parse a SQL expression string into an SqlExpr AST. Returns the parsed expression and a list of column names it references (the `depends_on` set for generated columns).

(text: &str)

Source from the content-addressed store, hash-verified

28/// Returns the parsed expression and a list of column names it references
29/// (the `depends_on` set for generated columns).
30pub fn parse_generated_expr(text: &str) -> Result<(SqlExpr, Vec<String>), ExprParseError> {
31 let tokens = tokenize(text)?;
32 let mut pos = 0;
33 let expr = parse_expr(&tokens, &mut pos, &mut 0)?;
34 if pos < tokens.len() {
35 return Err(ExprParseError::UnexpectedToken {
36 found: tokens[pos].text.clone(),
37 pos,
38 });
39 }
40
41 // Validate determinism.
42 validate_deterministic(&expr)?;
43
44 // Collect column references.
45 let mut deps = Vec::new();
46 collect_columns(&expr, &mut deps);
47 deps.sort();
48 deps.dedup();
49
50 Ok((expr, deps))
51}
52
53// ── Recursive descent parser ──────────────────────────────────────────
54

Callers 15

build_strict_schemaFunction · 0.85
parse_okFunction · 0.85
enforce_simple_checkFunction · 0.85
parse_origin_column_defFunction · 0.85
add_check_constraintFunction · 0.85
inject_defaultsFunction · 0.85
check_type_guardsFunction · 0.85
parseMethod · 0.85
parse_exprFunction · 0.85

Calls 7

validate_deterministicFunction · 0.85
collect_columnsFunction · 0.85
dedupMethod · 0.80
tokenizeFunction · 0.70
parse_exprFunction · 0.70
lenMethod · 0.45
cloneMethod · 0.45