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] <javascript:>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> 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