<div class="gmail_quote">On Thu, Jan 29, 2009 at 10:08 AM, Frederik Ramm <span dir="ltr"><<a href="mailto:frederik@remote.org">frederik@remote.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<div class="Ih2E3d"><br>
<br>
80n wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Can someone remind me again please. What's the purpose of calculating and<br>
storing the bbox for each changeset?<br>
</blockquote>
<br></div>
So that it is possible to query the database effectively for something like "all changesets possibly affecting London". Without changeset bboxes this would mean retrieving all nodes in the London bbox, then retrieving all ways that use these nodes, then retrieving all relations that use these nodes or ways, then retrieve all changesets that affect any of these ways, nodes, or relations, and then return them. This would be a very expensive operation - and we expect *many* people to make these queries in regular intervals as they're keeping a "watch" on their area!<br>
<br>
Of course the expensive method sketched above has the advantage of only returning changesets that really affect the area in question, whereas the bbox method we're using might also return a changeset that has one edit in Southampton and one in Cambridge... but even if we want the precision of the expensive method, the bbox method can be used as a kind of index.<br>
</blockquote><div><br>Thanks, Frederik, that makes sense. I don't think I'd seen that use expressed anywhere up to now, but then I haven't really been paying that much attention to the 0.6 story.<br><br>80n<br>
<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Bye<br><font color="#888888">
Frederik<br>
</font></blockquote></div><br>