Skip to content

Toolchain Compability Improvement #2064

@SchrodingerZhu

Description

@SchrodingerZhu

catch-value #2095

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/Config/TOMLConfiguration.cpp: In member function ‘virtual bool DB::TOMLConfiguration::getRaw(const string&, std::string&) const’:
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/Config/TOMLConfiguration.cpp:34:17: error: catching polymorphic type ‘class std::out_of_range’ by value [-Werror=catch-value=]
   34 |     catch (std::out_of_range)
      |      

redundant-move #2100

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/IColumn.h:113:25: error: redundant move in return statement [-Werror=redundant-move]
  113 |         return std::move(res);
      |                ~~~~~~~~~^~~~~

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/Transaction/TiKVRecordFormat.h:110:21: error: redundant move in return statement [-Werror=redundant-move]
  110 |     return std::move(key);
      |            ~~~~~~~~~^~~~~

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/DictionaryBlockInputStream.h:365:35: error: redundant move in return statement [-Werror=redundant-move]
  365 |     return std::move(column_string);

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/DictionaryBlockInputStream.h:352:35: error: redundant move in return statement [-Werror=redundant-move]

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/DictionaryBlockInputStream.h:375:35: error: redundant move in return statement [-Werror=redundant-move]
  375 |     return std::move(column_vector);

Here, we have guaranteed copy-elision to help us, please remove those std::move in such cases

More:

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/CatBoostModel.cpp:390:2
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/CatBoostModel.cpp:390:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/CatBoostModel.cpp:238:37
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/RangeDictionaryBlockInputStream.h:132:35
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/RangeDictionaryBlockInputStream.h:121:35
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Dictionaries/RangeDictionaryBlockInputStream.h:111:35
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Interpreters/Set.cpp:373:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Interpreters/Set.cpp:332:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnAggregateFunction.cpp:351:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnAggregateFunction.cpp:161:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnAggregateFunction.cpp:139:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnAggregateFunction.cpp:68:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnVector.cpp:269:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnVector.cpp:242:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnVector.cpp:221:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnVector.cpp:122:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnDecimal.cpp:250:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnDecimal.cpp:148:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnDecimal.cpp:223:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnTuple.cpp:55:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:428:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:250:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:220:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:161:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:111:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:62:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnFixedString.cpp:280:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnFixedString.cpp:258:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnFixedString.cpp:230:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:630:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:541:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:496:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:92:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:64:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:250:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnString.cpp:27:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnDecimal.cpp:171:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnArray.cpp:428:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Columns/ColumnFixedString.cpp:270:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/Transaction/PartitionStreams.cpp:224:33
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/Transaction/PartitionStreams.cpp:239:21
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/Transaction/PartitionStreams.cpp:265:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/GeoUtils.h:531:28
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:146:33
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:169:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:208:33
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:235:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:276:33
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:301:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:439:33
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:473:25
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:512:33
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Functions/FunctionsHigherOrder.h:540:25

sign compare #2101

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/formatIPv6.cpp:130:51: error: comparison of integer expressions of different signedness: ‘int’ and ‘std::array<short unsigned int, 8>::size_type’ {aka ‘long unsigned int’} [-Werror=sign-compare]
  130 |     if (best.base != -1 && (best.base + best.len) == words.size())
      |                            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~

suggested changes

if (best.base != -1 && static_cast<size_t>(best.base + best.len) == words.size())

redefinition of numeric_limits #2102

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Core/Types.h:14:8: error: redefinition of ‘struct std::numeric_limits<__int128>’
   14 | struct numeric_limits<__int128_t>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~

suggested changes

#if !defined(__GLIBCXX_BITSIZE_INT_N_0) && defined(__SIZEOF_INT128__) &&  !__GNUC_PREREQ(8,0) 

libdivide #2062

see #2062

include missing #2106

limits

/home/schrodinger/Documents/tics-fedora/tics/contrib/prometheus-cpp/core/src/histogram.cc
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/IO/copyData.cpp
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/Config/cpptoml.h
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Encryption/AESCTRCipherStream.cpp

optional

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/LogSearch.h

mutex

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/ProfilingScopedRWLock.h

cassert

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Encryption/AESCTRCipherStream.cpp

conditional_variable

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/Page/PageStorage.h

dtpb #2096

We should also run generate_cpp.sh for dtpb

