From b2e6bbb22d3840f4d7bfd1ac7d580fc5efac0c70 Mon Sep 17 00:00:00 2001 From: zYne Date: Wed, 1 Aug 2007 19:16:56 +0000 Subject: [PATCH] --- .../en/dql-doctrine-query-language/bnf.txt | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/manual/new/docs/en/dql-doctrine-query-language/bnf.txt b/manual/new/docs/en/dql-doctrine-query-language/bnf.txt index 8b1378917..5ae00ed74 100644 --- a/manual/new/docs/en/dql-doctrine-query-language/bnf.txt +++ b/manual/new/docs/en/dql-doctrine-query-language/bnf.txt @@ -1 +1,185 @@ + +QL_statement ::= select_statement | update_statement | delete_statement +select_statement ::= select_clause from_clause [where_clause] [groupby_clause] +[having_clause] [orderby_clause] +update_statement ::= update_clause [where_clause] +delete_statement ::= delete_clause [where_clause] +from_clause ::= +FROM identification_variable_declaration +{, {identification_variable_declaration | collection_member_declaration}}* +identification_variable_declaration ::= range_variable_declaration { join | fetch_join }* +range_variable_declaration ::= abstract_schema_name [AS ] identification_variable +join ::= join_spec join_association_path_expression [AS ] identification_variable +fetch_join ::= join_specFETCH join_association_path_expression +association_path_expression ::= +collection_valued_path_expression | single_valued_association_path_expression +join_spec::= [LEFT [OUTER ] |INNER ]JOIN +join_association_path_expression ::= join_collection_valued_path_expression | +join_single_valued_association_path_expression +join_collection_valued_path_expression::= +identification_variable.collection_valued_association_field +join_single_valued_association_path_expression::= +identification_variable.single_valued_association_field +collection_member_declaration ::= +IN ( collection_valued_path_expression) [AS ] identification_variable +single_valued_path_expression ::= +state_field_path_expression | single_valued_association_path_expression +state_field_path_expression ::= +{identification_variable | single_valued_association_path_expression}.state_field +single_valued_association_path_expression ::= +identification_variable.{single_valued_association_field.}* single_valued_association_field +collection_valued_path_expression ::= +identification_variable.{single_valued_association_field.}*collection_valued_association_field +state_field ::= {embedded_class_state_field.}*simple_state_field +update_clause ::=UPDATE abstract_schema_name [[AS ] identification_variable] +SET update_item {, update_item}* +update_item ::= [identification_variable.]{state_field | single_valued_association_field} = +new_value +new_value ::= +simple_arithmetic_expression | +string_primary | +datetime_primary | +boolean_primary | +enum_primary +simple_entity_expression | +NULL +delete_clause ::=DELETE FROM abstract_schema_name [[AS ] identification_variable] +select_clause ::=SELECT [DISTINCT ] select_expression {, select_expression}* +select_expression ::= +single_valued_path_expression | +aggregate_expression | +identification_variable | +OBJECT( identification_variable) | +constructor_expression +constructor_expression ::= +NEW constructor_name( constructor_item {, constructor_item}*) +constructor_item ::= single_valued_path_expression | aggregate_expression +aggregate_expression ::= +{AVG |MAX |MIN |SUM }( [DISTINCT ] state_field_path_expression) | +COUNT ( [DISTINCT ] identification_variable | state_field_path_expression | +single_valued_association_path_expression) +where_clause ::=WHERE conditional_expression +groupby_clause ::=GROUP BY groupby_item {, groupby_item}* +groupby_item ::= single_valued_path_expression | identification_variable +having_clause ::=HAVING conditional_expression +orderby_clause ::=ORDER BY orderby_item {, orderby_item}* +orderby_item ::= state_field_path_expression [ASC |DESC ] +subquery ::= simple_select_clause subquery_from_clause [where_clause] +[groupby_clause] [having_clause] +subquery_from_clause ::= +FROM subselect_identification_variable_declaration +{, subselect_identification_variable_declaration}* +subselect_identification_variable_declaration ::= +identification_variable_declaration | +association_path_expression [AS ] identification_variable | +collection_member_declaration +simple_select_clause ::=SELECT [DISTINCT ] simple_select_expression +simple_select_expression::= +single_valued_path_expression | +aggregate_expression | +identification_variable +conditional_expression ::= conditional_term | conditional_expressionOR conditional_term +conditional_term ::= conditional_factor | conditional_termAND 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 | + +collection_member_expression | +exists_expression +between_expression ::= +arithmetic_expression [NOT ]BETWEEN +arithmetic_expressionAND arithmetic_expression | +string_expression [NOT ]BETWEEN string_expressionAND string_expression | +datetime_expression [NOT ]BETWEEN +datetime_expressionAND datetime_expression +in_expression ::= +state_field_path_expression [NOT ]IN ( in_item {, in_item}* | subquery) +in_item ::= literal | input_parameter +like_expression ::= +string_expression [NOT ]LIKE pattern_value [ESCAPE escape_character] +null_comparison_expression ::= +{single_valued_path_expression | input_parameter}IS [NOT ] NULL +empty_collection_comparison_expression ::= +collection_valued_path_expressionIS [NOT] EMPTY +collection_member_expression ::= entity_expression +[NOT ]MEMBER [OF ] collection_valued_path_expression +exists_expression::= [NOT ]EXISTS (subquery) +all_or_any_expression ::= {ALL |ANY |SOME } (subquery) +comparison_expression ::= +string_expression comparison_operator {string_expression | all_or_any_expression} | +boolean_expression {= |<> } {boolean_expression | all_or_any_expression} | +enum_expression {= |<> } {enum_expression | all_or_any_expression} | +datetime_expression comparison_operator +{datetime_expression | all_or_any_expression} | +entity_expression {= |<> } {entity_expression | all_or_any_expression} | +arithmetic_expression comparison_operator +{arithmetic_expression | all_or_any_expression} +comparison_operator ::== |> |>= |< |<= |<> +arithmetic_expression ::= simple_arithmetic_expression | (subquery) +simple_arithmetic_expression ::= +arithmetic_term | simple_arithmetic_expression {+ |- } arithmetic_term +arithmetic_term ::= arithmetic_factor | arithmetic_term {* |/ } arithmetic_factor +arithmetic_factor ::= [{+ |- }] arithmetic_primary +arithmetic_primary ::= +state_field_path_expression | +numeric_literal | +(simple_arithmetic_expression) | +input_parameter | +functions_returning_numerics | +aggregate_expression +string_expression ::= string_primary | (subquery) +string_primary ::= +state_field_path_expression | +string_literal | +input_parameter | +functions_returning_strings | +aggregate_expression + +datetime_expression ::= datetime_primary | (subquery) +datetime_primary ::= +state_field_path_expression | +input_parameter | +functions_returning_datetime | +aggregate_expression +boolean_expression ::= boolean_primary | (subquery) +boolean_primary ::= +state_field_path_expression | +boolean_literal | +input_parameter | +enum_expression ::= enum_primary | (subquery) +enum_primary ::= +state_field_path_expression | +enum_literal | +input_parameter | +entity_expression ::= +single_valued_association_path_expression | simple_entity_expression +simple_entity_expression ::= +identification_variable | +input_parameter +functions_returning_numerics::= +LENGTH( string_primary) | +LOCATE( string_primary, string_primary[, simple_arithmetic_expression]) | +ABS( simple_arithmetic_expression) | +SQRT( simple_arithmetic_expression) | +MOD( simple_arithmetic_expression, simple_arithmetic_expression) | +SIZE( collection_valued_path_expression) +functions_returning_datetime ::= + CURRENT_DATE | + CURRENT_TIME | + CURRENT_TIMESTAMP +functions_returning_strings ::= +CONCAT( string_primary, string_primary) | +SUBSTRING( string_primary, +simple_arithmetic_expression, simple_arithmetic_expression)| +TRIM( [[trim_specification] [trim_character]FROM ] string_primary) | +LOWER( string_primary) | +UPPER( string_primary) +trim_specification ::=LEADING | TRAILING | BOTH +