Skip to content

Beam SQL: name query composites after what was fused into them - #39908

Draft
kennknowles wants to merge 1 commit into
apache:masterfrom
kennknowles:sql-names
Draft

Beam SQL: name query composites after what was fused into them#39908
kennknowles wants to merge 1 commit into
apache:masterfrom
kennknowles:sql-names

Conversation

@kennknowles

Copy link
Copy Markdown
Member

Beam SQL named each composite it expands a query into after the relational node class and a JVM-global counter, e.g. BeamCalcRel_57. That counter was global, so the same query produced different names on different runs, and the names said nothing about what the stage does.

Name a stage after the operations fused into it instead, e.g. Filter;Project. The provenance label rides along as a RelHint so that it survives copy() and the conversion to physical rels, and is composed as a canonical union of the labels of the nodes a rule matched -- order independent, so transpose rules trading a pair back and forth cannot hand the planner an endless supply of rels it has not seen.

Since Dataflow matches streaming pipelines for update by step name, the experiment legacy-sql-transform-names restores the old naming for pipelines that need to be updated across this change.


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

Beam SQL named each composite it expands a query into after the
relational node class and a JVM-global counter, e.g. BeamCalcRel_57.
That counter was global, so the same query produced different names on
different runs, and the names said nothing about what the stage does.

Name a stage after the operations fused into it instead, e.g.
Filter;Project. The provenance label rides along as a RelHint so that it
survives copy() and the conversion to physical rels, and is composed as
a canonical union of the labels of the nodes a rule matched -- order
independent, so transpose rules trading a pair back and forth cannot
hand the planner an endless supply of rels it has not seen.

Since Dataflow matches streaming pipelines for update by step name, the
experiment legacy-sql-transform-names restores the old naming for
pipelines that need to be updated across this change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant