/** * 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); }
/** * 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) . ")"; } }