codeant-ai-for-open-source[bot] commented on code in PR #43565:
URL: https://github.com/apache/superset/pull/43565#discussion_r3867096108
##########
superset/sql/parse.py:
##########
@@ -732,6 +732,60 @@ def __str__(self) -> str:
return self.format()
+def _find_last_token_node(node: exp.Expression) -> exp.Expression:
+ """
+ Find the last token/leaf node in SQL generation order to attach trailing
comments.
+
+ Avoids optimizer hints (exp.Hint) and non-trailing subtrees to prevent
injecting
+ trailing comments inside optimizer hint blocks (e.g. /*+ SET_VAR(...) */).
+ """
+ if isinstance(node, exp.Select):
+ for clause_name in (
+ "options",
+ "settings",
+ "format",
+ "locks",
+ "offset",
+ "limit",
+ "sort",
+ "cluster",
+ "distribute",
+ "order",
+ "window",
Review Comment:
**Suggestion:** The SQLGlot `Select` AST stores window definitions under the
`windows` argument, not `window`. As a result, a query containing both a
`WHERE` clause and a trailing `WINDOW` clause skips the actual final clause,
selects `where` as the target, and attaches the trailing comment before the
window definition instead of after the statement. Because the comment may be
rendered as a line comment, this can also comment out or corrupt the subsequent
`WINDOW` clause. Use the actual `windows` argument name and verify its position
against the dialect generator order. [incorrect condition logic]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ Windowed queries can render trailing comments before `WINDOW`.
- ⚠️ SQL Lab formatting may corrupt subsequent window definitions.
- ⚠️ Executor formats transformed SQL before database execution.
```
</details>
[](https://docs.codeant.ai/cli/resolve-pr-comments-skill)
[](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=e52a6c24e99a4939bd4b5f738d76f4fa&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
[](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=e52a6c24e99a4939bd4b5f738d76f4fa&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/sql/parse.py
**Line:** 754:754
**Comment:**
*Incorrect Condition Logic: The SQLGlot `Select` AST stores window
definitions under the `windows` argument, not `window`. As a result, a query
containing both a `WHERE` clause and a trailing `WINDOW` clause skips the
actual final clause, selects `where` as the target, and attaches the trailing
comment before the window definition instead of after the statement. Because
the comment may be rendered as a line comment, this can also comment out or
corrupt the subsequent `WINDOW` clause. Use the actual `windows` argument name
and verify its position against the dialect generator order.
Validate the correctness of the flagged issue. If correct, How can I resolve
this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask
user if the user wants to fix the rest of the comments as well. if said yes,
then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a
href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F43565&comment_hash=756f35ffa2fdaf4da2f381031f1bbb9c9e1f4b6f5579ade5703d0bc698625244&reaction=like'>👍</a>
| <a
href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F43565&comment_hash=756f35ffa2fdaf4da2f381031f1bbb9c9e1f4b6f5579ade5703d0bc698625244&reaction=dislike'>👎</a>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]