-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade DuckDB to 0.8.1 #6725
Upgrade DuckDB to 0.8.1 #6725
Conversation
✅ Deploy Preview for meta-velox canceled.
|
11a73b0
to
8edb4fd
Compare
8ab1418
to
1d1b603
Compare
There is only one test that is failing
|
@kgpai, @mbasmanova, Can you import and share what the failures look like internally? Thanks. |
Wow, very nice to get rid of the amalgamation! Will review later but 🎉 |
The tests are taking a lot longer likely due to DuckDB being built in Debug mode. We need to build it in Release mode always. For some reason, I am unable to enable Release mode only for DuckDB via bundling. |
Deepak, this is a significant undertaking, hence, will need to be prioritized first. I see that CI is red and you mentioned that tests are taking a long time. Maybe resolve these issues first while we are looking for ways to free up bandwidth. |
@mbasmanova and I discussed offline. |
Thanks @majetideepak for looking into this. Now that the dbgen dependency is decoupled, what are the next steps on this PR? |
65dd120
to
3f46b47
Compare
@pedroerp, this is ready for review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, really nice change!
@@ -31,6 +31,28 @@ commands: | |||
git submodule sync --recursive | |||
git submodule update --init --recursive | |||
|
|||
install-duckdb: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is good for now but in a follow up we should add this to the docker images.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed! I don't have the power to update docker images.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually you have :) We have a workflow in place that updates the dockerfiles after changes to the files are merged to main: https://github.com/facebookincubator/velox/actions/workflows/docker.yml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah! Good to know. Thanks.
@@ -458,6 +458,9 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") | |||
message( | |||
FATAL_ERROR "VELOX requires gcc > 8. Found ${CMAKE_CXX_COMPILER_VERSION}") | |||
endif() | |||
|
|||
# Find Threads library | |||
find_package(Threads REQUIRED) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why? If ddb requires Threads it will/should look for it. Feel free to resolve if not for ddb but rather our changed code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I started seeing errors such as below in our code with this PR.
CMake Error at velox/common/memory/tests/CMakeLists.txt:15 (add_executable):
Target "velox_memory_test" links to target "Threads::Threads" but the
target was not found. Perhaps a find_package() call is missing for an
IMPORTED target, or an ALIAS target is missing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I see so it likely was a transitive dependency satisfied via DDB amalgamation that is now missing. Makes sense to add it in that case
3c62b5a
to
e8e8ad5
Compare
@majetideepak I can help import, but github is saying there are conflicts that must be resolved in the DuckWrapper files first. I guess you need to first rebase on top of the other PR? |
e8e8ad5
to
06208d7
Compare
@pedroerp Rebased. |
@pedroerp has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
(I am going to rerun the benchmark to see if the regression sticks around) |
fyi: the regression was false positive: https://github.com/facebookincubator/velox/actions/runs/6662181171/job/18731909455?pr=6725#step:16:736 (the conbench altert has all the runs, another commit would override that iirc) |
Conbench analyzed the 1 benchmark run on commit There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
Seeing build failures: #7692 |
Summary: After DuckDB upgrade (PR #6725) we see build errors: ``` /opt/gluten/ep/build-velox/build/velox_ep/_build/release/_deps/duckdb-src/src/planner/binder/expression/bind_star_expression.cpp:123:4: error: 'duckdb_re2' has not been declared 123 | duckdb_re2::RE2 regex(regex_str); | ^~~~~~~~~~ ``` If we compile re2 and fmt before DuckDB, there will cause dependency conflict. A fix is to compile DuckDB before re2 and fmt. Pull Request resolved: #7722 Reviewed By: pedroerp Differential Revision: D51605184 Pulled By: mbasmanova fbshipit-source-id: 54acb0a0f672abe710f6f398fa465ec46d38573c
array.reserve(size); | ||
for (auto i = 0; i < size; i++) { | ||
auto innerRow = offset + i; | ||
if (elements->isNullAt(innerRow)) { | ||
array.emplace_back(::duckdb::Value(nullptr)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like this change is responsible for breaking Join Fuzzer: #7943
Move from DuckDB amalgamation to using the latest DuckDB 0.8.1 as an external dependency.
See discussion here #5589