filter_expression:

boolean_expression

filter_expression
         ::= boolean_expression

no references


order_by_expression:

order_by_clause ,

order_by_expression
         ::= order_by_clause ( ',' order_by_clause )*

no references


select_expression:

* field_path ,

select_expression
         ::= '*'
           | field_path ( ',' field_path )*

no references


field_path:

identifier /

field_path
         ::= identifier ( '/' identifier )*

referenced by:


identifier:

[a-z] [A-Z] _ [a-z] [A-Z] _ [0-9]

identifier
         ::= [a-zA-Z_] [a-zA-Z_0-9]*

referenced by:


order_by_clause:

field_path sortable_function asc desc

order_by_clause
         ::= ( field_path | sortable_function ) ( 'asc' | 'desc' )?

referenced by:


sortable_function:

geo_distance_call search.score()

sortable_function
         ::= geo_distance_call
           | 'search.score()'

referenced by:


boolean_expression:

collection_filter_expression logical_expression comparison_expression boolean_literal boolean_function_call ( boolean_expression ) variable

boolean_expression
         ::= collection_filter_expression
           | logical_expression
           | comparison_expression
           | boolean_literal
           | boolean_function_call
           | '(' boolean_expression ')'
           | variable

referenced by:


variable:

identifier field_path

variable ::= identifier
           | field_path

referenced by:


collection_filter_expression:

field_path /all( /any( lambda_expression ) /any()

collection_filter_expression
         ::= field_path ( ( '/all(' | '/any(' ) lambda_expression ')' | '/any()' )

referenced by:


lambda_expression:

identifier : boolean_expression

lambda_expression
         ::= identifier ':' boolean_expression

referenced by:


logical_expression:

boolean_expression and or not boolean_expression

logical_expression
         ::= ( boolean_expression ( 'and' | 'or' ) | 'not' ) boolean_expression

referenced by:


comparison_expression:

variable_or_function comparison_operator constant constant comparison_operator variable_or_function

comparison_expression
         ::= variable_or_function comparison_operator constant
           | constant comparison_operator variable_or_function

referenced by:


variable_or_function:

variable function_call

variable_or_function
         ::= variable
           | function_call

referenced by:


comparison_operator:

gt lt ge le eq ne

comparison_operator
         ::= 'gt'
           | 'lt'
           | 'ge'
           | 'le'
           | 'eq'
           | 'ne'

referenced by:


constant:

string_literal date_time_offset_literal integer_literal float_literal boolean_literal null

constant ::= string_literal
           | date_time_offset_literal
           | integer_literal
           | float_literal
           | boolean_literal
           | 'null'

referenced by:


string_literal:

' [^'] '' '

string_literal
         ::= "'" ( [^'] | "''" )* "'"

referenced by:


date_time_offset_literal:

date_part T time_part time_zone

date_time_offset_literal
         ::= date_part 'T' time_part time_zone

referenced by:


date_part:

year - month - day

date_part
         ::= year '-' month '-' day

referenced by:


time_part:

hour : minute : second . fractional_seconds

time_part
         ::= hour ':' minute ( ':' second ( '.' fractional_seconds )? )?

referenced by:


zero_to_fifty_nine:

[0-5] digit

zero_to_fifty_nine
         ::= [0-5] digit

referenced by:


digit:

[0-9]

digit    ::= [0-9]

referenced by:


year:

digit digit digit digit

year     ::= digit digit digit digit

referenced by:


month:

0 [1-9] 1 [0-2]

month    ::= '0' [1-9]
           | '1' [0-2]

referenced by:


day:

0 [1-9] [1-2] digit 3 [0-1]

day      ::= '0' [1-9]
           | [1-2] digit
           | '3' [0-1]

referenced by:


hour:

[0-1] digit 2 [0-3]

hour     ::= [0-1] digit
           | '2' [0-3]

referenced by:


minute:

zero_to_fifty_nine

minute   ::= zero_to_fifty_nine

referenced by:


second:

zero_to_fifty_nine

second   ::= zero_to_fifty_nine

referenced by:


fractional_seconds:

integer_literal

fractional_seconds
         ::= integer_literal

referenced by:


time_zone:

Z sign hour : minute

time_zone
         ::= 'Z'
           | sign hour ':' minute

referenced by:


sign:

+ -

sign     ::= '+'
           | '-'

referenced by:


integer_literal:

sign digit

integer_literal
         ::= sign? digit+

referenced by:


float_literal:

sign whole_part fractional_part exponent NaN -INF INF

float_literal
         ::= sign? whole_part fractional_part? exponent?
           | 'NaN'
           | '-INF'
           | 'INF'

referenced by:


whole_part:

integer_literal

whole_part
         ::= integer_literal

referenced by:


fractional_part:

. integer_literal

fractional_part
         ::= '.' integer_literal

referenced by:


exponent:

e sign integer_literal

exponent ::= 'e' sign? integer_literal

referenced by:


boolean_literal:

true false

boolean_literal
         ::= 'true'
           | 'false'

referenced by:


function_call:

geo_distance_call boolean_function_call

function_call
         ::= geo_distance_call
           | boolean_function_call

referenced by:


geo_distance_call:

geo.distance( variable , geo_point geo_point , variable )

geo_distance_call
         ::= 'geo.distance(' ( variable ',' geo_point | geo_point ',' variable ) ')'

referenced by:


geo_point:

geography'POINT( lon_lat )'

geo_point
         ::= "geography'POINT(" lon_lat ")'"

referenced by:


lon_lat:

float_literal float_literal

lon_lat  ::= float_literal ' ' float_literal

referenced by:


boolean_function_call:

geo_intersects_call search_in_call search_is_match_call

boolean_function_call
         ::= geo_intersects_call
           | search_in_call
           | search_is_match_call

referenced by:


geo_intersects_call:

geo.intersects( variable , geo_polygon )

geo_intersects_call
         ::= 'geo.intersects(' variable ',' geo_polygon ')'

referenced by:


geo_polygon:

geography'POLYGON(( lon_lat , lon_lat , lon_lat , lon_lat_list ))'

geo_polygon
         ::= "geography'POLYGON((" lon_lat ',' lon_lat ',' lon_lat ',' lon_lat_list "))'"

referenced by:


lon_lat_list:

lon_lat ,

lon_lat_list
         ::= lon_lat ( ',' lon_lat )*

referenced by:


search_in_call:

search.in( variable , string_literal , string_literal )

search_in_call
         ::= 'search.in(' variable ',' string_literal ( ',' string_literal )? ')'

referenced by:


search_is_match_call:

search.ismatch scoring ( search_is_match_parameters )

search_is_match_call
         ::= 'search.ismatch' 'scoring'? '(' search_is_match_parameters ')'

referenced by:


search_is_match_parameters:

string_literal , string_literal , query_type , search_mode

search_is_match_parameters
         ::= string_literal ( ',' string_literal ( ',' query_type ',' search_mode )? )?

referenced by:


query_type:

'full' 'simple'

query_type
         ::= "'full'"
           | "'simple'"

referenced by:


search_mode:

'any' 'all'

search_mode
         ::= "'any'"
           | "'all'"

referenced by:



  ... generated by RR - Railroad Diagram Generator R R