Joshua Berry wrote: > On Mon, Nov 2, 2009 at 8:35 AM, Jasen Betts <jasen@xxxxxxxxxx> wrote: > | > | for this case: convert to seconds and then do abs. > | > | ?select * from enviados e, recibidos r where abs(extract ( epoch from > | ?(e.fecha - r.fecha) )) < 1 > > Cheers for that. The query cost is pretty heavy, but the same as the > following query which involves two WHERE sections: > > | select * from enviados e, recibidos r where (e.fecha - r.fecha) < > | interval '1 second' AND (r.fecha - e.fecha) < interval '1 second' > > But both have a higher cost than the following query with "OVERLAPS" > > | select * from enviados e, recibidos r where (r.fecha + interval '1 > | seconds', r.fecha - interval '1 seconds') OVERLAPS (e.fecha, e.fecha); > > We're only talking about a 4% difference on estimated costs in the > billions, but it made me wonder if I should be using OVERLAPS more > regularly as it may be more highly optimized. > > | thanks for sparking an interesting discussion. > > Thanks. I feel a bit humbled by thinking that I could help add an > operator that didn't exist simply because no one had gotten around too > it! I realize now that it's a lot more complex of an issue than I > thought it was. I have added a C comment the references this discussion so we remember why the function does not exist: Add C comment about why there is no interval_abs(): it is unclear what value to return: http://archives.postgresql.org/pgsql-general/2009-10/msg01031.php http://archives.postgresql.org/pgsql-general/2009-11/msg00041.php -- Bruce Momjian <bruce@xxxxxxxxxx> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general