MarpaX-Languages-SQL2003-AST
view release on metacpan or search on metacpan
etc/sql-2003-2.ebnf view on Meta::CPAN
<cardinality expression> ::= CARDINALITY <left paren> <collection value expression> <right paren>
<absolute value expression> ::= ABS <left paren> <numeric value expression> <right paren>
<modulus expression> ::= MOD <left paren> <numeric value expression> <comma> <numeric value expression> <right paren>
<natural logarithm> ::= LN <left paren> <numeric value expression> <right paren>
<exponential function> ::= EXP <left paren> <numeric value expression> <right paren>
<power function> ::= POWER <left paren> <numeric value expression base> <comma> <numeric value expression exponent> <right paren>
<numeric value expression base> ::= <numeric value expression>
<numeric value expression exponent> ::= <numeric value expression>
<square root> ::= SQRT <left paren> <numeric value expression> <right paren>
<floor function> ::= FLOOR <left paren> <numeric value expression> <right paren>
<ceiling function> ::= ( CEIL | CEILING ) <left paren> <numeric value expression> <right paren>
<width bucket function> ::= WIDTH_BUCKET <left paren> <width bucket operand> <comma> <width bucket bound 1> <comma> <width bucket bound 2> <comma> <width bucket count> <right paren>
<width bucket operand> ::= <numeric value expression>
<width bucket bound 1> ::= <numeric value expression>
<width bucket bound 2> ::= <numeric value expression>
<width bucket count> ::= <numeric value expression>
<string value expression> ::= <character value expression> | <blob value expression>
<character value expression> ::= <concatenation> | <character factor>
<concatenation> ::= <character value expression> <concatenation operator> <character factor>
<character factor> ::= <character primary> <collate clause>?
<character primary> ::= <value expression primary> | <string value function>
<blob value expression> ::= <blob concatenation> | <blob factor>
<blob factor> ::= <blob primary>
<blob primary> ::= <value expression primary> | <string value function>
<blob concatenation> ::= <blob value expression> <concatenation operator> <blob factor>
<string value function> ::= <character value function> | <blob value function>
<character value function> ::=
<character substring function>
| <regular expression substring function>
| <fold>
| <transcoding>
| <character transliteration>
| <trim function>
| <character overlay function>
| <normalize function>
| <specific type method>
<character substring function> ::=
SUBSTRING <left paren> <character value expression> FROM <start position>
( FOR <string length> )? ( USING <char length units> )? <right paren>
<regular expression substring function> ::=
SUBSTRING <left paren> <character value expression>
SIMILAR <character value expression> ESCAPE <escape character> <right paren>
<fold> ::= ( UPPER | LOWER ) <left paren> <character value expression> <right paren>
<transcoding> ::= CONVERT <left paren> <character value expression> USING <transcoding name> <right paren>
<character transliteration> ::= TRANSLATE <left paren> <character value expression> USING <transliteration name> <right paren>
<trim function> ::= TRIM <left paren> <trim operands> <right paren>
<trim operands> ::= ( <trim specification>? <trim character>? FROM )? <trim source>
<trim source> ::= <character value expression>
<trim specification> ::= LEADING | TRAILING | BOTH
<trim character> ::= <character value expression>
<character overlay function> ::=
OVERLAY <left paren> <character value expression> PLACING <character value expression>
FROM <start position> ( FOR <string length> )? ( USING <char length units> )? <right paren>
<normalize function> ::= NORMALIZE <left paren> <character value expression> <right paren>
<specific type method> ::= <user_defined type value expression> <period> SPECIFICTYPE
<blob value function> ::=
<blob substring function>
| <blob trim function>
| <blob overlay function>
<blob substring function> ::=
SUBSTRING <left paren> <blob value expression> FROM <start position> ( FOR <string length> )? <right paren>
<blob trim function> ::= TRIM <left paren> <blob trim operands> <right paren>
<blob trim operands> ::= ( <trim specification>? <trim octet>? FROM )? <blob trim source>
<blob trim source> ::= <blob value expression>
<trim octet> ::= <blob value expression>
<blob overlay function> ::=
OVERLAY <left paren> <blob value expression> PLACING <blob value expression>
FROM <start position> ( FOR <string length> )? <right paren>
<start position> ::= <numeric value expression>
<string length> ::= <numeric value expression>
<datetime value expression> ::=
<datetime term>
| <interval value expression> <plus sign> <datetime term>
| <datetime value expression> <plus sign> <interval term>
| <datetime value expression> <minus sign> <interval term>
<datetime term> ::= <datetime factor>
<datetime factor> ::= <datetime primary> <time zone>?
<datetime primary> ::= <value expression primary> | <datetime value function>
<time zone> ::= AT <time zone specifier>
<time zone specifier> ::= LOCAL | TIME ZONE <interval primary>
<datetime value function> ::=
<current date value function>
| <current time value function>
| <current timestamp value function>
| <current local time value function>
| <current local timestamp value function>
<current date value function> ::= CURRENT_DATE
<current time value function> ::= CURRENT_TIME ( <left paren> <time precision> <right paren> )?
<current local time value function> ::= LOCALTIME ( <left paren> <time precision> <right paren> )?
<current timestamp value function> ::= CURRENT_TIMESTAMP ( <left paren> <timestamp precision> <right paren> )?
<current local timestamp value function> ::= LOCALTIMESTAMP ( <left paren> <timestamp precision> <right paren> )?
<interval value expression> ::=
<interval term>
| <interval value expression 1> <plus sign> <interval term 1>
| <interval value expression 1> <minus sign> <interval term 1>
| <left paren> <datetime value expression> <minus sign> <datetime term> <right paren> <interval qualifier>
<interval term> ::=
<interval factor>
| <interval term 2> <asterisk> <factor>
| <interval term 2> <solidus> <factor>
| <term> <asterisk> <interval factor>
<interval factor> ::= <sign>? <interval primary>
<interval primary> ::=
<value expression primary> <interval qualifier>?
| <interval value function>
<interval value expression 1> ::= <interval value expression>
( run in 1.200 second using v1.01-cache-2.11-cpan-df04353d9ac )