Over a series of PRs (with [1] being the overall PR with most of the
discussion) we have done some internal refactoring of the streaming
execution engine (Acero) to put it into its own namespace and library.
This was a significant move of files and there are two breaking changes
(the affected code was labeled experimental but we have tried to avoid
breaking changes here so far) that I wanted to cover in more detail.  This
is also why I've included the user@ mailing list as I know there are some
users that are using the ExecPlan today.

The overall gist of the change is covered in this diagram [2] and there is
now an additional libarrow_acero shared library.

The breaking changes are:

 * A number of files that used to reside in src/arrow/compute/exec are now
located in src/arrow/acero
 * Some of the symbols in the arrow::compute namespace (those defined in
the above files) have now moved to the arrow::acero namespace

We have no doubt broken something in this change.  I will be focusing on
nightly test failures over the next few weeks as we approach the release.
Please feel free to ping me (@westonpace) on any issues that seem to be
caused by this.

Lastly, I want to thank ildipo and icexelloss for doing the bulk of this
work and many others (Will, Joris, Kou, Jacob, and more I probably missed)
for their review and suggestions.

[1] https://github.com/apache/arrow/issues/15280
[2]
https://docs.google.com/document/d/1oCGl3_QJUcNAk1qnjlBvoZsWKbrTsCT87QozqbCK6sQ/edit?usp=sharing

Reply via email to