Hi Robin,

It makes no sense to allow anything that isn't an entity in the FROM
clause, in my opinion.

Instead, work on the SELECT clause, I'd say.

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/

On 5 May 2015 at 07:36, Robin <[email protected]> wrote:

> Hi Marco,
>
> thank you for your reply.
>
> I could create a custom function for json_each(), but I think Doctrine
> won't parse it. I think that is the corresponding code block of the Parser:
>
>     public function FromClause()
>     {
>         $this->match(Lexer::T_FROM);
>
>         $identificationVariableDeclarations = array();
>         $identificationVariableDeclarations[] =
> $this->IdentificationVariableDeclaration();
>
>         while ($this->lexer->isNextToken(Lexer::T_COMMA)) {
>             $this->match(Lexer::T_COMMA);
>
>             $identificationVariableDeclarations[] =
> $this->IdentificationVariableDeclaration();
>         }
>
>         return new AST\FromClause($identificationVariableDeclarations);
>     }
>
> The parser only accepts IdentificationVariableDeclaration.
>
> I am not sure if it would make sense to allow functions in the fromClause?
> On the other hand I don't know any better scenario than mine and it is not
> worth to change the Parser for that scenario.
>
> Best,
> Robin
>
>
> On Monday, May 4, 2015 at 4:37:46 PM UTC+2, Marco Pivetta wrote:
>>
>> Hi Robin,
>>
>> What you are asking for is very platform specific, and very far from how
>> the ORM operates.
>>
>> I suggest keeping it in native SQL.
>>
>> Marco Pivetta
>>
>> http://twitter.com/Ocramius
>>
>> http://ocramius.github.com/
>>
>> On 4 May 2015 at 15:31, Robin <[email protected]> wrote:
>>
>>> I have a Postgresql db with a json column.
>>>
>>> Now I want to create the following query with DQL:
>>>
>>> select  *
>>> from    table_1 t, json_each(json_field) t2
>>> where   t2.value @> '{"v_id": "5544d28431feb"}';
>>>
>>>
>>> or
>>>
>>> select  *
>>> from    table_1
>>> cross join lateral
>>>         json_each(json_field) t2
>>> where   t2.value @> '{"v_id": "5544d28431feb"}';
>>>
>>>
>>> My current solution is to use a native query. I came up with that idea
>>> after writing this post. It works better than expected. However, If it
>>> would be possible with DQL with reasonable effort I'd like to use DQL.
>>>
>>>
>>>
>>> On Monday, May 4, 2015 at 3:59:39 PM UTC+2, Marco Pivetta wrote:
>>>>
>>>> Can you make a practical example of what you need? Doctrine2 only
>>>> supports entities and associations in the FROM clause
>>>> On May 4, 2015 08:27, "Robin" <[email protected]> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I was wondering if it is somehow possible to write a dql query like:
>>>>>
>>>>> SELECT e
>>>>> FROM Entity e, function(e.field) e2
>>>>>
>>>>> The documentation
>>>>> <http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html#dql-select-clause>
>>>>>  states
>>>>> that:
>>>>>
>>>>>    - The FROM keyword is always followed by a *fully-qualified class
>>>>>    name* which in turn is followed by an identification variable or
>>>>>    alias for that class name. This class designates a root of our query 
>>>>> from
>>>>>    which we can navigate further via joins (explained later) and path
>>>>>    expressions.
>>>>>
>>>>>
>>>>> Therefore, it seems that it would not be possible. Is there any chance
>>>>> to accomplish this? I would be fine if it would work after a JOIN
>>>>> expression as well.
>>>>>
>>>>> Best,
>>>>> Robin
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "doctrine-user" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "doctrine-user" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "doctrine-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/doctrine-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to