AST-based query fuzzer should randomly modify data types in CREATE TABLE queries, mostly by wrapping in Nullable, Array and LowCardinality.
{
    if (!ast)
    {
        return;
    }
    auto * impl = assert_cast<ASTExpressionList *>(ast);
    
    if (fuzz_rand() % 50 == 0 && impl->children.size() > 1)
    {
        
        
        impl->children.erase(impl->children.begin()
                             + fuzz_rand() % impl->children.size());
    }
    
    if (fuzz_rand() % 50 == 0)
    {
        auto pos = impl->children.empty()
                ? impl->children.begin()
                : impl->children.begin() + fuzz_rand() % impl->children.size();
        auto col = getRandomColumnLike();
        if (col)
            impl->children.insert(pos, col);
        else
            std::cerr << "No random column.\n";
    }
    
    
}
void QueryFuzzer::fuzzWindowFrame(ASTWindowDefinition & def)