>>> spark.sql("SELECT zeroifnull(NULL), typeof(zeroifnull(NULL))").show()
+----------------+------------------------+
|zeroifnull(NULL)|typeof(zeroifnull(NULL))|
+----------------+------------------------+
|               0|                     int|
+----------------+------------------------+

>>> spark.sql("SELECT zeroifnull(2), typeof(zeroifnull(2))").show()
+-------------+---------------------+
|zeroifnull(2)|typeof(zeroifnull(2))|
+-------------+---------------------+
|            2|                  int|
+-------------+---------------------+

>>> spark.sql("SELECT zeroifnull(CAST(NULL AS TINYINT)), typeof(zeroifnull(CAST(NULL AS TINYINT)))").show()
+---------------------------------+-----------------------------------------+
|zeroifnull(CAST(NULL AS TINYINT))|typeof(zeroifnull(CAST(NULL AS TINYINT)))|
+---------------------------------+-----------------------------------------+
|                                0|                                  tinyint|
+---------------------------------+-----------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(5 AS TINYINT)), typeof(zeroifnull(CAST(5 AS TINYINT)))").show()
+------------------------------+--------------------------------------+
|zeroifnull(CAST(5 AS TINYINT))|typeof(zeroifnull(CAST(5 AS TINYINT)))|
+------------------------------+--------------------------------------+
|                             5|                               tinyint|
+------------------------------+--------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(NULL AS SMALLINT)), typeof(zeroifnull(CAST(NULL AS SMALLINT)))").show()
+----------------------------------+------------------------------------------+
|zeroifnull(CAST(NULL AS SMALLINT))|typeof(zeroifnull(CAST(NULL AS SMALLINT)))|
+----------------------------------+------------------------------------------+
|                                 0|                                  smallint|
+----------------------------------+------------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(NULL AS BIGINT)), typeof(zeroifnull(CAST(NULL AS BIGINT)))").show()
+--------------------------------+----------------------------------------+
|zeroifnull(CAST(NULL AS BIGINT))|typeof(zeroifnull(CAST(NULL AS BIGINT)))|
+--------------------------------+----------------------------------------+
|                               0|                                  bigint|
+--------------------------------+----------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(NULL AS FLOAT)), typeof(zeroifnull(CAST(NULL AS FLOAT)))").show()
+-------------------------------+---------------------------------------+
|zeroifnull(CAST(NULL AS FLOAT))|typeof(zeroifnull(CAST(NULL AS FLOAT)))|
+-------------------------------+---------------------------------------+
|                            0.0|                                  float|
+-------------------------------+---------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(3.14 AS FLOAT)), typeof(zeroifnull(CAST(3.14 AS FLOAT)))").show()
+-------------------------------+---------------------------------------+
|zeroifnull(CAST(3.14 AS FLOAT))|typeof(zeroifnull(CAST(3.14 AS FLOAT)))|
+-------------------------------+---------------------------------------+
|                           3.14|                                  float|
+-------------------------------+---------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(NULL AS DOUBLE)), typeof(zeroifnull(CAST(NULL AS DOUBLE)))").show()
+--------------------------------+----------------------------------------+
|zeroifnull(CAST(NULL AS DOUBLE))|typeof(zeroifnull(CAST(NULL AS DOUBLE)))|
+--------------------------------+----------------------------------------+
|                             0.0|                                  double|
+--------------------------------+----------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(2.718 AS DOUBLE)), typeof(zeroifnull(CAST(2.718 AS DOUBLE)))").show()
+---------------------------------+-----------------------------------------+
|zeroifnull(CAST(2.718 AS DOUBLE))|typeof(zeroifnull(CAST(2.718 AS DOUBLE)))|
+---------------------------------+-----------------------------------------+
|                            2.718|                                   double|
+---------------------------------+-----------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(NULL AS DECIMAL(10,2))), typeof(zeroifnull(CAST(NULL AS DECIMAL(10,2))))").show()
+---------------------------------------+-----------------------------------------------+
|zeroifnull(CAST(NULL AS DECIMAL(10,2)))|typeof(zeroifnull(CAST(NULL AS DECIMAL(10,2))))|
+---------------------------------------+-----------------------------------------------+
|                                    0.0|                                         double|
+---------------------------------------+-----------------------------------------------+

>>> spark.sql("SELECT zeroifnull(CAST(42.99 AS DECIMAL(10,2))), typeof(zeroifnull(CAST(42.99 AS DECIMAL(10,2))))").show()
+----------------------------------------+------------------------------------------------+
|zeroifnull(CAST(42.99 AS DECIMAL(10,2)))|typeof(zeroifnull(CAST(42.99 AS DECIMAL(10,2))))|
+----------------------------------------+------------------------------------------------+
|                                   42.99|                                          double|
+----------------------------------------+------------------------------------------------+

>>> spark.sql("SELECT zeroifnull(0), typeof(zeroifnull(0))").show()
+-------------+---------------------+
|zeroifnull(0)|typeof(zeroifnull(0))|
+-------------+---------------------+
|            0|                  int|
+-------------+---------------------+

>>> spark.sql("SELECT zeroifnull(-5), typeof(zeroifnull(-5))").show()
+-----------------+-------------------------+
|zeroifnull((- 5))|typeof(zeroifnull((- 5)))|
+-----------------+-------------------------+
|               -5|                      int|
+-----------------+-------------------------+
