```
SELECT x
FROM
(
    SELECT if((number % NULL) = -2147483648, NULL, if(toInt64(toInt64(now64(if((number % NULL) = -2147483648, NULL, if(toInt64(now64(toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))) = (number % NULL), nan, toFloat64(number))), toInt64(9223372036854775807, toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))), now64(toInt64(9223372036854775807, toInt64(0, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))) = (number % NULL), nan, toFloat64(number))) AS x
    FROM system.numbers
    LIMIT 3
)
ORDER BY x DESC NULLS LAST

Query id: d38af640-03bb-47ec-9ad0-144373bf6ac4


0 rows in set. Elapsed: 0.011 sec. 

Received exception from server (version 21.11.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Cannot capture 3 columns because function now64 has 0 arguments.: while executing 'FUNCTION now64(if(equals(modulo(number, NULL), -2147483648), NULL, if(equals(toInt64(now64(toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))), modulo(number, NULL)), nan, toFloat64(number))) :: 2, toInt64(9223372036854775807, toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))) :: 6, h3kRing(NULL, NULL) :: 3) -> now64(if(equals(modulo(number, NULL), -2147483648), NULL, if(equals(toInt64(now64(toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL))), modulo(number, NULL)), nan, toFloat64(number))), toInt64(9223372036854775807, toInt64(9223372036854775807, now64(h3kRing(NULL, NULL))), now64(h3kRing(NULL, NULL))), h3kRing(NULL, NULL)) Nullable(Nothing) : 4'. (LOGICAL_ERROR)
```
{
        if (arguments.size() > 1)
        {
            throw Exception("Arguments size of function " + getName() + " should be 0 or 1", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH);
        }
        if (arguments.size() == 1 && !isStringOrFixedString(arguments[0].type))
        {
            throw Exception(
                "Arguments of function " + getName() + " should be String or FixedString", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
        }
        if (arguments.size() == 1)
            return std::make_unique<FunctionBaseNow>(
                time(nullptr), std::make_shared<DataTypeDateTime>(extractTimeZoneNameFromFunctionArguments(arguments, 0, 0)));
        return std::make_unique<FunctionBaseNow>(time(nullptr), std::make_shared<DataTypeDateTime>());
    }
};
}
void registerFunctionNow(FunctionFactory & factory)
{
    factory.registerFunction<NowOverloadResolver>(FunctionFactory::CaseInsensitive);
}
}