Module sqlparser::ast

source ·
Expand description

SQL Abstract Syntax Tree (AST) types

Modules

Structs

Represents an Array Expression, either ARRAY[..], or [..]
An ARRAY_AGG invocation ARRAY_AGG( [ DISTINCT ] <expr> [ORDER BY <expr>] [LIMIT <n>] ) Or ARRAY_AGG( [ DISTINCT ] <expr> ) [ WITHIN GROUP ( ORDER BY <expr> ) ] ORDER BY position is defined differently for BigQuery, Postgres and Snowflake.
SQL assignment foo = expr as used in SQLUpdate
Information about character length, including length and possibly unit.
SQL column definition
An optionally-named ColumnOption: [ CONSTRAINT <name> ] <column-option>.
Postgres specific feature.
A single CTE (used after WITH): alias [(col1, col2, ...)] AS ( query ) The names in the column list before AS, when specified, replace the names of the columns returned by the query. The parser does not validate that the number of columns in the query matches the number of columns in the query.
Function describe in DROP FUNCTION.
Bigquery EXCEPT information, with at least one column.
A function call
An identifier, decomposed into its value or character data and the quote style.
A hive LATERAL VIEW with potential column aliases
A LISTAGG invocation LISTAGG( [ DISTINCT ] <expr>[, <separator> ] [ON OVERFLOW <on_overflow>] ) ) [ WITHIN GROUP (ORDER BY <within_group1>[, ...] ) ]
A name of a table, view, custom type, etc., possibly multi-part, i.e. db.schema.obj
Function argument in CREATE OR DROP FUNCTION.
An ORDER BY expression
The most complete variant of a SELECT query expression, optionally including WITH, UNION / other set operations, and ORDER BY.
A restricted variant of SELECT (without CTEs/ORDER BY), which may appear either as the only body item of a Query, or as an operand to a set operation like UNION.
Additional options for wildcards, e.g. Snowflake EXCLUDE and Bigquery EXCEPT.
Specifies the data processed by a window function, e.g. RANGE UNBOUNDED PRECEDING or ROWS BETWEEN 5 PRECEDING AND CURRENT ROW.
A window specification (i.e. OVER (PARTITION BY .. ORDER BY .. etc.))

Enums

A privilege on a database object (table, sequence, etc.).
An ALTER COLUMN (Statement::AlterTable) operation
An ALTER TABLE (Statement::AlterTable) operation
The mode of an argument in CREATE FUNCTION.
Binary operators
Possible units for characters, initially based on 2016 ANSI standard.
ColumnOptions are modifiers that follow a column definition in a CREATE TABLE statement.
Optional context modifier for statements that can be or LOCAL, or SESSION.
A CSV option in COPY statement before PostgreSQL version 9.0.
An option in COPY statement before PostgreSQL version 9.0.
An option in COPY statement.
SQL data types
Function describe in DROP FUNCTION.
Additional information for NUMERIC, DECIMAL, and DEC data types following the 2016 standard.
Snowflake EXCLUDE information.
An SQL expression of any type.
Specific direction for FETCH statement
External table’s available file format
These attributes inform the query optimizer about the behavior of the function.
Objects on which privileges are granted in a GRANT statement.
Indexing method used by that index.
JsonOperator
Representation whether a definition can can contains the KEY or INDEX keywords with the same meaning.
The ON OVERFLOW clause of a LISTAGG invocation
Can use to describe options in create sequence or table column type identity [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
Stores the keyword after OFFSET <number>
Privileges granted in a GRANT statement or revoked in a REVOKE statement.
<referential_action> = { RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT }
Schema possible naming variants (1).
Fulltext search modifiers (1).
One item of the comma-separated list following SELECT
Can use to describe options in create sequence or table column type identity
A node in a tree, representing a “query body” expression, roughly: SELECT ... [ {UNION|EXCEPT|INTERSECT} SELECT ...]
A quantifier for SetOperator.
Sqlite specific syntax
A top-level statement (SELECT, INSERT, CREATE, etc.)
A table-level constraint, specified in a CREATE TABLE or an ALTER TABLE ADD <constraint> statement.
A table name or a parenthesized subquery with an optional alias
Timestamp and Time data types information about TimeZone formatting.
Unary operators
Primitive SQL values such as number and string
Specifies WindowFrame’s start_bound and end_bound

Traits

A type that can be visited by a Visitor. See Visitor for recursively visiting parsed SQL statements.
A visitor that can be used to walk an AST tree.

Functions

Invokes the provided closure on all expressions (e.g. 1 + 2) present in v
Invokes the provided closure on all relations (e.g. table names) present in v
Invokes the provided closure on all statements (e.g. SELECT, CREATE TABLE, etc) present in v