In file included from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/DeltaMerge/File/dtpb/cpp/dtpb/dmfile.pb.cc:4:
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/DeltaMerge/File/dtpb/cpp/dtpb/dmfile.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
   17 | #error This file was generated by an older version of protoc which is
      |  ^~~~~
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/DeltaMerge/File/dtpb/cpp/dtpb/dmfile.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
   18 | #error incompatible with your Protocol Buffer headers. Please
      |  ^~~~~
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/DeltaMerge/File/dtpb/cpp/dtpb/dmfile.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
   19 | #error regenerate this file with a newer version of protoc.
      |  ^~~~~
[ 10%] Building C object contrib/jemalloc-cmake/CMakeFiles/jemalloc.dir/__/jemalloc/src/prng.c.o
[ 10%] Built target dictionary_library_c
[ 10%] Building CXX object contrib/poco/Foundation/CMakeFiles/Foundation.dir/src/Bugcheck.cpp.o
In file included from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/DeltaMerge/File/dtpb/cpp/dtpb/dmfile.pb.cc:4:
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/DeltaMerge/File/dtpb/cpp/dtpb/dmfile.pb.h:28:10: fatal error: google/protobuf/inlined_string_field.h: No such file or directory
   28 | #include <google/protobuf/inlined_string_field.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

ignored-qualifiers #2107

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/ArrowColCodec.cpp:410:27: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
  410 |         auto enum_value = (const Int64)toLittleEndian(*(reinterpret_cast<const UInt32 *>(pos + offsets[i])));
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/MergeTree/MergeTreeBaseBlockInputStream.cpp:152:36: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
  152 |     size_t rows_to_read = std::max(static_cast<decltype(max_block_size_rows)>(1),

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/StringSearcher.h:89:17: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
   89 |             l = static_cast<const UInt8>(std::tolower(*needle));
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Common/StringSearcher.h:90:17: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
   90 |             u = static_cast<const UInt8>(std::toupper(*needle));
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Suggested Changes:

const auto enum_value = (Int64)toLittleEndian(*(reinterpret_cast<const UInt32 *>(pos + offsets[i])));
size_t rows_to_read = std::max(static_cast<std::remove_cv_t<decltype(max_block_size_rows)>>(1),
                                   std::min(max_block_size_rows, recommended_rows));
l = static_cast<UInt8>(std::toupper(*needle));
u = static_cast<UInt8>(std::toupper(*needle));

derivation from final #2096

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Storages/Transaction/RegionState.h:16:7: error: cannot derive from ‘final’ base ‘raft_serverpb::RegionLocalState’ in derived type ‘DB::RegionState’
   16 | class RegionState : private raft_serverpb::RegionLocalState, private boost::noncopyable
      |       ^~~~~~~~

Suggested changes:
https://github.com/SchrodingerZhu/tics/blob/389c3728823e5aaa8259be2170916a9dd80a09e4/dbms/src/Storages/Transaction/RegionState.h
https://github.com/SchrodingerZhu/tics/blob/389c3728823e5aaa8259be2170916a9dd80a09e4/dbms/src/Storages/Transaction/RegionState.cpp

deprecated copy #2105

/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/InterpreterDAG.cpp: In member function ‘virtual DB::BlockIO DB::InterpreterDAG::execute()’:
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/InterpreterDAG.cpp:97:12: error: implicitly-declared ‘DB::BlockIO::BlockIO(const DB::BlockIO&)’ is deprecated [-Werror=deprecated-copy]
   97 |     return res;
      |            ^~~
In file included from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/DAGDriver.h:3,
                 from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/DAGContext.h:11,
                 from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/DAGQuerySource.h:8,
                 from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/DAGBlockOutputStream.h:7,
                 from /home/schrodinger/Documents/tics-fedora/tics/dbms/src/Flash/Coprocessor/InterpreterDAG.cpp:4:
/home/schrodinger/Documents/tics-fedora/tics/dbms/src/DataStreams/BlockIO.h:41:15: note: because ‘DB::BlockIO’ has user-provided ‘DB::BlockIO& DB::BlockIO::operator=(const DB::BlockIO&)’
   41 |     BlockIO & operator= (const BlockIO & rhs)
      |               ^~~~~~~~
cc1plus: all warnings being treated as errors

Suggest changes:
add the following:

BlockIO() = default;
BlockIO(const BlockIO& that) = default;

libunwind linking problem

multiple definitions; currently workaround : -DUSE_INTERNAL_UNWIND_LIBRARY=OFF

boost

may have been fixed by @zanmato1984 . another workaround: -DUSE_INTERNAL_LIBRARY_LIBRARY=OFF

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions