I attached the java program that creates it to my initial report. On Tue, Mar 13, 2018, 9:08 AM Luigi Dell'Aquila <[email protected]> wrote:
> Hi Steve, > > ah, got it, the old traverse() stopped when it found duplicates, while the > MATCH doesn't. > > Do you have a dataset I can check, so that I can try it and give you > better help? > > Thanks > > Luigi > > > > 2018-03-13 16:03 GMT+01:00 Steven Tomer <[email protected]>: > >> 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.core.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/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. >>>> >>> >>> -- >>> >>> --- >>> 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. >> > > -- > > --- > 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.
