Performance improvement and resultant reordering of freebusy query results.

This commit is contained in:
Andrew McMillan 2008-01-24 22:36:13 +13:00
parent eaf8fa3fa5
commit d8bf50896e
3 changed files with 18 additions and 17 deletions

View File

@ -33,7 +33,8 @@ $busy_tentative = array();
$sql = "SELECT caldav_data.caldav_data, calendar_item.rrule, calendar_item.transp, calendar_item.status, ";
$sql .= "to_char(calendar_item.dtstart at time zone 'GMT',".iCalendar::SqlDateFormat().") AS start, ";
$sql .= "to_char(calendar_item.dtend at time zone 'GMT',".iCalendar::SqlDateFormat().") AS finish ";
$sql .= "FROM caldav_data INNER JOIN calendar_item USING(user_no, dav_name)".$where." ORDER BY dtstart, dtend";
$sql .= "FROM caldav_data INNER JOIN calendar_item USING(dav_id,user_no,dav_name)".$where;
if ( isset($c->strict_result_ordering) && $c->strict_result_ordering ) $sql .= " ORDER BY dav_id";
$qry = new PgQuery( $sql, "^".$request->path.$request->DepthRegexTail() );
if ( $qry->Exec("REPORT",__LINE__,__FILE__) && $qry->rows > 0 ) {
while( $calendar_object = $qry->Fetch() ) {

View File

@ -12,6 +12,7 @@ DTSTAMP:yyyymmddThhmmssZ
DTSTART:20061004T140000Z
DTEND:20070105T220000Z
FREEBUSY;FBTYPE=BUSY-TENTATIVE:20061223T060000/20061223T080000
FREEBUSY:20061101T233000/20061102T003000
FREEBUSY:20061031T210000/20061031T220000
FREEBUSY:20061102T210000/20061102T220000
FREEBUSY:20061109T210000/20061109T220000
@ -23,16 +24,15 @@ FREEBUSY:20061214T210000/20061214T220000
FREEBUSY:20061221T210000/20061221T220000
FREEBUSY:20061228T210000/20061228T220000
FREEBUSY:20070104T210000/20070104T220000
FREEBUSY:20061101T233000/20061102T003000
FREEBUSY:20061102T183000/20061102T203000
FREEBUSY:20061202T183000/20061202T203000
FREEBUSY:20070102T183000/20070102T203000
FREEBUSY:20061223T030000/20061223T050000
FREEBUSY:20061223T000000/20061223T020000
FREEBUSY:20061103T030000/20061103T044500
FREEBUSY:20061117T030000/20061117T044500
FREEBUSY:20061201T030000/20061201T044500
FREEBUSY:20061215T030000/20061215T044500
FREEBUSY:20061229T030000/20061229T044500
FREEBUSY:20061223T000000/20061223T020000
FREEBUSY:20061223T030000/20061223T050000
FREEBUSY:20061102T183000/20061102T203000
FREEBUSY:20061202T183000/20061202T203000
FREEBUSY:20070102T183000/20070102T203000
END:VFREEBUSY
END:VCALENDAR

View File

@ -12,6 +12,7 @@ DTSTAMP:yyyymmddThhmmssZ
DTSTART:20061001T000000Z
DTEND:20070630T235959Z
FREEBUSY;FBTYPE=BUSY-TENTATIVE:20061223T060000/20061223T080000
FREEBUSY:20061101T233000/20061102T003000
FREEBUSY:20061031T210000/20061031T220000
FREEBUSY:20061102T210000/20061102T220000
FREEBUSY:20061109T210000/20061109T220000
@ -39,15 +40,7 @@ FREEBUSY:20070405T210000/20070405T220000
FREEBUSY:20070412T210000/20070412T220000
FREEBUSY:20070419T210000/20070419T220000
FREEBUSY:20070426T210000/20070426T220000
FREEBUSY:20061101T233000/20061102T003000
FREEBUSY:20061102T183000/20061102T203000
FREEBUSY:20061202T183000/20061202T203000
FREEBUSY:20070102T183000/20070102T203000
FREEBUSY:20070202T183000/20070202T203000
FREEBUSY:20070302T183000/20070302T203000
FREEBUSY:20070402T183000/20070402T203000
FREEBUSY:20070502T183000/20070502T203000
FREEBUSY:20070602T183000/20070602T203000
FREEBUSY:20061223T030000/20061223T050000
FREEBUSY:20061103T030000/20061103T044500
FREEBUSY:20061117T030000/20061117T044500
FREEBUSY:20061201T030000/20061201T044500
@ -66,6 +59,13 @@ FREEBUSY:20070518T030000/20070518T044500
FREEBUSY:20070601T030000/20070601T044500
FREEBUSY:20070615T030000/20070615T044500
FREEBUSY:20070629T030000/20070629T044500
FREEBUSY:20061223T030000/20061223T050000
FREEBUSY:20061102T183000/20061102T203000
FREEBUSY:20061202T183000/20061202T203000
FREEBUSY:20070102T183000/20070102T203000
FREEBUSY:20070202T183000/20070202T203000
FREEBUSY:20070302T183000/20070302T203000
FREEBUSY:20070402T183000/20070402T203000
FREEBUSY:20070502T183000/20070502T203000
FREEBUSY:20070602T183000/20070602T203000
END:VFREEBUSY
END:VCALENDAR