diff options
-rw-r--r-- | it_dbi.class | 6 | ||||
-rwxr-xr-x | test/it_dbi.t | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/it_dbi.class b/it_dbi.class index 004c22d..76f4d1a 100644 --- a/it_dbi.class +++ b/it_dbi.class @@ -264,7 +264,8 @@ function _set($tags, $force = false) { if (substr($field, 0, 1) === "-") $newdyns[] = "'\$.$f', " . $value; - else if ($force || isset($value) && isset($dyndata[$f]) ? strval($value) !== strval($dyndata[$f]) : $value !== $dyndata[$f] || !array_key_exists($f, $dyndata)) { + else if ($force || isset($value) && isset($dyndata[$f]) ? strval($value) !== strval($dyndata[$f]) : $value !== $dyndata[$f] || !array_key_exists($f, $dyndata)) + { if (is_null($value)) $deldyns[] = "'\$.$f'"; else @@ -284,7 +285,8 @@ function _set($tags, $force = false) { if ($force == "insert") # INSERT/REPLACE $result[] = "dyncols = JSON_OBJECT(" . join(", ", (array)$alldyns) . ")"; - else if ($newdyns || $deldyns) { + else if ($newdyns || $deldyns) + { $source = $this->_dyndata ? 'dyncols' : '"{}"'; if ($newdyns) $source = "JSON_SET($source, " . join(', ', $newdyns) . ')'; diff --git a/test/it_dbi.t b/test/it_dbi.t index 6b89db2..a257105 100755 --- a/test/it_dbi.t +++ b/test/it_dbi.t @@ -366,7 +366,8 @@ is($r->key3, 'c', 'dynamic column for record with empty dyncols whould be correc $r->clear(false); is($r->select(['-key1 IS NOT' => 'NULL']), 1, 'only one entry has a value for key1'); -is($r->select(['-key2 IS' => 'NULL']), 2, "two entries don't have a value for key1"); +is($r->select(['-key1 IS' => 'NULL']), 2, "two entries don't have a value for key1"); +is($r->select(['key1' => null]), 2, "same behaviour without - syntax"); $r->read(1); $r->update(['key1' => null]); is($r->key1, null, 'setting dyncol to null should make it be null'); |