В документации для таблицы типа Join есть перечень настроек, которые можно указать при создании, в частности join_any_take_last_row и persistent, при одновременном использовании возникает ошибка создания таблицы.

Ошибка Code: 115. DB::Exception: Unknown setting join_any_take_last_row: for storage Join. (UNKNOWN_SETTING) (version 21.11.4.14 (official build))
>create table internal.lookup (key UInt64, value UInt64) engine = Join(any, left, key)
settings join_any_take_last_row = 1, persistent = 0;

Значения параметров и их очередность не играет роли.

Однако если указать только один любой из этих двух параметр, то все работает.

Комбинации с другими настройками работают, пока не добавишь persistent
>create table internal.lookup (key UInt64, value UInt64) engine = Join(any, left, key)
settings
join_use_nulls = 0,
max_rows_in_join = 0,
max_bytes_in_join = 0,
join_overflow_mode = 'throw',
join_any_take_last_row = 0;

При добавлении persistent начинает ругаться на Unknown setting любого из указанных параметров.
PullingPipelineExecutor executor(pipeline);
        Block block;
        while (executor.pull(block))
        {
            new_data->addJoinedBlock(block, true);
            if (persistent)
                backup_stream.write(block);
        }
    }
    
    TableLockHolder holder = tryLockTimedWithContext(rwlock, RWLockImpl::Write, context);
    join = std::move(new_data);
    increment = 1;
    if (persistent)
    {
        backup_stream.flush();
        compressed_backup_buf.next();
        backup_buf->next();
        backup_buf->finalize();
        std::vector<std::string> files;
        disk->listFiles(path, files);
        for (const auto & file_name: files)
        {
            if (file_name.ends_with(".bin"))
                disk->removeFileIfExists(path + file_name);
        }
        disk->replaceFile(path + tmp_backup_file_name, path + std::to_string(increment) + ".bin");
    }
}
HashJoinPtr StorageJoin::getJoinLocked(std::shared_ptr<TableJoin> analyzed_join, ContextPtr context) const