Re-synchronized DQL EBNF with current DQL support.
This commit is contained in:
parent
b5b569afd4
commit
4627c8b3ee
@ -417,6 +417,14 @@ hierarchies:
|
|||||||
$query = $em->createQuery('SELECT u FROM Doctrine\Tests\Models\Company\CompanyPerson u WHERE u INSTANCE OF ?1');
|
$query = $em->createQuery('SELECT u FROM Doctrine\Tests\Models\Company\CompanyPerson u WHERE u INSTANCE OF ?1');
|
||||||
$query = $em->createQuery('SELECT u FROM Doctrine\Tests\Models\Company\CompanyPerson u WHERE u NOT INSTANCE OF ?1');
|
$query = $em->createQuery('SELECT u FROM Doctrine\Tests\Models\Company\CompanyPerson u WHERE u NOT INSTANCE OF ?1');
|
||||||
|
|
||||||
|
Get all users visible on a given website that have chosen certain gender:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$query = $em->createQuery('SELECT u FROM User u WHERE u.gender IN (SELECT IDENTITY(agl.gender) FROM Site s JOIN s.activeGenderList agl WHERE s.id = ?1)');
|
||||||
|
|
||||||
|
|
||||||
Partial Object Syntax
|
Partial Object Syntax
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -539,6 +547,7 @@ The following functions are supported in SELECT, WHERE and HAVING
|
|||||||
clauses:
|
clauses:
|
||||||
|
|
||||||
|
|
||||||
|
- IDENTITY(single\_association\_path\_expression) - Retrieve the foreign key column of association of the owning side
|
||||||
- ABS(arithmetic\_expression)
|
- ABS(arithmetic\_expression)
|
||||||
- CONCAT(str1, str2)
|
- CONCAT(str1, str2)
|
||||||
- CURRENT\_DATE() - Return the current date
|
- CURRENT\_DATE() - Return the current date
|
||||||
@ -1403,20 +1412,17 @@ Path Expressions
|
|||||||
SingleValuedPathExpression ::= StateFieldPathExpression | SingleValuedAssociationPathExpression
|
SingleValuedPathExpression ::= StateFieldPathExpression | SingleValuedAssociationPathExpression
|
||||||
|
|
||||||
/* "u.name" or "u.Group.name" */
|
/* "u.name" or "u.Group.name" */
|
||||||
StateFieldPathExpression ::= IdentificationVariable "." StateField | SingleValuedAssociationPathExpression "." StateField
|
StateFieldPathExpression ::= IdentificationVariable "." StateField
|
||||||
|
|
||||||
/* "u.Group" */
|
/* "u.Group" */
|
||||||
SingleValuedAssociationPathExpression ::= IdentificationVariable "." SingleValuedAssociationField
|
SingleValuedAssociationPathExpression ::= IdentificationVariable "." SingleValuedAssociationField
|
||||||
|
|
||||||
/* "u.Group.Permissions" */
|
/* "u.Group.Permissions" */
|
||||||
CollectionValuedPathExpression ::= IdentificationVariable "." {SingleValuedAssociationField "."}* CollectionValuedAssociationField
|
CollectionValuedPathExpression ::= IdentificationVariable "." CollectionValuedAssociationField
|
||||||
|
|
||||||
/* "name" */
|
/* "name" */
|
||||||
StateField ::= {EmbeddedClassStateField "."}* SimpleStateField
|
StateField ::= {EmbeddedClassStateField "."}* SimpleStateField
|
||||||
|
|
||||||
/* "u.name" or "u.address.zip" (address = EmbeddedClassStateField) */
|
|
||||||
SimpleStateFieldPathExpression ::= IdentificationVariable "." StateField
|
|
||||||
|
|
||||||
Clauses
|
Clauses
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
@ -1439,10 +1445,10 @@ Items
|
|||||||
|
|
||||||
.. code-block:: php
|
.. code-block:: php
|
||||||
|
|
||||||
UpdateItem ::= IdentificationVariable "." (StateField | SingleValuedAssociationField) "=" NewValue
|
UpdateItem ::= SingleValuedPathExpression "=" NewValue
|
||||||
OrderByItem ::= (ResultVariable | SingleValuedPathExpression) ["ASC" | "DESC"]
|
OrderByItem ::= (SimpleArithmeticExpression | SingleValuedPathExpression | ScalarExpression | ResultVariable) ["ASC" | "DESC"]
|
||||||
GroupByItem ::= IdentificationVariable | SingleValuedPathExpression
|
GroupByItem ::= IdentificationVariable | ResultVariable | SingleValuedPathExpression
|
||||||
NewValue ::= ScalarExpression | SimpleEntityExpression | "NULL"
|
NewValue ::= SimpleArithmeticExpression | "NULL"
|
||||||
|
|
||||||
From, Join and Index by
|
From, Join and Index by
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -1453,18 +1459,16 @@ From, Join and Index by
|
|||||||
SubselectIdentificationVariableDeclaration ::= IdentificationVariableDeclaration | (AssociationPathExpression ["AS"] AliasIdentificationVariable)
|
SubselectIdentificationVariableDeclaration ::= IdentificationVariableDeclaration | (AssociationPathExpression ["AS"] AliasIdentificationVariable)
|
||||||
JoinVariableDeclaration ::= Join [IndexBy]
|
JoinVariableDeclaration ::= Join [IndexBy]
|
||||||
RangeVariableDeclaration ::= AbstractSchemaName ["AS"] AliasIdentificationVariable
|
RangeVariableDeclaration ::= AbstractSchemaName ["AS"] AliasIdentificationVariable
|
||||||
Join ::= ["LEFT" ["OUTER"] | "INNER"] "JOIN" JoinAssociationPathExpression
|
Join ::= ["LEFT" ["OUTER"] | "INNER"] "JOIN" JoinAssociationPathExpression ["AS"] AliasIdentificationVariable ["WITH" ConditionalExpression]
|
||||||
["AS"] AliasIdentificationVariable ["WITH" ConditionalExpression]
|
IndexBy ::= "INDEX" "BY" StateFieldPathExpression
|
||||||
IndexBy ::= "INDEX" "BY" SimpleStateFieldPathExpression
|
|
||||||
|
|
||||||
Select Expressions
|
Select Expressions
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. code-block:: php
|
.. code-block:: php
|
||||||
|
|
||||||
SelectExpression ::= IdentificationVariable | PartialObjectExpression | (AggregateExpression | "(" Subselect ")" | FunctionDeclaration | ScalarExpression) [["AS"] AliasResultVariable]
|
SelectExpression ::= (IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression) [["AS"] ["HIDDEN"] AliasResultVariable]
|
||||||
SimpleSelectExpression ::= ScalarExpression | IdentificationVariable |
|
SimpleSelectExpression ::= (StateFieldPathExpression | IdentificationVariable | FunctionDeclaration | AggregateExpression | "(" Subselect ")" | ScalarExpression) [["AS"] AliasResultVariable]
|
||||||
(AggregateExpression [["AS"] AliasResultVariable])
|
|
||||||
PartialObjectExpression ::= "PARTIAL" IdentificationVariable "." PartialFieldSet
|
PartialObjectExpression ::= "PARTIAL" IdentificationVariable "." PartialFieldSet
|
||||||
PartialFieldSet ::= "{" SimpleStateField {"," SimpleStateField}* "}"
|
PartialFieldSet ::= "{" SimpleStateField {"," SimpleStateField}* "}"
|
||||||
|
|
||||||
@ -1519,15 +1523,15 @@ Arithmetic Expressions
|
|||||||
ArithmeticFactor ::= [("+" | "-")] ArithmeticPrimary
|
ArithmeticFactor ::= [("+" | "-")] ArithmeticPrimary
|
||||||
ArithmeticPrimary ::= SingleValuedPathExpression | Literal | "(" SimpleArithmeticExpression ")"
|
ArithmeticPrimary ::= SingleValuedPathExpression | Literal | "(" SimpleArithmeticExpression ")"
|
||||||
| FunctionsReturningNumerics | AggregateExpression | FunctionsReturningStrings
|
| FunctionsReturningNumerics | AggregateExpression | FunctionsReturningStrings
|
||||||
| FunctionsReturningDatetime | IdentificationVariable | InputParameter | CaseExpression
|
| FunctionsReturningDatetime | IdentificationVariable | ResultVariable
|
||||||
|
| InputParameter | CaseExpression
|
||||||
|
|
||||||
Scalar and Type Expressions
|
Scalar and Type Expressions
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. code-block:: php
|
.. code-block:: php
|
||||||
|
|
||||||
ScalarExpression ::= SimpleArithmeticExpression | StringPrimary | DateTimePrimary | StateFieldPathExpression
|
ScalarExpression ::= SimpleArithmeticExpression | StringPrimary | DateTimePrimary | StateFieldPathExpression | BooleanPrimary | CaseExpression | InstanceOfExpression
|
||||||
BooleanPrimary | EntityTypeExpression | CaseExpression
|
|
||||||
StringExpression ::= StringPrimary | "(" Subselect ")"
|
StringExpression ::= StringPrimary | "(" Subselect ")"
|
||||||
StringPrimary ::= StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression | CaseExpression
|
StringPrimary ::= StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression | CaseExpression
|
||||||
BooleanExpression ::= BooleanPrimary | "(" Subselect ")"
|
BooleanExpression ::= BooleanPrimary | "(" Subselect ")"
|
||||||
@ -1573,10 +1577,10 @@ QUANTIFIED/BETWEEN/COMPARISON/LIKE/NULL/EXISTS
|
|||||||
QuantifiedExpression ::= ("ALL" | "ANY" | "SOME") "(" Subselect ")"
|
QuantifiedExpression ::= ("ALL" | "ANY" | "SOME") "(" Subselect ")"
|
||||||
BetweenExpression ::= ArithmeticExpression ["NOT"] "BETWEEN" ArithmeticExpression "AND" ArithmeticExpression
|
BetweenExpression ::= ArithmeticExpression ["NOT"] "BETWEEN" ArithmeticExpression "AND" ArithmeticExpression
|
||||||
ComparisonExpression ::= ArithmeticExpression ComparisonOperator ( QuantifiedExpression | ArithmeticExpression )
|
ComparisonExpression ::= ArithmeticExpression ComparisonOperator ( QuantifiedExpression | ArithmeticExpression )
|
||||||
InExpression ::= StateFieldPathExpression ["NOT"] "IN" "(" (InParameter {"," InParameter}* | Subselect) ")"
|
InExpression ::= SingleValuedPathExpression ["NOT"] "IN" "(" (InParameter {"," InParameter}* | Subselect) ")"
|
||||||
InstanceOfExpression ::= IdentificationVariable ["NOT"] "INSTANCE" ["OF"] (InstanceOfParameter | "(" InstanceOfParameter {"," InstanceOfParameter}* ")")
|
InstanceOfExpression ::= IdentificationVariable ["NOT"] "INSTANCE" ["OF"] (InstanceOfParameter | "(" InstanceOfParameter {"," InstanceOfParameter}* ")")
|
||||||
InstanceOfParameter ::= AbstractSchemaName | InputParameter
|
InstanceOfParameter ::= AbstractSchemaName | InputParameter
|
||||||
LikeExpression ::= StringExpression ["NOT"] "LIKE" string ["ESCAPE" char]
|
LikeExpression ::= StringExpression ["NOT"] "LIKE" StringPrimary ["ESCAPE" char]
|
||||||
NullComparisonExpression ::= (SingleValuedPathExpression | InputParameter) "IS" ["NOT"] "NULL"
|
NullComparisonExpression ::= (SingleValuedPathExpression | InputParameter) "IS" ["NOT"] "NULL"
|
||||||
ExistsExpression ::= ["NOT"] "EXISTS" "(" Subselect ")"
|
ExistsExpression ::= ["NOT"] "EXISTS" "(" Subselect ")"
|
||||||
ComparisonOperator ::= "=" | "<" | "<=" | "<>" | ">" | ">=" | "!="
|
ComparisonOperator ::= "=" | "<" | "<=" | "<>" | ">" | ">=" | "!="
|
||||||
@ -1591,17 +1595,27 @@ Functions
|
|||||||
FunctionsReturningNumerics ::=
|
FunctionsReturningNumerics ::=
|
||||||
"LENGTH" "(" StringPrimary ")" |
|
"LENGTH" "(" StringPrimary ")" |
|
||||||
"LOCATE" "(" StringPrimary "," StringPrimary ["," SimpleArithmeticExpression]")" |
|
"LOCATE" "(" StringPrimary "," StringPrimary ["," SimpleArithmeticExpression]")" |
|
||||||
"ABS" "(" SimpleArithmeticExpression ")" | "SQRT" "(" SimpleArithmeticExpression ")" |
|
"ABS" "(" SimpleArithmeticExpression ")" |
|
||||||
|
"SQRT" "(" SimpleArithmeticExpression ")" |
|
||||||
"MOD" "(" SimpleArithmeticExpression "," SimpleArithmeticExpression ")" |
|
"MOD" "(" SimpleArithmeticExpression "," SimpleArithmeticExpression ")" |
|
||||||
"SIZE" "(" CollectionValuedPathExpression ")"
|
"SIZE" "(" CollectionValuedPathExpression ")" |
|
||||||
|
"DATE_DIFF" "(" ArithmeticPrimary "," ArithmeticPrimary ")" |
|
||||||
|
"BIT_AND" "(" ArithmeticPrimary "," ArithmeticPrimary ")" |
|
||||||
|
"BIT_OR" "(" ArithmeticPrimary "," ArithmeticPrimary ")"
|
||||||
|
|
||||||
FunctionsReturningDateTime ::= "CURRENT_DATE" | "CURRENT_TIME" | "CURRENT_TIMESTAMP"
|
FunctionsReturningDateTime ::=
|
||||||
|
"CURRENT_DATE" |
|
||||||
|
"CURRENT_TIME" |
|
||||||
|
"CURRENT_TIMESTAMP" |
|
||||||
|
"DATE_ADD" "(" ArithmeticPrimary "," ArithmeticPrimary "," StringPrimary ")" |
|
||||||
|
"DATE_SUB" "(" ArithmeticPrimary "," ArithmeticPrimary "," StringPrimary ")"
|
||||||
|
|
||||||
FunctionsReturningStrings ::=
|
FunctionsReturningStrings ::=
|
||||||
"CONCAT" "(" StringPrimary "," StringPrimary ")" |
|
"CONCAT" "(" StringPrimary "," StringPrimary ")" |
|
||||||
"SUBSTRING" "(" StringPrimary "," SimpleArithmeticExpression "," SimpleArithmeticExpression ")" |
|
"SUBSTRING" "(" StringPrimary "," SimpleArithmeticExpression "," SimpleArithmeticExpression ")" |
|
||||||
"TRIM" "(" [["LEADING" | "TRAILING" | "BOTH"] [char] "FROM"] StringPrimary ")" |
|
"TRIM" "(" [["LEADING" | "TRAILING" | "BOTH"] [char] "FROM"] StringPrimary ")" |
|
||||||
"LOWER" "(" StringPrimary ")" |
|
"LOWER" "(" StringPrimary ")" |
|
||||||
"UPPER" "(" StringPrimary ")"
|
"UPPER" "(" StringPrimary ")" |
|
||||||
|
"IDENTITY" "(" SingleValuedAssociationPathExpression ")"
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user