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.
