Parse SUBSTRING FROM syntax in all dialects, reflect change in the AST (#1173)

This commit is contained in:
Ophir LOJKINE 2024-03-13 16:08:27 +01:00 committed by GitHub
parent 929c646bba
commit 6b03a259aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 47 additions and 95 deletions

View file

@ -559,13 +559,18 @@ pub enum Expr {
/// ```sql
/// SUBSTRING(<expr> [FROM <expr>] [FOR <expr>])
/// ```
/// or
/// ```sql
/// SUBSTRING(<expr>, <expr>, <expr>)
/// ```
Substring {
expr: Box<Expr>,
substring_from: Option<Box<Expr>>,
substring_for: Option<Box<Expr>>,
// Some dialects use `SUBSTRING(expr [FROM start] [FOR len])` syntax while others omit FROM,
// FOR keywords (e.g. Microsoft SQL Server). This flags is used for formatting.
/// false if the expression is represented using the `SUBSTRING(expr [FROM start] [FOR len])` syntax
/// true if the expression is represented using the `SUBSTRING(expr, start, len)` syntax
/// This flag is used for formatting.
special: bool,
},
/// ```sql