```
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)
```
{
public:
    explicit FunctionBaseNow(time_t time_, DataTypePtr return_type_) : time_value(time_), return_type(return_type_) {}
    String getName() const override { return "now"; }
    const DataTypes & getArgumentTypes() const override
    {
        static const DataTypes argument_types;
        return argument_types;
    }
    const DataTypePtr & getResultType() const override
    {
        return return_type;
    }
    ExecutableFunctionPtr prepare(const ColumnsWithTypeAndName &) const override
    {
        return std::make_unique<ExecutableFunctionNow>(time_value);
    }
    bool isDeterministic() const override { return false; }
    bool isDeterministicInScopeOfQuery() const override { return true; }
    bool isSuitableForShortCircuitArgumentsExecution(const DataTypesWithConstInfo & ) const override { return false; }
private:
    time_t time_value;
    DataTypePtr return_type;
};
class NowOverloadResolver : public IFunctionOverloadResolver