/**
  * Returns the SQL fragment needed to filter where a column equals a given value.
  *
  * @param \Rhubarb\Stem\Repositories\Repository $repository
  * @param \Rhubarb\Stem\Filters\Equals|Filter $originalFilter
  * @param array $params
  * @param array $relationshipsToAutoHydrate
  * @return string|void
  */
 protected static function doFilterWithRepository(Repository $repository, Filter $originalFilter, &$params, &$relationshipsToAutoHydrate)
 {
     $columnName = $originalFilter->columnName;
     if (self::canFilter($repository, $columnName, $relationshipsToAutoHydrate)) {
         $paramName = uniqid() . str_replace(".", "", $columnName);
         $placeHolder = $originalFilter->detectPlaceHolder($originalFilter->greaterThan);
         $originalFilter->filteredByRepository = true;
         if (!$placeHolder) {
             $params[$paramName] = self::getTransformedComparisonValueForRepository($columnName, $originalFilter->greaterThan, $repository);
             $paramName = ":" . $paramName;
         } else {
             $paramName = $placeHolder;
         }
         if (strpos($columnName, ".") === false) {
             $schema = $repository->getSchema();
             $columnName = $schema->schemaName . "`.`" . $columnName;
         } else {
             $columnName = str_replace('.', '`.`', $columnName);
         }
         if ($originalFilter->inclusive) {
             return "`{$columnName}` >= {$paramName}";
         } else {
             return "`{$columnName}` > {$paramName}";
         }
     }
     parent::doFilterWithRepository($repository, $originalFilter, $object, $params);
 }
 /**
  * Returns the SQL fragment needed to filter where a column equals a given value.
  *
  * @param \Rhubarb\Stem\Repositories\Repository $repository
  * @param Equals|Filter $originalFilter
  * @param array $params
  * @param array $relationshipsToAutoHydrate
  * @return string|void
  */
 protected static function doFilterWithRepository(Repository $repository, Filter $originalFilter, &$params, &$relationshipsToAutoHydrate)
 {
     $columnName = $originalFilter->columnName;
     if (self::canFilter($repository, $columnName, $relationshipsToAutoHydrate)) {
         $queryColumnName = $columnName;
         if (strpos($queryColumnName, ".") === false) {
             $schema = $repository->getSchema();
             $queryColumnName = $schema->schemaName . "`.`" . $queryColumnName;
         } else {
             $queryColumnName = str_replace('.', '`.`', $queryColumnName);
         }
         if ($originalFilter->equalTo === null) {
             return "`{$queryColumnName}` IS NULL";
         }
         $paramName = uniqid() . str_replace(".", "", $columnName);
         $originalFilter->filteredByRepository = true;
         $placeHolder = $originalFilter->detectPlaceHolder($originalFilter->equalTo);
         if (!$placeHolder) {
             $params[$paramName] = $params[$paramName] = self::getTransformedComparisonValueForRepository($columnName, $originalFilter->equalTo, $repository);
             $paramName = ":" . $paramName;
         } else {
             $paramName = $placeHolder;
         }
         return "`{$queryColumnName}` = {$paramName}";
     }
 }