/**
  * Method to do selects.
  *
  * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
  * @param      PropelPDO $con
  * @return     array Array of selected Objects
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function doSelect(Criteria $criteria, PropelPDO $con = null)
 {
     $criteriaForSelect = LiveChannelSegmentPeer::prepareCriteriaForSelect($criteria);
     $queryDB = kQueryCache::QUERY_DB_UNDEFINED;
     $cacheKey = null;
     $cachedResult = kQueryCache::getCachedQueryResults($criteriaForSelect, kQueryCache::QUERY_TYPE_SELECT, 'LiveChannelSegmentPeer', $cacheKey, $queryDB);
     if ($cachedResult !== null) {
         $cacheKey = null;
         LiveChannelSegmentPeer::filterSelectResults($cachedResult, $criteriaForSelect);
         LiveChannelSegmentPeer::updateInstancePool($cachedResult);
         return $cachedResult;
     }
     $con = LiveChannelSegmentPeer::alternativeCon($con, $queryDB);
     $queryResult = LiveChannelSegmentPeer::populateObjects(BasePeer::doSelect($criteriaForSelect, $con));
     if ($criteriaForSelect instanceof KalturaCriteria) {
         $criteriaForSelect->applyResultsSort($queryResult);
     }
     if ($cacheKey !== null) {
         kQueryCache::cacheQueryResults($cacheKey, $queryResult);
         $cacheKey = null;
     }
     LiveChannelSegmentPeer::filterSelectResults($queryResult, $criteria);
     LiveChannelSegmentPeer::addInstancesToPool($queryResult);
     return $queryResult;
 }