Luigi, That query never returns (looks like it goes into an infinite loop).
I had to kill the server process to make it stop. Any other ideas? Steve On Tue, Mar 13, 2018 at 8:16 AM, Luigi Dell'Aquila < [email protected]> wrote: > Hi Steve, > > Try this > > SELECT expand(person) FROM ( > MATCH {class: Person, as: person, where: (givenname = > 'William')}.in(){while: ($depth = 0 OR givenname != 'George'), where: > (givenname = 'George')} RETURN person > ) > > The $depth = 0 guarantees that you don't stop traversing immediately; the > givenname > != 'George' just stops traversing as soon as you find a "George", I guess > it is what you want (you don't need duplicates) > > Thanks > > Luigi > > 2018-03-13 14:52 GMT+01:00 Steven Tomer <[email protected]>: > >> Hello Luigi, >> >> That's sad news indeed. It will require a major task to rip out all of >> the places we're using traverse(). >> >> I've been playing around with the MATCH operator, and I can't get it to >> model the former query: >> >> SELECT FROM Person WHERE givenname = 'William' and in traverse(0,-1,'in') >> ( givenname = 'George' ) >> >> I've tried: >> >> MATCH {class: Person, as: person, where: (givenname = >> 'William')}.in(){while: ($depth > 0), where: (givenname = 'George')} RETURN >> person >> MATCH {class: Person, as: person, where: (givenname = >> 'William')}.in('in'){while: ($depth > 0), where: (givenname = 'George')} >> RETURN person >> MATCH {class: Person, as: person, where: (givenname = >> 'William')}.in('MyEdge'){while: ($depth > 0), where: (givenname = >> 'George')} RETURN person >> >> None of your examples have an intermediary 'edge' type between them. We >> have Person -> MyEdge -> Person -> MyEdge -> Person. The traverse >> operator lets me hop over the edges. How do you do it with MATCH? >> >> Steve >> >> >> >> On Tue, Mar 13, 2018 at 2:07 AM, Luigi Dell'Aquila < >> [email protected]> wrote: >> >>> Hi Steven, >>> >>> The traverse() operator was deprecated long time ago and is not fully >>> supported anymore. >>> I strongly suggest you to use TRAVERSE queries ( >>> https://orientdb.com/docs/2.2.x/SQL-Traverse.html) or even better MATCH >>> queries (https://orientdb.com/docs/2.2.x/SQL-Match.html) >>> >>> Another thing: if you are migrating now, you could probably consider v >>> 3.0 (see https://orientdb.com/orientdb-labs/), the final GA will be >>> released this week >>> >>> Thanks >>> >>> Luigi >>> >>> >>> 2018-03-12 23:00 GMT+01:00 StevenTomer <[email protected]>: >>> >>>> Hello, >>>> >>>> I'm using OrientDB 2.2.32. We're updating our software from 2.0.8. >>>> >>>> The traverse() operator in selects does not appear to be working. >>>> >>>> When I run the attached program, I get a com.orientechnologies.orient >>>> .core.sql.OCommandSQLParsingException. >>>> >>>> Exception in thread "main" com.orientechnologies.orient.c >>>> ore.sql.OCommandSQLParsingException: Error parsing query: >>>> SELECT FROM Person WHERE givenname = 'William' and in >>>> traverse(0,-1,'in') ( givenname = 'George' ) >>>> ^ >>>> Encountered "" at line 1, column 52. >>>> Was expecting one of: >>>> >>>> DB name="familytree" >>>> >>>> I hope it hasn't been removed. We use both the TRAVERSE FROM and >>>> SELECT FROM WHERE traverse() extensively. >>>> >>>> TRAVERSE FROM is wonderful for gathering a group of records from a >>>> given point. >>>> The traverse() operator is wonderful for queries like the above (return >>>> all people named William >>>> descended from a person named George. >>>> >>>> We really need both. >>>> >>>> Thanks, >>>> >>>> Steven Tomer >>>> >>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "OrientDB" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "OrientDB" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>> pic/orient-database/ic5UE-kyi-w/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "OrientDB" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/orient-database/ic5UE-kyi-w/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
