fix: Set cte_follows_insert to True #1095
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
Fixes #<issue_number_goes_here> 🦕
cte_follows_insert
is a dialect flag which dictates where the CTE appears relative to an insert-from-select statement.For example, when cte_follows_insert=True, then SA will generate
and when cte_follows_insert=False, then SA will generate
If we unskip the compliance test
test_insert_from_select_round_trip
, the test will fail withThis is because by default SA uses cte_follows_insert=False, but BQ syntax expects CTEs to follow inserts.
Here's a snippet that can reproduce the issue:
Previously, the insert statement would fail with:
But now it succeeds. We can see the query that it generates now correctly writes the cte after the insert statement.