Issue #1226796 by sun, catch, Damien Tournoud: Fixed Not equal operator '!=' is not supported by all databases, must be '<>'.
parent
3eb1c0f675
commit
5dedc4c400
|
@ -606,7 +606,7 @@ class EntityFieldQuery {
|
|||
* dependent on $operator.
|
||||
* @param $operator
|
||||
* Possible values:
|
||||
* - '=', '!=', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||
* - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||
* operators expect $value to be a literal of the same type as the
|
||||
* column.
|
||||
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
||||
|
@ -620,6 +620,11 @@ class EntityFieldQuery {
|
|||
* The called object.
|
||||
*/
|
||||
public function entityCondition($name, $value, $operator = NULL) {
|
||||
// The '!=' operator is deprecated in favour of the '<>' operator since the
|
||||
// latter is ANSI SQL compatible.
|
||||
if ($operator == '!=') {
|
||||
$operator = '<>';
|
||||
}
|
||||
$this->entityConditions[$name] = array(
|
||||
'value' => $value,
|
||||
'operator' => $operator,
|
||||
|
@ -724,7 +729,7 @@ class EntityFieldQuery {
|
|||
* element in the array is dependent on $operator.
|
||||
* @param $operator
|
||||
* Possible values:
|
||||
* - '=', '!=', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||
* - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||
* operators expect $value to be a literal of the same type as the
|
||||
* column.
|
||||
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
||||
|
@ -751,6 +756,11 @@ class EntityFieldQuery {
|
|||
* The called object.
|
||||
*/
|
||||
protected function addFieldCondition(&$conditions, $field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
|
||||
// The '!=' operator is deprecated in favour of the '<>' operator since the
|
||||
// latter is ANSI SQL compatible.
|
||||
if ($operator == '!=') {
|
||||
$operator = '<>';
|
||||
}
|
||||
if (is_scalar($field)) {
|
||||
$field_definition = field_info_field($field);
|
||||
if (empty($field_definition)) {
|
||||
|
@ -791,7 +801,7 @@ class EntityFieldQuery {
|
|||
* array is dependent on $operator.
|
||||
* @param $operator
|
||||
* Possible values:
|
||||
* - '=', '!=', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||
* - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||
* operators expect $value to be a literal of the same type as the
|
||||
* column.
|
||||
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
||||
|
@ -805,6 +815,11 @@ class EntityFieldQuery {
|
|||
* The called object.
|
||||
*/
|
||||
public function propertyCondition($column, $value, $operator = NULL) {
|
||||
// The '!=' operator is deprecated in favour of the '<>' operator since the
|
||||
// latter is ANSI SQL compatible.
|
||||
if ($operator == '!=') {
|
||||
$operator = '<>';
|
||||
}
|
||||
$this->propertyConditions[] = array(
|
||||
'column' => $column,
|
||||
'value' => $value,
|
||||
|
|
|
@ -1426,7 +1426,7 @@ function update_retrieve_dependencies() {
|
|||
$return = array();
|
||||
// Get a list of installed modules, arranged so that we invoke their hooks in
|
||||
// the same order that module_invoke_all() does.
|
||||
$modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND schema_version != :schema ORDER BY weight ASC, name ASC", array(':schema' => SCHEMA_UNINSTALLED))->fetchCol();
|
||||
$modules = db_query("SELECT name FROM {system} WHERE type = 'module' AND schema_version <> :schema ORDER BY weight ASC, name ASC", array(':schema' => SCHEMA_UNINSTALLED))->fetchCol();
|
||||
foreach ($modules as $module) {
|
||||
$function = $module . '_update_dependencies';
|
||||
if (function_exists($function)) {
|
||||
|
|
|
@ -282,7 +282,7 @@ function field_test_field_storage_query($field_id, $conditions, $count, &$cursor
|
|||
case '=':
|
||||
$match = $match && $row->{$column} == $value;
|
||||
break;
|
||||
case '!=':
|
||||
case '<>':
|
||||
case '<':
|
||||
case '<=':
|
||||
case '>':
|
||||
|
|
|
@ -719,6 +719,31 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
array('test_entity', 3),
|
||||
), t('Test the "equal to" operation on a field.'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity_bundle_key')
|
||||
->propertyCondition('ftid', 3, '<>');
|
||||
$this->assertEntityFieldQuery($query, array(
|
||||
array('test_entity_bundle_key', 1),
|
||||
array('test_entity_bundle_key', 2),
|
||||
array('test_entity_bundle_key', 4),
|
||||
array('test_entity_bundle_key', 5),
|
||||
array('test_entity_bundle_key', 6),
|
||||
), t('Test the "not equal to" operation on a property.'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query->fieldCondition($this->fields[0], 'value', 3, '<>');
|
||||
$this->assertEntityFieldQuery($query, array(
|
||||
array('test_entity_bundle_key', 1),
|
||||
array('test_entity_bundle_key', 2),
|
||||
array('test_entity_bundle_key', 4),
|
||||
array('test_entity_bundle_key', 5),
|
||||
array('test_entity_bundle_key', 6),
|
||||
array('test_entity', 1),
|
||||
array('test_entity', 2),
|
||||
array('test_entity', 4),
|
||||
), t('Test the "not equal to" operation on a field.'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity_bundle_key')
|
||||
|
@ -1084,6 +1109,15 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
array('test_entity', 1),
|
||||
), t('Test with a delta meta condition.'));
|
||||
|
||||
// Test language field meta condition.
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '<>');
|
||||
$this->assertEntityFieldQuery($query, array(
|
||||
array('test_entity', 1),
|
||||
), t('Test with a language meta condition.'));
|
||||
|
||||
// Test language field meta condition.
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
|
@ -1110,6 +1144,16 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
->fieldDeltaCondition($this->fields[0], 1, '>=', 'group');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta meta condition (empty result set).'));
|
||||
|
||||
// Test language grouping.
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldCondition($this->fields[0], 'value', 0, '=', NULL, 'group')
|
||||
->fieldLanguageCondition($this->fields[0], 'en', '<>', NULL, 'group');
|
||||
$this->assertEntityFieldQuery($query, array(
|
||||
array('test_entity', 1),
|
||||
), t('Test with a grouped language meta condition.'));
|
||||
|
||||
// Test language grouping.
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
|
@ -1120,6 +1164,13 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
array('test_entity', 1),
|
||||
), t('Test with a grouped language meta condition.'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldCondition($this->fields[0], 'value', 0, '=', NULL, 'group')
|
||||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '<>', NULL, 'group');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped language meta condition (empty result set).'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
|
@ -1127,6 +1178,17 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', NULL, 'group');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped language meta condition (empty result set).'));
|
||||
|
||||
// Test delta and language grouping.
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
|
||||
->fieldDeltaCondition($this->fields[0], 1, '<', 'delta', 'language')
|
||||
->fieldLanguageCondition($this->fields[0], 'en', '<>', 'delta', 'language');
|
||||
$this->assertEntityFieldQuery($query, array(
|
||||
array('test_entity', 1),
|
||||
), t('Test with a grouped delta + language meta condition.'));
|
||||
|
||||
// Test delta and language grouping.
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
|
@ -1138,6 +1200,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
array('test_entity', 1),
|
||||
), t('Test with a grouped delta + language meta condition.'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
|
||||
->fieldDeltaCondition($this->fields[0], 1, '>=', 'delta', 'language')
|
||||
->fieldLanguageCondition($this->fields[0], 'en', '<>', 'delta', 'language');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, delta condition unsatisifed).'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
|
@ -1146,6 +1216,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
->fieldLanguageCondition($this->fields[0], 'en', '!=', 'delta', 'language');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, delta condition unsatisifed).'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
|
||||
->fieldDeltaCondition($this->fields[0], 1, '<', 'delta', 'language')
|
||||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '<>', 'delta', 'language');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, language condition unsatisifed).'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
|
@ -1154,6 +1232,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
|||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', 'delta', 'language');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, language condition unsatisifed).'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
->fieldCondition($this->fields[0], 'value', 0, '=', 'delta', 'language')
|
||||
->fieldDeltaCondition($this->fields[0], 1, '>=', 'delta', 'language')
|
||||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '<>', 'delta', 'language');
|
||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta + language meta condition (empty result set, both conditions unsatisifed).'));
|
||||
|
||||
$query = new EntityFieldQuery();
|
||||
$query
|
||||
->entityCondition('entity_type', 'test_entity', '=')
|
||||
|
|
|
@ -19,7 +19,7 @@ function system_admin_config_page() {
|
|||
SELECT m.*, ml.*
|
||||
FROM {menu_links} ml
|
||||
INNER JOIN {menu_router} m ON ml.router_path = m.path
|
||||
WHERE ml.link_path != 'admin/help' AND menu_name = :menu_name AND ml.plid = :mlid AND hidden = 0", $admin, array('fetch' => PDO::FETCH_ASSOC));
|
||||
WHERE ml.link_path <> 'admin/help' AND menu_name = :menu_name AND ml.plid = :mlid AND hidden = 0", $admin, array('fetch' => PDO::FETCH_ASSOC));
|
||||
foreach ($result as $item) {
|
||||
_menu_link_translate($item);
|
||||
if (!$item['access']) {
|
||||
|
|
|
@ -544,7 +544,7 @@ function hook_cron() {
|
|||
|
||||
// Long-running operation example, leveraging a queue:
|
||||
// Fetch feeds from other sites.
|
||||
$result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < :time AND refresh != :never', array(
|
||||
$result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < :time AND refresh <> :never', array(
|
||||
':time' => REQUEST_TIME,
|
||||
':never' => AGGREGATOR_CLEAR_NEVER,
|
||||
));
|
||||
|
|
|
@ -2912,7 +2912,7 @@ function system_get_module_admin_tasks($module, $info) {
|
|||
->condition('ml.hidden', 0, '>=')
|
||||
->condition('ml.module', 'system')
|
||||
->condition('m.number_parts', 1, '>')
|
||||
->condition('m.page_callback', 'system_admin_menu_block_page', '!=');
|
||||
->condition('m.page_callback', 'system_admin_menu_block_page', '<>');
|
||||
foreach ($query->execute() as $link) {
|
||||
_menu_link_translate($link);
|
||||
if ($link['access']) {
|
||||
|
|
Loading…
Reference in New Issue