pub struct Parser { /* private fields */ }Expand description
Recursive-descent SQL parser that converts a token stream into an AST.
The parser consumes a Vec<Token> produced by the Tokenizer
and builds a tree of Expression nodes. It supports the full SQL grammar
including SELECT, DML (INSERT/UPDATE/DELETE/MERGE), DDL (CREATE/ALTER/DROP),
window functions, CTEs, set operations, and 30+ dialect-specific extensions.
§Quick start
For most use cases the static helper Parser::parse_sql is the simplest entry point:
use polyglot_sql::parser::Parser;
let statements = Parser::parse_sql("SELECT 1; SELECT 2")?;
assert_eq!(statements.len(), 2);For dialect-aware parsing, use Parser::with_config or
Parser::parse_sql_with_config.
Implementations§
Source§impl Parser
impl Parser
Sourcepub fn new(tokens: Vec<Token>) -> Self
pub fn new(tokens: Vec<Token>) -> Self
Create a new parser from a pre-tokenized token stream with default configuration.
Prefer Parser::parse_sql if you are starting from a raw SQL string.
Sourcepub fn with_config(tokens: Vec<Token>, config: ParserConfig) -> Self
pub fn with_config(tokens: Vec<Token>, config: ParserConfig) -> Self
Create a parser from a pre-tokenized token stream with a custom ParserConfig.
Sourcepub fn with_source(
tokens: Vec<Token>,
config: ParserConfig,
source: String,
) -> Self
pub fn with_source( tokens: Vec<Token>, config: ParserConfig, source: String, ) -> Self
Create a parser with source SQL attached.
The original SQL text is stored so that Command expressions (unparsed
dialect-specific statements) can preserve the exact source verbatim.
Sourcepub fn parse_sql(sql: &str) -> Result<Vec<Expression>>
pub fn parse_sql(sql: &str) -> Result<Vec<Expression>>
Parse one or more SQL statements from a raw string.
This is the main entry point for most callers. It tokenizes the input with
the default TokenizerConfig, then parses all semicolon-separated
statements and returns them as a Vec<Expression>.
§Errors
Returns an error if the input contains invalid tokens or syntax that the parser cannot recognize.
§Example
let stmts = Parser::parse_sql("SELECT a FROM t WHERE x = 1")?;Sourcepub fn parse_sql_with_config(
sql: &str,
tokenizer_config: TokenizerConfig,
) -> Result<Vec<Expression>>
pub fn parse_sql_with_config( sql: &str, tokenizer_config: TokenizerConfig, ) -> Result<Vec<Expression>>
Parse SQL from a string using a custom TokenizerConfig.
Use this variant when the source dialect requires non-default tokenizer settings (e.g. different string quoting or comment syntax).
Sourcepub fn parse(&mut self) -> Result<Vec<Expression>>
pub fn parse(&mut self) -> Result<Vec<Expression>>
Parse all remaining statements from the token stream.
Consumes tokens until the end of input, splitting on semicolons.
Returns one Expression per statement.
Sourcepub fn parse_standalone_data_type(&mut self) -> Result<DataType>
pub fn parse_standalone_data_type(&mut self) -> Result<DataType>
Parse exactly one standalone data type from the token stream.
This entry point is intended for callers that need to parse native type
strings such as DECIMAL(10, 2) without wrapping them in a SQL statement
or CAST(...) expression.
Sourcepub fn parse_statement(&mut self) -> Result<Expression>
pub fn parse_statement(&mut self) -> Result<Expression>
Parse a single SQL statement from the current position in the token stream.
Dispatches to the appropriate sub-parser based on the leading keyword
(SELECT, INSERT, CREATE, etc.). Unknown or dialect-specific statements
fall through to a Command expression that preserves the raw SQL text.
Sourcepub fn parse_add_column(&mut self) -> Result<Option<Expression>>
pub fn parse_add_column(&mut self) -> Result<Option<Expression>>
parse_add_column - Implemented from Python _parse_add_column Calls: parse_column, parse_column_def_with_exists
Sourcepub fn parse_alias(&mut self) -> Result<Option<Expression>>
pub fn parse_alias(&mut self) -> Result<Option<Expression>>
parse_alias - Parses alias for an expression This method parses just the alias part (AS name or just name) Python: _parse_alias
Sourcepub fn parse_alias_with_expr(
&mut self,
this: Option<Expression>,
) -> Result<Option<Expression>>
pub fn parse_alias_with_expr( &mut self, this: Option<Expression>, ) -> Result<Option<Expression>>
parse_alias_with_expr - Wraps an expression with an alias if present
Sourcepub fn parse_alter_diststyle(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_diststyle(&mut self) -> Result<Option<Expression>>
parse_alter_diststyle - Implemented from Python _parse_alter_diststyle parse_alter_diststyle - Parses ALTER TABLE DISTSTYLE clause (Redshift) Python: parser.py:7797-7802
Sourcepub fn parse_alter_session(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_session(&mut self) -> Result<Option<Expression>>
parse_alter_session - Parses ALTER SESSION SET/UNSET statements Python: parser.py:7879-7889
Sourcepub fn parse_alter_sortkey(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_sortkey(&mut self) -> Result<Option<Expression>>
parse_alter_sortkey - Parses ALTER TABLE SORTKEY clause (Redshift) Python: parser.py:7804-7816
Sourcepub fn parse_alter_sortkey_impl(
&mut self,
compound: Option<bool>,
) -> Result<Option<Expression>>
pub fn parse_alter_sortkey_impl( &mut self, compound: Option<bool>, ) -> Result<Option<Expression>>
Implementation of parse_alter_sortkey with compound option
Sourcepub fn parse_alter_table_add(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_table_add(&mut self) -> Result<Option<Expression>>
parse_alter_table_add - Parses ALTER TABLE ADD clause Python: parser.py:7715-7751
Sourcepub fn parse_alter_table_alter(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_table_alter(&mut self) -> Result<Option<Expression>>
parse_alter_table_alter - Parses ALTER TABLE ALTER COLUMN clause Python: parser.py:7753-7795
Sourcepub fn parse_alter_table_drop(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_table_drop(&mut self) -> Result<Option<Expression>>
Parse ALTER TABLE DROP action Note: Main ALTER TABLE DROP logic is implemented inline in parse_alter_table This method provides a separate entry point for the same functionality
Sourcepub fn parse_alter_table_rename(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_table_rename(&mut self) -> Result<Option<Expression>>
parse_alter_table_rename - Parses ALTER TABLE RENAME clause Python: parser.py:7828-7841
Sourcepub fn parse_alter_table_set(&mut self) -> Result<Option<Expression>>
pub fn parse_alter_table_set(&mut self) -> Result<Option<Expression>>
parse_alter_table_set - Parses ALTER TABLE SET clause Python: parser.py:7843-7877
Sourcepub fn parse_analyze(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze(&mut self) -> Result<Option<Expression>>
parse_analyze - Implemented from Python _parse_analyze Calls: parse_table_parts, parse_number, parse_table parse_analyze - Parses ANALYZE statement Python: parser.py:7937-7999
Sourcepub fn parse_analyze_columns(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze_columns(&mut self) -> Result<Option<Expression>>
parse_analyze_columns - Parses ANALYZE … COLUMNS Python: parser.py:8055-8059 Note: AnalyzeColumns not in expressions.rs, using Identifier instead
Sourcepub fn parse_analyze_delete(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze_delete(&mut self) -> Result<Option<Expression>>
parse_analyze_delete - Parses ANALYZE DELETE STATISTICS Python: parser.py:8061-8065
Sourcepub fn parse_analyze_histogram(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze_histogram(&mut self) -> Result<Option<Expression>>
parse_analyze_histogram - Parses ANALYZE … HISTOGRAM ON Python: parser.py:8073-8108
Sourcepub fn parse_analyze_list(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze_list(&mut self) -> Result<Option<Expression>>
parse_analyze_list - Parses ANALYZE LIST CHAINED ROWS Python: parser.py:8067-8070
Sourcepub fn parse_analyze_statistics(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze_statistics(&mut self) -> Result<Option<Expression>>
parse_analyze_statistics - Parses ANALYZE … STATISTICS Python: parser.py:8002-8031
Sourcepub fn parse_analyze_validate(&mut self) -> Result<Option<Expression>>
pub fn parse_analyze_validate(&mut self) -> Result<Option<Expression>>
parse_analyze_validate - Parses ANALYZE VALIDATE Python: parser.py:8034-8053
Sourcepub fn parse_attach_detach(&mut self, is_attach: bool) -> Result<Expression>
pub fn parse_attach_detach(&mut self, is_attach: bool) -> Result<Expression>
parse_attach_detach - Parses ATTACH/DETACH statements (DuckDB) Python: DuckDB._parse_attach_detach
Sourcepub fn parse_install(&mut self, force: bool) -> Result<Expression>
pub fn parse_install(&mut self, force: bool) -> Result<Expression>
parse_install - Parses INSTALL statement (DuckDB) Python: DuckDB._parse_install
Sourcepub fn parse_force_statement(&mut self) -> Result<Expression>
pub fn parse_force_statement(&mut self) -> Result<Expression>
parse_force_statement - Parses FORCE INSTALL/CHECKPOINT (DuckDB) Python: DuckDB._parse_force
Sourcepub fn parse_summarize_statement(&mut self) -> Result<Expression>
pub fn parse_summarize_statement(&mut self) -> Result<Expression>
parse_summarize_statement - Parses SUMMARIZE statement (DuckDB) Python: DuckDB parser for SUMMARIZE
Sourcepub fn parse_deallocate_prepare(&mut self) -> Result<Expression>
pub fn parse_deallocate_prepare(&mut self) -> Result<Expression>
parse_deallocate_prepare - Parses DEALLOCATE PREPARE
Sourcepub fn parse_as_command(&mut self) -> Result<Option<Expression>>
pub fn parse_as_command(&mut self) -> Result<Option<Expression>>
parse_as_command - Creates Command expression parse_as_command - Parses remaining tokens as a raw command Python: _parse_as_command Used as fallback when specific parsing fails
Sourcepub fn parse_assignment(&mut self) -> Result<Option<Expression>>
pub fn parse_assignment(&mut self) -> Result<Option<Expression>>
parse_assignment - Parses assignment expressions (variable := value) Python: _parse_assignment
Sourcepub fn parse_auto_increment(&mut self) -> Result<Option<Expression>>
pub fn parse_auto_increment(&mut self) -> Result<Option<Expression>>
parse_auto_increment - Implemented from Python _parse_auto_increment Calls: parse_bitwise
Sourcepub fn parse_auto_property(&mut self) -> Result<Option<Expression>>
pub fn parse_auto_property(&mut self) -> Result<Option<Expression>>
parse_auto_property - Implemented from Python _parse_auto_property
Sourcepub fn parse_between(&mut self) -> Result<Option<Expression>>
pub fn parse_between(&mut self) -> Result<Option<Expression>>
parse_between - Implemented from Python _parse_between
Sourcepub fn parse_bitwise(&mut self) -> Result<Option<Expression>>
pub fn parse_bitwise(&mut self) -> Result<Option<Expression>>
parse_bitwise - Parses bitwise OR/XOR/AND expressions Python: _parse_bitwise Delegates to the existing parse_bitwise_or in the operator precedence chain
Sourcepub fn parse_blockcompression(&mut self) -> Result<Option<Expression>>
pub fn parse_blockcompression(&mut self) -> Result<Option<Expression>>
parse_blockcompression - Implemented from Python _parse_blockcompression
Sourcepub fn parse_boolean(&mut self) -> Result<Option<Expression>>
pub fn parse_boolean(&mut self) -> Result<Option<Expression>>
parse_boolean - Parse boolean literal (TRUE/FALSE) Python: if self._match(TokenType.TRUE): return exp.Boolean(this=True)
Sourcepub fn parse_bracket(&mut self) -> Result<Option<Expression>>
pub fn parse_bracket(&mut self) -> Result<Option<Expression>>
parse_bracket - Ported from Python _parse_bracket Parses bracket expressions: array[index], array literal [1,2,3], or struct {key: value}
Sourcepub fn parse_bracket_key_value(&mut self) -> Result<Option<Expression>>
pub fn parse_bracket_key_value(&mut self) -> Result<Option<Expression>>
parse_bracket_key_value - Ported from Python _parse_bracket_key_value Parses key-value pairs in brackets: key: value or key => value
Sourcepub fn parse_ceil_floor(&mut self) -> Result<Option<Expression>>
pub fn parse_ceil_floor(&mut self) -> Result<Option<Expression>>
parse_ceil_floor - Implemented from Python _parse_ceil_floor Calls: parse_lambda, parse_var
Sourcepub fn parse_changes(&mut self) -> Result<Option<Expression>>
pub fn parse_changes(&mut self) -> Result<Option<Expression>>
parse_changes - Implemented from Python _parse_changes Parses: CHANGES(INFORMATION => var) AT|BEFORE(…) END(…)
Sourcepub fn parse_char(&mut self) -> Result<Option<Expression>>
pub fn parse_char(&mut self) -> Result<Option<Expression>>
parse_char - Parses CHAR/CHR function with optional USING charset Python: CHAR(args…) [USING charset] MySQL: CHAR(n1, n2, … USING charset)
Sourcepub fn parse_character_set(&mut self) -> Result<Option<Expression>>
pub fn parse_character_set(&mut self) -> Result<Option<Expression>>
parse_character_set - Ported from Python _parse_character_set parse_character_set - Parses CHARACTER SET property Example: CHARACTER SET = utf8 or CHARACTER SET utf8mb4
Sourcepub fn parse_checksum(&mut self) -> Result<Option<Expression>>
pub fn parse_checksum(&mut self) -> Result<Option<Expression>>
parse_checksum - Implemented from Python _parse_checksum
Sourcepub fn parse_cluster(&mut self) -> Result<Option<Expression>>
pub fn parse_cluster(&mut self) -> Result<Option<Expression>>
parse_cluster - CLUSTER BY clause for Hive/Spark-style queries Parses a list of ordered expressions (columns with optional ASC/DESC)
Sourcepub fn parse_clustered_by(&mut self) -> Result<Option<Expression>>
pub fn parse_clustered_by(&mut self) -> Result<Option<Expression>>
parse_clustered_by - Implemented from Python _parse_clustered_by
Sourcepub fn parse_colon_as_variant_extract(
&mut self,
this: Expression,
) -> Result<Option<Expression>>
pub fn parse_colon_as_variant_extract( &mut self, this: Expression, ) -> Result<Option<Expression>>
Parse Snowflake colon JSON path extraction: data:field or data:field.subfield Python: def _parse_colon_as_variant_extract(self, this)
Sourcepub fn parse_column(&mut self) -> Result<Option<Expression>>
pub fn parse_column(&mut self) -> Result<Option<Expression>>
parse_column - Parse column expression Python: this = self._parse_column_reference(); return self._parse_column_ops(this)
Sourcepub fn parse_column_constraint(&mut self) -> Result<Option<Expression>>
pub fn parse_column_constraint(&mut self) -> Result<Option<Expression>>
parse_column_constraint - Ported from Python _parse_column_constraint Parses column-level constraints like NOT NULL, PRIMARY KEY, UNIQUE, DEFAULT, CHECK, etc.
Sourcepub fn parse_column_def_with_exists(&mut self) -> Result<Option<Expression>>
pub fn parse_column_def_with_exists(&mut self) -> Result<Option<Expression>>
parse_column_def_with_exists - Ported from Python _parse_column_def_with_exists Parses a column definition with optional IF [NOT] EXISTS clause
Sourcepub fn parse_column_ops(&mut self) -> Result<Option<Expression>>
pub fn parse_column_ops(&mut self) -> Result<Option<Expression>>
parse_column_ops - Parses column operations (stub for compatibility)
Sourcepub fn parse_column_ops_with_expr(
&mut self,
this: Option<Expression>,
) -> Result<Option<Expression>>
pub fn parse_column_ops_with_expr( &mut self, this: Option<Expression>, ) -> Result<Option<Expression>>
parse_column_ops_with_expr - Parses column operations (dot access, brackets, casts) Python: _parse_column_ops(this)
Sourcepub fn parse_column_reference(&mut self) -> Result<Option<Expression>>
pub fn parse_column_reference(&mut self) -> Result<Option<Expression>>
parse_column_reference - Parse column reference (field -> Column) Python: this = self._parse_field(); if isinstance(this, exp.Identifier): return exp.Column(this=this)
Sourcepub fn parse_command(&mut self) -> Result<Option<Expression>>
pub fn parse_command(&mut self) -> Result<Option<Expression>>
parse_command - Parses a generic SQL command Python: _parse_command Used for commands that we don’t have specific parsing for
Sourcepub fn parse_commit_or_rollback(&mut self) -> Result<Option<Expression>>
pub fn parse_commit_or_rollback(&mut self) -> Result<Option<Expression>>
parse_commit_or_rollback - Implemented from Python _parse_commit_or_rollback
Sourcepub fn parse_composite_key_property(&mut self) -> Result<Option<Expression>>
pub fn parse_composite_key_property(&mut self) -> Result<Option<Expression>>
parse_composite_key_property - Implemented from Python _parse_composite_key_property
Sourcepub fn parse_comprehension(
&mut self,
this: Option<Expression>,
) -> Result<Option<Expression>>
pub fn parse_comprehension( &mut self, this: Option<Expression>, ) -> Result<Option<Expression>>
parse_comprehension - Implemented from Python _parse_comprehension Parses list comprehension: expr FOR var [, position] IN iterator [IF condition]
Sourcepub fn parse_compress(&mut self) -> Result<Option<Expression>>
pub fn parse_compress(&mut self) -> Result<Option<Expression>>
parse_compress - Parses COMPRESS column constraint (Teradata) Python: _parse_compress Format: COMPRESS or COMPRESS (value1, value2, …)
Sourcepub fn parse_conjunction(&mut self) -> Result<Option<Expression>>
pub fn parse_conjunction(&mut self) -> Result<Option<Expression>>
parse_conjunction - Parses AND expressions Python: _parse_conjunction Delegates to the existing parse_and in the operator precedence chain
Sourcepub fn parse_connect_with_prior(&mut self) -> Result<Option<Expression>>
pub fn parse_connect_with_prior(&mut self) -> Result<Option<Expression>>
parse_connect_with_prior - Parses expression in CONNECT BY context with PRIOR support Python: _parse_connect_with_prior This method temporarily treats PRIOR as a prefix operator while parsing the expression
Sourcepub fn parse_constraint(&mut self) -> Result<Option<Expression>>
pub fn parse_constraint(&mut self) -> Result<Option<Expression>>
parse_constraint - Parses named or unnamed constraint Python: _parse_constraint
Sourcepub fn parse_unnamed_constraints(&mut self) -> Result<Vec<Expression>>
pub fn parse_unnamed_constraints(&mut self) -> Result<Vec<Expression>>
parse_unnamed_constraints - Parses multiple unnamed constraints Python: _parse_unnamed_constraints
Sourcepub fn parse_unnamed_constraint(&mut self) -> Result<Option<Expression>>
pub fn parse_unnamed_constraint(&mut self) -> Result<Option<Expression>>
parse_unnamed_constraint - Parses a single unnamed constraint Python: _parse_unnamed_constraint
Sourcepub fn parse_contains_property(&mut self) -> Result<Option<Expression>>
pub fn parse_contains_property(&mut self) -> Result<Option<Expression>>
parse_contains_property - Implemented from Python _parse_contains_property
Sourcepub fn parse_convert(&mut self) -> Result<Option<Expression>>
pub fn parse_convert(&mut self) -> Result<Option<Expression>>
parse_convert - Ported from Python _parse_convert Parses CONVERT function: CONVERT(expr USING charset) or CONVERT(expr, type)
Sourcepub fn parse_copy_parameters(&mut self) -> Result<Option<Expression>>
pub fn parse_copy_parameters(&mut self) -> Result<Option<Expression>>
parse_copy_parameters - Implemented from Python _parse_copy_parameters parse_copy_parameters - Parses COPY statement parameters Returns a tuple of CopyParameter expressions
Sourcepub fn parse_copy_property(&mut self) -> Result<Option<Expression>>
pub fn parse_copy_property(&mut self) -> Result<Option<Expression>>
parse_copy_property - Implemented from Python _parse_copy_property
Sourcepub fn parse_create_like(&mut self) -> Result<Option<Expression>>
pub fn parse_create_like(&mut self) -> Result<Option<Expression>>
parse_create_like - Implemented from Python _parse_create_like Calls: parse_id_var
Sourcepub fn parse_credentials(&mut self) -> Result<Option<Expression>>
pub fn parse_credentials(&mut self) -> Result<Option<Expression>>
parse_credentials - Implemented from Python _parse_credentials
Sourcepub fn parse_csv(&mut self) -> Result<Option<Expression>>
pub fn parse_csv(&mut self) -> Result<Option<Expression>>
parse_csv - Parses comma-separated expressions Python: _parse_csv In Python this takes a parse_method callback, but in Rust we use parse_expression_list
Sourcepub fn parse_cte(&mut self) -> Result<Option<Expression>>
pub fn parse_cte(&mut self) -> Result<Option<Expression>>
parse_cte - Implemented from Python _parse_cte Calls: parse_wrapped_id_vars
Sourcepub fn parse_cube_or_rollup(&mut self) -> Result<Option<Expression>>
pub fn parse_cube_or_rollup(&mut self) -> Result<Option<Expression>>
parse_cube_or_rollup - Ported from Python _parse_cube_or_rollup Parses CUBE(…) or ROLLUP(…) expressions in GROUP BY
Sourcepub fn parse_data_deletion_property(&mut self) -> Result<Option<Expression>>
pub fn parse_data_deletion_property(&mut self) -> Result<Option<Expression>>
parse_data_deletion_property - Implemented from Python _parse_data_deletion_property Calls: parse_column, parse_retention_period
Sourcepub fn parse_datablocksize(&mut self) -> Result<Option<Expression>>
pub fn parse_datablocksize(&mut self) -> Result<Option<Expression>>
parse_datablocksize - Implemented from Python _parse_datablocksize Calls: parse_number
Sourcepub fn parse_dcolon(&mut self) -> Result<Option<Expression>>
pub fn parse_dcolon(&mut self) -> Result<Option<Expression>>
parse_dcolon - Delegates to parse_types
Sourcepub fn parse_ddl_select(&mut self) -> Result<Option<Expression>>
pub fn parse_ddl_select(&mut self) -> Result<Option<Expression>>
parse_ddl_select - Ported from Python _parse_ddl_select Parses a SELECT statement in DDL context (CREATE TABLE AS SELECT, INSERT INTO … SELECT)
Sourcepub fn parse_for_in(&mut self) -> Result<Expression>
pub fn parse_for_in(&mut self) -> Result<Expression>
parse_for_in - BigQuery procedural FOR…IN…DO loop Python: BigQuery._parse_for_in Format: FOR variable IN (query) DO statement(s) END FOR Example: FOR record IN (SELECT * FROM t) DO SELECT record.col
Sourcepub fn parse_declare(&mut self) -> Result<Option<Expression>>
pub fn parse_declare(&mut self) -> Result<Option<Expression>>
parse_declare - Parses DECLARE statement Python: _parse_declare Format: DECLARE var1 type [DEFAULT expr], var2 type [DEFAULT expr], …
Sourcepub fn parse_declareitem(&mut self) -> Result<Option<Expression>>
pub fn parse_declareitem(&mut self) -> Result<Option<Expression>>
parse_declareitem - Parse a DECLARE item (variable declaration) TSQL format: @var AS type [= expr] or @var type [= expr] Also handles: DECLARE name CURSOR FOR SELECT … Also handles: DECLARE @var TABLE (col_defs)
Sourcepub fn parse_decode(&mut self) -> Result<Option<Expression>>
pub fn parse_decode(&mut self) -> Result<Option<Expression>>
parse_decode - Ported from Python _parse_decode Parses Oracle-style DECODE or simple DECODE function If 3+ args: Oracle DECODE(expr, search1, result1, …, default) If 2 args: character set decode (expr, charset)
Sourcepub fn parse_definer(&mut self) -> Result<Option<Expression>>
pub fn parse_definer(&mut self) -> Result<Option<Expression>>
parse_definer - MySQL DEFINER property Parses: DEFINER = user@host
Sourcepub fn parse_derived_table_values(&mut self) -> Result<Option<Expression>>
pub fn parse_derived_table_values(&mut self) -> Result<Option<Expression>>
parse_derived_table_values - Implemented from Python _parse_derived_table_values
Sourcepub fn parse_dict_property(
&mut self,
property_name: &str,
) -> Result<Option<Expression>>
pub fn parse_dict_property( &mut self, property_name: &str, ) -> Result<Option<Expression>>
parse_dict_property - ClickHouse dictionary property Parses: property_name(kind(key1 value1, key2 value2, …)) property_name should be the already matched property keyword (LAYOUT, SOURCE, etc.)
Sourcepub fn parse_dict_range(
&mut self,
property_name: &str,
) -> Result<Option<Expression>>
pub fn parse_dict_range( &mut self, property_name: &str, ) -> Result<Option<Expression>>
parse_dict_range - Implemented from Python _parse_dict_range Parses dictionary range specification: (MIN min_val MAX max_val) or (max_val)
Sourcepub fn parse_disjunction(&mut self) -> Result<Option<Expression>>
pub fn parse_disjunction(&mut self) -> Result<Option<Expression>>
parse_disjunction - Parses OR expressions Python: _parse_disjunction Delegates to the existing parse_or in the operator precedence chain
Sourcepub fn parse_distkey(&mut self) -> Result<Option<Expression>>
pub fn parse_distkey(&mut self) -> Result<Option<Expression>>
parse_distkey - Redshift DISTKEY property for distribution key Parses: DISTKEY(column_name)
Sourcepub fn parse_distributed_property(&mut self) -> Result<Option<Expression>>
pub fn parse_distributed_property(&mut self) -> Result<Option<Expression>>
parse_distributed_property - Implemented from Python _parse_distributed_property parse_distributed_property - Parses DISTRIBUTED BY property Python: parser.py:2462-2481
Sourcepub fn parse_drop_column(&mut self) -> Result<Option<Expression>>
pub fn parse_drop_column(&mut self) -> Result<Option<Expression>>
Parse DROP COLUMN in ALTER TABLE Note: Main ALTER TABLE DROP COLUMN logic is in parse_alter_table -> AlterTableAction::DropColumn
Sourcepub fn parse_drop_partition(&mut self) -> Result<Option<Expression>>
pub fn parse_drop_partition(&mut self) -> Result<Option<Expression>>
Parse DROP PARTITION in ALTER TABLE Note: Main ALTER TABLE DROP PARTITION logic is in parse_alter_table -> AlterTableAction::DropPartition
Sourcepub fn parse_drop_partition_with_exists(
&mut self,
exists: bool,
) -> Result<Option<Expression>>
pub fn parse_drop_partition_with_exists( &mut self, exists: bool, ) -> Result<Option<Expression>>
Parse DROP PARTITION with exists flag
Sourcepub fn parse_equality(&mut self) -> Result<Option<Expression>>
pub fn parse_equality(&mut self) -> Result<Option<Expression>>
parse_equality - Parses comparison/equality expressions (= <> < > <= >=) Python: _parse_equality Delegates to the existing parse_comparison in the operator precedence chain
Sourcepub fn parse_escape(&mut self) -> Result<Option<Expression>>
pub fn parse_escape(&mut self) -> Result<Option<Expression>>
parse_escape - Parses ESCAPE clause for LIKE patterns Python: _parse_escape Returns the escape character/expression if ESCAPE keyword is found
Sourcepub fn parse_exists(&mut self) -> Result<Option<Expression>>
pub fn parse_exists(&mut self) -> Result<Option<Expression>>
parse_exists - Implemented from Python _parse_exists
Sourcepub fn parse_exponent(&mut self) -> Result<Option<Expression>>
pub fn parse_exponent(&mut self) -> Result<Option<Expression>>
parse_exponent - Parses exponent/power expressions Python: _parse_exponent In most dialects, EXPONENT is empty, so this delegates to parse_unary
Sourcepub fn parse_expressions(&mut self) -> Result<Option<Expression>>
pub fn parse_expressions(&mut self) -> Result<Option<Expression>>
parse_expressions - Parse comma-separated expressions Returns a Tuple containing all expressions, or None if empty
Sourcepub fn parse_extract(&mut self) -> Result<Option<Expression>>
pub fn parse_extract(&mut self) -> Result<Option<Expression>>
parse_extract - Ported from Python _parse_extract Parses EXTRACT(field FROM expression) function
Sourcepub fn parse_factor(&mut self) -> Result<Option<Expression>>
pub fn parse_factor(&mut self) -> Result<Option<Expression>>
parse_factor - Parses multiplication/division expressions (* / % operators) Python: _parse_factor Delegates to the existing parse_multiplication in the operator precedence chain
Sourcepub fn parse_fallback(&mut self) -> Result<Option<Expression>>
pub fn parse_fallback(&mut self) -> Result<Option<Expression>>
parse_fallback - Implemented from Python _parse_fallback
Sourcepub fn parse_field(&mut self) -> Result<Option<Expression>>
pub fn parse_field(&mut self) -> Result<Option<Expression>>
parse_field - Parse a field (column name, literal, or expression) Python: field = self._parse_primary() or self._parse_function() or self._parse_id_var()
Sourcepub fn parse_field_def(&mut self) -> Result<Option<Expression>>
pub fn parse_field_def(&mut self) -> Result<Option<Expression>>
parse_field_def - Ported from Python _parse_field_def Parses a field definition (column name + type + optional constraints)
Sourcepub fn parse_foreign_key(&mut self) -> Result<Option<Expression>>
pub fn parse_foreign_key(&mut self) -> Result<Option<Expression>>
parse_foreign_key - Implemented from Python _parse_foreign_key Calls: parse_key_constraint_options, parse_wrapped_id_vars, parse_references
Sourcepub fn parse_format_json(&mut self) -> Result<Option<Expression>>
pub fn parse_format_json(&mut self) -> Result<Option<Expression>>
parse_format_json - Implemented from Python _parse_format_json
Sourcepub fn parse_format_name(&mut self) -> Result<Option<Expression>>
pub fn parse_format_name(&mut self) -> Result<Option<Expression>>
parse_format_name - Snowflake FILE_FORMAT = format_name property Parses: format_name (string or identifier)
Sourcepub fn parse_freespace(&mut self) -> Result<Option<Expression>>
pub fn parse_freespace(&mut self) -> Result<Option<Expression>>
parse_freespace - Teradata FREESPACE property Parses: FREESPACE = number [PERCENT]
Sourcepub fn parse_function(&mut self) -> Result<Option<Expression>>
pub fn parse_function(&mut self) -> Result<Option<Expression>>
parse_function - Ported from Python _parse_function Parses function calls like func_name(args) or {fn func_name(args)} (ODBC syntax)
Sourcepub fn parse_function_args_list(&mut self) -> Result<Vec<Expression>>
pub fn parse_function_args_list(&mut self) -> Result<Vec<Expression>>
parse_function_args - Ported from Python _parse_function_args Parses the arguments inside a function call, handling aliases and key-value pairs
Sourcepub fn parse_function_call(&mut self) -> Result<Option<Expression>>
pub fn parse_function_call(&mut self) -> Result<Option<Expression>>
parse_function_call - Ported from Python _parse_function_call Parses a function call expression like func_name(arg1, arg2, …)
Sourcepub fn parse_function_parameter(&mut self) -> Result<Option<Expression>>
pub fn parse_function_parameter(&mut self) -> Result<Option<Expression>>
parse_function_parameter - Ported from Python _parse_function_parameter Parses a function parameter in CREATE FUNCTION (name type [DEFAULT expr])
Sourcepub fn parse_gap_fill(&mut self) -> Result<Option<Expression>>
pub fn parse_gap_fill(&mut self) -> Result<Option<Expression>>
parse_gap_fill - Ported from Python _parse_gap_fill parse_gap_fill - Parses GAP_FILL function for time series Example: GAP_FILL(TABLE t, ts_column, bucket_width, partitioning_columns, value_columns)
Sourcepub fn parse_semantic_view(&mut self) -> Result<Expression>
pub fn parse_semantic_view(&mut self) -> Result<Expression>
parse_semantic_view - Parse Snowflake SEMANTIC_VIEW function Example: SEMANTIC_VIEW(foo METRICS a.b, a.c DIMENSIONS a.b, a.c WHERE a.b > ‘1995-01-01’)
Sourcepub fn parse_grant_principal(&mut self) -> Result<Option<Expression>>
pub fn parse_grant_principal(&mut self) -> Result<Option<Expression>>
parse_grant_principal - Implemented from Python _parse_grant_principal Calls: parse_id_var
Sourcepub fn parse_grant_privilege(&mut self) -> Result<Option<Expression>>
pub fn parse_grant_privilege(&mut self) -> Result<Option<Expression>>
parse_grant_privilege - Parse a single privilege in GRANT/REVOKE Parses: SELECT, INSERT, UPDATE(col1, col2), DELETE, etc.
Sourcepub fn parse_grant_revoke_common(&mut self) -> Result<Option<Expression>>
pub fn parse_grant_revoke_common(&mut self) -> Result<Option<Expression>>
parse_grant_revoke_common - Parses common parts of GRANT/REVOKE statements Python: _parse_grant_revoke_common Returns a Tuple containing (privileges, kind, securable)
Sourcepub fn parse_group(&mut self) -> Result<Option<Expression>>
pub fn parse_group(&mut self) -> Result<Option<Expression>>
parse_group - Parse GROUP BY clause Python: if not self._match(TokenType.GROUP_BY): return None; expressions = self._parse_csv(self._parse_disjunction)
Sourcepub fn parse_group_concat(&mut self) -> Result<Option<Expression>>
pub fn parse_group_concat(&mut self) -> Result<Option<Expression>>
parse_group_concat - Ported from Python _parse_group_concat parse_group_concat - Parses MySQL GROUP_CONCAT function Example: GROUP_CONCAT(DISTINCT col ORDER BY col SEPARATOR ‘,’)
Sourcepub fn parse_grouping_set(&mut self) -> Result<Option<Expression>>
pub fn parse_grouping_set(&mut self) -> Result<Option<Expression>>
parse_grouping_set - Delegates to parse_grouping_sets
Sourcepub fn parse_grouping_sets(&mut self) -> Result<Option<Expression>>
pub fn parse_grouping_sets(&mut self) -> Result<Option<Expression>>
parse_grouping_sets - Ported from Python _parse_grouping_sets Parses GROUPING SETS ((…), (…)) in GROUP BY
Sourcepub fn parse_having(&mut self) -> Result<Option<Expression>>
pub fn parse_having(&mut self) -> Result<Option<Expression>>
parse_having - Parse HAVING clause Python: if not self._match(TokenType.HAVING): return None; return exp.Having(this=self._parse_disjunction())
Sourcepub fn parse_having_max(&mut self) -> Result<Option<Expression>>
pub fn parse_having_max(&mut self) -> Result<Option<Expression>>
parse_having_max - Implemented from Python _parse_having_max Calls: parse_column
Sourcepub fn parse_heredoc(&mut self) -> Result<Option<Expression>>
pub fn parse_heredoc(&mut self) -> Result<Option<Expression>>
parse_heredoc - Implemented from Python _parse_heredoc Parses dollar-quoted strings: $$content$$, $tag$content$tag$
Sourcepub fn parse_hint_body(&mut self) -> Result<Option<Expression>>
pub fn parse_hint_body(&mut self) -> Result<Option<Expression>>
parse_hint_body - Delegates to parse_hint_fallback_to_string
Sourcepub fn parse_hint_fallback_to_string(&mut self) -> Result<Option<Expression>>
pub fn parse_hint_fallback_to_string(&mut self) -> Result<Option<Expression>>
parse_hint_fallback_to_string - Parses remaining hint tokens as a raw string Python: _parse_hint_fallback_to_string Used when structured hint parsing fails - collects all remaining tokens
Sourcepub fn parse_hint_function_call(&mut self) -> Result<Option<Expression>>
pub fn parse_hint_function_call(&mut self) -> Result<Option<Expression>>
parse_hint_function_call - Delegates to parse_function_call
Sourcepub fn parse_historical_data(&mut self) -> Result<Option<Expression>>
pub fn parse_historical_data(&mut self) -> Result<Option<Expression>>
parse_historical_data - Snowflake AT/BEFORE time travel clauses Parses: AT(TIMESTAMP => expr) or BEFORE(STATEMENT => ‘id’) etc. Reference: https://docs.snowflake.com/en/sql-reference/constructs/at-before
Sourcepub fn parse_id_var(&mut self) -> Result<Option<Expression>>
pub fn parse_id_var(&mut self) -> Result<Option<Expression>>
parse_id_var - Ported from Python _parse_id_var Parses an identifier or variable (more permissive than parse_identifier)
Sourcepub fn parse_identifier(&mut self) -> Result<Option<Expression>>
pub fn parse_identifier(&mut self) -> Result<Option<Expression>>
parse_identifier - Parse quoted identifier Python: if self._match(TokenType.IDENTIFIER): return self._identifier_expression(quoted=True)
Sourcepub fn parse_if(&mut self) -> Result<Option<Expression>>
pub fn parse_if(&mut self) -> Result<Option<Expression>>
Parse IF expression IF(condition, true_value, false_value) - function style IF condition THEN true_value ELSE false_value END - statement style
Sourcepub fn parse_in(&mut self) -> Result<Option<Expression>>
pub fn parse_in(&mut self) -> Result<Option<Expression>>
parse_in - Ported from Python _parse_in Parses IN expression: expr IN (values…) or expr IN (subquery) Can also parse standalone IN list after IN keyword has been matched
Sourcepub fn parse_index(&mut self) -> Result<Option<Expression>>
pub fn parse_index(&mut self) -> Result<Option<Expression>>
parse_index - Implemented from Python _parse_index Calls: parse_index_params, parse_id_var
Sourcepub fn parse_index_params(&mut self) -> Result<Option<Expression>>
pub fn parse_index_params(&mut self) -> Result<Option<Expression>>
parse_index_params - Implemented from Python _parse_index_params Calls: parse_where, parse_wrapped_properties, parse_wrapped_id_vars
Sourcepub fn parse_initcap(&mut self) -> Result<Option<Expression>>
pub fn parse_initcap(&mut self) -> Result<Option<Expression>>
parse_initcap - Ported from Python _parse_initcap parse_initcap - Parses INITCAP function Example: INITCAP(str) or INITCAP(str, delimiter)
Sourcepub fn parse_inline(&mut self) -> Result<Option<Expression>>
pub fn parse_inline(&mut self) -> Result<Option<Expression>>
parse_inline - Implemented from Python _parse_inline
Sourcepub fn parse_insert_table(&mut self) -> Result<Option<Expression>>
pub fn parse_insert_table(&mut self) -> Result<Option<Expression>>
parse_insert_table - Parse table reference for INSERT statement Parses: table_name [schema] [partition] [alias] This method is a simple wrapper around parse_table for INSERT context
Sourcepub fn parse_interpolate(&mut self) -> Result<Option<Expression>>
pub fn parse_interpolate(&mut self) -> Result<Option<Expression>>
parse_interpolate - Implemented from Python _parse_interpolate Parses INTERPOLATE clause for ClickHouse ORDER BY WITH FILL
Sourcepub fn parse_interval(&mut self) -> Result<Option<Expression>>
pub fn parse_interval(&mut self) -> Result<Option<Expression>>
parse_interval - Creates Interval expression Parses INTERVAL expressions: INTERVAL ‘1 day’, INTERVAL 1 MONTH, etc.
Sourcepub fn parse_interval_span(&mut self) -> Result<Option<Expression>>
pub fn parse_interval_span(&mut self) -> Result<Option<Expression>>
parse_interval_span - Implemented from Python _parse_interval_span Calls: parse_function
Sourcepub fn parse_into(&mut self) -> Result<Option<Expression>>
pub fn parse_into(&mut self) -> Result<Option<Expression>>
parse_into - Implemented from Python _parse_into Parses: INTO [TEMPORARY] [UNLOGGED] [TABLE] table_name Returns the table expression for the INTO clause
Sourcepub fn parse_introducer(&mut self) -> Result<Option<Expression>>
pub fn parse_introducer(&mut self) -> Result<Option<Expression>>
parse_introducer - Parses MySQL introducer expression (_charset’string’) Python: _parse_introducer Format: _charset ‘literal’
Sourcepub fn parse_is(&mut self) -> Result<Option<Expression>>
pub fn parse_is(&mut self) -> Result<Option<Expression>>
parse_is - Implemented from Python _parse_is Calls: parse_null, parse_bitwise
Sourcepub fn parse_join(&mut self) -> Result<Option<Expression>>
pub fn parse_join(&mut self) -> Result<Option<Expression>>
parse_join - Ported from Python _parse_join Parses a single JOIN clause: [method] [side] [kind] JOIN table [ON condition | USING (columns)] Returns the Join wrapped in an Expression, or None if no join is found
Sourcepub fn parse_join_hint(&mut self, hint_name: &str) -> Result<Option<Expression>>
pub fn parse_join_hint(&mut self, hint_name: &str) -> Result<Option<Expression>>
parse_join_hint - Spark/Hive join hints (BROADCAST, MERGE, SHUFFLE_HASH, etc.) Parses: HINT_NAME(table1, table2, …) hint_name should be the already matched hint keyword (BROADCAST, MAPJOIN, etc.)
Sourcepub fn parse_join_parts(
&mut self,
) -> (Option<String>, Option<String>, Option<String>)
pub fn parse_join_parts( &mut self, ) -> (Option<String>, Option<String>, Option<String>)
parse_join_parts - Ported from Python _parse_join_parts Returns (method, side, kind) where each is an optional string method: ASOF, NATURAL, POSITIONAL side: LEFT, RIGHT, FULL kind: ANTI, CROSS, INNER, OUTER, SEMI
Sourcepub fn parse_journal(&mut self) -> Result<Option<Expression>>
pub fn parse_journal(&mut self) -> Result<Option<Expression>>
parse_journal - Parses JOURNAL property (Teradata) Python: _parse_journal Creates a JournalProperty expression
Sourcepub fn parse_journal_impl(
&mut self,
no: bool,
dual: bool,
before: bool,
local: bool,
after: bool,
) -> Result<Option<Expression>>
pub fn parse_journal_impl( &mut self, no: bool, dual: bool, before: bool, local: bool, after: bool, ) -> Result<Option<Expression>>
Implementation of parse_journal with options
Sourcepub fn parse_json_column_def(&mut self) -> Result<Option<Expression>>
pub fn parse_json_column_def(&mut self) -> Result<Option<Expression>>
parse_json_column_def - Implemented from Python _parse_json_column_def Calls: parse_string, parse_json_schema, parse_id_var
Sourcepub fn parse_json_key_value(&mut self) -> Result<Option<Expression>>
pub fn parse_json_key_value(&mut self) -> Result<Option<Expression>>
parse_json_key_value - Implemented from Python _parse_json_key_value parse_json_key_value - Parses a JSON key-value pair Python: _parse_json_key_value Format: [KEY] key [: | VALUE] value
Sourcepub fn parse_json_object(&mut self) -> Result<Option<Expression>>
pub fn parse_json_object(&mut self) -> Result<Option<Expression>>
parse_json_object - Parses JSON_OBJECT function Python: _parse_json_object Handles both JSON_OBJECT and JSON_OBJECTAGG
Sourcepub fn parse_json_object_impl(
&mut self,
agg: bool,
) -> Result<Option<Expression>>
pub fn parse_json_object_impl( &mut self, agg: bool, ) -> Result<Option<Expression>>
Implementation of JSON object parsing with aggregate flag
Sourcepub fn parse_json_schema(&mut self) -> Result<Option<Expression>>
pub fn parse_json_schema(&mut self) -> Result<Option<Expression>>
parse_json_schema - Implemented from Python _parse_json_schema
Sourcepub fn parse_json_table_columns(&mut self) -> Result<Option<Expression>>
pub fn parse_json_table_columns(&mut self) -> Result<Option<Expression>>
Parse JSON_TABLE COLUMNS clause: COLUMNS (column_def, column_def, …) or COLUMNS column_def Column definitions can be:
- name type PATH ‘json_path’
- name FOR ORDINALITY
- NESTED [PATH] ‘json_path’ COLUMNS (…)
Sourcepub fn parse_json_table_column_def(&mut self) -> Result<Option<Expression>>
pub fn parse_json_table_column_def(&mut self) -> Result<Option<Expression>>
Parse a single JSON_TABLE column definition Formats:
- name [FOR ORDINALITY] [type] [PATH ‘path’]
- NESTED [PATH] ‘path’ COLUMNS (…)
Sourcepub fn parse_json_table(&mut self) -> Result<Option<Expression>>
pub fn parse_json_table(&mut self) -> Result<Option<Expression>>
Parse JSON_TABLE function JSON_TABLE(expr, path COLUMNS (…)) [ON ERROR …] [ON EMPTY …]
Sourcepub fn parse_json_value(&mut self) -> Result<Option<Expression>>
pub fn parse_json_value(&mut self) -> Result<Option<Expression>>
parse_json_value - Ported from Python _parse_json_value parse_json_value - Parses JSON_VALUE function Example: JSON_VALUE(json, ‘$.path’ RETURNING type)
Sourcepub fn parse_key_constraint_options(&mut self) -> Result<Option<Expression>>
pub fn parse_key_constraint_options(&mut self) -> Result<Option<Expression>>
parse_key_constraint_options - Implemented from Python _parse_key_constraint_options
Sourcepub fn parse_lambda(&mut self) -> Result<Option<Expression>>
pub fn parse_lambda(&mut self) -> Result<Option<Expression>>
parse_lambda - Ported from Python _parse_lambda Parses lambda expressions: x -> x + 1 or (x, y) -> x + y Also supports DuckDB syntax: LAMBDA x : x + 1
Sourcepub fn parse_lambda_arg(&mut self) -> Result<Option<Expression>>
pub fn parse_lambda_arg(&mut self) -> Result<Option<Expression>>
parse_lambda_arg - Delegates to parse_id_var
Sourcepub fn parse_lateral(&mut self) -> Result<Option<Expression>>
pub fn parse_lateral(&mut self) -> Result<Option<Expression>>
parse_lateral - Parse LATERAL subquery or table function Python: if self._match(TokenType.LATERAL): return exp.Lateral(this=…, view=…, outer=…)
Sourcepub fn parse_limit(&mut self) -> Result<Option<Expression>>
pub fn parse_limit(&mut self) -> Result<Option<Expression>>
parse_limit - Parse LIMIT clause Python: if self._match(TokenType.LIMIT): return exp.Limit(this=self._parse_term())
Sourcepub fn parse_limit_by(&mut self) -> Result<Option<Expression>>
pub fn parse_limit_by(&mut self) -> Result<Option<Expression>>
parse_limit_by - Implemented from Python _parse_limit_by
Sourcepub fn parse_limit_options(&mut self) -> Result<Option<Expression>>
pub fn parse_limit_options(&mut self) -> Result<Option<Expression>>
parse_limit_options - Implemented from Python _parse_limit_options
Sourcepub fn parse_load(&mut self) -> Result<Option<Expression>>
pub fn parse_load(&mut self) -> Result<Option<Expression>>
parse_load - Implemented from Python _parse_load
Sourcepub fn parse_locking(&mut self) -> Result<Option<Expression>>
pub fn parse_locking(&mut self) -> Result<Option<Expression>>
parse_locking - Implemented from Python _parse_locking Calls: parse_table_parts
Sourcepub fn parse_log(&mut self) -> Result<Option<Expression>>
pub fn parse_log(&mut self) -> Result<Option<Expression>>
parse_log - Parses LOG property (Teradata) Python: _parse_log Creates a LogProperty expression
Sourcepub fn parse_log_impl(&mut self, no: bool) -> Result<Option<Expression>>
pub fn parse_log_impl(&mut self, no: bool) -> Result<Option<Expression>>
Implementation of parse_log with no flag
Sourcepub fn parse_match_against(&mut self) -> Result<Option<Expression>>
pub fn parse_match_against(&mut self) -> Result<Option<Expression>>
parse_match_against - Parses MATCH(columns) AGAINST(pattern) Python: parser.py:7125-7153
Sourcepub fn parse_match_recognize_measure(&mut self) -> Result<Option<Expression>>
pub fn parse_match_recognize_measure(&mut self) -> Result<Option<Expression>>
parse_match_recognize_measure - Implemented from Python _parse_match_recognize_measure Parses a MEASURES expression in MATCH_RECOGNIZE: [FINAL|RUNNING] expression
Sourcepub fn parse_max_min_by(&mut self, is_max: bool) -> Result<Option<Expression>>
pub fn parse_max_min_by(&mut self, is_max: bool) -> Result<Option<Expression>>
parse_max_min_by - MAX_BY / MIN_BY / ARG_MAX / ARG_MIN aggregate functions Parses: MAX_BY(value, key [, n]) or MIN_BY(value, key [, n]) is_max: true for MAX_BY/ARG_MAX, false for MIN_BY/ARG_MIN
Sourcepub fn parse_merge(&mut self) -> Result<Option<Expression>>
pub fn parse_merge(&mut self) -> Result<Option<Expression>>
Parse MERGE statement Python: def _parse_merge(self) -> exp.Merge
Sourcepub fn parse_mergeblockratio(&mut self) -> Result<Option<Expression>>
pub fn parse_mergeblockratio(&mut self) -> Result<Option<Expression>>
parse_mergeblockratio - Parses MERGEBLOCKRATIO property (Teradata) Python: _parse_mergeblockratio Format: MERGEBLOCKRATIO = number [PERCENT] or NO MERGEBLOCKRATIO or DEFAULT MERGEBLOCKRATIO
Sourcepub fn parse_mergeblockratio_impl(
&mut self,
no: bool,
default: bool,
) -> Result<Option<Expression>>
pub fn parse_mergeblockratio_impl( &mut self, no: bool, default: bool, ) -> Result<Option<Expression>>
Implementation of parse_mergeblockratio with options
Sourcepub fn parse_modifies_property(&mut self) -> Result<Option<Expression>>
pub fn parse_modifies_property(&mut self) -> Result<Option<Expression>>
parse_modifies_property - Implemented from Python _parse_modifies_property
Sourcepub fn parse_multitable_inserts(
&mut self,
leading_comments: Vec<String>,
overwrite: bool,
) -> Result<Option<Expression>>
pub fn parse_multitable_inserts( &mut self, leading_comments: Vec<String>, overwrite: bool, ) -> Result<Option<Expression>>
parse_multitable_inserts - Parses Oracle’s multi-table INSERT (INSERT ALL/FIRST) Python: _parse_multitable_inserts Syntax: INSERT ALL|FIRST [WHEN cond THEN] INTO table [(cols)] [VALUES(…)] … SELECT …
Sourcepub fn parse_name_as_expression(&mut self) -> Result<Option<Expression>>
pub fn parse_name_as_expression(&mut self) -> Result<Option<Expression>>
parse_name_as_expression - Parse identifier that can be aliased Parses: identifier [AS expression]
Sourcepub fn parse_named_window(&mut self) -> Result<Option<Expression>>
pub fn parse_named_window(&mut self) -> Result<Option<Expression>>
parse_named_window - Ported from Python _parse_named_window Parses a named window definition: name AS (spec)
Sourcepub fn parse_next_value_for(&mut self) -> Result<Option<Expression>>
pub fn parse_next_value_for(&mut self) -> Result<Option<Expression>>
parse_next_value_for - Parses NEXT VALUE FOR sequence_name Python: parser.py:6752-6761
Sourcepub fn parse_no_property(&mut self) -> Result<Option<Expression>>
pub fn parse_no_property(&mut self) -> Result<Option<Expression>>
parse_no_property - Implemented from Python _parse_no_property
Sourcepub fn parse_normalize(&mut self) -> Result<Option<Expression>>
pub fn parse_normalize(&mut self) -> Result<Option<Expression>>
parse_normalize - Ported from Python _parse_normalize parse_normalize - Parses NORMALIZE(expr [, form]) Python: NORMALIZE(expr, form) where form is NFC/NFD/NFKC/NFKD
Sourcepub fn parse_not_constraint(&mut self) -> Result<Option<Expression>>
pub fn parse_not_constraint(&mut self) -> Result<Option<Expression>>
parse_not_constraint - Implemented from Python _parse_not_constraint Parses constraints that start with NOT: NOT NULL, NOT CASESPECIFIC
Sourcepub fn parse_null(&mut self) -> Result<Option<Expression>>
pub fn parse_null(&mut self) -> Result<Option<Expression>>
parse_null - Parse NULL literal Python: if self._match_set((TokenType.NULL, TokenType.UNKNOWN)): return exp.Null
Sourcepub fn parse_number(&mut self) -> Result<Option<Expression>>
pub fn parse_number(&mut self) -> Result<Option<Expression>>
parse_number - Parse numeric literal Python: TokenType.NUMBER -> exp.Literal(this=token.text, is_string=False) Handles Hive/Spark numeric suffixes encoded as “number::TYPE” by the tokenizer
Sourcepub fn parse_odbc_datetime_literal(&mut self) -> Result<Option<Expression>>
pub fn parse_odbc_datetime_literal(&mut self) -> Result<Option<Expression>>
parse_odbc_datetime_literal - Ported from Python _parse_odbc_datetime_literal parse_odbc_datetime_literal - Parses ODBC datetime literals Examples: {d’2023-01-01’}, {t’12:00:00’}, {ts’2023-01-01 12:00:00’}
Sourcepub fn parse_offset(&mut self) -> Result<Option<Expression>>
pub fn parse_offset(&mut self) -> Result<Option<Expression>>
parse_offset - Parse OFFSET clause Python: if self._match(TokenType.OFFSET): return exp.Offset(this=self._parse_term())
Sourcepub fn parse_on_condition(&mut self) -> Result<Option<Expression>>
pub fn parse_on_condition(&mut self) -> Result<Option<Expression>>
parse_on_condition - Ported from Python _parse_on_condition parse_on_condition - Parses ON EMPTY/ERROR/NULL conditions Example: NULL ON EMPTY, ERROR ON ERROR
Sourcepub fn parse_on_handling(&mut self) -> Result<Option<Expression>>
pub fn parse_on_handling(&mut self) -> Result<Option<Expression>>
parse_on_handling - Implemented from Python _parse_on_handling Calls: parse_bitwise
Sourcepub fn parse_on_property(&mut self) -> Result<Option<Expression>>
pub fn parse_on_property(&mut self) -> Result<Option<Expression>>
parse_on_property - Implemented from Python _parse_on_property
Sourcepub fn parse_opclass(&mut self) -> Result<Option<Expression>>
pub fn parse_opclass(&mut self) -> Result<Option<Expression>>
parse_opclass - Ported from Python _parse_opclass parse_opclass - Parses PostgreSQL operator class in index expressions Example: column_name text_pattern_ops
Sourcepub fn parse_open_json(&mut self) -> Result<Option<Expression>>
pub fn parse_open_json(&mut self) -> Result<Option<Expression>>
parse_open_json - Parses SQL Server OPENJSON function Example: OPENJSON(json, ‘$.path’) WITH (col1 type ‘$.path’ AS JSON, …)
Sourcepub fn parse_operator(
&mut self,
this: Option<Expression>,
) -> Result<Option<Expression>>
pub fn parse_operator( &mut self, this: Option<Expression>, ) -> Result<Option<Expression>>
parse_operator - Ported from Python _parse_operator parse_operator - Parses PostgreSQL OPERATOR(op) syntax Example: col1 OPERATOR(~>) col2
Sourcepub fn parse_order(&mut self) -> Result<Option<Expression>>
pub fn parse_order(&mut self) -> Result<Option<Expression>>
parse_order - Parse ORDER BY clause Python: if not self._match(TokenType.ORDER_BY): return this; return exp.Order(expressions=self._parse_csv(self._parse_ordered))
Sourcepub fn parse_ordered(&mut self) -> Result<Option<Expression>>
pub fn parse_ordered(&mut self) -> Result<Option<Expression>>
parse_ordered - Implemented from Python _parse_ordered (wrapper for parse_ordered_item)
Sourcepub fn parse_overlay(&mut self) -> Result<Option<Expression>>
pub fn parse_overlay(&mut self) -> Result<Option<Expression>>
parse_overlay - Ported from Python _parse_overlay Parses OVERLAY function: OVERLAY(string PLACING replacement FROM position [FOR length])
Sourcepub fn parse_parameter(&mut self) -> Result<Option<Expression>>
pub fn parse_parameter(&mut self) -> Result<Option<Expression>>
parse_parameter - Parse named parameter (@name or :name) Python: this = self._parse_identifier() or self._parse_primary_or_var(); return exp.Parameter(this=this)
Sourcepub fn parse_paren(&mut self) -> Result<Option<Expression>>
pub fn parse_paren(&mut self) -> Result<Option<Expression>>
parse_paren - Ported from Python _parse_paren Parses parenthesized expressions: (expr), (select …), or (a, b, c)
Sourcepub fn parse_partition(&mut self) -> Result<Option<Expression>>
pub fn parse_partition(&mut self) -> Result<Option<Expression>>
parse_partition - Parses PARTITION/SUBPARTITION clause Python: _parse_partition
Sourcepub fn parse_partition_and_order(&mut self) -> Result<Option<Expression>>
pub fn parse_partition_and_order(&mut self) -> Result<Option<Expression>>
parse_partition_and_order - Delegates to parse_partition_by
Sourcepub fn parse_partition_bound_spec_legacy(
&mut self,
) -> Result<Option<Expression>>
pub fn parse_partition_bound_spec_legacy( &mut self, ) -> Result<Option<Expression>>
parse_partition_bound_spec - Implemented from Python _parse_partition_bound_spec Calls: parse_bitwise, parse_number
Sourcepub fn parse_partition_by(&mut self) -> Result<Option<Expression>>
pub fn parse_partition_by(&mut self) -> Result<Option<Expression>>
parse_partition_by - Ported from Python _parse_partition_by Parses PARTITION BY expression list
Sourcepub fn parse_partitioned_by(&mut self) -> Result<Option<Expression>>
pub fn parse_partitioned_by(&mut self) -> Result<Option<Expression>>
parse_partitioned_by - Parses PARTITIONED BY clause Python: _parse_partitioned_by
Sourcepub fn parse_partitioned_by_bucket_or_truncate(
&mut self,
) -> Result<Option<Expression>>
pub fn parse_partitioned_by_bucket_or_truncate( &mut self, ) -> Result<Option<Expression>>
parse_partitioned_by_bucket_or_truncate - Parses BUCKET or TRUNCATE partition transforms Python: _parse_partitioned_by_bucket_or_truncate Syntax: BUCKET(col, num_buckets) or TRUNCATE(col, width) Handles both Hive (num, col) and Trino (col, num) ordering, normalizes to (col, num)
Sourcepub fn parse_partitioned_of(&mut self) -> Result<Option<Expression>>
pub fn parse_partitioned_of(&mut self) -> Result<Option<Expression>>
parse_partitioned_of - Implemented from Python _parse_partitioned_of
Sourcepub fn parse_period_for_system_time(&mut self) -> Result<Option<Expression>>
pub fn parse_period_for_system_time(&mut self) -> Result<Option<Expression>>
parse_period_for_system_time - Parses PERIOD FOR SYSTEM_TIME constraint Python: _parse_period_for_system_time Syntax: PERIOD FOR SYSTEM_TIME (start_col, end_col)
Sourcepub fn parse_pipe_syntax_aggregate(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_aggregate(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_aggregate - Implemented from Python _parse_pipe_syntax_aggregate
Sourcepub fn parse_pipe_syntax_aggregate_fields(
&mut self,
) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_aggregate_fields( &mut self, ) -> Result<Option<Expression>>
parse_pipe_syntax_aggregate_fields - Implemented from Python _parse_pipe_syntax_aggregate_fields Calls: parse_disjunction
Sourcepub fn parse_pipe_syntax_aggregate_group_order_by(
&mut self,
) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_aggregate_group_order_by( &mut self, ) -> Result<Option<Expression>>
parse_pipe_syntax_aggregate_group_order_by - Parses pipe syntax aggregate fields with grouping and ordering Python: _parse_pipe_syntax_aggregate_group_order_by Parses comma-separated aggregate fields and separates them into aggregates/groups and ORDER BY specs Returns a Tuple with two elements: (aggregates_and_groups, order_by_specs)
Sourcepub fn parse_pipe_syntax_extend(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_extend(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_extend - Implemented from Python _parse_pipe_syntax_extend
Sourcepub fn parse_pipe_syntax_join(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_join(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_join - Parses JOIN in BigQuery pipe syntax Python: _parse_pipe_syntax_join Format: |> JOIN table ON condition
Sourcepub fn parse_pipe_syntax_limit(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_limit(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_limit - Parses LIMIT/OFFSET in BigQuery pipe syntax Python: _parse_pipe_syntax_limit Format: |> LIMIT n [OFFSET m]
Sourcepub fn parse_pipe_syntax_pivot(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_pivot(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_pivot - Parses PIVOT in BigQuery pipe syntax Python: _parse_pipe_syntax_pivot Format: |> PIVOT (agg_function FOR column IN (values))
Sourcepub fn parse_pipe_syntax_query(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_query(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_query - Parses a query with pipe syntax transformations Python: _parse_pipe_syntax_query Handles queries like: FROM table |> WHERE … |> SELECT … |> AGGREGATE …
Sourcepub fn parse_pipe_syntax_select(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_select(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_select - Parses SELECT in BigQuery pipe syntax Python: _parse_pipe_syntax_select Format: |> SELECT expressions
Sourcepub fn parse_pipe_syntax_set_operator(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_set_operator(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_set_operator - Parses set operation in BigQuery pipe syntax Python: _parse_pipe_syntax_set_operator Format: |> UNION ALL/INTERSECT/EXCEPT (subquery1, subquery2, …)
Sourcepub fn parse_pipe_syntax_tablesample(&mut self) -> Result<Option<Expression>>
pub fn parse_pipe_syntax_tablesample(&mut self) -> Result<Option<Expression>>
parse_pipe_syntax_tablesample - Parses TABLESAMPLE in BigQuery pipe syntax Python: _parse_pipe_syntax_tablesample Format: |> TABLESAMPLE SYSTEM (percent PERCENT)
Sourcepub fn parse_pivot_aggregation(&mut self) -> Result<Option<Expression>>
pub fn parse_pivot_aggregation(&mut self) -> Result<Option<Expression>>
parse_pivot_aggregation - Ported from Python _parse_pivot_aggregation Parses an aggregation function in PIVOT clause, optionally with alias
Sourcepub fn parse_pivot_in(&mut self) -> Result<Option<Expression>>
pub fn parse_pivot_in(&mut self) -> Result<Option<Expression>>
parse_pivot_in - Parses the IN clause of a PIVOT Python: _parse_pivot_in Format: column IN (value1 [AS alias1], value2 [AS alias2], …)
Sourcepub fn parse_pivots_for_source(
&mut self,
source: Expression,
) -> Result<Option<Expression>>
pub fn parse_pivots_for_source( &mut self, source: Expression, ) -> Result<Option<Expression>>
parse_pivots - Ported from Python _parse_pivots Parses one or more PIVOT/UNPIVOT clauses attached to a source expression Uses the existing parse_pivot/parse_unpivot methods
Sourcepub fn parse_placeholder(&mut self) -> Result<Option<Expression>>
pub fn parse_placeholder(&mut self) -> Result<Option<Expression>>
parse_placeholder - Parse placeholder token (? or :name) Python: if self._match_set(self.PLACEHOLDER_PARSERS): return placeholder
Sourcepub fn parse_position(&mut self) -> Result<Option<Expression>>
pub fn parse_position(&mut self) -> Result<Option<Expression>>
parse_position - Ported from Python _parse_position Parses POSITION function: POSITION(substr IN str) or POSITION(needle, haystack, start)
Sourcepub fn parse_prewhere(&mut self) -> Result<Option<Expression>>
pub fn parse_prewhere(&mut self) -> Result<Option<Expression>>
parse_prewhere - Ported from Python _parse_prewhere Parses PREWHERE clause (ClickHouse specific)
Sourcepub fn parse_primary_key(&mut self) -> Result<Option<Expression>>
pub fn parse_primary_key(&mut self) -> Result<Option<Expression>>
parse_primary_key - Parses PRIMARY KEY constraint Python: _parse_primary_key Can return either PrimaryKeyColumnConstraint (column-level) or PrimaryKey (table-level)
Sourcepub fn parse_primary_key_impl(
&mut self,
wrapped_optional: bool,
in_props: bool,
) -> Result<Option<Expression>>
pub fn parse_primary_key_impl( &mut self, wrapped_optional: bool, in_props: bool, ) -> Result<Option<Expression>>
Implementation of parse_primary_key with options
Sourcepub fn parse_primary_key_part(&mut self) -> Result<Option<Expression>>
pub fn parse_primary_key_part(&mut self) -> Result<Option<Expression>>
parse_primary_key_part - Delegates to parse_field
Sourcepub fn parse_primary_or_var(&mut self) -> Result<Option<Expression>>
pub fn parse_primary_or_var(&mut self) -> Result<Option<Expression>>
parse_primary_or_var - Parses a primary expression or variable Python: _parse_primary_or_var Returns: parse_primary() or parse_var(any_token=True)
Sourcepub fn parse_procedure_option(&mut self) -> Result<Option<Expression>>
pub fn parse_procedure_option(&mut self) -> Result<Option<Expression>>
parse_procedure_option - Implemented from Python _parse_procedure_option
Sourcepub fn parse_projections(&mut self) -> Result<Option<Expression>>
pub fn parse_projections(&mut self) -> Result<Option<Expression>>
parse_projections - Delegates to parse_expressions
Sourcepub fn parse_properties(&mut self) -> Result<Option<Expression>>
pub fn parse_properties(&mut self) -> Result<Option<Expression>>
parse_properties - Parses table/column properties Python: _parse_properties Collects a list of properties using parse_property
Sourcepub fn parse_properties_impl(
&mut self,
before: Option<bool>,
) -> Result<Option<Expression>>
pub fn parse_properties_impl( &mut self, before: Option<bool>, ) -> Result<Option<Expression>>
Implementation of parse_properties with before option
Sourcepub fn parse_property(&mut self) -> Result<Option<Expression>>
pub fn parse_property(&mut self) -> Result<Option<Expression>>
parse_property - Implemented from Python _parse_property Calls: parse_bitwise, parse_column, parse_sequence_properties
Sourcepub fn parse_property_assignment(&mut self) -> Result<Option<Expression>>
pub fn parse_property_assignment(&mut self) -> Result<Option<Expression>>
parse_property_assignment - Ported from Python _parse_property_assignment Parses a property assignment: optionally = or AS, then a value
Sourcepub fn parse_property_before(&mut self) -> Result<Option<Expression>>
pub fn parse_property_before(&mut self) -> Result<Option<Expression>>
parse_property_before - Implemented from Python _parse_property_before
Sourcepub fn parse_qualify(&mut self) -> Result<Option<Expression>>
pub fn parse_qualify(&mut self) -> Result<Option<Expression>>
parse_qualify - Parse QUALIFY clause (Snowflake, BigQuery) Python: if not self._match(TokenType.QUALIFY): return None; return exp.Qualify(this=self._parse_disjunction())
Sourcepub fn parse_range(&mut self) -> Result<Option<Expression>>
pub fn parse_range(&mut self) -> Result<Option<Expression>>
parse_range - Parses range expressions (BETWEEN, LIKE, IN, IS, etc.) Python: _parse_range
Sourcepub fn parse_reads_property(&mut self) -> Result<Option<Expression>>
pub fn parse_reads_property(&mut self) -> Result<Option<Expression>>
parse_reads_property - Implemented from Python _parse_reads_property
Sourcepub fn parse_recursive_with_search(&mut self) -> Result<Option<Box<Expression>>>
pub fn parse_recursive_with_search(&mut self) -> Result<Option<Box<Expression>>>
parse_recursive_with_search - Parse SEARCH/CYCLE clause for recursive CTEs (PostgreSQL) Syntax: SEARCH BREADTH|DEPTH FIRST BY column SET column [USING column] or: CYCLE column SET column USING column
Sourcepub fn parse_references(&mut self) -> Result<Option<Expression>>
pub fn parse_references(&mut self) -> Result<Option<Expression>>
parse_references - Ported from Python _parse_references Parses REFERENCES clause for foreign key constraints
Sourcepub fn parse_refresh(&mut self) -> Result<Option<Expression>>
pub fn parse_refresh(&mut self) -> Result<Option<Expression>>
parse_refresh - Implemented from Python _parse_refresh parse_refresh - Parses REFRESH TABLE or REFRESH MATERIALIZED VIEW Python: parser.py:7656-7668
Sourcepub fn parse_refresh_trigger_property(
&mut self,
) -> Result<RefreshTriggerProperty>
pub fn parse_refresh_trigger_property( &mut self, ) -> Result<RefreshTriggerProperty>
parse_refresh_trigger_property - Doris REFRESH clause for materialized views Syntax: REFRESH method ON kind [EVERY n UNIT] [STARTS ‘datetime’] Examples: REFRESH COMPLETE ON MANUAL REFRESH AUTO ON COMMIT REFRESH AUTO ON SCHEDULE EVERY 5 MINUTE STARTS ‘2025-01-01 00:00:00’
Sourcepub fn parse_remote_with_connection(&mut self) -> Result<Option<Expression>>
pub fn parse_remote_with_connection(&mut self) -> Result<Option<Expression>>
parse_remote_with_connection - Implemented from Python _parse_remote_with_connection
Sourcepub fn parse_respect_or_ignore_nulls(&mut self) -> Result<Option<Expression>>
pub fn parse_respect_or_ignore_nulls(&mut self) -> Result<Option<Expression>>
parse_respect_or_ignore_nulls - Implemented from Python _parse_respect_or_ignore_nulls
Sourcepub fn parse_retention_period(&mut self) -> Result<Option<Expression>>
pub fn parse_retention_period(&mut self) -> Result<Option<Expression>>
parse_retention_period - Parses HISTORY_RETENTION_PERIOD (TSQL)
Python: _parse_retention_period
Format: INFINITE |
Sourcepub fn parse_returning(&mut self) -> Result<Option<Expression>>
pub fn parse_returning(&mut self) -> Result<Option<Expression>>
parse_returning - Creates Returning expression Parses RETURNING clause (PostgreSQL) for INSERT/UPDATE/DELETE
Sourcepub fn parse_output_clause(&mut self) -> Result<OutputClause>
pub fn parse_output_clause(&mut self) -> Result<OutputClause>
parse_output_clause - Parses OUTPUT clause (TSQL) Used in INSERT/UPDATE/DELETE and MERGE statements Supports expressions with optional AS aliases: OUTPUT col1, col2 AS alias, col3
Sourcepub fn parse_returns(&mut self) -> Result<Option<Expression>>
pub fn parse_returns(&mut self) -> Result<Option<Expression>>
parse_returns - Implemented from Python _parse_returns Calls: parse_types
Sourcepub fn parse_row(&mut self) -> Result<Option<Expression>>
pub fn parse_row(&mut self) -> Result<Option<Expression>>
parse_row - Parses ROW FORMAT clause Returns RowFormatSerdeProperty or RowFormatDelimitedProperty
Sourcepub fn parse_row_format(&mut self) -> Result<Option<Expression>>
pub fn parse_row_format(&mut self) -> Result<Option<Expression>>
parse_row_format - Implemented from Python _parse_row_format Parses SERDE or DELIMITED row format specifications
Sourcepub fn parse_schema(&mut self) -> Result<Option<Expression>>
pub fn parse_schema(&mut self) -> Result<Option<Expression>>
parse_schema - Ported from Python _parse_schema Parses schema definition: (col1 type1, col2 type2, …) Used for CREATE TABLE column definitions
Sourcepub fn parse_security(&mut self) -> Result<Option<Expression>>
pub fn parse_security(&mut self) -> Result<Option<Expression>>
parse_security - Implemented from Python _parse_security
Sourcepub fn parse_select_or_expression(&mut self) -> Result<Option<Expression>>
pub fn parse_select_or_expression(&mut self) -> Result<Option<Expression>>
parse_select_or_expression - Parses either a SELECT statement or an expression Python: _parse_select_or_expression
Sourcepub fn parse_select_query(&mut self) -> Result<Option<Expression>>
pub fn parse_select_query(&mut self) -> Result<Option<Expression>>
parse_select_query - Implemented from Python _parse_select_query Calls: parse_string, parse_table, parse_describe
Sourcepub fn parse_sequence_properties(&mut self) -> Result<Option<Expression>>
pub fn parse_sequence_properties(&mut self) -> Result<Option<Expression>>
parse_sequence_properties - Implemented from Python _parse_sequence_properties Calls: parse_number, parse_term, parse_column
Sourcepub fn parse_serde_properties(
&mut self,
with_: bool,
) -> Result<Option<Expression>>
pub fn parse_serde_properties( &mut self, with_: bool, ) -> Result<Option<Expression>>
parse_serde_properties - Implemented from Python _parse_serde_properties Parses SERDEPROPERTIES clause: [WITH] SERDEPROPERTIES (key=value, …)
Sourcepub fn parse_session_parameter(&mut self) -> Result<Option<Expression>>
pub fn parse_session_parameter(&mut self) -> Result<Option<Expression>>
parse_session_parameter - Ported from Python _parse_session_parameter parse_session_parameter - Parses session parameters (@@var or @@session.var) Example: @@session.sql_mode, @@global.autocommit
Sourcepub fn parse_set_item(&mut self) -> Result<Option<Expression>>
pub fn parse_set_item(&mut self) -> Result<Option<Expression>>
parse_set_item - Ported from Python _parse_set_item Parses an item in a SET statement (GLOBAL, LOCAL, SESSION prefixes, or assignment)
Sourcepub fn parse_set_item_assignment(&mut self) -> Result<Option<Expression>>
pub fn parse_set_item_assignment(&mut self) -> Result<Option<Expression>>
parse_set_item_assignment - Implemented from Python _parse_set_item_assignment Parses SET variable = value assignments
Sourcepub fn parse_set_operations(&mut self) -> Result<Option<Expression>>
pub fn parse_set_operations(&mut self) -> Result<Option<Expression>>
parse_set_operations - Parses UNION/INTERSECT/EXCEPT operations This version parses from current position (expects to be at set operator) Python: _parse_set_operations
Sourcepub fn parse_set_operations_with_expr(
&mut self,
this: Option<Expression>,
) -> Result<Option<Expression>>
pub fn parse_set_operations_with_expr( &mut self, this: Option<Expression>, ) -> Result<Option<Expression>>
parse_set_operations_with_expr - Parses set operations with a left expression
Sourcepub fn parse_set_transaction(&mut self) -> Result<Option<Expression>>
pub fn parse_set_transaction(&mut self) -> Result<Option<Expression>>
parse_set_transaction - Implemented from Python _parse_set_transaction
Sourcepub fn parse_settings_property(&mut self) -> Result<Option<Expression>>
pub fn parse_settings_property(&mut self) -> Result<Option<Expression>>
parse_settings_property - Parses SETTINGS property (ClickHouse) Python: _parse_settings_property Format: SETTINGS key=value, key=value, …
Sourcepub fn parse_simplified_pivot(
&mut self,
is_unpivot: bool,
) -> Result<Option<Expression>>
pub fn parse_simplified_pivot( &mut self, is_unpivot: bool, ) -> Result<Option<Expression>>
parse_simplified_pivot - Ported from Python _parse_simplified_pivot Handles DuckDB simplified PIVOT/UNPIVOT syntax: PIVOT table ON columns [IN (…)] USING agg_func [AS alias], … [GROUP BY …] UNPIVOT table ON columns [INTO NAME col VALUE col, …]
Sourcepub fn parse_slice(&mut self) -> Result<Option<Expression>>
pub fn parse_slice(&mut self) -> Result<Option<Expression>>
parse_slice - Parses array slice syntax [start:end:step] Python: _parse_slice Takes an optional ‘this’ expression (the start of the slice)
Sourcepub fn parse_slice_with_this(
&mut self,
this: Option<Expression>,
) -> Result<Option<Expression>>
pub fn parse_slice_with_this( &mut self, this: Option<Expression>, ) -> Result<Option<Expression>>
Implementation of parse_slice with ‘this’ parameter
Sourcepub fn parse_sort(&mut self) -> Result<Option<Expression>>
pub fn parse_sort(&mut self) -> Result<Option<Expression>>
parse_sort - Ported from Python _parse_sort Parses SORT BY clause (Hive/Spark)
Sourcepub fn parse_cluster_by_clause(&mut self) -> Result<Option<Expression>>
pub fn parse_cluster_by_clause(&mut self) -> Result<Option<Expression>>
parse_cluster_by_clause - Parses CLUSTER BY clause (Hive/Spark)
Sourcepub fn parse_distribute_by_clause(&mut self) -> Result<Option<Expression>>
pub fn parse_distribute_by_clause(&mut self) -> Result<Option<Expression>>
parse_distribute_by_clause - Parses DISTRIBUTE BY clause (Hive/Spark)
Sourcepub fn parse_sortkey(&mut self) -> Result<Option<Expression>>
pub fn parse_sortkey(&mut self) -> Result<Option<Expression>>
parse_sortkey - Redshift/PostgreSQL SORTKEY property Parses SORTKEY(column1, column2, …) with optional COMPOUND modifier
Sourcepub fn parse_star(&mut self) -> Result<Option<Expression>>
pub fn parse_star(&mut self) -> Result<Option<Expression>>
parse_star - Parse STAR (*) token with optional EXCEPT/REPLACE/RENAME Python: if self._match(TokenType.STAR): return self._parse_star_ops()
Sourcepub fn parse_star_op(
&mut self,
keywords: &[&str],
) -> Result<Option<Vec<Expression>>>
pub fn parse_star_op( &mut self, keywords: &[&str], ) -> Result<Option<Vec<Expression>>>
parse_star_op - Helper to parse EXCEPT/REPLACE/RENAME with keywords Returns list of expressions if keywords match
Sourcepub fn parse_star_ops(&mut self) -> Result<Option<Expression>>
pub fn parse_star_ops(&mut self) -> Result<Option<Expression>>
parse_star_ops - Implemented from Python _parse_star_ops Creates a Star expression with EXCEPT/REPLACE/RENAME clauses Also handles * COLUMNS(pattern) syntax for DuckDB column selection
Sourcepub fn parse_stored(&mut self) -> Result<Option<Expression>>
pub fn parse_stored(&mut self) -> Result<Option<Expression>>
parse_stored - Implemented from Python _parse_stored
Sourcepub fn parse_stream(&mut self) -> Result<Option<Expression>>
pub fn parse_stream(&mut self) -> Result<Option<Expression>>
parse_stream - Implemented from Python _parse_stream
Sourcepub fn parse_string(&mut self) -> Result<Option<Expression>>
pub fn parse_string(&mut self) -> Result<Option<Expression>>
parse_string - Parse string literal Python: if self._match_set(self.STRING_PARSERS): return STRING_PARSERStoken_type
Sourcepub fn parse_string_agg(&mut self) -> Result<Option<Expression>>
pub fn parse_string_agg(&mut self) -> Result<Option<Expression>>
parse_string_agg - Parses STRING_AGG function arguments Python: parser.py:6849-6899 Handles DISTINCT, separator, ORDER BY, ON OVERFLOW, WITHIN GROUP
Sourcepub fn parse_string_as_identifier(&mut self) -> Result<Option<Expression>>
pub fn parse_string_as_identifier(&mut self) -> Result<Option<Expression>>
parse_string_as_identifier - Parses a string literal as a quoted identifier Python: _parse_string_as_identifier Used for cases where a string can be used as an identifier (e.g., MySQL)
Sourcepub fn parse_struct_types(&mut self) -> Result<Option<Expression>>
pub fn parse_struct_types(&mut self) -> Result<Option<Expression>>
parse_struct_types - Delegates to parse_types
Sourcepub fn parse_subquery(&mut self) -> Result<Option<Expression>>
pub fn parse_subquery(&mut self) -> Result<Option<Expression>>
parse_subquery - Ported from Python _parse_subquery Parses a parenthesized SELECT as subquery: (SELECT …)
Sourcepub fn parse_substring(&mut self) -> Result<Option<Expression>>
pub fn parse_substring(&mut self) -> Result<Option<Expression>>
parse_substring - Ported from Python _parse_substring Parses SUBSTRING function with two syntax variants:
- Standard SQL: SUBSTRING(str FROM start [FOR length])
- Function style: SUBSTRING(str, start, length)
Sourcepub fn parse_system_versioning_property(&mut self) -> Result<Option<Expression>>
pub fn parse_system_versioning_property(&mut self) -> Result<Option<Expression>>
parse_system_versioning_property - Implemented from Python _parse_system_versioning_property Calls: parse_table_parts, parse_retention_period
Sourcepub fn parse_table(&mut self) -> Result<Option<Expression>>
pub fn parse_table(&mut self) -> Result<Option<Expression>>
parse_table - Implemented from Python _parse_table Calls: parse_table_hints, parse_unnest, parse_partition
Sourcepub fn parse_table_alias(&mut self) -> Result<Option<Expression>>
pub fn parse_table_alias(&mut self) -> Result<Option<Expression>>
parse_table_alias - Ported from Python _parse_table_alias Parses table alias: AS alias [(col1, col2, …)]
Sourcepub fn parse_table_hints(&mut self) -> Result<Option<Expression>>
pub fn parse_table_hints(&mut self) -> Result<Option<Expression>>
parse_table_hints - Ported from Python _parse_table_hints Parses table hints (SQL Server WITH (…) or MySQL USE/IGNORE/FORCE INDEX)
Sourcepub fn parse_truncate_table_hints(&mut self) -> Result<Option<Expression>>
pub fn parse_truncate_table_hints(&mut self) -> Result<Option<Expression>>
Parse TSQL TRUNCATE table hints: WITH (PARTITIONS(1, 2 TO 5, 10 TO 20, 84)) Unlike regular table hints, PARTITIONS arguments can contain TO ranges.
Sourcepub fn parse_table_part(&mut self) -> Result<Option<Expression>>
pub fn parse_table_part(&mut self) -> Result<Option<Expression>>
parse_table_part - Parse a single part of a table reference Tries: identifier, string as identifier, placeholder
Sourcepub fn parse_table_parts(&mut self) -> Result<Option<Expression>>
pub fn parse_table_parts(&mut self) -> Result<Option<Expression>>
parse_table_parts - Parse catalog.schema.table or schema.table or table Returns a Table expression with all parts
Sourcepub fn parse_table_sample(&mut self) -> Result<Option<Expression>>
pub fn parse_table_sample(&mut self) -> Result<Option<Expression>>
parse_table_sample - Implemented from Python _parse_table_sample Calls: parse_number, parse_factor, parse_placeholder
Sourcepub fn parse_term(&mut self) -> Result<Option<Expression>>
pub fn parse_term(&mut self) -> Result<Option<Expression>>
parse_term - Parses addition/subtraction expressions (+ - operators) Python: _parse_term Delegates to the existing parse_addition in the operator precedence chain
Sourcepub fn parse_to_table(&mut self) -> Result<Option<Expression>>
pub fn parse_to_table(&mut self) -> Result<Option<Expression>>
parse_to_table - ClickHouse TO table property Parses: TO table_name
Sourcepub fn parse_tokens(&mut self) -> Result<Option<Expression>>
pub fn parse_tokens(&mut self) -> Result<Option<Expression>>
parse_tokens - Operator precedence parser
Sourcepub fn parse_trim(&mut self) -> Result<Option<Expression>>
pub fn parse_trim(&mut self) -> Result<Option<Expression>>
parse_trim - Ported from Python _parse_trim Parses TRIM function: TRIM([BOTH|LEADING|TRAILING] chars FROM str) or TRIM(str, chars)
Sourcepub fn parse_truncate_table(&mut self) -> Result<Option<Expression>>
pub fn parse_truncate_table(&mut self) -> Result<Option<Expression>>
parse_truncate_table - Implemented from Python _parse_truncate_table Calls: parse_on_property, parse_partition, parse_function
Sourcepub fn parse_ttl(&mut self) -> Result<Option<Expression>>
pub fn parse_ttl(&mut self) -> Result<Option<Expression>>
parse_ttl - Implemented from Python _parse_ttl Parses ClickHouse TTL expression with optional DELETE, RECOMPRESS, TO DISK/VOLUME
Sourcepub fn parse_type(&mut self) -> Result<Option<Expression>>
pub fn parse_type(&mut self) -> Result<Option<Expression>>
parse_type - Parses a data type expression Python: _parse_type
Sourcepub fn parse_type_size(&mut self) -> Result<Option<Expression>>
pub fn parse_type_size(&mut self) -> Result<Option<Expression>>
parse_type_size - Ported from Python _parse_type_size Parses type size parameters like 10 in VARCHAR(10) or 10, 2 in DECIMAL(10, 2)
Sourcepub fn parse_types(&mut self) -> Result<Option<Expression>>
pub fn parse_types(&mut self) -> Result<Option<Expression>>
parse_types - Implemented from Python _parse_types Calls: parse_string
Sourcepub fn parse_unique(&mut self) -> Result<Option<Expression>>
pub fn parse_unique(&mut self) -> Result<Option<Expression>>
parse_unique - Implemented from Python _parse_unique Parses UNIQUE [KEY|INDEX] [NULLS NOT DISTINCT] [(columns)] [USING index_type]
Sourcepub fn parse_unique_key(&mut self) -> Result<Option<Expression>>
pub fn parse_unique_key(&mut self) -> Result<Option<Expression>>
parse_unique_key - Parse the key/index name for UNIQUE constraint Simply parses an identifier
Sourcepub fn parse_unnest(&mut self) -> Result<Option<Expression>>
pub fn parse_unnest(&mut self) -> Result<Option<Expression>>
parse_unnest - Ported from Python _parse_unnest Parses UNNEST(array_expr) [WITH ORDINALITY] [AS alias]
Sourcepub fn parse_unpivot_columns(&mut self) -> Result<Option<Expression>>
pub fn parse_unpivot_columns(&mut self) -> Result<Option<Expression>>
parse_unpivot_columns - Implemented from Python _parse_unpivot_columns Python: parser.py:4454-4462 Parses INTO NAME column VALUE col1, col2, …
Sourcepub fn parse_unquoted_field(&mut self) -> Result<Option<Expression>>
pub fn parse_unquoted_field(&mut self) -> Result<Option<Expression>>
parse_unquoted_field - Parses a field and converts unquoted identifiers to Var Python: _parse_unquoted_field
Sourcepub fn parse_user_defined_function(&mut self) -> Result<Option<Expression>>
pub fn parse_user_defined_function(&mut self) -> Result<Option<Expression>>
parse_user_defined_function - Parses user-defined function call Python: _parse_user_defined_function Parses: schema.function_name(param1, param2, …)
Sourcepub fn parse_user_defined_function_expression(
&mut self,
) -> Result<Option<Expression>>
pub fn parse_user_defined_function_expression( &mut self, ) -> Result<Option<Expression>>
parse_user_defined_function_expression - Parse user-defined function expression
Sourcepub fn parse_user_defined_type(
&mut self,
identifier: Identifier,
) -> Result<Option<Expression>>
pub fn parse_user_defined_type( &mut self, identifier: Identifier, ) -> Result<Option<Expression>>
parse_user_defined_type - Parses a user-defined type reference Python: _parse_user_defined_type Format: schema.type_name or just type_name
Sourcepub fn parse_using_identifiers(&mut self) -> Result<Option<Expression>>
pub fn parse_using_identifiers(&mut self) -> Result<Option<Expression>>
parse_using_identifiers - Ported from Python _parse_using_identifiers Parses (col1, col2, …) for JOIN USING clause
Sourcepub fn parse_value(&mut self) -> Result<Option<Expression>>
pub fn parse_value(&mut self) -> Result<Option<Expression>>
parse_value - Parses a value tuple for INSERT VALUES clause Python: _parse_value Syntax: (expr1, expr2, …) or just expr (single value)
Sourcepub fn parse_var(&mut self) -> Result<Option<Expression>>
pub fn parse_var(&mut self) -> Result<Option<Expression>>
parse_var - Parse variable reference (unquoted identifier) Python: if self._match(TokenType.VAR): return exp.Var(this=self._prev.text)
Sourcepub fn parse_var_from_options(&mut self) -> Result<Option<Expression>>
pub fn parse_var_from_options(&mut self) -> Result<Option<Expression>>
parse_var_from_options - Ported from Python _parse_var_from_options Parses a variable/identifier from a predefined set of options
Sourcepub fn parse_var_or_string(&mut self) -> Result<Option<Expression>>
pub fn parse_var_or_string(&mut self) -> Result<Option<Expression>>
parse_var_or_string - Delegates to parse_string parse_var_or_string - Parses a string literal or a variable Python: parser.py:7506-7507
Sourcepub fn parse_vector_expressions(&mut self) -> Result<Option<Expression>>
pub fn parse_vector_expressions(&mut self) -> Result<Option<Expression>>
parse_vector_expressions - Transforms vector type parameters Python: _parse_vector_expressions In Python, this transforms a list of expressions where the first element (identifier) is converted to a DataType. In Rust, since VECTOR type parsing is handled inline in parse_data_type, this method parses vector expressions (element_type, dimension) from the current position and returns them as a Tuple.
Sourcepub fn parse_version(&mut self) -> Result<Option<Expression>>
pub fn parse_version(&mut self) -> Result<Option<Expression>>
parse_version - Implemented from Python _parse_version Python: parser.py:4266-4295 Parses FOR SYSTEM_TIME AS OF, VERSIONS BETWEEN, etc.
Sourcepub fn parse_volatile_property(&mut self) -> Result<Option<Expression>>
pub fn parse_volatile_property(&mut self) -> Result<Option<Expression>>
parse_volatile_property - Parses VOLATILE property Python: _parse_volatile_property Returns VolatileProperty for table volatility or StabilityProperty for function stability
Sourcepub fn parse_when_matched(&mut self) -> Result<Option<Expression>>
pub fn parse_when_matched(&mut self) -> Result<Option<Expression>>
parse_when_matched - Implemented from Python _parse_when_matched Calls: parse_disjunction, parse_star, parse_value Parse WHEN [NOT] MATCHED clauses for MERGE statements This is the public entry point that calls parse_when_matched_clauses
Sourcepub fn parse_where(&mut self) -> Result<Option<Expression>>
pub fn parse_where(&mut self) -> Result<Option<Expression>>
parse_where - Parse WHERE clause Python: if not self._match(TokenType.WHERE): return None; return exp.Where(this=self._parse_disjunction())
Sourcepub fn parse_window(&mut self) -> Result<Option<Expression>>
pub fn parse_window(&mut self) -> Result<Option<Expression>>
parse_window - Implemented from Python _parse_window Calls: parse_window_spec, parse_partition_and_order
Sourcepub fn parse_window_clause(&mut self) -> Result<Option<Expression>>
pub fn parse_window_clause(&mut self) -> Result<Option<Expression>>
parse_window_clause - Ported from Python _parse_window_clause Parses WINDOW named_window_definition [, named_window_definition, …]
Sourcepub fn parse_window_spec(&mut self) -> Result<Option<Expression>>
pub fn parse_window_spec(&mut self) -> Result<Option<Expression>>
parse_window_spec - Implemented from Python _parse_window_spec
Sourcepub fn parse_with_operator(&mut self) -> Result<Option<Expression>>
pub fn parse_with_operator(&mut self) -> Result<Option<Expression>>
parse_with_operator - Parse column with operator class (PostgreSQL) Parses: ordered_expression [WITH operator]
Sourcepub fn parse_with_property(&mut self) -> Result<Option<Expression>>
pub fn parse_with_property(&mut self) -> Result<Option<Expression>>
parse_with_property - Implemented from Python _parse_with_property Calls: parse_withjournaltable, parse_withisolatedloading, parse_wrapped_properties
Sourcepub fn parse_withdata(&mut self) -> Result<Option<Expression>>
pub fn parse_withdata(&mut self) -> Result<Option<Expression>>
parse_withdata - Implemented from Python _parse_withdata
Sourcepub fn parse_withisolatedloading(&mut self) -> Result<Option<Expression>>
pub fn parse_withisolatedloading(&mut self) -> Result<Option<Expression>>
parse_withisolatedloading - Implemented from Python _parse_withisolatedloading
Sourcepub fn parse_withjournaltable(&mut self) -> Result<Option<Expression>>
pub fn parse_withjournaltable(&mut self) -> Result<Option<Expression>>
parse_withjournaltable - Teradata WITH JOURNAL TABLE property Parses: WITH JOURNAL TABLE = table_name
Sourcepub fn parse_wrapped(&mut self) -> Result<Option<Expression>>
pub fn parse_wrapped(&mut self) -> Result<Option<Expression>>
parse_wrapped - Parses an expression wrapped in parentheses Python: _parse_wrapped(parse_method) This version parses a disjunction (expression) inside parentheses
Sourcepub fn parse_wrapped_csv(&mut self) -> Result<Option<Expression>>
pub fn parse_wrapped_csv(&mut self) -> Result<Option<Expression>>
parse_wrapped_csv - Parses comma-separated expressions wrapped in parentheses Python: _parse_wrapped_csv(parse_method)
Sourcepub fn parse_wrapped_id_vars(&mut self) -> Result<Option<Expression>>
pub fn parse_wrapped_id_vars(&mut self) -> Result<Option<Expression>>
parse_wrapped_id_vars - Parses comma-separated identifiers wrapped in parentheses Python: _parse_wrapped_id_vars
Sourcepub fn parse_wrapped_options(&mut self) -> Result<Option<Expression>>
pub fn parse_wrapped_options(&mut self) -> Result<Option<Expression>>
parse_wrapped_options - Implemented from Python _parse_wrapped_options Parses space-separated properties wrapped in parentheses (for Snowflake STAGE_FILE_FORMAT, etc.) Format: = (KEY=VALUE KEY2=VALUE2 …)
Sourcepub fn parse_options_list(&mut self) -> Result<Vec<Expression>>
pub fn parse_options_list(&mut self) -> Result<Vec<Expression>>
parse_options_list - Parses BigQuery-style OPTIONS list: (key=value, key=value, …) Parses key=value assignments where values can be complex expressions
Sourcepub fn parse_environment_list(&mut self) -> Result<Vec<Expression>>
pub fn parse_environment_list(&mut self) -> Result<Vec<Expression>>
parse_environment_list - Parses Databricks ENVIRONMENT list: (dependencies = ‘…’, environment_version = ‘…’) Parses key=value assignments where values can be string literals
Sourcepub fn parse_wrapped_properties(&mut self) -> Result<Option<Expression>>
pub fn parse_wrapped_properties(&mut self) -> Result<Option<Expression>>
parse_wrapped_properties - Ported from Python _parse_wrapped_properties Parses properties wrapped in parentheses
Sourcepub fn parse_wrapped_select(
&mut self,
table: bool,
) -> Result<Option<Expression>>
pub fn parse_wrapped_select( &mut self, table: bool, ) -> Result<Option<Expression>>
parse_wrapped_select - Ported from Python _parse_wrapped_select Parses wrapped select statements including PIVOT/UNPIVOT and FROM-first syntax
Sourcepub fn parse_wrapped_select_default(&mut self) -> Result<Option<Expression>>
pub fn parse_wrapped_select_default(&mut self) -> Result<Option<Expression>>
Helper for parse_wrapped_select with default table=false
Sourcepub fn parse_xml_element(&mut self) -> Result<Option<Expression>>
pub fn parse_xml_element(&mut self) -> Result<Option<Expression>>
parse_xml_element - Implemented from Python _parse_xml_element Python: parser.py:6917-6931 Parses XMLELEMENT(NAME name [, expr, …]) or XMLELEMENT(EVALNAME expr [, expr, …])
Sourcepub fn parse_xml_namespace(&mut self) -> Result<Option<Expression>>
pub fn parse_xml_namespace(&mut self) -> Result<Option<Expression>>
parse_xml_namespace - Ported from Python _parse_xml_namespace Parses XML namespace declarations
Sourcepub fn parse_xml_table(&mut self) -> Result<Option<Expression>>
pub fn parse_xml_table(&mut self) -> Result<Option<Expression>>
parse_xml_table - Implemented from Python _parse_xml_table Python: parser.py:6933-6961 Parses XMLTABLE(xpath_expr PASSING xml_doc COLUMNS …)