@Test public void testFunctionDefaultArgument() { sql("foo(1, DEFAULT, default, 'default', \"default\", 3)").expression() .ok("`FOO`(1, DEFAULT, DEFAULT, 'default', `default`, 3)"); sql("foo(DEFAULT)").expression() .ok("`FOO`(DEFAULT)"); sql("foo(x => 1, DEFAULT)").expression() .ok("`FOO`(`X` => 1, DEFAULT)"); sql("foo(y => DEFAULT, x => 1)").expression() .ok("`FOO`(`Y` => DEFAULT, `X` => 1)"); sql("foo(x => 1, y => DEFAULT)").expression() .ok("`FOO`(`X` => 1, `Y` => DEFAULT)"); sql("select sum(DISTINCT DEFAULT) from t group by x") .ok("SELECT SUM(DISTINCT DEFAULT)\n" + "FROM `T`\n" + "GROUP BY `X`"); checkExpFails("foo(x ^+^ DEFAULT)", "(?s).*Encountered \"\\+ DEFAULT\" at .*"); checkExpFails("foo(0, x ^+^ DEFAULT + y)", "(?s).*Encountered \"\\+ DEFAULT\" at .*"); checkExpFails("foo(0, DEFAULT ^+^ y)", "(?s).*Encountered \"\\+\" at .*"); }
@Test public void testFunctionDefaultArgument() { sql("foo(1, DEFAULT, default, 'default', \"default\", 3)").expression() .ok("`FOO`(1, DEFAULT, DEFAULT, 'default', `default`, 3)"); sql("foo(DEFAULT)").expression() .ok("`FOO`(DEFAULT)"); sql("foo(x => 1, DEFAULT)").expression() .ok("`FOO`(`X` => 1, DEFAULT)"); sql("foo(y => DEFAULT, x => 1)").expression() .ok("`FOO`(`Y` => DEFAULT, `X` => 1)"); sql("foo(x => 1, y => DEFAULT)").expression() .ok("`FOO`(`X` => 1, `Y` => DEFAULT)"); sql("select sum(DISTINCT DEFAULT) from t group by x") .ok("SELECT SUM(DISTINCT DEFAULT)\n" + "FROM `T`\n" + "GROUP BY `X`"); checkExpFails("foo(x ^+^ DEFAULT)", "(?s).*Encountered \"\\+ DEFAULT\" at .*"); checkExpFails("foo(0, x ^+^ DEFAULT + y)", "(?s).*Encountered \"\\+ DEFAULT\" at .*"); checkExpFails("foo(0, DEFAULT ^+^ y)", "(?s).*Encountered \"\\+\" at .*"); }