This section provides a visual reference guide to the grammar for the expression language used in X DevAPI.
schemaQualifiedIdent
::= ( ident_schema '.' )? ident
Figure 12.3 columnIdent
columnIdent
::= ( ident '.' ( ident '.' )? )? ident ( ( '->' | '->>' ) "'" '$' documentPath "'" )?
documentPathLastItem
::= '[*]'
| '[' INT ']'
| '.*'
| '.' documentPathMember
castType ::= 'SIGNED' 'INTEGER'*
| 'UNSIGNED' 'INTEGER'*
| 'CHAR' lengthSpec*
| 'BINARY' lengthSpec*
| 'DECIMAL' ( lengthSpec | '(' INT ',' INT ')' )?
| 'TIME'
| 'DATE'
| 'DATETIME'
| 'JSON'
literal ::= INT
| FLOAT
| STRING_SQ
| STRING_DQ
| 'NULL'
| 'FALSE'
| 'TRUE'
atomicExpr
::= placeholder
| columnOrPath
| functionCall
| groupedExpr
| unaryOp
| castOp
INTERVAL_UNIT
::= 'MICROSECOND'
| 'SECOND'
| 'MINUTE'
| 'HOUR'
| 'DAY'
| 'WEEK'
| 'MONTH'
| 'QUARTER'
| 'YEAR'
| 'SECOND_MICROSECOND'
| 'MINUTE_MICROSECOND'
| 'MINUTE_SECOND'
| 'HOUR_MICROSECOND'
| 'HOUR_SECOND'
| 'HOUR_MINUTE'
| 'DAY_MICROSECOND'
| 'DAY_SECOND'
| 'DAY_MINUTE'
| 'DAY_HOUR'
| 'YEAR_MONTH'
mulDivExpr
::= intervalExpr ( ( '*' | '/' | '%' ) intervalExpr )*
compExpr ::= bitExpr ( ( '>=' | '>' | '<=' | '<' | '=' | '<>' | '!=' ) bitExpr )*
ilriExpr ::= compExpr 'IS' 'NOT'* ( 'NULL' | 'TRUE' | 'FALSE' )
| compExpr 'NOT'* 'IN' '(' argsList* ')'
| compExpr 'NOT'* 'IN' compExpr
| compExpr 'NOT'* 'LIKE' compExpr ( 'ESCAPE' compExpr )*
| compExpr 'NOT'* 'BETWEEN' compExpr 'AND' compExpr
| compExpr 'NOT'* 'REGEXP' compExpr
| compExpr
FLOAT ::= DIGIT* '.' DIGIT+ ( 'E' ( '+' | '-' )* DIGIT+ )*
| DIGIT+ 'E' ( '+' | '-' )* DIGIT+
ID ::= ( 'a' - 'z' | 'A' - 'Z' | '_' ) ( 'a' - 'z' | 'A' - 'Z' | '0' - '9' | '_' )*