From a8788eda2ab3f10fee1e5f20bb20951e3bad5ced Mon Sep 17 00:00:00 2001 From: Carsten Rose <carsten.rose@math.uzh.ch> Date: Tue, 5 Nov 2019 14:17:39 +0100 Subject: [PATCH] QIFEMPTY: detected empty for all - fixed. Not clear why the unit test not failed already. Unit tests checked again that they really work: they do! --- extension/Classes/Sql/function.sql | 2 +- extension/Tests/Unit/Core/Database/DatabaseFunction.php | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/extension/Classes/Sql/function.sql b/extension/Classes/Sql/function.sql index ff3548108..3e6d92baf 100644 --- a/extension/Classes/Sql/function.sql +++ b/extension/Classes/Sql/function.sql @@ -81,7 +81,7 @@ CREATE FUNCTION QIFEMPTY(input TEXT, token TEXT) BEGIN DECLARE output TEXT; SET output = - IF(ISNULL(input) OR input = '' OR input = '0000-00-00' OR input = '0000-00-00 00:00:00', token, + IF(ISNULL(input) OR input = '' OR input = '0' OR input = '0000-00-00' OR input = '0000-00-00 00:00:00', token, input); RETURN output; END; diff --git a/extension/Tests/Unit/Core/Database/DatabaseFunction.php b/extension/Tests/Unit/Core/Database/DatabaseFunction.php index 92a68939c..8106b9b39 100644 --- a/extension/Tests/Unit/Core/Database/DatabaseFunction.php +++ b/extension/Tests/Unit/Core/Database/DatabaseFunction.php @@ -65,8 +65,17 @@ class DatabaseFunction extends AbstractDatabaseTest { public function testQIfEmpty() { $this->assertEquals('test', $this->db->sql('SELECT QIFEMPTY("test","-")', ROW_IMPLODE_ALL)); + $this->assertEquals('<', $this->db->sql('SELECT QIFEMPTY("<","-")', ROW_IMPLODE_ALL)); + + $this->assertEquals('-', $this->db->sql('SELECT QIFEMPTY(null,"-")', ROW_IMPLODE_ALL)); $this->assertEquals('-', $this->db->sql('SELECT QIFEMPTY("","-")', ROW_IMPLODE_ALL)); + $this->assertEquals('-', $this->db->sql('SELECT QIFEMPTY("0","-")', ROW_IMPLODE_ALL)); + $this->assertEquals('-', $this->db->sql('SELECT QIFEMPTY(0,"-")', ROW_IMPLODE_ALL)); + + $this->assertEquals('1', $this->db->sql('SELECT QIFEMPTY("1","-")', ROW_IMPLODE_ALL)); + $this->assertEquals('1', $this->db->sql('SELECT QIFEMPTY(1,"-")', ROW_IMPLODE_ALL)); + $this->assertEquals('-', $this->db->sql('SELECT QIFEMPTY("0000-00-00","-")', ROW_IMPLODE_ALL)); $this->assertEquals('-', $this->db->sql('SELECT QIFEMPTY("0000-00-00 00:00:00","-")', ROW_IMPLODE_ALL)); } -- GitLab