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.
|
* dependent on $operator.
|
||||||
* @param $operator
|
* @param $operator
|
||||||
* Possible values:
|
* Possible values:
|
||||||
* - '=', '!=', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
* - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||||
* operators expect $value to be a literal of the same type as the
|
* operators expect $value to be a literal of the same type as the
|
||||||
* column.
|
* column.
|
||||||
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
||||||
|
@ -620,6 +620,11 @@ class EntityFieldQuery {
|
||||||
* The called object.
|
* The called object.
|
||||||
*/
|
*/
|
||||||
public function entityCondition($name, $value, $operator = NULL) {
|
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(
|
$this->entityConditions[$name] = array(
|
||||||
'value' => $value,
|
'value' => $value,
|
||||||
'operator' => $operator,
|
'operator' => $operator,
|
||||||
|
@ -724,7 +729,7 @@ class EntityFieldQuery {
|
||||||
* element in the array is dependent on $operator.
|
* element in the array is dependent on $operator.
|
||||||
* @param $operator
|
* @param $operator
|
||||||
* Possible values:
|
* Possible values:
|
||||||
* - '=', '!=', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
* - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||||
* operators expect $value to be a literal of the same type as the
|
* operators expect $value to be a literal of the same type as the
|
||||||
* column.
|
* column.
|
||||||
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
||||||
|
@ -751,6 +756,11 @@ class EntityFieldQuery {
|
||||||
* The called object.
|
* The called object.
|
||||||
*/
|
*/
|
||||||
protected function addFieldCondition(&$conditions, $field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
|
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)) {
|
if (is_scalar($field)) {
|
||||||
$field_definition = field_info_field($field);
|
$field_definition = field_info_field($field);
|
||||||
if (empty($field_definition)) {
|
if (empty($field_definition)) {
|
||||||
|
@ -791,7 +801,7 @@ class EntityFieldQuery {
|
||||||
* array is dependent on $operator.
|
* array is dependent on $operator.
|
||||||
* @param $operator
|
* @param $operator
|
||||||
* Possible values:
|
* Possible values:
|
||||||
* - '=', '!=', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
* - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
|
||||||
* operators expect $value to be a literal of the same type as the
|
* operators expect $value to be a literal of the same type as the
|
||||||
* column.
|
* column.
|
||||||
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
* - 'IN', 'NOT IN': These operators expect $value to be an array of
|
||||||
|
@ -805,6 +815,11 @@ class EntityFieldQuery {
|
||||||
* The called object.
|
* The called object.
|
||||||
*/
|
*/
|
||||||
public function propertyCondition($column, $value, $operator = NULL) {
|
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(
|
$this->propertyConditions[] = array(
|
||||||
'column' => $column,
|
'column' => $column,
|
||||||
'value' => $value,
|
'value' => $value,
|
||||||
|
|
|
@ -1426,7 +1426,7 @@ function update_retrieve_dependencies() {
|
||||||
$return = array();
|
$return = array();
|
||||||
// Get a list of installed modules, arranged so that we invoke their hooks in
|
// Get a list of installed modules, arranged so that we invoke their hooks in
|
||||||
// the same order that module_invoke_all() does.
|
// 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) {
|
foreach ($modules as $module) {
|
||||||
$function = $module . '_update_dependencies';
|
$function = $module . '_update_dependencies';
|
||||||
if (function_exists($function)) {
|
if (function_exists($function)) {
|
||||||
|
|
|
@ -282,7 +282,7 @@ function field_test_field_storage_query($field_id, $conditions, $count, &$cursor
|
||||||
case '=':
|
case '=':
|
||||||
$match = $match && $row->{$column} == $value;
|
$match = $match && $row->{$column} == $value;
|
||||||
break;
|
break;
|
||||||
case '!=':
|
case '<>':
|
||||||
case '<':
|
case '<':
|
||||||
case '<=':
|
case '<=':
|
||||||
case '>':
|
case '>':
|
||||||
|
|
|
@ -719,6 +719,31 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
array('test_entity', 3),
|
array('test_entity', 3),
|
||||||
), t('Test the "equal to" operation on a field.'));
|
), 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 = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
->entityCondition('entity_type', 'test_entity_bundle_key')
|
->entityCondition('entity_type', 'test_entity_bundle_key')
|
||||||
|
@ -1084,6 +1109,15 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
array('test_entity', 1),
|
array('test_entity', 1),
|
||||||
), t('Test with a delta meta condition.'));
|
), 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.
|
// Test language field meta condition.
|
||||||
$query = new EntityFieldQuery();
|
$query = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
|
@ -1110,6 +1144,16 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
->fieldDeltaCondition($this->fields[0], 1, '>=', 'group');
|
->fieldDeltaCondition($this->fields[0], 1, '>=', 'group');
|
||||||
$this->assertEntityFieldQuery($query, array(), t('Test with a grouped delta meta condition (empty result set).'));
|
$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.
|
// Test language grouping.
|
||||||
$query = new EntityFieldQuery();
|
$query = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
|
@ -1120,6 +1164,13 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
array('test_entity', 1),
|
array('test_entity', 1),
|
||||||
), t('Test with a grouped language meta condition.'));
|
), 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 = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
->entityCondition('entity_type', 'test_entity', '=')
|
->entityCondition('entity_type', 'test_entity', '=')
|
||||||
|
@ -1127,6 +1178,17 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', 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).'));
|
$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.
|
// Test delta and language grouping.
|
||||||
$query = new EntityFieldQuery();
|
$query = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
|
@ -1138,6 +1200,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
array('test_entity', 1),
|
array('test_entity', 1),
|
||||||
), t('Test with a grouped delta + language meta condition.'));
|
), 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 = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
->entityCondition('entity_type', 'test_entity', '=')
|
->entityCondition('entity_type', 'test_entity', '=')
|
||||||
|
@ -1146,6 +1216,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
->fieldLanguageCondition($this->fields[0], 'en', '!=', '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).'));
|
$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 = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
->entityCondition('entity_type', 'test_entity', '=')
|
->entityCondition('entity_type', 'test_entity', '=')
|
||||||
|
@ -1154,6 +1232,14 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
|
||||||
->fieldLanguageCondition($this->fields[0], LANGUAGE_NONE, '!=', '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).'));
|
$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 = new EntityFieldQuery();
|
||||||
$query
|
$query
|
||||||
->entityCondition('entity_type', 'test_entity', '=')
|
->entityCondition('entity_type', 'test_entity', '=')
|
||||||
|
|
|
@ -19,7 +19,7 @@ function system_admin_config_page() {
|
||||||
SELECT m.*, ml.*
|
SELECT m.*, ml.*
|
||||||
FROM {menu_links} ml
|
FROM {menu_links} ml
|
||||||
INNER JOIN {menu_router} m ON ml.router_path = m.path
|
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) {
|
foreach ($result as $item) {
|
||||||
_menu_link_translate($item);
|
_menu_link_translate($item);
|
||||||
if (!$item['access']) {
|
if (!$item['access']) {
|
||||||
|
|
|
@ -544,7 +544,7 @@ function hook_cron() {
|
||||||
|
|
||||||
// Long-running operation example, leveraging a queue:
|
// Long-running operation example, leveraging a queue:
|
||||||
// Fetch feeds from other sites.
|
// 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,
|
':time' => REQUEST_TIME,
|
||||||
':never' => AGGREGATOR_CLEAR_NEVER,
|
':never' => AGGREGATOR_CLEAR_NEVER,
|
||||||
));
|
));
|
||||||
|
|
|
@ -2912,7 +2912,7 @@ function system_get_module_admin_tasks($module, $info) {
|
||||||
->condition('ml.hidden', 0, '>=')
|
->condition('ml.hidden', 0, '>=')
|
||||||
->condition('ml.module', 'system')
|
->condition('ml.module', 'system')
|
||||||
->condition('m.number_parts', 1, '>')
|
->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) {
|
foreach ($query->execute() as $link) {
|
||||||
_menu_link_translate($link);
|
_menu_link_translate($link);
|
||||||
if ($link['access']) {
|
if ($link['access']) {
|
||||||
|
|
Loading…
Reference in New Issue