Example #1
0
 protected function processSubSelect(Select $subselect, PlatformInterface $platform, Driver\DriverInterface $driver = null, Parameters $parameters = null)
 {
     if ($driver) {
         // Track subselect prefix and count for parameters
         $this->processInfo['subselectCount']++;
         $subselect->processInfo['subselectCount'] = $this->processInfo['subselectCount'];
         $subselect->processInfo['paramPrefix'] = 'subselect' . $subselect->processInfo['subselectCount'];
         // call subselect
         $stmt = $subselect->prepareStatement($platform, $driver);
         // copy count
         $this->processInfo['subselectCount'] = $subselect->processInfo['subselectCount'];
         if ($parameters) {
             $parameters->merge($stmt->getParameters());
         }
         $sql = $stmt->getSql();
     } else {
         $sql = $subselect->getSqlString($platform);
     }
     return $sql;
 }