コード例 #1
0
ファイル: RankingQueryTest.php プロジェクト: nnnnathann/piwik
 /**
  * @param Piwik_RankingQuery $rankingQuery
  * @param string $innerQuerySql
  * @param string $expected
  */
 private function checkQuery($rankingQuery, $innerQuerySql, $expected)
 {
     $query = $rankingQuery->generateQuery($innerQuerySql);
     $queryNoWhitespace = preg_replace("/\\s+/", "", $query);
     $expectedNoWhitespace = preg_replace("/\\s+/", "", $expected);
     $message = 'Unexpected query: ' . $query;
     $this->assertEquals($queryNoWhitespace, $expectedNoWhitespace, $message);
 }
コード例 #2
0
ファイル: Archiving.php プロジェクト: nomoto-ubicast/piwik
 /**
  * @param $select
  * @param $from
  * @param $where
  * @param $orderBy
  * @param $groupBy
  * @param $sprintfField
  * @param Piwik_ArchiveProcessing $archiveProcessing
  * @param Piwik_RankingQuery|false $rankingQuery
  * @return int
  */
 protected function archiveDayQueryProcess($select, $from, $where, $orderBy, $groupBy, $sprintfField, $archiveProcessing, $rankingQuery = false)
 {
     // idaction field needs to be set in select clause before calling getSelectQuery().
     // if a complex segmentation join is needed, the field needs to be propagated
     // to the outer select. therefore, $segment needs to know about it.
     $select = sprintf($select, $sprintfField);
     $bind = array();
     // get query with segmentation
     $query = $archiveProcessing->getSegment()->getSelectQuery($select, $from, $where, $bind, $orderBy, $groupBy);
     // extend bindings
     $bind = array_merge(array($archiveProcessing->getStartDatetimeUTC(), $archiveProcessing->getEndDatetimeUTC(), $archiveProcessing->idsite), $query['bind']);
     // replace the rest of the %s
     $querySql = str_replace("%s", $sprintfField, $query['sql']);
     // apply ranking query
     if ($rankingQuery) {
         $querySql = $rankingQuery->generateQuery($querySql);
     }
     //      echo '<pre>';var_dump($querySql);
     //      var_dump($bind);
     // get result
     $resultSet = $archiveProcessing->db->query($querySql, $bind);
     $modified = Piwik_Actions_ArchivingHelper::updateActionsTableWithRowQuery($resultSet, $sprintfField, $this->actionsTablesByType);
     return $modified;
 }