ref #9436
Currently EPHEMERAL column requires an explicit default value provided on CREATE TABLE - we can allow implicit default there

ASTPtr codec_expression;
    ASTPtr ttl_expression;
    if (!s_default.checkWithoutMoving(pos, expected)
        && !s_materialized.checkWithoutMoving(pos, expected)
        && !s_ephemeral.checkWithoutMoving(pos, expected)
        && !s_alias.checkWithoutMoving(pos, expected)
        && (require_type
            || (!s_comment.checkWithoutMoving(pos, expected)
                && !s_codec.checkWithoutMoving(pos, expected))))
    {
        if (check_type_keyword && !s_type.ignore(pos, expected))
            return false;
        if (!type_parser.parse(pos, type, expected))
            return false;
    }
    Pos pos_before_specifier = pos;
    if (s_default.ignore(pos, expected) || s_materialized.ignore(pos, expected) ||
        s_ephemeral.ignore(pos, expected) || s_alias.ignore(pos, expected))
    {
        default_specifier = Poco::toUpper(std::string{pos_before_specifier->begin, pos_before_specifier->end});
        
        if (!expr_parser.parse(pos, default_expression, expected))
            return false;
    }
    if (require_type && !type && !default_expression)
        return false; 
    if (type && allow_null_modifiers)
    {
        if (s_not.ignore(pos, expected))
        {