summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2011-12-10 23:29:21 -0600
committerwebchick <webchick@24967.no-reply.drupal.org>2011-12-10 23:29:21 -0600
commit06f31080c7281c8227d2556cd0807744e91c9fb5 (patch)
tree5c6571a83b94268389d977a3d6b3ff1c820e4d59
parente59e9d948fa31fbfbf36b08611e04a74aab4dd93 (diff)
downloadbrdo-06f31080c7281c8227d2556cd0807744e91c9fb5.tar.gz
brdo-06f31080c7281c8227d2556cd0807744e91c9fb5.tar.bz2
Issue #813540 by jbrown, chx: Fixed Comparisons involving NULL must never return true.
-rw-r--r--includes/database/query.inc5
-rw-r--r--modules/simpletest/tests/database_test.test18
2 files changed, 17 insertions, 6 deletions
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,13 +1454,27 @@ 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')
->execute()->fetchCol();
@@ -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')