Skip to content
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

fix: Fix ODR violation coming from DuckLogicalOperator.h #12016

Closed

Conversation

kevinwilfong
Copy link
Contributor

Summary:
DuckLogicalOperator.h defines a bunch of DuckDB logical plan nodes that would come from
duckdb-internal.hpp but we can't include that file.

#11930 added LogicalOrder and included a minimal version of
the definition in DuckDB 0.8.1 not including a bunch of fields/functions we don't use. I see minimal versions
of other plan nodes are likewise used in the file, but for whatever reason, this one in particular is tripping up
ODR issue detection during linking when UBSan is enabled.

The fix I offer here is to copy the definition verbatim from duckdb/planner/operator/logical_order.hpp.

I also noticed some unnecessary includes in velox/parse/QueryPlanner.cpp introduced by that PR while
debugging which I've removed here for cleanliness, they're not critical to the fix.

Differential Revision: D67804092

Summary:
DuckLogicalOperator.h defines a bunch of DuckDB logical plan nodes that would come from
duckdb-internal.hpp but we can't include that file.

facebookincubator#11930 added LogicalOrder and included a minimal version of
the definition in DuckDB 0.8.1 not including a bunch of fields/functions we don't use. I see minimal versions
of other plan nodes are likewise used in the file, but for whatever reason, this one in particular is tripping up
ODR issue detection during linking when UBSan is enabled.

The fix I offer here is to copy the definition verbatim from duckdb/planner/operator/logical_order.hpp.

I also noticed some unnecessary includes in velox/parse/QueryPlanner.cpp introduced by that PR while 
debugging which I've removed here for cleanliness, they're not critical to the fix.

Differential Revision: D67804092
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jan 3, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D67804092

Copy link

netlify bot commented Jan 3, 2025

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit b55528b
🔍 Latest deploy log https://app.netlify.com/sites/meta-velox/deploys/6778388ffd7a47000816ab8c

@facebook-github-bot
Copy link
Contributor

This pull request has been merged in 8b3b55a.

athmaja-n pushed a commit to athmaja-n/velox that referenced this pull request Jan 10, 2025
…ubator#12016)

Summary:
Pull Request resolved: facebookincubator#12016

DuckLogicalOperator.h defines a bunch of DuckDB logical plan nodes that would come from
duckdb-internal.hpp but we can't include that file.

facebookincubator#11930 added LogicalOrder and included a minimal version of
the definition in DuckDB 0.8.1 not including a bunch of fields/functions we don't use. I see minimal versions
of other plan nodes are likewise used in the file, but for whatever reason, this one in particular is tripping up
ODR issue detection during linking when UBSan is enabled.

The fix I offer here is to copy the definition verbatim from duckdb/planner/operator/logical_order.hpp.

I also noticed some unnecessary includes in velox/parse/QueryPlanner.cpp introduced by that PR while
debugging which I've removed here for cleanliness, they're not critical to the fix.

Reviewed By: xiaoxmeng, kgpai

Differential Revision: D67804092

fbshipit-source-id: 7f3363c0bdd340d180da431222f5e7b1b1913f4f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants