nene / sql-parser-cst

Parses SQL into Concrete Syntax Tree (CST)
GNU General Public License v2.0
115 stars 7 forks source link

Wrap plain keywords inside proper node types in extract_expr and interval_expr #34

Closed nene closed 1 year ago

nene commented 1 year ago

For example, here we mix a keyword and a node types:

export interface ExtractFrom extends BaseNode {
    type: "extract_from";
    unit: IntervalUnitKeyword | WeekExpr; // <-- here
    fromKw: Keyword<"FROM">;
    expr: Expr;
}

export interface IntervalExpr extends BaseNode {
    type: "interval_expr";
    intervalKw: Keyword<"INTERVAL">;
    expr: Expr;
    unit: IntervalUnitKeyword | IntervalUnitRange; // <-- here
}

type IntervalUnitKeyword = Keyword<"YEAR" | "QUARTER" | ...>;

Should wrap IntervalUnitKeyword inside an IntervalUnit node, like done in other places of the CST.