phpOpenTracker/phpOpenTracker/DB mysql_merge.php,1.22.2.4,1.22.2.5

Sebastian Bergmann <[email protected]> Fri, 12 Mar 2004 11:50:50 +0000
Newsgroups gmane.comp.web.phpopentracker.cvs
Message-ID <[email protected]>
Update of /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/DB
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25599

Modified Files:
      Tag: phpOpenTracker_1
	mysql_merge.php 
Log Message:
Flush.

Index: mysql_merge.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/DB/Attic/mysql_merge.php,v
retrieving revision 1.22.2.4
retrieving revision 1.22.2.5
diff -C2 -d -r1.22.2.4 -r1.22.2.5
*** mysql_merge.php	12 Mar 2004 08:48:29 -0000	1.22.2.4
--- mysql_merge.php	12 Mar 2004 11:50:47 -0000	1.22.2.5
***************
*** 213,220 ****
  
          for ($day = 1; $day <= $numDaysInCurrentMonth; $day++) {
!           $newAccesslogTable = sprintf(
!             '%s_%d%02d%02d',
! 
!             $this->config['accesslog_table'],
              $currentYear,
              $currentMonth,
--- 213,218 ----
  
          for ($day = 1; $day <= $numDaysInCurrentMonth; $day++) {
!           $newAccesslogTable = $this->_getMergeTableName(
!             'accesslog',
              $currentYear,
              $currentMonth,
***************
*** 229,236 ****
            );
  
!           $newVisitorsTable = sprintf(
!             '%s_%d%02d%02d',
! 
!             $this->config['visitors_table'],
              $currentYear,
              $currentMonth,
--- 227,232 ----
            );
  
!           $newVisitorsTable = $this->_getMergeTableName(
!             'visitors',
              $currentYear,
              $currentMonth,
***************
*** 248,255 ****
          // Create merge tables for current month.
          $this->_createMergeTable(
!           sprintf(
!             '%s_%d%02d',
! 
!             $this->config['accesslog_table'],
              $currentYear,
              $currentMonth
--- 244,249 ----
          // Create merge tables for current month.
          $this->_createMergeTable(
!           $this->_getMergeTableName(
!             'accesslog',
              $currentYear,
              $currentMonth
***************
*** 261,268 ****
  
          $this->_createMergeTable(
!           sprintf(
!             '%s_%d%02d',
! 
!             $this->config['visitors_table'],
              $currentYear,
              $currentMonth
--- 255,260 ----
  
          $this->_createMergeTable(
!           $this->_getMergeTableName(
!             'visitors',
              $currentYear,
              $currentMonth
***************
*** 292,301 ****
            $this->_createNewTable(
              'accesslog',
!             sprintf(
!               '%s_%d%02d',
! 
!               $this->config['accesslog_table'],
                $currentYear,
!               $month
              )
            );
--- 284,291 ----
            $this->_createNewTable(
              'accesslog',
!             $this->_getMergeTableName(
!               'accesslog',
                $currentYear,
!               $currentMonth
              )
            );
***************
*** 303,312 ****
            $this->_createNewTable(
              'visitors',
!             sprintf(
!               '%s_%d%02d',
! 
!               $this->config['visitors_table'],
                $currentYear,
!               $month
              )
            );
--- 293,300 ----
            $this->_createNewTable(
              'visitors',
!             $this->_getMergeTableName(
!               'visitors',
                $currentYear,
!               $currentMonth
              )
            );
***************
*** 356,359 ****
--- 344,384 ----
  
    /**
+   * Returns the name of a merge table.
+   *
+   * @param           string  $type
+   * @param                   $year
+   * @param  optional integer $month
+   * @param  optional integer $day
+   * @return string
+   * @access private
+   */
+   function _getMergeTableName($type, $year, $month = false, $day = false) {
+     $name = sprintf(
+       '%s_%d',
+ 
+       ($type == 'accesslog') ? $this->config['accesslog_table'] : $this->config['visitors_table'],
+       $year
+     );
+ 
+     if ($month !== false) {
+       $name .= sprintf(
+         '%02d',
+ 
+         $month
+       );
+     }
+ 
+     if ($day !== false) {
+       $name .= sprintf(
+         '%02d',
+ 
+         $day
+       );
+     }
+ 
+     return $name;
+   }
+ 
+   /**
    * Returns a comma-separated list of existing merge tables.
    *
***************
*** 442,473 ****
  
      if ($between != false) {
!       $startDay   = date('d', $parsedQuery[$between + 1]);
!       $startMonth = date('m', $parsedQuery[$between + 1]);
!       $startYear  = date('Y', $parsedQuery[$between + 1]);
  
!       $endDay   = date('d', $parsedQuery[$between + 3]);
!       $endMonth = date('m', $parsedQuery[$between + 3]);
!       $endYear  = date('Y', $parsedQuery[$between + 3]);
  
!       if ($this->config['merge_tables_mode'] == 'day' &&
!           $startDay   == $endDay &&
!           $startMonth == $endMonth &&
!           $startYear  == $endYear) {
!         return $this->_replaceTableNames(
!           $query,
!           $startYear . $startMonth . $startDay
!         );
!       }
  
!       else if ($startMonth == $endMonth &&
!                $startYear  == $endYear) {
!         return $this->_replaceTableNames(
!           $query,
!           $startYear . $startMonth
!         );
!       }
  
!       else {
!         // XXX: TO BE IMPLEMENTED
        }
      }
--- 467,556 ----
  
      if ($between != false) {
!       $accesslogTables = array();
!       $visitorsTables  = array();
  
!       $startDay   = $day   = date('d', $parsedQuery[$between + 1]);
!       $startMonth = $month = date('m', $parsedQuery[$between + 1]);
!       $startYear  = $year  = date('Y', $parsedQuery[$between + 1]);
!       $endDay              = date('d', $parsedQuery[$between + 3]);
!       $endMonth            = date('m', $parsedQuery[$between + 3]);
!       $endYear             = date('Y', $parsedQuery[$between + 3]);
  
!       $done = false;
  
!       switch ($this->config['merge_tables_mode']) {
!         case 'day': {
!           // start/end on the same day: use single day table
!           if ($startDay   == $endDay &&
!               $startMonth == $endMonth &&
!               $startYear  == $endYear) {
!             return $this->_replaceTableNames(
!               $query,
!               $startYear . $startMonth . $startDay
!             );
!           }
  
!           // XXX: TO BE IMPLEMENTED
!         }
!         break;
! 
!         case 'month': {
!           // start/end in same month: use single month table
!           if ($startMonth == $endMonth &&
!               $startYear  == $endYear) {
!             return $this->_replaceTableNames(
!               $query,
!               $startYear . $startMonth
!             );
!           }
! 
!           while (!$done) {
!             $accesslogTables[] = $this->_getMergeTableName(
!               'accesslog',
!               $year,
!               $month
!             );
! 
!             $visitorsTables[] = $this->_getMergeTableName(
!               'visitors',
!               $year,
!               $month
!             );
! 
!             if ($month == $endMonth &&
!                $year   == $endYear) {
!               $done = true;
!             }
! 
!             else if ($month < 12) {
!               $month++;
!             } else {
!               $month = 1;
!               $year++;
!             }
!           }
! 
!           $this->createMergeTable(
!             $this->config['accesslog_table'] . '_temporary',
!             'accesslog',
!             $accesslogTables,
!             true,
!             true
!           );
! 
!           $this->createMergeTable(
!             $this->config['visitors_table'] . '_temporary',
!             'visitors',
!             $visitorsTables,
!             true,
!             true
!           );
! 
!           return $this->_replaceTableNames(
!             $query,
!             'temporary'
!           );
!         }
!         break;
        }
      }



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click