Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: blurb about msq union all #15223

Merged
merged 4 commits into from
Oct 31, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions docs/querying/sql.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,10 @@ UNION ALL
SELECT COUNT(*) FROM tbl WHERE my_column = 'value2'
```

:::info
With top-level queries, you can't apply GROUP BY, ORDER BY, or any other operator to the results of a UNION ALL.
:::
Keep the following in mind when writing top-level UNION ALL queries:

- You can't apply GROUP BY, ORDER BY, or any other operator to the results of a UNION ALL.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can coalesce into a single paragraph as mentioned in the other comment

Suggested change
- You can't apply GROUP BY, ORDER BY, or any other operator to the results of a UNION ALL.

Copy link
Contributor Author

@317brian 317brian Oct 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This limitation predates my changes and seems to apply to any query engine. So does it no longer apply to non-MSQ queries?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This limitation is still present, but as per the previous comment, we can make it cohesive by coalescing both of the limitations into one big para.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, if we want it in 1 paragraph, I'll need to rewrite the paragraph first. Starting with If you use the MSQ task engine for the query, sets the reader up to think that the whole paragraph is only about the MSQ task engine limitations

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9ab4130 has the new paragraph

- If you use the MSQ task engine for the query, the SQL planner attempts to plan the top-level UNION ALL as a table-level UNION ALL. Because of this, the query behaves the same as a table-level UNION ALL, meaning it has the same characteristics and limitations. If the planner can't plan the query as a table-level UNION ALL, the query fails.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If you use the MSQ task engine for the query, the SQL planner attempts to plan the top-level UNION ALL as a table-level UNION ALL. Because of this, the query behaves the same as a table-level UNION ALL, meaning it has the same characteristics and limitations. If the planner can't plan the query as a table-level UNION ALL, the query fails.
- If you use the MSQ task engine for the query, the SQL planner attempts to plan the top-level UNION ALL as a table-level UNION ALL. Therefore it has the same limitations as the table level union all - You can only union TableDataSources with simple projections - select columns and rename columns. Clauses like GROUP BY, ORDER BY, etc are not supported on operands of union.
The query isn't supported if the planner can't plan it as a table-level union all


### Table-level

Expand Down