<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Ruslan,<br><br>continuing discussion from here;<br><br><br>On 04 Feb 2009, at 12:56, Ruslan Zasukhin wrote:<br><br><blockquote type="cite">On 2/4/09 1:12 PM, "Bart Pietercil" &lt;<a href="mailto:bart.pietercil@cognosis.be">bart.pietercil@cognosis.be</a>> wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Hi Bart,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">First questions for me is how do you specify what a descendant IS ?<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Shouldn't you specify a link name ?<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Well, good point.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On API level if you have check this Mantis reports<br></blockquote><blockquote type="cite"><blockquote type="cite">&nbsp;<a href="http://www.valentina-db.com/bt/view.php?id=3958">http://www.valentina-db.com/bt/view.php?id=3958</a>.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">&nbsp;<a href="http://www.valentina-db.com/bt/view.php?id=3989">http://www.valentina-db.com/bt/view.php?id=3989</a>.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">&nbsp;<a href="http://www.valentina-db.com/bt/view.php?id=3960">http://www.valentina-db.com/bt/view.php?id=3960</a><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">It is part of Vlink method ...<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">For SQL we really must mention name of link somehow.<br></blockquote><blockquote type="cite">Damn, it is always good make discussion :-)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Since it is entirely possible that a table is instead of a tree a<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">matrix (more than one tree in the same table) but a self-join link is<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">clear (identifies a specific tree in the table)<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">So since it is possible to have multiple self-join links in the table,<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">how will the proposed syntax handle the link to use ?<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Okay, what about next improvement<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">WHERE (recid IN DESCENDANTS linkName OF (recID = 5) ON LEVEL 3)<br></blockquote><br>I think with a few variations on this theme we have most covered:<br><br>1) for selection of records on a specified level (<br><br>select * from T1 where (recid IN DESCENDANTS linkname OF (recid = 5) ON LEVEL 3)<br><br>select * from T1 where (recid IN ASCENDANTS linkname OF (recid = 5) ON LEVEL 3)<br><br><br><br>so this accounts for the case where you want only the results for the specified level upwards or downwards<br><br>2) for selection of records from starting recid till specified level<br><br><br>select * from T1 where (recid IN DESCENDANTS linkname OF (recid = 5) DOWN TO LEVEL 3 INCLUSIVE/EXCLUSIVE STARTLEVEL)<br><br>select * from T1 where (recid IN ASCENDANTS linkname OF (recid = 5) UP TO LEVEL 3 INCLUSIVE/EXCLUSIVE STARTLEVEL)<br><br>This selects all recid from starting recid all branches up to or down to the specified level and you can specify if you want the startinglevel inclusive or not.<br>Startinglevel : it seems to me that there will be case where you want to exclude the starting level (since you already know this level (otherwise you could not give a startinglevel recid))<br><br><br>I really hope we can get this soon. Our application uses recursif calls all the time.<br><br>tia<br><br>Bart Pietercil<br><br><br></body></html>