<div dir="ltr"><div>Another reason for keeping the meaning "ST_DFullyWithin(A, B) = ST_Covers(ST_Buffer(A, Dist), B)":</div><div><br></div><div>I see the main use of this function in queries to be "find all the B features which are fully within distance D of an A feature".  So the A feature is the *constant* "query item", and it is evaluated against a set of B features.  It seems more intuitive for the constant feature to be the first argument in functions.</div><div><br></div><div>PS note the definition needs to use Covers rather than Contains, due to that ol' quirky definition of Contains! </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 25, 2024 at 10:57 AM Paul Ramsey <<a href="mailto:pramsey@cleverelephant.ca">pramsey@cleverelephant.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br><div><br><blockquote type="cite"><div>On Jan 25, 2024, at 10:19 AM, Bruce Rindahl <<a href="mailto:bruce.rindahl@gmail.com" target="_blank">bruce.rindahl@gmail.com</a>> wrote:</div><br><div><div dir="ltr">I agree with Regina.  Also why are we coding this as a function in C when it can be done either of two ways in SQL:</div></div></blockquote><div><br></div><div>In general functions in SQL are less fun to upgrade. Will eventually do this via Hausdorf.</div><div><br></div><div>I don’t know that I agree about the parameter ordering, and I do not think the name of the function provides any guidance when I re-write it in object form, </div><div><br></div><div>A.DFullyWithin(B,R)</div><div><br></div><div>at least not in the same way that</div><div><br></div><div>A.contains(B) </div><div><br></div><div>makes parameter meaning clear.</div><div><br></div><div>It’s the “D” that wrecks it.</div></div></div></blockquote></div></div>