From 8262174283adaa47670760ba5db81075d4f1dae0 Mon Sep 17 00:00:00 2001 From: yingsu00 Date: Fri, 30 Aug 2024 18:16:57 -0700 Subject: [PATCH] Fix fmt build errors for MacOS Recently brew updated fmt version from 10.1 to 11.0. This caused build breaks. This commit contains 3 fixes: 1. Upgrade fmt to 11.0 from brew install. Remove the install_fmt call to avoid mismatching versions. 2. Error "'this' argument to member function 'format' has type 'const fmt::formatter', but function is not marked const". The new fmt v11 forces the const check. To fix this error, the "const" keyword was added to the `format()` function declarations. 3. Error "error: static assertion failed due to requirement 'formattable_char': Mixing character types is disallowed." The new fmt v11 added a check if the arguments of fmt::make_format_args() have mixing different character types (e.g., char vs wchar_t or std::string vs folly::Range). To fix this, we need to convert the folly::StringPiece to string. 4. Update folly to "v2024.08.26.00", this is needed because the previous version depends on fmt v10. To do this fast_float is added as one of MACOS_VELOX_DEPS. Note that if users see issues when building the new folly, they need to make sure the CMake cache is cleaned and clean the build directory first. --- CMakeLists.txt | 2 +- scripts/setup-macos.sh | 11 ++--------- velox/benchmarks/basic/LikeTpchBenchmark.cpp | 2 +- velox/common/base/RuntimeMetrics.h | 3 ++- velox/common/base/SpillStats.h | 5 ++--- velox/common/base/Status.h | 4 ++-- velox/common/caching/AsyncDataCache.h | 2 +- velox/common/compression/Compression.h | 2 +- velox/common/memory/MemoryAllocator.h | 2 +- velox/common/memory/MemoryArbitrator.h | 2 +- velox/common/memory/MemoryPool.h | 5 ++--- velox/connectors/fuzzer/FuzzerConnectorSplit.h | 4 ++-- velox/connectors/hive/HiveDataSink.h | 4 ++-- velox/connectors/hive/HiveDataSource.cpp | 1 + velox/connectors/tpch/TpchConnectorSplit.h | 2 +- velox/core/PlanFragment.h | 2 +- velox/core/PlanNode.h | 4 ++-- velox/dwio/common/Options.h | 5 ++--- velox/dwio/dwrf/common/FileMetadata.h | 2 +- velox/dwio/parquet/thrift/ParquetThriftTypes.h | 14 +++++++------- velox/exec/Driver.h | 2 +- velox/exec/HashBuild.h | 3 ++- velox/exec/HashTable.h | 2 +- velox/exec/Operator.h | 2 +- velox/exec/ProbeOperatorState.h | 5 ++--- velox/exec/Spill.h | 3 ++- velox/exec/Spiller.h | 3 ++- velox/exec/Task.h | 5 ++--- velox/exec/tests/TableScanTest.cpp | 4 +++- velox/exec/tests/utils/QueryAssertions.cpp | 2 +- velox/functions/lib/DateTimeFormatter.h | 4 ++-- velox/functions/lib/Re2Functions.h | 3 ++- velox/substrait/SubstraitToVeloxExpr.h | 11 +++++------ velox/type/Timestamp.h | 4 ++-- velox/type/fbhive/HiveTypeParser.cpp | 6 ++++-- velox/vector/VectorSaver.cpp | 2 +- 36 files changed, 68 insertions(+), 71 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f7cbc92f250..18c3f51eede4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -411,7 +411,7 @@ if(${VELOX_ENABLE_DUCKDB}) endif() set_source(fmt) -resolve_dependency(fmt 9.0.0) +resolve_dependency(fmt) if(${VELOX_BUILD_MINIMAL_WITH_DWIO} OR ${VELOX_ENABLE_HIVE_CONNECTOR}) # DWIO needs all sorts of stream compression libraries. diff --git a/scripts/setup-macos.sh b/scripts/setup-macos.sh index 450324e8b19a..a22248a8283c 100755 --- a/scripts/setup-macos.sh +++ b/scripts/setup-macos.sh @@ -35,10 +35,9 @@ PYTHON_VENV=${PYHTON_VENV:-"${SCRIPTDIR}/../.venv"} NPROC=$(getconf _NPROCESSORS_ONLN) DEPENDENCY_DIR=${DEPENDENCY_DIR:-$(pwd)} -MACOS_VELOX_DEPS="bison boost double-conversion flex fmt gflags glog googletest icu4c libevent libsodium lz4 lzo openssl protobuf@21 simdjson snappy thrift xz xsimd zstd" +MACOS_VELOX_DEPS="bison boost double-conversion fast_float flex fmt gflags glog googletest icu4c libevent libsodium lz4 lzo openssl protobuf@21 simdjson snappy thrift xz xsimd zstd" MACOS_BUILD_DEPS="ninja cmake ccache" -FB_OS_VERSION="v2024.05.20.00" -FMT_VERSION="10.1.1" +FB_OS_VERSION="v2024.08.26.00" function update_brew { DEFAULT_BREW_PATH=/usr/local/bin/brew @@ -86,11 +85,6 @@ function install_velox_deps_from_brew { done } -function install_fmt { - wget_and_untar https://github.com/fmtlib/fmt/archive/${FMT_VERSION}.tar.gz fmt - cmake_install fmt -DFMT_TEST=OFF -} - function install_folly { wget_and_untar https://github.com/facebook/folly/archive/refs/tags/${FB_OS_VERSION}.tar.gz folly cmake_install folly -DBUILD_TESTS=OFF -DFOLLY_HAVE_INT128_T=ON @@ -136,7 +130,6 @@ function install_velox_deps { run_and_time install_ranges_v3 run_and_time install_double_conversion run_and_time install_re2 - run_and_time install_fmt run_and_time install_folly run_and_time install_fizz run_and_time install_wangle diff --git a/velox/benchmarks/basic/LikeTpchBenchmark.cpp b/velox/benchmarks/basic/LikeTpchBenchmark.cpp index dfd8f03aed10..29cde56e51e3 100644 --- a/velox/benchmarks/basic/LikeTpchBenchmark.cpp +++ b/velox/benchmarks/basic/LikeTpchBenchmark.cpp @@ -48,7 +48,7 @@ enum class TpchBenchmarkCase { template <> struct fmt::formatter : fmt::formatter { - auto format(const TpchBenchmarkCase& s, format_context& ctx) { + auto format(const TpchBenchmarkCase& s, format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/common/base/RuntimeMetrics.h b/velox/common/base/RuntimeMetrics.h index a14478c79673..d5d814a31168 100644 --- a/velox/common/base/RuntimeMetrics.h +++ b/velox/common/base/RuntimeMetrics.h @@ -113,7 +113,8 @@ class RuntimeStatWriterScopeGuard { } // namespace facebook::velox template <> struct fmt::formatter : formatter { - auto format(facebook::velox::RuntimeCounter::Unit s, format_context& ctx) { + auto format(facebook::velox::RuntimeCounter::Unit s, format_context& ctx) + const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/common/base/SpillStats.h b/velox/common/base/SpillStats.h index c6bbe735b513..c7c2d066a960 100644 --- a/velox/common/base/SpillStats.h +++ b/velox/common/base/SpillStats.h @@ -166,9 +166,8 @@ SpillStats globalSpillStats(); template <> struct fmt::formatter : fmt::formatter { - auto format( - const facebook::velox::common::SpillStats& s, - format_context& ctx) { + auto format(const facebook::velox::common::SpillStats& s, format_context& ctx) + const { return formatter::format(s.toString(), ctx); } }; diff --git a/velox/common/base/Status.h b/velox/common/base/Status.h index 1f00b4699a68..90e99dc2eea0 100644 --- a/velox/common/base/Status.h +++ b/velox/common/base/Status.h @@ -519,7 +519,7 @@ using Expected = folly::Expected; template <> struct fmt::formatter : fmt::formatter { - auto format(const facebook::velox::Status& s, format_context& ctx) { + auto format(const facebook::velox::Status& s, format_context& ctx) const { return formatter::format(s.toString(), ctx); } }; @@ -527,7 +527,7 @@ struct fmt::formatter : fmt::formatter { template <> struct fmt::formatter : fmt::formatter { - auto format(facebook::velox::StatusCode code, format_context& ctx) { + auto format(facebook::velox::StatusCode code, format_context& ctx) const { return formatter::format( facebook::velox::toString(code), ctx); } diff --git a/velox/common/caching/AsyncDataCache.h b/velox/common/caching/AsyncDataCache.h index f837fcebc1f1..91450ea4e03f 100644 --- a/velox/common/caching/AsyncDataCache.h +++ b/velox/common/caching/AsyncDataCache.h @@ -978,7 +978,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::cache::CoalescedLoad::State s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/common/compression/Compression.h b/velox/common/compression/Compression.h index 82658976571c..70f804f2e861 100644 --- a/velox/common/compression/Compression.h +++ b/velox/common/compression/Compression.h @@ -53,7 +53,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::common::CompressionKind& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::common::compressionKindToString(s), ctx); } diff --git a/velox/common/memory/MemoryAllocator.h b/velox/common/memory/MemoryAllocator.h index f8b2d4dfd21f..4a7ac706c715 100644 --- a/velox/common/memory/MemoryAllocator.h +++ b/velox/common/memory/MemoryAllocator.h @@ -518,7 +518,7 @@ struct fmt::formatter : fmt::formatter { auto format( facebook::velox::memory::MemoryAllocator::InjectedFailure s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/common/memory/MemoryArbitrator.h b/velox/common/memory/MemoryArbitrator.h index e5b9dc35dc58..87274453c9ae 100644 --- a/velox/common/memory/MemoryArbitrator.h +++ b/velox/common/memory/MemoryArbitrator.h @@ -478,7 +478,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::memory::MemoryArbitrator::Stats s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(s.toString(), ctx); } }; diff --git a/velox/common/memory/MemoryPool.h b/velox/common/memory/MemoryPool.h index 4110e25626d8..13514cf9afa0 100644 --- a/velox/common/memory/MemoryPool.h +++ b/velox/common/memory/MemoryPool.h @@ -1107,9 +1107,8 @@ class StlAllocator { template <> struct fmt::formatter : formatter { - auto format( - facebook::velox::memory::MemoryPool::Kind s, - format_context& ctx) { + auto format(facebook::velox::memory::MemoryPool::Kind s, format_context& ctx) + const { return formatter::format( facebook::velox::memory::MemoryPool::kindString(s), ctx); } diff --git a/velox/connectors/fuzzer/FuzzerConnectorSplit.h b/velox/connectors/fuzzer/FuzzerConnectorSplit.h index 1c4b6fef87cc..11080aa4382e 100644 --- a/velox/connectors/fuzzer/FuzzerConnectorSplit.h +++ b/velox/connectors/fuzzer/FuzzerConnectorSplit.h @@ -34,7 +34,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::connector::fuzzer::FuzzerConnectorSplit s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(s.toString(), ctx); } }; @@ -46,7 +46,7 @@ struct fmt::formatter< auto format( std::shared_ptr s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(s->toString(), ctx); } }; diff --git a/velox/connectors/hive/HiveDataSink.h b/velox/connectors/hive/HiveDataSink.h index a916316bda45..57b8ca3a83e5 100644 --- a/velox/connectors/hive/HiveDataSink.h +++ b/velox/connectors/hive/HiveDataSink.h @@ -617,7 +617,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::connector::hive::HiveDataSink::State s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; @@ -628,7 +628,7 @@ struct fmt::formatter< : formatter { auto format( facebook::velox::connector::hive::LocationHandle::TableType s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/connectors/hive/HiveDataSource.cpp b/velox/connectors/hive/HiveDataSource.cpp index 8a4accc91b57..d564177061ea 100644 --- a/velox/connectors/hive/HiveDataSource.cpp +++ b/velox/connectors/hive/HiveDataSource.cpp @@ -16,6 +16,7 @@ #include "velox/connectors/hive/HiveDataSource.h" +#include #include #include diff --git a/velox/connectors/tpch/TpchConnectorSplit.h b/velox/connectors/tpch/TpchConnectorSplit.h index 029d07a84135..47588ab6d44a 100644 --- a/velox/connectors/tpch/TpchConnectorSplit.h +++ b/velox/connectors/tpch/TpchConnectorSplit.h @@ -58,7 +58,7 @@ struct fmt::formatter< : formatter { auto format( std::shared_ptr s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(s->toString(), ctx); } }; diff --git a/velox/core/PlanFragment.h b/velox/core/PlanFragment.h index fd0f033b7093..365234495b3c 100644 --- a/velox/core/PlanFragment.h +++ b/velox/core/PlanFragment.h @@ -89,7 +89,7 @@ struct fmt::formatter : formatter { auto format( const facebook::velox::core::ExecutionStrategy& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/core/PlanNode.h b/velox/core/PlanNode.h index 4013d7a2dee7..f3ff68e802fb 100644 --- a/velox/core/PlanNode.h +++ b/velox/core/PlanNode.h @@ -2402,7 +2402,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::core::PartitionedOutputNode::Kind s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::core::PartitionedOutputNode::kindString(s), ctx); } @@ -2410,7 +2410,7 @@ struct fmt::formatter template <> struct fmt::formatter : formatter { - auto format(facebook::velox::core::JoinType s, format_context& ctx) { + auto format(facebook::velox::core::JoinType s, format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/dwio/common/Options.h b/velox/dwio/common/Options.h index 31a6fe0ccc91..a7ffa20cee59 100644 --- a/velox/dwio/common/Options.h +++ b/velox/dwio/common/Options.h @@ -633,9 +633,8 @@ template <> struct fmt::formatter : fmt::formatter { template - auto format( - facebook::velox::dwio::common::FileFormat fmt, - FormatContext& ctx) { + auto format(facebook::velox::dwio::common::FileFormat fmt, FormatContext& ctx) + const { return formatter::format( facebook::velox::dwio::common::toString(fmt), ctx); } diff --git a/velox/dwio/dwrf/common/FileMetadata.h b/velox/dwio/dwrf/common/FileMetadata.h index 34e531a6b29d..cc352612013e 100644 --- a/velox/dwio/dwrf/common/FileMetadata.h +++ b/velox/dwio/dwrf/common/FileMetadata.h @@ -832,7 +832,7 @@ class FooterWrapper : public ProtoWrapperBase { template <> struct fmt::formatter : formatter { - auto format(facebook::velox::dwrf::DwrfFormat s, format_context& ctx) { + auto format(facebook::velox::dwrf::DwrfFormat s, format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/dwio/parquet/thrift/ParquetThriftTypes.h b/velox/dwio/parquet/thrift/ParquetThriftTypes.h index 2bb89ca530c8..0fd63e83cc0e 100644 --- a/velox/dwio/parquet/thrift/ParquetThriftTypes.h +++ b/velox/dwio/parquet/thrift/ParquetThriftTypes.h @@ -3749,7 +3749,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::parquet::thrift::Type::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } @@ -3760,7 +3760,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::parquet::thrift::CompressionCodec::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } @@ -3771,7 +3771,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::parquet::thrift::ConvertedType::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } @@ -3783,7 +3783,7 @@ struct fmt::formatter< : fmt::formatter { auto format( const facebook::velox::parquet::thrift::FieldRepetitionType::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } @@ -3794,7 +3794,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::parquet::thrift::Encoding::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } @@ -3805,7 +3805,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::parquet::thrift::PageType::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } @@ -3816,7 +3816,7 @@ struct fmt::formatter : fmt::formatter { auto format( const facebook::velox::parquet::thrift::BoundaryOrder::type& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::parquet::thrift::to_string(s), ctx); } diff --git a/velox/exec/Driver.h b/velox/exec/Driver.h index 7ceb696aab45..31d92be44703 100644 --- a/velox/exec/Driver.h +++ b/velox/exec/Driver.h @@ -721,7 +721,7 @@ DriverThreadContext* driverThreadContext(); template <> struct fmt::formatter : formatter { - auto format(facebook::velox::exec::StopReason s, format_context& ctx) { + auto format(facebook::velox::exec::StopReason s, format_context& ctx) const { return formatter::format( facebook::velox::exec::stopReasonString(s), ctx); } diff --git a/velox/exec/HashBuild.h b/velox/exec/HashBuild.h index 562e57a73e0c..1af74839301e 100644 --- a/velox/exec/HashBuild.h +++ b/velox/exec/HashBuild.h @@ -317,7 +317,8 @@ inline std::ostream& operator<<(std::ostream& os, HashBuild::State state) { template <> struct fmt::formatter : formatter { - auto format(facebook::velox::exec::HashBuild::State s, format_context& ctx) { + auto format(facebook::velox::exec::HashBuild::State s, format_context& ctx) + const { return formatter::format( facebook::velox::exec::HashBuild::stateName(s), ctx); } diff --git a/velox/exec/HashTable.h b/velox/exec/HashTable.h index 4d6293b82b6c..eea36c68117b 100644 --- a/velox/exec/HashTable.h +++ b/velox/exec/HashTable.h @@ -1068,7 +1068,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::exec::BaseHashTable::HashMode s, - format_context& ctx) { + format_context& ctx) const { return formatter::format( facebook::velox::exec::BaseHashTable::modeString(s), ctx); } diff --git a/velox/exec/Operator.h b/velox/exec/Operator.h index 1ead59019a73..3917e9bf8552 100644 --- a/velox/exec/Operator.h +++ b/velox/exec/Operator.h @@ -829,7 +829,7 @@ class SourceOperator : public Operator { template <> struct fmt::formatter : formatter { - auto format(std::thread::id s, format_context& ctx) { + auto format(std::thread::id s, format_context& ctx) const { std::ostringstream oss; oss << s; return formatter::format(oss.str(), ctx); diff --git a/velox/exec/ProbeOperatorState.h b/velox/exec/ProbeOperatorState.h index a7b53b48857b..f5434515318b 100644 --- a/velox/exec/ProbeOperatorState.h +++ b/velox/exec/ProbeOperatorState.h @@ -59,9 +59,8 @@ std::string probeOperatorStateName(ProbeOperatorState state); template <> struct fmt::formatter : formatter { - auto format( - facebook::velox::exec::ProbeOperatorState s, - format_context& ctx) { + auto format(facebook::velox::exec::ProbeOperatorState s, format_context& ctx) + const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/exec/Spill.h b/velox/exec/Spill.h index 1ccd21b7536a..e51c052410b9 100644 --- a/velox/exec/Spill.h +++ b/velox/exec/Spill.h @@ -500,7 +500,8 @@ struct hash<::facebook::velox::exec::SpillPartitionId> { template <> struct fmt::formatter : formatter { - auto format(facebook::velox::exec::SpillPartitionId s, format_context& ctx) { + auto format(facebook::velox::exec::SpillPartitionId s, format_context& ctx) + const { return formatter::format(s.toString(), ctx); } }; diff --git a/velox/exec/Spiller.h b/velox/exec/Spiller.h index a952738f4d36..ab711840c42e 100644 --- a/velox/exec/Spiller.h +++ b/velox/exec/Spiller.h @@ -347,7 +347,8 @@ class Spiller { template <> struct fmt::formatter : formatter { - auto format(facebook::velox::exec::Spiller::Type s, format_context& ctx) { + auto format(facebook::velox::exec::Spiller::Type s, format_context& ctx) + const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/exec/Task.h b/velox/exec/Task.h index 433df9a0451e..76fe838cf61f 100644 --- a/velox/exec/Task.h +++ b/velox/exec/Task.h @@ -1211,9 +1211,8 @@ std::ostream& operator<<(std::ostream& out, Task::ExecutionMode mode); template <> struct fmt::formatter : formatter { - auto format( - facebook::velox::exec::Task::ExecutionMode m, - format_context& ctx) { + auto format(facebook::velox::exec::Task::ExecutionMode m, format_context& ctx) + const { return formatter::format( facebook::velox::exec::executionModeString(m), ctx); } diff --git a/velox/exec/tests/TableScanTest.cpp b/velox/exec/tests/TableScanTest.cpp index 145ede14480d..107772423ffe 100644 --- a/velox/exec/tests/TableScanTest.cpp +++ b/velox/exec/tests/TableScanTest.cpp @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "velox/exec/TableScan.h" +#include #include #include #include #include + #include "folly/experimental/EventCount.h" #include "velox/common/base/Fs.h" #include "velox/common/base/tests/GTestUtils.h" @@ -34,6 +35,7 @@ #include "velox/exec/Exchange.h" #include "velox/exec/OutputBufferManager.h" #include "velox/exec/PlanNodeStats.h" +#include "velox/exec/TableScan.h" #include "velox/exec/tests/utils/AssertQueryBuilder.h" #include "velox/exec/tests/utils/Cursor.h" #include "velox/exec/tests/utils/HiveConnectorTestBase.h" diff --git a/velox/exec/tests/utils/QueryAssertions.cpp b/velox/exec/tests/utils/QueryAssertions.cpp index 581ba4b31908..eb2da2276ea2 100644 --- a/velox/exec/tests/utils/QueryAssertions.cpp +++ b/velox/exec/tests/utils/QueryAssertions.cpp @@ -1597,7 +1597,7 @@ std::unordered_map toOperatorStats( template <> struct fmt::formatter<::duckdb::LogicalTypeId> : formatter { - auto format(::duckdb::LogicalTypeId s, format_context& ctx) { + auto format(::duckdb::LogicalTypeId s, format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/functions/lib/DateTimeFormatter.h b/velox/functions/lib/DateTimeFormatter.h index 06165c5dbc48..ef3c98255404 100644 --- a/velox/functions/lib/DateTimeFormatter.h +++ b/velox/functions/lib/DateTimeFormatter.h @@ -216,7 +216,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::functions::DateTimeFormatterType s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; @@ -226,7 +226,7 @@ struct fmt::formatter : formatter { auto format( facebook::velox::functions::DateTimeFormatSpecifier s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/functions/lib/Re2Functions.h b/velox/functions/lib/Re2Functions.h index 5e7267c7ea83..da65caefdc04 100644 --- a/velox/functions/lib/Re2Functions.h +++ b/velox/functions/lib/Re2Functions.h @@ -418,7 +418,8 @@ regexpReplaceWithLambdaSignatures(); template <> struct fmt::formatter : formatter { - auto format(facebook::velox::functions::PatternKind s, format_context& ctx) { + auto format(facebook::velox::functions::PatternKind s, format_context& ctx) + const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/substrait/SubstraitToVeloxExpr.h b/velox/substrait/SubstraitToVeloxExpr.h index 2dc85c31a28e..0c53d82d4553 100644 --- a/velox/substrait/SubstraitToVeloxExpr.h +++ b/velox/substrait/SubstraitToVeloxExpr.h @@ -85,9 +85,8 @@ class SubstraitVeloxExprConverter { template <> struct fmt::formatter : formatter { - auto format( - const substrait::Expression::RexTypeCase& s, - format_context& ctx) { + auto format(const substrait::Expression::RexTypeCase& s, format_context& ctx) + const { return formatter::format(static_cast(s), ctx); } }; @@ -97,7 +96,7 @@ struct fmt::formatter : formatter { auto format( const substrait::Expression::Cast::FailureBehavior& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; @@ -106,7 +105,7 @@ struct fmt::formatter : formatter { auto format( const substrait::Expression_FieldReference::ReferenceTypeCase& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; @@ -116,7 +115,7 @@ struct fmt::formatter : formatter { auto format( const substrait::Expression_Literal::LiteralTypeCase& s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/type/Timestamp.h b/velox/type/Timestamp.h index 44117bc7886b..f3b4c4cd1340 100644 --- a/velox/type/Timestamp.h +++ b/velox/type/Timestamp.h @@ -505,7 +505,7 @@ struct formatter : formatter { auto format( facebook::velox::TimestampToStringOptions::Precision s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; @@ -514,7 +514,7 @@ struct formatter : formatter { auto format( facebook::velox::TimestampToStringOptions::Mode s, - format_context& ctx) { + format_context& ctx) const { return formatter::format(static_cast(s), ctx); } }; diff --git a/velox/type/fbhive/HiveTypeParser.cpp b/velox/type/fbhive/HiveTypeParser.cpp index 331aacc854ba..500c718093f8 100644 --- a/velox/type/fbhive/HiveTypeParser.cpp +++ b/velox/type/fbhive/HiveTypeParser.cpp @@ -80,7 +80,7 @@ std::shared_ptr HiveTypeParser::parse(const std::string& ser) { "Input remaining after parsing the Hive type \"{}\"\n" "Remaining: \"{}\"", ser, - remaining_); + remaining_.toString()); return result.type; } @@ -142,7 +142,9 @@ Result HiveTypeParser::parseType() { } } else { VELOX_FAIL(fmt::format( - "Unexpected token {} at {}", nt.value, remaining_.toString())); + "Unexpected token {} at {}", + nt.value.toString(), + remaining_.toString())); } } diff --git a/velox/vector/VectorSaver.cpp b/velox/vector/VectorSaver.cpp index 48fe5bad26e0..e419d0586f12 100644 --- a/velox/vector/VectorSaver.cpp +++ b/velox/vector/VectorSaver.cpp @@ -778,7 +778,7 @@ SelectivityVector restoreSelectivityVector(std::istream& in) { template <> struct fmt::formatter : formatter { - auto format(facebook::velox::Encoding s, format_context& ctx) { + auto format(facebook::velox::Encoding s, format_context& ctx) const { return formatter::format(static_cast(s), ctx); } };