/**
  * Returns the number of rows matching criteria.
  *
  * @param      Criteria $criteria
  * @param      boolean $distinct Whether to select only distinct columns; deprecated: use Criteria->setDistinct() instead.
  * @param      PropelPDO $con
  * @return     int Number of matching rows.
  */
 public static function doCount(Criteria $criteria, $distinct = false, PropelPDO $con = null)
 {
     // we may modify criteria, so copy it first
     $criteria = clone $criteria;
     // We need to set the primary table name, since in the case that there are no WHERE columns
     // it will be impossible for the BasePeer::createSelectSql() method to determine which
     // tables go into the FROM clause.
     $criteria->setPrimaryTableName(PermissionItemPeer::TABLE_NAME);
     if ($distinct && !in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
         $criteria->setDistinct();
     }
     if (!$criteria->hasSelectClause()) {
         PermissionItemPeer::addSelectColumns($criteria);
     }
     $criteria->clearOrderByColumns();
     // ORDER BY won't ever affect the count
     $criteria->setDbName(self::DATABASE_NAME);
     // Set the correct dbName
     // BasePeer returns a PDOStatement
     $stmt = PermissionItemPeer::doCountStmt($criteria, $con);
     if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
         $count = (int) $row[0];
     } else {
         $count = 0;
         // no rows returned; we infer that means 0 matches.
     }
     $stmt->closeCursor();
     return $count;
 }