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