The Alteryx Append Fields tool attaches every row from one dataset to every row of another. Prophecy implements equivalent behavior using the Join gem.Documentation Index
Fetch the complete documentation index at: https://docs.prophecy.ai/llms.txt
Use this file to discover all available pages before exploring further.
Automated migration results
When Import encounters an Alteryx Append tool, it recreates the behavior using a Join gem. Although the Alteryx Append tool behaves like a Cartesian join, Import does not emit a literalCROSS JOIN. Instead, it generates SQL that attaches the selected fields from the secondary input to each row of the primary input using a controlled join pattern. This approach avoids optimizer restrictions associated with explicit CROSS JOIN, preserves field-selection semantics, and ensures consistent behavior.
- Prophecy generates a Join gem that combines the target and source streams.
- The Join is configured with a constant condition (
1 = 1), effectively performing a cross join between the two inputs. - All columns from both inputs are preserved (
in0.*andin1.*), so each record from one stream is replicated for every record in the other stream, matching Alteryx Append semantics. - The resulting dataset is then available as a single downstream output in the Prophecy pipeline.
Manually replicate in Prophecy
- Add a Join gem configured as a Cross Join.
- Connect two datasets to the Join gem.
- Preview results in the Data Explorer.
Configuration options
Alteryx Append Fields tool
- Attach the Target and Source streams to the Append Fields tool.
- Optionally, deselect any Source fields you do not want replicated onto each Target row.
Prophecy Join gem
Attach two datasets to a Join gem configured as a Cross Join.Output behavior
Alteryx produces a dataset where all combination pairs (Cartesian) or matched rows (key-based) are appended. Prophecy outputs combined rows that match Alteryx’s logical intent.Known caveats
- Target and Source ports do not appear in Prophecy.
- Prophecy often imports cross-joins as joins on a constant condition (such as
1 = 1). This is an explicit representation of a cross join, and is used to preserve semantics and lineage while stabilizing planner behavior. The resulting data is identical to Alteryx’s no-key join or append behavior. - Cross joins can grow extremely large; ensure datasets are appropriately sized.
Example
Goal: Add a simpleproduct_category dataset to every record in a daily_ production log.
Alteryx Append tool example
- Add an Append tool to the canvas.
- Connect the
daily_productiondataset to the T (target) anchor. - Connect the
product_categorydataset to the S (source) anchor.
Prophecy example
In Prophecy, this operation is represented using a Join-based pattern that adds the selected fields from the secondary dataset to each row of the primary dataset. To reproduce this manually in Prophecy:- Add a Join gem configured as a Cross Join.
- Connect the
daily_productionandproduct_categorydatasets to the Join gem.

