/**
  * Add a sql string to the where array base on the $operatorType, $value and $tableAliasAndColumnNames concated
  * together.  How the sql string is built depends on if the value is a string or not.
  * @param string $operatorType
  * @param mixed $value
  * @param array $where
  * @param integer $whereKey
  * @param array $tableAliasAndColumnNames
  */
 protected static function addWherePartByClauseInformationForConcatedAttributes($operatorType, $value, &$where, $whereKey, $tableAliasAndColumnNames)
 {
     assert('is_string($operatorType)');
     assert('is_array($where)');
     assert('is_int($whereKey)');
     assert('is_array($tableAliasAndColumnNames) && count($tableAliasAndColumnNames) == 2');
     $quote = DatabaseCompatibilityUtil::getQuote();
     if (is_string($value) || is_array($value) && count($value) > 0 || $value !== null) {
         $first = ModelJoinBuilder::makeColumnNameWithTableAlias($tableAliasAndColumnNames[0][0], $tableAliasAndColumnNames[0][1]);
         $second = ModelJoinBuilder::makeColumnNameWithTableAlias($tableAliasAndColumnNames[1][0], $tableAliasAndColumnNames[1][1]);
         $concatedSqlPart = DatabaseCompatibilityUtil::concat(array($first, '\' \'', $second));
         $where[$whereKey] = "({$concatedSqlPart} " . DatabaseCompatibilityUtil::getOperatorAndValueWherePart($operatorType, $value) . ")";
     }
 }
 public function testGetOperatorAndValueWherePartForNullOrEmpty()
 {
     $queryPart = DatabaseCompatibilityUtil::getOperatorAndValueWherePart('isNull', null);
     $compareQueryPart = "IS NULL";
     // Not Coding Standard
     $this->assertEquals($compareQueryPart, $queryPart);
     $queryPart = DatabaseCompatibilityUtil::getOperatorAndValueWherePart('isNotNull', null);
     $compareQueryPart = "IS NOT NULL";
     // Not Coding Standard
     $this->assertEquals($compareQueryPart, $queryPart);
     $queryPart = DatabaseCompatibilityUtil::getOperatorAndValueWherePart('isEmpty', null);
     $compareQueryPart = "= ''";
     // Not Coding Standard
     $this->assertEquals($compareQueryPart, $queryPart);
     $queryPart = DatabaseCompatibilityUtil::getOperatorAndValueWherePart('isNotEmpty', null);
     $compareQueryPart = "!= ''";
     // Not Coding Standard
     $this->assertEquals($compareQueryPart, $queryPart);
 }
예제 #3
0
 /**
  * Add a sql string to the where array. How the sql string is built depends on if the value is a string or not.
  * @param $operatorType
  * @param $value
  * @param $where
  * @param $whereKey
  * @param $tableAliasName
  * @param $columnName
  */
 protected function addWherePartByClauseInformation($operatorType, $value, &$where, $whereKey, $tableAliasName, $columnName)
 {
     assert('is_string($operatorType)');
     assert('is_array($where)');
     assert('is_int($whereKey)');
     assert('is_string($tableAliasName)');
     assert('is_string($columnName)');
     if (is_string($value) || is_array($value) && count($value) > 0 || $value !== null || $value === null && SQLOperatorUtil::doesOperatorTypeAllowNullValues($operatorType)) {
         $where[$whereKey] = "(" . self::resolveWhereColumnContentForModifier($tableAliasName, $columnName) . " " . DatabaseCompatibilityUtil::getOperatorAndValueWherePart($operatorType, $value) . ")";
     }
 }