velox: Build errors: error: unknown type name 'StringPiece'
Problem description
Seeing build errors on latest main. CC: @pedroerp @majetideepak @kgpai
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-build/src/planner/binder/tableref/ub_duckdb_bind_tableref.cpp:8:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/planner/binder/tableref/bind_table_function.cpp:22:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/function/table/read_csv.hpp:13:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp:18:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/common/multi_file_reader_options.hpp:12:
/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/common/hive_partitioning.hpp:28:75: error: use of undeclared identifier 'duckdb_re2'; did you mean 'duckdb_hll'?
DUCKDB_API static std::map<string, string> Parse(const string &filename, duckdb_re2::RE2 ®ex);
^~~~~~~~~~
duckdb_hll
/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/common/types/hyperloglog.hpp:15:11: note: 'duckdb_hll' declared here
namespace duckdb_hll {
^
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-build/src/planner/binder/tableref/ub_duckdb_bind_tableref.cpp:8:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/planner/binder/tableref/bind_table_function.cpp:22:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/function/table/read_csv.hpp:13:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/execution/operator/persistent/csv_reader_options.hpp:18:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/common/multi_file_reader_options.hpp:12:
/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include/duckdb/common/hive_partitioning.hpp:28:75: error: no type named 'RE2' in namespace 'duckdb_hll'; did you mean simply 'RE2'?
DUCKDB_API static std::map<string, string> Parse(const string &filename, duckdb_re2::RE2 ®ex);
^~~~~~~~~~~~~~~
RE2
/usr/local/include/re2/re2.h:1011:12: note: 'RE2' declared here
using re2::RE2;
^
2 errors generated.
System information
Velox System Info v0.0.2 Commit: 6d4b6ebecc16415c071008b7655a7c8abe6a7ddc CMake Version: 3.26.4 System: Darwin-23.1.0 Arch: x86_64 C++ Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ C++ Compiler Version: 15.0.0.15000040 C Compiler: /Library/Developer/CommandLineTools/usr/bin/cc C Compiler Version: 15.0.0.15000040 CMake Prefix Path: /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr;/usr/local;/usr;/;/usr/local/Cellar/cmake/3.26.4;/usr/local;/usr/X11R6;/usr/pkg;/opt;/sw;/opt/local
Conda Env
# packages in environment at /usr/local/Caskroom/miniconda/base:
#
# Name Version Build Channel
brotlipy 0.7.0 py310hca72f7f_1002
bzip2 1.0.8 h1de35cc_0
ca-certificates 2023.01.10 hecd8cb5_0
certifi 2022.12.7 py310hecd8cb5_0
cffi 1.15.1 py310h6c40b1e_3
charset-normalizer 2.0.4 pyhd3eb1b0_0
chevron 0.14.0 pypi_0 pypi
conda 23.1.0 py310hecd8cb5_0
conda-content-trust 0.1.3 py310hecd8cb5_0
conda-package-handling 2.0.2 py310hecd8cb5_0
conda-package-streaming 0.7.0 py310hecd8cb5_0
cryptography 38.0.4 py310hf6deb26_0
idna 3.4 py310hecd8cb5_0
libffi 3.4.2 hecd8cb5_6
ncurses 6.4 hcec6c5f_0
openssl 1.1.1s hca72f7f_0
pip 22.3.1 py310hecd8cb5_0
pluggy 1.0.0 py310hecd8cb5_1
pycosat 0.6.4 py310hca72f7f_0
pycparser 2.21 pyhd3eb1b0_0
pyopenssl 22.0.0 pyhd3eb1b0_0
pysocks 1.7.1 py310hecd8cb5_0
python 3.10.9 h218abb5_0
python.app 3 py310hca72f7f_0
pyyaml 6.0 pypi_0 pypi
readline 8.2 hca72f7f_0
regex 2022.10.31 pypi_0 pypi
requests 2.28.1 py310hecd8cb5_0
ruamel.yaml 0.17.21 py310hca72f7f_0
ruamel.yaml.clib 0.2.6 py310hca72f7f_1
setuptools 65.6.3 py310hecd8cb5_0
six 1.16.0 pyhd3eb1b0_1
sqlite 3.40.1 h880c91c_0
tk 8.6.12 h5d9f67b_0
toolz 0.12.0 py310hecd8cb5_0
tqdm 4.64.1 py310hecd8cb5_0
tzdata 2022g h04d1e81_0
urllib3 1.26.14 py310hecd8cb5_0
wheel 0.37.1 pyhd3eb1b0_0
xz 5.2.10 h6c40b1e_1
zlib 1.2.13 h4dc903c_0
zstandard 0.18.0 py310hca72f7f_0
CMake log
-- Build files have been written to: /Users/mbasmanova/cpp/velox-1/_build/debug
/Library/Developer/CommandLineTools/usr/bin/make build BUILD_DIR=debug -j 16
cmake --build _build/debug -j 16
[7/1484] Building CXX object _deps/duckdb-build/src/optimizer/rule/CMakeFiles/duckdb_optimizer_rules.dir/ub_duckdb_optimizer_rules.cpp.o
FAILED: _deps/duckdb-build/src/optimizer/rule/CMakeFiles/duckdb_optimizer_rules.dir/ub_duckdb_optimizer_rules.cpp.o
ccache /Library/Developer/CommandLineTools/usr/bin/c++ -DDUCKDB -DDUCKDB_MAIN_LIBRARY -DFOLLY_HAVE_INT128_T=1 -I/usr/local/include -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/include -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/fsst -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/fmt/include -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/hyperloglog -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/fastpforlib -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/fast_float -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/re2 -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/miniz -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/utf8proc/include -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/miniparquet -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/concurrentqueue -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/pcg -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/tdigest -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/mbedtls/include -I/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/jaro_winkler -mavx2 -mfma -mavx -mf16c -mlzcnt -std=c++17 -mbmi2 -fvisibility=hidden -fvisibility-inlines-hidden -D USE_VELOX_COMMON_BASE -D HAS_UNCAUGHT_EXCEPTIONS -Wall -Wextra -Wno-unused -Wno-unused-parameter -Wno-sign-compare -Wno-ignored-qualifiers -Wno-range-loop-analysis -Wno-mismatched-tags -Wno-nullability-completeness -g -g -O0 -DDEBUG -Wall -Werror -Wunused -Werror=vla -Wnarrowing -pedantic -Wextra -Wno-unused-parameter -Wno-redundant-move -Wexit-time-destructors -std=c++11 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk -fPIC -fcolor-diagnostics -MD -MT _deps/duckdb-build/src/optimizer/rule/CMakeFiles/duckdb_optimizer_rules.dir/ub_duckdb_optimizer_rules.cpp.o -MF _deps/duckdb-build/src/optimizer/rule/CMakeFiles/duckdb_optimizer_rules.dir/ub_duckdb_optimizer_rules.cpp.o.d -o _deps/duckdb-build/src/optimizer/rule/CMakeFiles/duckdb_optimizer_rules.dir/ub_duckdb_optimizer_rules.cpp.o -c /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-build/src/optimizer/rule/ub_duckdb_optimizer_rules.cpp
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-build/src/optimizer/rule/ub_duckdb_optimizer_rules.cpp:16:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/optimizer/rule/regex_optimizations.cpp:8:
/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/re2/re2/regexp.h:196:28: error: unknown type name 'StringPiece'; did you mean 're2::StringPiece'?
void set_error_arg(const StringPiece& error_arg) { error_arg_ = error_arg; }
^~~~~~~~~~~
re2::StringPiece
/usr/local/include/re2/stringpiece.h:39:7: note: 're2::StringPiece' declared here
class StringPiece {
^
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-build/src/optimizer/rule/ub_duckdb_optimizer_rules.cpp:16:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/optimizer/rule/regex_optimizations.cpp:8:
/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/re2/re2/regexp.h:199:9: error: unknown type name 'StringPiece'; did you mean 're2::StringPiece'?
const StringPiece& error_arg() const { return error_arg_; }
^~~~~~~~~~~
re2::StringPiece
/usr/local/include/re2/stringpiece.h:39:7: note: 're2::StringPiece' declared here
class StringPiece {
^
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-build/src/optimizer/rule/ub_duckdb_optimizer_rules.cpp:16:
In file included from /Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/src/optimizer/rule/regex_optimizations.cpp:8:
/Users/mbasmanova/cpp/velox-1/_build/debug/_deps/duckdb-src/third_party/re2/re2/regexp.h:215:3: error: unknown type name 'StringPiece'; did you mean 're2::StringPiece'?
StringPiece error_arg_; // Piece of regexp containing syntax error.
^~~~~~~~~~~
re2::StringPiece
/usr/local/include/re2/stringpiece.h:39:7: note: 're2::StringPiece' declared here
class StringPiece {
^
About this issue
- Original URL
- State: open
- Created 7 months ago
- Comments: 44 (28 by maintainers)
I followed Deepakās advice to build and install newer folly. That solved the problem.
https://github.com/facebookincubator/velox/issues/7235#issuecomment-1823121838
@mbasmanova With the Folly upgrade, we likely have to upgrade fmt as well. We currently use fmt
8.0.1
an ancient version. There is an issue open to upgrade https://github.com/facebookincubator/velox/issues/7896 I believe you should be able to fix your issue by upgrading to fmt8.1.0
. But this is not tested. I commented on the issue above.There is a safe way: You can specify
re2_SOURCE=BUNDLED
in the environment and run CMake again.I am taking a look as well.