Closed aholyoke closed 4 months ago
@Linchin please take a look
@tswast Thanks for the heads up! Sorry for the delay, I got pulled into other projects.
@aholyoke Thanks a lot for helping fix this bug! Also the description is very thorough, which really helps with reviewing.
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 # 🦕
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.