-- Automatically generated by SQLQueryTestSuite -- Number of queries: 13 -- !query 0 SELECT ifnull(null, 'x'), ifnull('y', 'x'), ifnull(null, null) -- !query 0 schema struct -- !query 0 output x y NULL -- !query 1 SELECT nullif('x', 'x'), nullif('x', 'y') -- !query 1 schema struct -- !query 1 output NULL x -- !query 2 SELECT nvl(null, 'x'), nvl('y', 'x'), nvl(null, null) -- !query 2 schema struct -- !query 2 output x y NULL -- !query 3 SELECT nvl2(null, 'x', 'y'), nvl2('n', 'x', 'y'), nvl2(null, null, null) -- !query 3 schema struct -- !query 3 output y x NULL -- !query 4 SELECT ifnull(1, 2.1d), ifnull(null, 2.1d) -- !query 4 schema struct -- !query 4 output 1.0 2.1 -- !query 5 SELECT nullif(1, 2.1d), nullif(1, 1.0d) -- !query 5 schema struct -- !query 5 output 1 NULL -- !query 6 SELECT nvl(1, 2.1d), nvl(null, 2.1d) -- !query 6 schema struct -- !query 6 output 1.0 2.1 -- !query 7 SELECT nvl2(null, 1, 2.1d), nvl2('n', 1, 2.1d) -- !query 7 schema struct -- !query 7 output 2.1 1.0 -- !query 8 explain extended select ifnull(id, 'x'), nullif(id, 'x'), nvl(id, 'x'), nvl2(id, 'x', 'y') from range(2) -- !query 8 schema struct -- !query 8 output == Parsed Logical Plan == 'Project [unresolvedalias('ifnull('id, x), None), unresolvedalias('nullif('id, x), None), unresolvedalias('nvl('id, x), None), unresolvedalias('nvl2('id, x, y), None)] +- 'UnresolvedTableValuedFunction range, [2] == Analyzed Logical Plan == ifnull(`id`, 'x'): string, nullif(`id`, 'x'): bigint, nvl(`id`, 'x'): string, nvl2(`id`, 'x', 'y'): string Project [ifnull(id#xL, x) AS ifnull(`id`, 'x')#x, nullif(id#xL, x) AS nullif(`id`, 'x')#xL, nvl(id#xL, x) AS nvl(`id`, 'x')#x, nvl2(id#xL, x, y) AS nvl2(`id`, 'x', 'y')#x] +- Range (0, 2, step=1, splits=None) == Optimized Logical Plan == Project [coalesce(cast(id#xL as string), x) AS ifnull(`id`, 'x')#x, id#xL AS nullif(`id`, 'x')#xL, coalesce(cast(id#xL as string), x) AS nvl(`id`, 'x')#x, x AS nvl2(`id`, 'x', 'y')#x] +- Range (0, 2, step=1, splits=None) == Physical Plan == *Project [coalesce(cast(id#xL as string), x) AS ifnull(`id`, 'x')#x, id#xL AS nullif(`id`, 'x')#xL, coalesce(cast(id#xL as string), x) AS nvl(`id`, 'x')#x, x AS nvl2(`id`, 'x', 'y')#x] +- *Range (0, 2, step=1, splits=None) -- !query 9 SELECT boolean(1), tinyint(1), smallint(1), int(1), bigint(1) -- !query 9 schema struct -- !query 9 output true 1 1 1 1 -- !query 10 SELECT float(1), double(1), decimal(1) -- !query 10 schema struct -- !query 10 output 1.0 1.0 1 -- !query 11 SELECT date("2014-04-04"), timestamp(date("2014-04-04")) -- !query 11 schema struct -- !query 11 output 2014-04-04 2014-04-04 00:00:00 -- !query 12 SELECT string(1, 2) -- !query 12 schema struct<> -- !query 12 output org.apache.spark.sql.AnalysisException Function string accepts only one argument; line 1 pos 7