diff --git a/includes/database/query.inc b/includes/database/query.inc index c77968767..9cdd8784e 100644 --- a/includes/database/query.inc +++ b/includes/database/query.inc @@ -1704,9 +1704,6 @@ class DatabaseCondition implements QueryConditionInterface, Countable { if (is_array($value)) { $operator = 'IN'; } - elseif (!isset($value)) { - $operator = 'IS NULL'; - } else { $operator = '='; } @@ -1740,7 +1737,7 @@ class DatabaseCondition implements QueryConditionInterface, Countable { * Implements QueryConditionInterface::isNull(). */ public function isNull($field) { - return $this->condition($field); + return $this->condition($field, NULL, 'IS NULL'); } /** diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index 87d386aa7..91a51f361 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -1454,11 +1454,25 @@ class DatabaseSelectTestCase extends DatabaseTestCase { } /** - * Test that we can find a record with a NULL value. + * Test that a comparison with NULL is always FALSE. */ function testNullCondition() { $this->ensureSampleDataNull(); + $names = db_select('test_null', 'tn') + ->fields('tn', array('name')) + ->condition('age', NULL) + ->execute()->fetchCol(); + + $this->assertEqual(count($names), 0, t('No records found when comparing to NULL.')); + } + + /** + * Test that we can find a record with a NULL value. + */ + function testIsNullCondition() { + $this->ensureSampleDataNull(); + $names = db_select('test_null', 'tn') ->fields('tn', array('name')) ->isNull('age') @@ -1471,7 +1485,7 @@ class DatabaseSelectTestCase extends DatabaseTestCase { /** * Test that we can find a record without a NULL value. */ - function testNotNullCondition() { + function testIsNotNullCondition() { $this->ensureSampleDataNull(); $names = db_select('test_null', 'tn')