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 )