This section provides a visual reference guide to the grammar for the expression language used in X DevAPI.
schemaQualifiedIdent 
                  ::= ( ident_schema '.' )? identFigure 12.3 columnIdent
columnIdent
         ::= ( ident '.' ( ident '.' )? )? ident ( ( '->' | '->>' ) "'" '$' documentPath "'" )?
documentPathLastItem
         ::= '[*]'
           | '[' INT ']'
           | '.*'
           | '.' documentPathMembercastType ::= '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
           | castOpINTERVAL_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
           | compExprFLOAT    ::= DIGIT* '.' DIGIT+ ( 'E' ( '+' | '-' )* DIGIT+ )*
           | DIGIT+ 'E' ( '+' | '-' )* DIGIT+ID       ::= ( 'a' - 'z' | 'A' - 'Z' | '_' ) ( 'a' - 'z' | 'A' - 'Z' | '0' - '9' | '_' )*





































