• A
    Fix gcc10 build by reducing storage of the lambdas in executeQuery · 42dd661b
    Azat Khuzhin 提交于
    There is no need to capture query AST for the status_info_to_query_log,
    since callers already captured it anyway.
    
    gcc10 reports:
        ../src/Interpreters/executeQuery.cpp: In member function ‘void std::__1::function<_Rp(_ArgTypes ...)>::swap(std::__1::function<_Rp(_ArgTypes ...)>&) [with _Rp = void; _ArgTypes = {DB::IBlockInputStream*, DB::IBlockOutputStream*, DB::QueryPipeline*}]’:
        ../src/Interpreters/executeQuery.cpp:490:49: error: array subscript 35 is outside array bounds of ‘std::__1::aligned_storage<32, 16>::type [1]’ [-Werror=array-bounds]
          490 |             auto status_info_to_query_log = [ast](QueryLogElement &element, const QueryStatusInfo &info) mutable
              |                                                 ^
        In file included from ../contrib/libcxx/include/algorithm:644,
                         from ../contrib/libcxx/include/__string:57,
                         from ../contrib/libcxx/include/string_view:175,
                         from ../contrib/libcxx/include/string:504,
                         from ../src/Common/formatReadable.h:3,                                                                                                  from ../src/Interpreters/executeQuery.cpp:1:
        ../contrib/libcxx/include/functional:1877:60: note: while referencing ‘__tempbuf’
         1877 |             typename aligned_storage<sizeof(__buf_)>::type __tempbuf;
              |                                                            ^~~~~~~~~
    42dd661b
executeQuery.cpp 31.8 KB