Example #1
0
 /**
  *   Simplify the query by flattening out subqueries.
  *   Modifies the passed query object directly.
  */
 public function simplify(Query $query)
 {
     $arPatterns = $query->getResultPart();
     self::dropEmpty($arPatterns);
     $arPlan = $this->createPlan($arPatterns);
     if (count($arPlan) == 0) {
         $query->setResultPart($arPatterns);
         return 0;
     }
     $this->executePlan($arPatterns, $arPlan);
     $query->setResultPart($arPatterns);
 }