```sql

create table A ( A date) Engine=MergeTree order by A TTL A+interval 1 year;

alter table A reset SETTING TTL;

show create table A;

CREATE TABLE default.A
(
    `A` Date
)
ENGINE = MergeTree
ORDER BY A
TTL A + toIntervalYear(1)
SETTINGS index_granularity = 8192
```
if (select_query->join())
        return std::nullopt;
    auto query_options = SelectQueryOptions(
        QueryProcessingStage::WithMergeableState,
        / 1,
        / true
    ).ignoreProjections().ignoreAlias();
    InterpreterSelectQuery select(
        query_ptr,
        query_context,
        query_options,
        / query_info.sets);
    const auto & analysis_result = select.getAnalysisResult();
    query_info.sets = select.getQueryAnalyzer()->getPreparedSets();
    bool can_use_aggregate_projection = true;
    /
    /
    if (analysis_result.join != nullptr || analysis_result.array_join != nullptr)
        can_use_aggregate_projection = false;
    /
    /
    /
    /
    /
    /
    /
    /
    std::vector<ProjectionCandidate> candidates;
    NameSet keys;
    std::unordered_map<std::string_view, size_t> key_name_pos_map;