Skip to content

Commit 1ae73cd

Browse files
committed
Adding handler for empty arrays with eq/neq functions
1 parent 9eff08a commit 1ae73cd

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

test/clause.inc.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,27 @@
339339

340340

341341

342+
//SELECT statement where column isnt equal to NULL
343+
$db->string()->select('*', 'table', ['column'=>pudl::neq([NULL])]);
344+
pudlTest($db, "SELECT * FROM `table` WHERE `column` NOT IN (NULL)");
345+
346+
347+
348+
349+
//SELECT statement where column isnt equal to NULL
350+
$db->string()->select('*', 'table', ['column'=>pudl::neq([])]);
351+
pudlTest($db, "SELECT * FROM `table` WHERE `column` NOT IN (NULL)");
352+
353+
354+
355+
356+
//SELECT statement where column isnt equal to NULL
357+
$db->string()->select('*', 'table', ['column'=>pudl::eq([])]);
358+
pudlTest($db, "SELECT * FROM `table` WHERE `column` IN (NULL)");
359+
360+
361+
362+
342363
//SELECT statement where column isnt equal to integer
343364
$db->string()->select('*', 'table', ['column'=>pudl::neq(5)]);
344365
pudlTest($db, "SELECT * FROM `table` WHERE `column`!=5");

traits/pudlQuery.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,10 @@ private function _clauseRecurse($clause, $joiner=' AND ', $prefix=false, $encase
465465
if ($value instanceof pudlResult && !$value instanceof pudlValue) continue;
466466
if ($value instanceof pudlEquals && $value->value instanceof pudlResult) continue;
467467

468+
if ($value instanceof pudlEquals && $value->value === []) {
469+
$value->value = [NULL];
470+
}
471+
468472
} else if ($value instanceof pudlSort && is_int($key)) {
469473
$query .= $this->identifiers($value->column);
470474
$query .= ' ' . $value->value;

0 commit comments

Comments
 (0)