WebSphere eXtreme Scale Programming Guide > Access data in WebSphere eXtreme Scale > Query API > Reference for eXtreme Scale queries
ObjectGrid query Backus-Naur Form
A summary of the ObjectGrid Query Backus-Naur Form (BNF) Notation follows.
Table 1. Key to BNF summary Representation Description {...}
Group [...]
Optional constructs bold
Keywords *
Zero or more |
Alternates
ObjectGrid QL ::=select_clause from_clause [where_clause] [group_by_clause] [having_clause] [order_by_clause]
from_clause ::=FROM identification_variable_declaration [,identification_variable_declaration]*
identification_variable_declaration ::=collection_member_declaration | range_variable_declaration
collection_member_declaration ::=IN ( collection_valued_path_expression | single_valued_navigation) [AS] identifier | [LEFT [OUTER] | INNER] JOIN collection_valued_path_expression | single_valued_navigation [AS] identifier
range_variable_declaration ::=abstract_schema_name [AS] identifier
single_valued_path_expression ::={single_valued_navigation | identification_variable}. { state_field | state_field.value_object_attribute } | single_valued_navigation
single_valued_navigation ::=identification_variable.[ single_valued_association_field. ]* single_valued_association_field
collection_valued_path_expression ::=identification_variable.[ single_valued_association_field. ]* collection_valued_association_field
select_clause ::= SELECT [DISTINCT] [ selection , ]* selection
selection ::= {single_valued_path_expression |identification_variable | OBJECT ( identification_variable) |aggregate_functions } [[ AS ] id ]
order_by_clause ::= ORDER BY [ {identification_variable.[ single_valued_association_field. ]*state_field} [ASC|DESC],]* {identification_variable.[ single_valued_association_field. ]*state_field}[ASC|DESC]
where_clause ::= WHERE conditional_expression
conditional_expression ::= conditional_term | conditional_expression OR conditional_term
conditional_term ::= conditional_factor | conditional_term AND conditional_factor
conditional_factor ::= [NOT] conditional_primary
conditional_primary ::= simple_cond_expression | (conditional_expression)
simple_cond_expression ::= comparison_expression | between_expression | like_expression | in_expression | null_comparison_expression | empty_collection_comparison_expression | exists_expression | collection_member_expression
between_expression ::= numeric_expression [NOT] BETWEEN numeric_expression AND numeric_expression | string_expression [NOT] BETWEEN string_expression AND string_expression | datetime_expression [NOT] BETWEEN datetime_expression AND datetime_expression
in_expression ::= identification_variable.[ single_valued_association_field. ]state_field [*NOT] IN { (subselect) | ( atom ,]* atom) }
atom ::= { string_literal | numeric_literal | input_parameter }
like_expression ::=string_expression [NOT] LIKE {string_literal | input_parameter} [ESCAPE {string_literal | input_parameter}]
null_comparison_expression ::= {single_valued_path_expression | input_parameter} IS [ NOT ] NULL
empty_collection_comparison_expression ::= collection_valued_path_expression IS [NOT] EMPTY
collection_member_expression ::={ ssingle_valued_path_expression | input_parameter }[ NOT ] MEMBER [ OF ]collection_valued_path_expression
exists_expression ::= EXISTS {(subselect)}
subselect ::= SELECT [{ ALL | DISTINCT }] subselection from_clause [where_clause] [group_by_clause] [having_clause]
subselection ::= {single_valued_path_expression |identification_variable | aggregate_functions }
group_by_clause ::= GROUP BY[single_valued_path_expression,]* single_valued_path_expression
having_clause ::= HAVING conditional_expression
comparison_expression ::= numeric_ expression comparison_operator { numeric_expression | {SOME | ANY | ALL} (subselect) } | string_expression comparison_operator {
string_expression | {SOME | ANY | ALL}(subselect) } |
datetime_expression comparison_operator {
datetime_expression {SOME | ANY | ALL}(subselect) } |
boolean_expression {=|<>} {
boolean_expression {SOME | ANY | ALL}(subselect) } |
entity_expression {=|<>} {
entity_expression {SOME| ANY | ALL}(subselect) }
comparison_operator ::= = | > | >= | < | <= | <>
string_expression ::= string_primary | (subselect)
string_primary ::=state_field_path_expression |string_literal | input_parameter | functions_returning_strings
datetime_expression ::= datetime_primary |(subselect)
datetime_primary ::=state_field_path_expression | string_literal | long_literal | input_parameter | functions_returning_datetime
boolean_expression ::= boolean_primary |(subselect)
boolean_primary ::=state_field_path_expression | boolean_literal | input_parameter
entity_expression ::=single_valued_association_path_expression | identification_variable | input_parameter
numeric_expression ::= simple_numeric_expression |(subselect)
simple_numeric_expression ::= numeric_term | numeric_expression {+|-} numeric_term
numeric_term ::= numeric_factor | numeric_term {*|/} numeric_factor
numeric_factor ::= {+|-} numeric_primary
numeric_primary ::= single_valued_path_expression | numeric_literal | ( numeric_expression ) | input_parameter | functions
aggregate_functions :=
AVG([ALL|DISTINCT] identification_variable. [ single_valued_association_field. ]*state_field) |
COUNT([ALL|DISTINCT] {single_valued_path_expression | identification_variable}) |
MAX([ALL|DISTINCT] identification_variable.[ single_valued_association_field. ]*state_field) |
MIN([ALL|DISTINCT] identification_variable.[ single_valued_association_field. ]*state_field) |
SUM([ALL|DISTINCT] identification_variable.[ single_valued_association_field. ]*state_field)
functions ::=
ABS (simple_numeric_expression) |
CONCAT (string_primary , string_primary) |
LOWER (string_primary) |
LENGTH(string_primary) |
LOCATE(string_primary, string_primary [, simple_numeric_expression]) |
MOD (simple_numeric_expression, simple_numeric_expression) |
SIZE (collection_valued_path_expression) |
SQRT (simple_numeric_expression) |
SUBSTRING (string_primary, simple_numeric_expression[, simple_numeric_expression]) |
UPPER (string_primary) |
TRIM ([[LEADING | TRAILING | BOTH] [trim_character] FROM] string_primary)
Parent topic
Reference for eXtreme Scale queries