Namespace gudusoft.gsqlparser.nodes
Classes
- ENodeType
Type of parse tree node
- TAliasClause
Alias for the column or table expression.
- TAlterDatabaseSqlNode
alter database parse tree node
- TAlterIndexSqlNode
alter index parse tree node
- TAlterTableOption
Type of alter table options, check return value of OptionType:
Column
- AddColumn, check ColumnDefinitionList for newly added columns
- AlterColumn, ColumnName, DB2/SQL Server/MySQL/Sybase alter column
- ChangeColumn, ColumnName,NewColumnDef MySQL change column
<li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropColumn" data-throw-if-not-resolved="false"></xref>, check <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnNameList" data-throw-if-not-resolved="false"></xref> for dropped columns. <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._dropRestrictType" data-throw-if-not-resolved="false"></xref></li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.ModifyColumn" data-throw-if-not-resolved="false"></xref>, check <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnDefinitionList" data-throw-if-not-resolved="false"></xref> for modified columns</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.RenameColumn" data-throw-if-not-resolved="false"></xref>, rename <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref> to <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.NewColumnName" data-throw-if-not-resolved="false"></xref></li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.SetUnUsedColumn" data-throw-if-not-resolved="false"></xref>, check <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnNameList" data-throw-if-not-resolved="false"></xref> for unused column. Oracle set unused column.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropUnUsedColumn" data-throw-if-not-resolved="false"></xref>, Oracle drop unused columns</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropColumnsContinue" data-throw-if-not-resolved="false"></xref>, Oracle drop columns continue</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnSetDefault" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.DefaultExpr" data-throw-if-not-resolved="false"></xref>. greenplum/netezza/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnDropDefault" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, greenplum/netezza/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnDropNotNull" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnSetNotNull" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnSetStatistics" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.StatisticsValue" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnSetOptions" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnResetOptions" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnSetStorage" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.StorageName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterColumnSetDataType" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnName" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.NewDataType" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.NewCollation" data-throw-if-not-resolved="false"></xref>,<xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.UsingExpr" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql.</li>Constraint
- AddConstraint, check ConstraintList for newly added table level constraints
- AddConstraintPK, ColumnNameList,gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName, MySQL
- AddConstraintUnique, ColumnNameList, gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName,MySQL
- AddConstraintFK, ColumnNameList, gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName, ReferencedObjectName, ReferencedColumnList,MySQL
<li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AddConstraintIndex" data-throw-if-not-resolved="false"></xref>, check <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ColumnNameList" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>,<xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.MySQLIndexStorageType" data-throw-if-not-resolved="false"></xref> MySQL add index constraint</li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraint" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.ConstraintNameList" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._dropRestrictType" data-throw-if-not-resolved="false"></xref>, Oracle/DB2/Greenplum drop constraint. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterConstraintFK" data-throw-if-not-resolved="false"></xref>, DB2 alter foreign key. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.AlterConstraintCheck" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>, DB2 alter check constraint. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraintIndex" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>, MySQL drop index </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraintKey" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>, MySQL drop index </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraintPK" data-throw-if-not-resolved="false"></xref>, Oracle/DB2/MySQL drop primary key. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraintFK" data-throw-if-not-resolved="false"></xref>,<xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>, DB2/MySQL drop foreign key. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraintUnique" data-throw-if-not-resolved="false"></xref>, In Oracle, get <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._columnNameList" data-throw-if-not-resolved="false"></xref>, In DB2, get <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.DropConstraintCheck" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>, DB2 drop check constraint. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.ModifyConstraint" data-throw-if-not-resolved="false"></xref>, check <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref> </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.RenameConstraint" data-throw-if-not-resolved="false"></xref>, rename <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref> to <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref> </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.ValidateConstraint" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption._constraintName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql</li>Enable/disable
<li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.enableTrigger" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.TriggerName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.enableAlwaysTrigger" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.TriggerName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.enableReplicaTrigger" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.TriggerName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.disableTrigger" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.TriggerName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.enableRule" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.RuleName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.enableAlwaysRule" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.RuleName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.enableReplicaRule" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.RuleName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.disableRule" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.RuleName" data-throw-if-not-resolved="false"></xref>, greenplum. </li>Others
- RenameTable, NewTableName
- inherit, ParentTable, greenplum/postgresql.
- noInherit, ParentTable, greenplum/postgresql.
<li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.ofAnyType" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.AnyTypeName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.ownerTo" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.NewOwnerName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.setTablespace" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.NewTablespaceName" data-throw-if-not-resolved="false"></xref>, greenplum/postgresql. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.setSchema" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.SchemaName" data-throw-if-not-resolved="false"></xref>, greenplum. </li> <li><xref href="gudusoft.gsqlparser.EAlterTableOptionType.clusterOn" data-throw-if-not-resolved="false"></xref>, <xref href="gudusoft.gsqlparser.nodes.TAlterTableOption.IndexName" data-throw-if-not-resolved="false"></xref>, postgresql. </li>
- TAlterTableSqlNode
alter table parse tree node.
- TAlterTriggerSqlNode
alter trigger parse tree node
- TAlterViewSqlNode
alter view parse tree node
- TAnalyticFunction
Window/analytic clause of Window (or analytic) functions.
partitioning ::= PARTITION BY value[, value...], call method PartitionBy_ExprList to get list of values.
ordering ::= ORDER [SIBLINGS] BY rule[, rule...], call method OrderBy to get order clause.
- TArrayAccess
array access of plsql.
- TAttributeOption
Postgresql attribute_option = value
- TAutomaticProperty
Automatic Initialization and Updating for TIMESTAMP in MySQL
- TBindArgument
Bind argument in using_clause of plsql execute_immediate_statement
- TBindArgumentList
List of TBindArgument
- TBlockSqlNode
base parse tree node for all SQL statement including SQL block
- TCTE
A common table expression permits defining a result table with a table-name that can be specified as a table name in any FROM clause of the fullselect that follows.
Multiple common table expressions can be specified following the single WITH keyword.
Each common table expression specified can also be referenced by name in the FROM clause of subsequent common table expressions.
Syntax:
table-name [column-name [,...n]] AS (fullselect)
- TCallSpec
Call specification in PLSQL when define a function
- TCallSqlNode
call statement parse tree node
- TCaseExpression
CASE expressions let you use IF ... THEN ... ELSE logic in SQL statements without having to invoke procedures.
simple case expression:
-
CASE input_expr {WHEN comparison_expr THEN return_expr}[...n] [ELSE else_expr] END
- input_expr: Input_expr
- WHEN...THEN... list: WhenClauseItemList
- else_expr: Else_expr
searched case expression:
- CASE {WHEN comparison_expr THEN return_expr}[...n] [ELSE else_expr] END
- WHEN...THEN... list: WhenClauseItemList
- else_expr: Else_expr
plsql case statement
- CASE input_expr {WHEN comparison_expr THEN statement}[...n] [ELSE else_statement_list] END
- input_expr: Input_expr
- WHEN...THEN... list: WhenClauseItemList
- else_statement_list: Else_statement_list
-
- TCloseSqlNode
close statement parse tree node
- TCollectStatisticsSqlNode
collect statistics statement parse tree node.
- TColumnDefinition
Define the characteristics of the column in create table.
- TColumnReference
TColumnReference represents column, variable, function/procedure parameter
- TCommentSqlNode
comment statement parse tree node
- TCompoundDmlTriggerClause
Use this clause to define a compound trigger on a DML event.
- TCompoundSqlNode
DB2 procedure compound statement
- TComputeClause
compute clause parse tree node
- TConnectByClause
connect by clause parse tree node
- TConstant
A constant (sometimes called a literal) specifies a value. Constants are classified as:
- string(text) constants,
- numeric constants,Numeric constants are further classified as integer, floating-point, or decimal.
- datetime constants,
- interval constants
- boolean constants. value of literal can be get by calling method gudusoft.gsqlparser.nodes.TConstant._valueToken.
- TConstraint
Use a constraint to define an integrity constraint, a rule that restricts the values in a database.
Oracle Database lets you create six types of constraints and lets you declare them in two ways.
- A NOT NULL constraint prohibits a database value from being null.
- A unique constraint prohibits multiple rows from having the same value in the same column or combination of columns but allows some values to be null. call method ColumnList to result columns of this unique key.
- A primary key constraint combines a NOT NULL constraint and a unique constraint in a single declaration. It prohibits multiple rows from having the same value in the same column or combination of columns and prohibits values from being null. call method ColumnList to result columns of this primary key.
- A foreign key constraint requires values in one table to match values in another table. call method ColumnList to result columns of this foreign key.
- A check constraint requires a value in the database to comply with a specified condition. call method CheckCondition to return this condition.
- A REF column by definition references an object in another object type or in a relational table. A REF constraint lets you further describe the relationship between the REF column and the object it references.
- default constraint is valid in sql server.
- TConstraintList
List of TConstraint.
- TContainsTable
contains table parser tree node of sql server
- TContinueSqlNode
parse tree node of continue statement, used by SQL Server and Oracle
- TCreateDatabaseSqlNode
create database statement parse tree node.
- TCreateDirectorySqlNode
create directory statement parse tree node.
- TCreateFunctionSqlNode
create function statement parse tree node.
- TCreateIndexSqlNode
create index parse tree node
- TCreateMaterializedViewLogSqlNode
Oracle create materialized view log parse tree node
- TCreateMaterializedViewSqlNode
Oracle create materialized view parse tree node
- TCreatePackageSqlNode
Oracle create package statement parse tree node
- TCreateProcedureSqlNode
create procedure parse tree node
- TCreateRowTypeSqlNode
create rowtype parse tree node
- TCreateSequenceSqlNode
create sequence parse tree node
- TCreateSynonymSqlNode
create synonym parse tree node
- TCreateTableSqlNode
create table statement parse tree node
- TCreateTriggerSqlNode
Internal use in the parser.
- TDataChangeTable
DB2 data change table
- TDatatypeAttribute
datatype attributes supported in various databases. method Value_identifier returns a identifier value, mehtod Value_literal return a value in type TConstant
- TDeclareVariable
SQL Server declare variable
- TDeclareVariableList
List of declare variable
- TDmlEventClause
The DML_event_clause lets you specify one of three DML statements that can cause the trigger to fire. the database fires the trigger in the existing user transaction.
- TDmlSelectItemList
used in sql server dml select list
- TExceptionClause
Including a list of TExceptionHandler that process raised exceptions.
- TExceptionHandler
An exception handler processes a raised exception.
- TExecImmeNode
Internal used by parser.
- TExecParameter
Parameter of execute statement in SQL Server,teradata
- TExpression
An expression is a combination of one or more values, operators, and SQL functions that evaluates to a value. There are lots of types of expression in this SQL parser, ExpressionType was used to distinguish these types.
OBJECT NAME/CONSTANT/SOURCE TOKEN/FUNCTION CALL
- object name, usually this is a column reference like emp.ename
- type: simple_object_name_t
- object name: ObjectOperand
- left operand: N/A
- right operand: N/A
- operator: N/A
- constant
- type: simple_constant_t
- constant: ConstantOperand
- left operand: N/A
- right operand: N/A
- operator: N/A
- sourcetoken
- type: simple_source_token_t
- source token: SourcetokenOperand
- left operand: N/A
- right operand: N/A
- operator: N/A
- function call
- type: function_t
- funcation call: FunctionCall
- left operand: N/A
- right operand: N/A
- operator: N/A
UNARY <ul> <li> + expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_plus_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: getRightOperand</li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> - expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_minus_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: getRightOperand</li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> expr1 ! <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_factorial_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A</li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> ~ expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_bitwise_not_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref></li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> @ expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_absolutevalue_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref></li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> |/ expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_squareroot_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref></li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> ||/ expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_cuberoot_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref></li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> !! expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_factorialprefix_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref></li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> Oracle: PRIOR expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_prior_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: getRightOperand</li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> Oracle: CONNECT_BY_ROOT expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_connect_by_root_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: getRightOperand</li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li> MySQL: BINARY expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_prior_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: getRightOperand</li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> ARITHMETIC <ul> <li>Addition: expr1 + expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arithmetic_plus_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Subtraction: expr1 - expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arithmetic_minus_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Multiplication: expr1 * expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arithmetic_times_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Division: expr1 / expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arithmetic_divide_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Modula: expr1 % expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arithmetic_modulo_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>exponentiate: expr1 ^ expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.exponentiate_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>sql server 2008 +=,-=,*=,/=,%=: expr1 [+=|-=|*=|/=|%=] expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arithmetic_compound_operator_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> LOGICAL <ul> <li>expr1 AND|&& expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.logical_and_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>expr1 OR | || expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.logical_or_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>expr1 XOR expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.logical_xor_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>NOT|! expr1 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.logical_not_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> ASSIGNMENT <ul> <li>ASSIGNMENT: expr1 [:=|=] expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.assignment_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> CONCATENATE <ul> <li>CONCATENATE: expr1 || expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.concatenate_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> AT TIME ZONE <ul> <li>expr1 at time zone expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.at_time_zone_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: N/A</li> </ul> </li> </ul> AT LOCAL <ul> <li>expr1 at local <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.at_local_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> BITWISE <ul> <li>Bitwise and : expr1 & expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.bitwise_and_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Bitwise or : expr1 | expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.bitwise_or_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Bitwise exclusive or : expr1 ^ expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.bitwise_exclusive_or_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Bitwise xor : expr1 ^ expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.bitwise_xor_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Bitwise shift left : expr1 << expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.bitwise_shift_left_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li>Bitwise shift right : expr1 >> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.bitwise_shift_right_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> SUBQUERY <ul> <li> A scalar subquery expression is a subquery that returns exactly one column value from one row. <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.subquery_t" data-throw-if-not-resolved="false"></xref></li> <li>subquery: <xref href="gudusoft.gsqlparser.nodes.TExpression.SubQuery" data-throw-if-not-resolved="false"></xref> </li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> EXPRESSION WITH PARENTHESIS <ul> <li> ( expr1 ) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.parenthesis_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand is expr1: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: use <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.startToken" data-throw-if-not-resolved="false"></xref> to get ( and <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.endToken" data-throw-if-not-resolved="false"></xref> to get )</li> </ul> </li> </ul> LIST EXPRESSION <ul> <li>An expression list inside parenthesis like (expr,expr,...), or one or more set of expressions: ((expr1,expr2,...),(expr1,expr2,...),(expr1,expr2,...)...) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.list_t" data-throw-if-not-resolved="false"></xref></li> <li>expr list: <xref href="gudusoft.gsqlparser.nodes.TExpression.ExprList" data-throw-if-not-resolved="false"></xref>, may return null when expression list in syntax like this: () </li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: open parenthsis ( can be fetched via <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.startToken" data-throw-if-not-resolved="false"></xref>, close parenthesis ) can be fetched via <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.endToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul>COLLECTION CONSTRUCTORS (informix)
- Use a collection constructor to specify values for a collection column.
SET|MULTISET|LIST { epxr_list }
- type: collection_constructor_set_t
- type: collection_constructor_multiset_t
- type: collection_constructor_list_t
- expr list: ExprList, may return null when expression list in syntax like this: ()
- left operand: N/A
- right operand: N/A
GROUP EXPRESSION, @deprecated As of v1.4.3.3 <ul> <li> </li> </ul> COMPARISON <ul> <li>A <b>simple comparison condition</b> specifies a comparison with expressions or subquery results. <br />expr1 EQUAL|NOT_EQUAL|LESS_THAN|GRREAT_THAN|LESS_EQUAL_THAN|GREATE_EQUAL_THAN expr2, or, (expr_list) EQUAL|NOT_EQUAL (subquery) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.simple_comparison_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> <li>A <b>group comparison condition</b> specifies a comparison with any or all members in a list or subquery. <br />expr EQUAL|NOT_EQUAL|LESS_THAN|GRREAT_THAN|LESS_EQUAL_THAN|GREATE_EQUAL_THAN ANY|SOME|ALL (expr_list|subquery), or, (expr_list) EQUAL|NOT_EQUAL ANY|SOME|ALL (expr_list|subquery) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.group_comparison_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li> ANY|SOME|ALL: <xref href="gudusoft.gsqlparser.nodes.TExpression.Quantifier" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> IN <ul> <li>(expr|expr_list) |NOT] IN (expr_list)|(subquery)|expr <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.in_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator is IN: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> CASE <ul> <li>case expression,let you use IF ... THEN ... ELSE logic in SQL statements without having to invoke procedures. <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.case_t" data-throw-if-not-resolved="false"></xref></li> <li> case expression: <xref href="gudusoft.gsqlparser.nodes.TExpression.CaseExpression" data-throw-if-not-resolved="false"></xref>}</li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A </li> </ul> </li> </ul> CURSOR <ul> <li>CURSOR subquery <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.cursor_t" data-throw-if-not-resolved="false"></xref></li> <li>subquery: <xref href="gudusoft.gsqlparser.nodes.TExpression.SubQuery" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: CURSOR can be fetched via <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.startToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> PATTERN MATCHING <ul> <li>expr1 [NOT] [LIKE|ILIKE|RLIKE|REGEXP|SIMILAR TO] [ALL|ANY|SOME]expr2 [ESCAPE expr3] <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.pattern_matching_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand:<xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>expr3: <xref href="gudusoft.gsqlparser.nodes.TExpression.LikeEscapeOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref></li> <li>ALL|ANY|SOME keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.Quantifier" data-throw-if-not-resolved="false"></xref></li> <li>ESCAPE keyword: N/A</li> </ul> </li> </ul> NULL <ul> <li>expr ISNULL|NOTNULL|IS [NOT] NULL <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.null_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator is NULL: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> BETWEEN <ul> <li>expr1 [NOT] BETWEEN expr2 AND expr3 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.between_t" data-throw-if-not-resolved="false"></xref></li> <li>expr1: <xref href="gudusoft.gsqlparser.nodes.TExpression.BetweenOperand" data-throw-if-not-resolved="false"></xref></li> <li>expr2: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>expr3: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator is BETWEEN: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> EXISTS <ul> <li>EXISTS (subquery) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.exists_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A</li> <li>subquery: <xref href="gudusoft.gsqlparser.nodes.TExpression.SubQuery" data-throw-if-not-resolved="false"></xref> </li> <li>EXISTS: <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.startToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul>IS UNKNOWN
- expr1 IS [NOT] UNKNOWN
- type: is_unknown_t
- left operand: LeftOperand
- right operand: N/A
- operator: OperatorToken
- NOT keyword: NotToken
IS TRUE
- expr1 IS [NOT] TRUE
- type: is_true_t
- left operand: LeftOperand
- right operand: N/A
- operator: OperatorToken
- NOT keyword: NotToken
IS FALSE
- expr1 IS [NOT] FALSE
- type: is_false_t
- left operand: LeftOperand
- right operand: N/A
- operator: OperatorToken
- NOT keyword: NotToken
DAY TO SECOND <ul> <li>expr DAY [( integer )] TO SECOND [( integer )] <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.day_to_second_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> YEAR TO MONTH <ul> <li>expr YEAR [( integer )] TO MONTH <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.year_to_month_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> INTERVAL(teradata) <ul> <li>( date_time_expression date_time_term ) start TO end <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.interval_t" data-throw-if-not-resolved="false"></xref></li> <li>date_time_expression: <xref href="gudusoft.gsqlparser.nodes.TExpression.IntervalExpr" data-throw-if-not-resolved="false"></xref> </li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> NEW STRUCTURED TYPE <ul> <li>NEW function_call <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.new_structured_type_t" data-throw-if-not-resolved="false"></xref></li> <li>function_call: <xref href="gudusoft.gsqlparser.nodes.TExpression.FunctionCall" data-throw-if-not-resolved="false"></xref> </li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> NEW VARIANT_TYPE <ul> <li>NEW VARIANT_TYPE ( type_argument_list ) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.new_variant_type_t" data-throw-if-not-resolved="false"></xref></li> <li>type_argument_list: <xref href="gudusoft.gsqlparser.nodes.TExpression.NewVariantTypeArgumentList" data-throw-if-not-resolved="false"></xref> </li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> LDIFF,RDIFF,P_INTERSECT,P_NORMALIZE <ul> <li> expr1 LDIFF|RDIFF|P_INTERSECT|P_NORMALIZE expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.new_variant_type_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul>UNTIL CHANGED
- expr1 IS [NOT] UNTIL_CHANGED
- type: new_variant_type_t
- left operand: LeftOperand
- right operand: N/A
- operator: OperatorToken
- NOT keyword: NotToken
LEFT SHIFT <ul> <li>expr1 >> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.left_shift_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> RIGHT SHIFT <ul> <li>expr1 >> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.right_shift_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul>IS DOCUMENT
- expr1 IS [NOT] DOCUMENT
- type: is_document_t
- left operand: LeftOperand
- right operand: N/A
- operator: OperatorToken
- NOT keyword: NotToken
IS DISTINCT FROM <ul> <li> expr1 IS [NOT] DISTINCT FROM expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.is_distinct_from_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> SQL SERVER left join <ul> <li> expr1 *= expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.left_join_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> SQL SERVER right join <ul> <li> expr1 =* expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.right_join_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> COLLATE <ul> <li> expr1 COLLATE expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.collate_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> MEMBER OF <ul> <li> expr1 MEMBER OF expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.member_of_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> NEXT VALUE FOR <ul> <li> NEXT VALUE FOR sequence name, or NEXT integer expression VALUE FOR sequence name <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.next_value_for_t" data-throw-if-not-resolved="false"></xref></li> <li>sequence name: <xref href="gudusoft.gsqlparser.nodes.TExpression.SequenceName" data-throw-if-not-resolved="false"></xref> </li> <li>over_clause : <xref href="gudusoft.gsqlparser.nodes.TExpression.Over_clause" data-throw-if-not-resolved="false"></xref>} </li> <li>left operand(integer expression): <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> REF ARROW(named parameters in function call) <ul> <li> expr1 => expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.ref_arrow_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> TYPECAST <ul> <li> expr1 TYPECAST typename <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.typecast_t" data-throw-if-not-resolved="false"></xref></li> <li>typename: <xref href="gudusoft.gsqlparser.nodes.TExpression.TypeName" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> MULTISET <ul> <li>MULTISET subquery <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.multiset_t" data-throw-if-not-resolved="false"></xref></li> <li>subquery: <xref href="gudusoft.gsqlparser.nodes.TExpression.SubQuery" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: MULTISET can be fetched via <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.startToken" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul> FLOATING POINT <ul> <li>expr is [NOT] NAN|INFINITE <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.floating_point_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator is IS: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> <li>NOT keyword: <xref href="gudusoft.gsqlparser.nodes.TExpression.NotToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> ROW CONSTRUCTOR <ul> <li>ROW ( expr_list ) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.row_constructor_t" data-throw-if-not-resolved="false"></xref></li> <li>expr_list: <xref href="gudusoft.gsqlparser.nodes.TExpression.ExprList" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator is ROW: <xref href="gudusoft.gsqlparser.nodes.TParseTreeNode.startToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> IS OF TYPE <ul> <li>expr is of type ( datatype,...) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.is_of_type_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> PLACE HOLDER <ul> <li>place holder expression <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.place_holder_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> TYPE_CONSTRUCTOR_EXPRESSION <ul> <li>[NEW] type_name( expr_list ) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.type_constructor_t" data-throw-if-not-resolved="false"></xref></li> <li>type_name(expr_list): <xref href="gudusoft.gsqlparser.nodes.TExpression.FunctionCall" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> ARRAY ACCESS <ul> <li>array_name(index1)(index2)(index3) <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.arrayaccess_t" data-throw-if-not-resolved="false"></xref></li> <li>array_name(index1)(index2)(index3): <xref href="gudusoft.gsqlparser.nodes.TExpression.ArrayAccess" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> OBJECT ACCESS EXPRESSION <ul> <li>objectExpr.[attributes].method() <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.object_access_t" data-throw-if-not-resolved="false"></xref></li> <li>objectExpr.[attributes].method(): <xref href="gudusoft.gsqlparser.nodes.TExpression.ObjectAccess" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: N/A </li> <li>operator: N/A</li> </ul> </li> </ul> Unknown <ul> <li>expr OPERATOR expr, means this expression was not recognized by SQL parser yet. <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unknown_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> Unknown unary left <ul> <li>OPERATOR expr, means this expression was not recognized by SQL parser yet. <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_left_unknown_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: N/A</li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.RightOperand" data-throw-if-not-resolved="false"></xref> </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul> Unknown unary right <ul> <li> expr OPERATOR, means this expression was not recognized by SQL parser yet. <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.unary_right_unknown_t" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: N/A </li> <li>operator: <xref href="gudusoft.gsqlparser.nodes.TExpression.OperatorToken" data-throw-if-not-resolved="false"></xref></li> </ul> </li> </ul>ARRAY CONSTRUCTOR <ul> <li>An array constructor is an expression that builds an array value using values for its member elements.
like this: ARRAY[1,2,3+4]
array element values can be accessed via ExprList,
or ExprList can be null when it is: array[]
It is also possible to construct an array from the results of a subquery like this:
SELECT ARRAY(SELECT oid FROM pg_proc WHERE proname LIKE 'bytea%');
thus, subquery can be access via SubQuery
- type: array_constructor_t
- array element values: ExprList
- subquery: SubQuery
- left operand: N/A
- right operand: N/A
- operator: N/A
</p> </li> </ul> FIELD SELECTION <ul> <li>If an expression yields a value of a composite type (row type), then a specific field of the row can be extracted by writing
expression.fieldname
In general the row expression must be parenthesized, but the parentheses can be omitted
when the expression to be selected from is just a table reference or positional parameter.
For example:
mytable.mycolumn
$1.somecolumn
(rowfunction(a,b)).col3
(Thus, a qualified column reference is actually just a special case of the field selection syntax.) An important special case is extracting a field from a table column that is of a composite type:
(compositecol).somefield
(mytable.compositecol).somefield
The parentheses are required here to show that compositecol is a column name not a table name,
or that mytable is a table name not a schema name in the second case.
n a select list, you can ask for all fields of a composite value by writing .*:
(compositecol).*
When expression in following syntax, it will be marked as fieldSelection, and check FieldName
(rowfunction(a,b)).col3
(compositecol).somefield
(mytable.compositecol).somefield
(compositecol).*
Otherwise, it will be marked as simpleObjectname:
mytable.mycolumn
$1.somecolumn
- type: fieldselection_t
- left operand: N/A
- right operand: N/A
- operator: N/A
HIVE ARRAY ACCESS
- HIVE field expression syntax like fieldexpr[expr_subscript]
- type: array_access_expr_t
- fieldexpr: LeftOperand
- expr_subscript: RightOperand
- operator: N/A
HIVE FIELD ACCESS
- HIVE field access syntax like fieldexpr.identifier.identifier...
- type: object_access_t
- fieldexpr: LeftOperand
- identifier.identifier...: FieldList
- operator: N/A
JSON Operators (PostgreSQL) <ul> <li> expr1 -> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_get_object" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 ->> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_get_text" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 > expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_get_object_at_path" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 >> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_get_text_at_path" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 @> expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_left_contain" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 >@ expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_right_contain" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 ? expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_exist" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 ?| expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_any_exist" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> <li> expr1 ?& expr2 <ul> <li>type: <xref href="gudusoft.gsqlparser.EExpressionType.json_all_exist" data-throw-if-not-resolved="false"></xref></li> <li>left operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref></li> <li>right operand: <xref href="gudusoft.gsqlparser.nodes.TExpression.LeftOperand" data-throw-if-not-resolved="false"></xref> </li> </ul> </li> </ul>- object name, usually this is a column reference like emp.ename
- TExpressionCallTarget
sql server call target
- TFetchFirstClause
DB2 fetch first clause.
Oracle fetch first/next clause
- TFetchSqlNode
fetch .. from cursor
- TForUpdate
The FOR UPDATE clause lets you lock the selected rows so that other users cannot lock or update the rows until you end your transaction. This clause only in a top-level SELECT statement, not in subqueries.
- TFromTable
Represents table source in from clause of select/delete statement, and update table clause of update statement.
- TFunctionCall
Database built-in function or user defined function called in a SQL query. this class includes function name and arguments.
function([expr,expr, ...])
- type: FunctionType
- function name: FunctionName
- args: Args
for Window (or analytic) functions, method AnalyticFunction returns additional information about window information.
Below are functions with special arguments.
trim
- type: trim_t
- arg: TrimArgument
cast(expr as typename), cast(expr as typename [,datatypeAttribute]), cast(expr as datatypeAttribute)
convert(typename,[null|not null] expr1 [,expr2]),
extract([time_token from expr]),
- type: extract_t
- expr: Expr1
- time_token: Extract_time_token
sql server contains function,contains(in_expr, expr [,langTerm]),
- type: contains_t
- expr: Expr1
- in_expr: InExpr
sql server freetext,freetext(contain in expr, expr [,langTerm]),
- type: freetext_t
- expr: Expr1
- in_expr: InExpr
Oracle Extract(XML): extract(XMLType_instance, XPath_string[,namespace_string]),
- type: extractxml_t
- XMLType_instance: XMLType_Instance
- XPath_string: XPath_String
- namespace_string: Namespace_String
Rank(value,...),
- type: rank_t
- value list OrderByList
XMLPassingClause of XMLExists function
- type: xmlexists_t
- value list PassingClause
- TGroupBy
This class represents group by clause and having clause.
Specify the GROUP BY clause if you want the database to group the selected rows based on the value of expr(s) for each row and return a single row of summary information for each group.
If this clause contains CUBE or ROLLUP extensions, then the database produces superaggregate groupings in addition to the regular groupings.
Use the HAVING clause to restrict the groups of returned rows to those groups for which the specified condition is TRUE. If you omit this clause, then the database returns summary rows for all groups.
- TGroupingExpressionItem
Item in grouping expression list. It can be an expression or an expression list.
- TGroupingExpressionItemList
List of TGroupingExpressionItem.
- TGroupingSet
GROUPING SETS are a further extension of the GROUP BY clause that let you specify multiple groupings of data.
- TGroupingSetItem
Gruping set item that used in TGroupingSet Content of this item can be a TRollupCube instance or a TGroupingExpressionItem instance
- THierarchical
Oracle hierarchical_query_clause lets you select rows in a hierarchical order.
- TIndices
Postgresql;
used in subscript:
'[' expr ']'
'[' expr ':' expr ']'
- TIndirection
Postgresql, redshift
- TInsertSqlNode
Interal used by parser.
- TIntoTableClause
Informix, into table clause.
- TIsolationClause
DB2/Sybase isolation clause
- TJoin
A list of join joins represents table sources in following clauses of SQL statement:
- from clause of select statement.
- from clause of delete statement, Specifies an additional FROM clause, This Transact-SQL extension to DELETE allows specifying data from table_source and deleting the corresponding rows from the table in the first FROM clause.
- from clause of update statement, Specifies that a table, view, or derived table source is used to provide the criteria for the update operation.
Each table source in from clause was treated as a join which is type of TJoin.
The reason for this design is that we can treat all table sources in from clause in a uniform way.
- TJoinExpr
Internal used by parser.
Represents join table in parse tree.
- TJoinItem
SQL 1:
In above SQL, the whole from clause can be represented by a TJoin class.select f from t1 left join t2 on t1.f1 = t2.f1 right join t3 on t1.f1 = t3.f1And "left join t2 on t1.f1 = t2.f1 right join t3 on t1.f1 = t3.f1" was represented by 2 instance of class TJoinItem.
These 2 instance can be accessed via JoinItems.
One for: "left join t2 on t1.f1 = t2.f1", the other is "right join t3 on t1.f1 = t3.f1".
- TLockingClause
Postgresql locking clause
- TMergeInsertClause
insert clause in merge statement.
[when not matched [and search_conditions ] then insert [(column_list)] values (value_list)]call ColumnList to return value for (column_list)
call Valuelist to return value for (value_list)
- TMergeUpdateClause
update clause in merge statement.
[when matched [and search_conditions ] then update set {col_name = expression} | delete]call UpdateColumnList to return value for {col_name = expression}
- TMergeWhenClause
when [not] matched clause in merge statement.
merge into .... [when matched [and search_conditions ] then update set {col_name = expression} | delete] [when not matched [and search_conditions ] then insert [(column_list)] values (value_list)]call method Condition to return search_condition if any.
call method UpdateClause, DeleteClause and InsertClause separately to get related update clause, delete clause and insert clause.
- TMultiTarget
Represents value list in value clause of insert statement.
- TMultiTargetList
List of TMultiTarget which can be used in values clause of insert statement.
- TNonDmlTriggerClause
Use this clause to define a single trigger on a DDL or database event.
- TObjectAccess
An object access expression specifies attribute reference and method invocation.
Syntax: objectExpr.[attributes].method()
objectExpr can be a qualified name or function call
- TObjectName
An objectname specifies a database object or a variable. The rules for forming the name of an object depend on the object type. Database object names may be made up of a single identifier or more than one identifier. Each identifier was represented by a TSourceToken.
schemaToken, databaseToken, serverToken is quite straightforward. Meanings of objectToken is depends on objectType.
- TObjectNameList
List of TObjectName
- TObjectReferenceList
Created by IntelliJ IDEA. User: dpriver Date: 2010-2-4 Time: 15:15:36 To change this template use File | Settings | File Templates.
- TOffsetClause
PostgreSQL offset clause in select limit
Oracle offset clause in select
- TOptimizeForClause
DB2 Optimize for clause
- TOrderBy
List of order by item which is type of TOrderByItem.
- TOrderByItem
Item in order by clause.
Syntax:
ORDER BY {sort-key [ASC|DESC}[,..n] sort-key: simple-column-name simple-integer sort-key-expression
- TParameterDeclaration
Parameters in create procedure/function statements. Field declaration in plsql record type definition Parameter declaration in plsql cursor declaration.
- TParseTreeNode
This class is the root class for all parse tree nodes.
Check NodeType for type of this node.
This node includes all tokens from startToken and endToken
- TParseTreeNodeList
List of parse tree node.
- TPivotClause
use the PIVOT and UNPIVOT relational operators to change a table-valued expression into another table.
- TQualifyClause
teradata qualify clause
- TRelationExpr
Postgresql Relation expr parse tree node
- TRestrictionClause
DB2 restrict clause in create view statement
- TResultColumn
This class represents select_list item in select statement, lets you specify the columns you want to retrieve from the table.
Syntax:
query_name|[schema.]{table|view|materialized_view}|expr [ [AS] alias]or, set column values in update_set_clause.
Syntax:
column = expr|(subquery)or, values clause in insert statement was represented by TResultColumnList.
Syntax:
(expr,expr)
- TRollupCube
The ROLLUP operation in the simple_grouping_clause groups the selected rows based on the values of the first n, n-1, n-2, ... 0 expressions in the GROUP BY specification, and returns a single row of summary for each group.
The CUBE operation in the simple_grouping_clause groups the selected rows based on the values of all possible combinations of expressions in the specification. It returns a single row of summary information for each group.
- TSelectSqlNode
Internal used by parser, reprsents raw parse tree node of select statement.
- TSimpleDmlTriggerClause
Use this clause to define a single trigger on a DML event.
- TTable
Represents various kinds of table source in from clause. Can also be a simple table/view name in create table and all other places. result of TableType can be one of:
- ftt_objectname, in from clause, a simple table/view name, reference: gudusoft.gsqlparser.nodes.TTable._tableName
- ftt_subquery, is a subquery that retrieves rows from the database, also known as derived table. reference: Subquery
- ftt_tableExpr,it's usually a table-valued expression., reference: gudusoft.gsqlparser.nodes.TTable.tableExpr
- ftt_function, it's usually a table-valued function., reference: gudusoft.gsqlparser.nodes.TTable.funcCall
- rowList, it's constructed rows, reference: gudusoft.gsqlparser.nodes.TTable.rowList
- ftt_containsTable, CONTAINSTABLE clause of sql server. reference: gudusoft.gsqlparser.nodes.TTable.containsTable, type of TContainsTable
- ftt_freetextTable, FREETEXTTABLE clause of sql server. reference: gudusoft.gsqlparser.nodes.TTable.containsTable, type of TContainsTable
- ftt_openrowset, OPENROWSET clause of sql server. reference: gudusoft.gsqlparser.nodes.TTable.openRowSet, type of TOpenRowSet
- ftt_openxml, OPENXML clause of sql server. reference: gudusoft.gsqlparser.nodes.TTable.openXML, type of TOpenXML
- ftt_opendatasource, OPENDATASOURCE clause of sql server. reference: gudusoft.gsqlparser.nodes.TTable.openDatasource, type of TOpenDatasource
- ftt_openquery, OPENQUERY clause of sql server. reference: gudusoft.gsqlparser.nodes.TTable.openquery, type of TOpenQuery
- TTableHint
SQL Server table hint:
Syntax 1:
WITH ( <table_hint> [ [, ]...n ] )
<table_hint> ::= FORCESCAN use Hint method get this hint:FORCESCAN
<table_hint> ::= INDEX = ( index_value ) Index return true, Hint return index_value.
<table_hint> ::= INDEX ( index_value [ ,...n ] ) Index return true, ExprList return index_value list.
- TTopClause
Indicates that only a specified first set or percent of rows will be returned from the query result set. expression can be either a number or a percent of the rows.
Syntax:
TOP ( expression ) [ PERCENT ] [ WITH TIES ]
- TTrimArgument
Argument of trim function.
trim( [ [BOTH|TRAILING|LEADING] trim_character FROM ] trim_source)
method Both_trailing_leading return one of those keywords if any: BOTH|TRAILING|LEADING
method TrimCharacter return a value of TExpression represents trim_character.
method StringExpression return a value of TExpression reprsents trim_source.
- TTypeAttribute
Attribute definition of an object type(TPlsqlCreateType)
- TTypeAttributeList
List of attribute definition (TTypeAttribute) of an object type.
- TTypeName
This class represents SQL Datatype. call method String will return string representation of datatype including type name,length,precision,scale and attributes
- typename
- typename(length)
- length: Length
- typename(precision,scale)
datetype attribute
In datatype like this: MEDIUMTEXT [CHARACTER SET cs_name] [COLLATE collation_name], CHARACTER SET and COLLATE were treated as attribute of the MEDIUMTEXT datatype,those attributes can be fetched from DatatypeAttributeList. For more detailed information about attributes in datatype, please check TDatatypeAttribute.method DatatypeAttributeList can be used to get datatype attribute such as FORMAT 'yyyymmdd' of DATE in this fuction: CAST('20120802' AS DATE FORMAT 'yyyymmdd').
BINARY
- BINARY[(n)]
- BINARY LARGE OBJECT
- BLOB
- GRAPHIC
- LONGBLOB
- LONG RAW
- VARBINARY[(n)]
- BYTEA
- IMAGE(SQL Server)
- TINYBLOB(MySQL, SQL Server)
BOOLEAN
CHARACTER STRING
- CHAR[(n)]/CHARACTER[(n)]
- CHARACTER VARYING(n)/VARCHAR(n)/CHAR VARYING(n)/VARCHAR2(n) (Oracle)
- NATIONAL CHARACTER[(n)]/NATIONAL CHAR[(n)]/NCHAR[(n)]
- NATIONAL CHARACTER VARYING(n)/NATIONAL CHAR VARYING(n)/NCHAR VARYING(n)/NVARCHAR/VARGRAPHIC(n)
- nvarchar_t
- n: Length
- NVARCHAR2(n) (Oracle)
- CHARACTER LARGE OBJECT/CLOB
- NATIONAL CHARACTER LARGE OBJECT
- NCLOB
- DBCLOB
- NTEXT/NATIONAL TEXT(SQL Server)
- TEXT
- CHAR FOR BIT DATA
- VARCHAR FOR BIT DATA
- TINYTEXT(MySQL)
DATALINK
- DATALINK
INTERVAL
- INTERVAL
- INTERVAL DAY[(precision)]
- interval_day_t
- precision: Precision
- INTERVAL DAY[(precision)] TO SECOND[(second precision)]
- interval_day_to_second_t
- precision: Precision
- second precision: SecondsPrecision
- INTERVAL DAY[(precision)] TO MINUTE
- interval_day_to_minute_t
- precision: Precision
- INTERVAL DAY[(precision)] TO HOUR
- interval_day_to_hour_t
- precision: Precision
- INTERVAL YEAR[(precision)] TO MONTH
- interval_year_to_month_t
- precision: Precision
- TIMESPAN
COLLECTION
- ARRAY
- MULTISET
NUMERIC
- INTEGER/INT
- INT4(PostgreSQL)
- MEDIUMINT(MySQL)
- SMALLINT
- INT2(PostgreSQL)
- BIGINT
- NUMERIC(p,s)
- NUMBER(p,s)
- DEC[IMAL](p,s)
- FLOAT(p,s)
- FLOAT4(PostgreSQL)
- FLOAT8(PostgreSQL)
- REAL
- DOUBLE/DOUBLE PRECISION
- BINARY_FLOAT(Oracle)
- BINARY_DOUBLE(Oracle)
- TINYINT/YEAR(MySQL)
TEMPORAL
- DATE
- TIME
- TIME WITH TIME ZONE/TIMETZ(PostgreSQL)
- TIMESTAMP [(fractional_seconds)]
- timestamp_t
- fractional_seconds: Precision
- TIMESTAMP [(fractional_seconds)] WITH TIME ZONE
- timestamp_with_time_zone_t
- fractional_seconds: Precision
- DATETIME
- SMALLDATETIME
- DATETIMEOFFSET[ (fractional seconds precision) ]
- datetimeoffset_t
- fractional seconds precision: Precision
- DATETIME2[ (fractional seconds precision) ](SQL Server)
- datetime2_t
- fractional seconds precision: Precision
- TIMESTAMPTZ
XML
- XML
- XMLTYPE(Oracle)
HIVE array <T>
- arry <T>
OTHERS
- BFILE(Oracle)
- BIT(MySQL,PostgreSQL,SQL Server)
- BITVARYING/VARBIT(PostgreSQL)
- BOX(PostgreSQL)
- CIDR(PostgreSQL)
- CIRCLE(PostgreSQL)
- CURSOR(SQL Server)
- ENUM(MySQL, PostgreSQL)
- GEOGRAPHY(SQL Server)
- GEOMETRY(SQL Server)
- HIERARCHYID(SQL Server)
- INET(PostgreSQL)
- LINE(PostgreSQL)
- LONG(Oracle)
- LONG VARCHAR
- LONG VARGRAPHIC
- LONGTEXT(MySQL)
- LSEG(PostgreSQL)
- MACADDR(PostgreSQL)
- MEDIUMBLOB(MySQL)
- MEDIUMTEXT(MySQL)
- MONEY(PostgreSQL,SQL Server)
- OID(PostgreSQL)
- PATH(PostgreSQL)
- POINT(PostgreSQL)
- POLYGON(PostgreSQL)
- RAW(Oracle)
- ROWID(Oracle)
- ROWVERSION(SQL Server)
- SERIAL, SERIAL4(MySQL,PostgreSQL)
- SERIAL8, BIGSERIAL(PostgreSQL)
- SET(MySQL)
- SMALLMONEY(SQL Server)
- SQL_VARIANT(SQL Server)
- TABLE(SQL Server)
- UNIQUEIDENTIFIER(SQL Server)
- UROWID(Oracle)
datatypes optional attributes:
- NSIGNED (MySQL)
- ZEROFILL (MySQL)
- CHARACTER SET cs_name (MySQL)
- COLLATE collation_name (MySQL)
- TVarDeclStmt
Represents declare statement that used to decalre variable, constant, exception and subtype. Or Signifies that the statement is a pragma (compiler directive), including exception_init_pragma, autonomous_transaction_pragma, restrict_references_pragma, serially_resuable_pragma and pragma_timestamp
- TWhenClauseItem
WhenClause item used in case expr of TCaseExpression.
- WHEN comparison_expr THEN return_expr
- comparison_expr: Comparison_expr
- return_expr: Return_expr
in db2/plsql case statement
- WHEN comparison_expr THEN statement_list
- comparison_expr: Comparison_expr
- statement_list: Statement_list
- WHEN comparison_expr THEN return_expr
- TWhenClauseItemList
List of TWhenClauseItem
Interfaces
- IExpressionVisitor
visitor used to iterate an expression