Skip to content

Conversation

@Tony2h
Copy link
Contributor

@Tony2h Tony2h commented Nov 26, 2025

Description

Please briefly describe the code changes in this pull request.

Jira: https://jira.taosdata.com:18080/browse/TD-

Checklist

Please check the items in the checklist if applicable.

  • Is the user manual updated?
  • Are the test cases passed and automated?
  • Is there no significant decrease in test coverage?

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Tony2h, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a parsing bug in SQL ORDER BY clauses that prevented queries from correctly executing when an aggregate function, such as ABS(), was applied to a column alias defined within the SELECT list. The changes refine the column resolution logic to ensure that aliases are properly recognized and prioritized in ORDER BY expressions, thereby enhancing the robustness and flexibility of SQL query processing. A comprehensive test case has been added to cover various scenarios involving ORDER BY with aliases.

Highlights

  • Bug Fix: ORDER BY with ABS(alias): Resolved an issue where ORDER BY abs(col) would fail if col was an alias in the SELECT list and not a direct column in the table. The parser now correctly resolves such aliases.
  • Parser Logic Refinement: The translateColumn function in parTranslater.c has been updated to improve the resolution of column names in ORDER BY clauses, ensuring aliases from the SELECT list are correctly identified, even when used within functions.
  • New Test Case Added: A new Python test file, test_order_by_select_list.py, has been introduced to validate the correct behavior of ORDER BY clauses when using column aliases, including scenarios with functions like ABS() and cases where aliases might conflict with table column names.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly fixes an issue where an aliased column within a function in an ORDER BY clause was not being resolved. The change in parTranslater.c is minimal and effective. The new test file, test_order_by_select_list.py, provides good coverage for the fix and related scenarios. Overall, the changes are solid. I have one minor style suggestion for the new test file.

tdSql.checkData(2, 0, '2025-01-01 11:00:00')
tdSql.checkData(2, 1, 1)

tdLog.info(f"=============== End test Order By Select List") No newline at end of file

This comment was marked as off-topic.

}
}
if (clauseSupportAlias(pCxt->currClause) && !(*pCol)->node.asParam && res != DEAL_RES_CONTINUE &&
if (clauseSupportAlias(pCxt->currClause) && res != DEAL_RES_CONTINUE &&
Copy link
Contributor

Choose a reason for hiding this comment

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

这里逻辑有点混乱,应该是基于找没找到的结果进行处理,res为错误可能是真的错误,也可能是没找到,要区分处理

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.

3 participants