Skip to content

Conversation

peterbud
Copy link
Contributor

Brief summary of the change made

This PR reworks the EXECUTE statement grammar to the latest full specification. Also added all tests from the specification to our test set.

Note: THROW keyword has been moved to the reserved keyword list.

Fixes #6489

Are there any other side effects of this change that we should be aware of?

Pull Request checklist

  • Please confirm you have completed any of the necessary steps below.

  • Included test cases to demonstrate any code changes, which may be one or more of the following:

    • .yml rule test cases in test/fixtures/rules/std_rule_cases.
    • .sql/.yml parser test cases in test/fixtures/dialects (note YML files can be auto generated with tox -e generate-fixture-yml).
    • Full autofix test cases in test/fixtures/linter/autofix.
    • Other.
  • Added appropriate documentation for the change.

  • Created GitHub issues for any relevant followup/future enhancements if appropriate.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

PR Summary

Major overhaul of TSQL EXECUTE statement grammar to align with Microsoft's latest specifications, improving parsing accuracy and feature coverage.

  • Updated src/sqlfluff/dialects/dialect_tsql.py with comprehensive EXECUTE statement grammar including RESULT SETS, OUTPUT parameters, and execution context options
  • Moved 'THROW' from UNRESERVED to RESERVED keywords list in src/sqlfluff/dialects/dialect_tsql_keywords.py
  • Added proper expression node handling for parameter values across multiple test files including test/fixtures/dialects/tsql/execute.yml
  • Expanded test coverage with official Microsoft documentation examples in test/fixtures/dialects/tsql/execute.sql

8 files reviewed, no comments
Edit PR Review Bot Settings | Greptile

Copy link
Contributor

github-actions bot commented Jun 19, 2025

Coverage Results ✅

Name    Stmts   Miss  Cover   Missing
-------------------------------------
TOTAL   19774      0   100%

249 files skipped due to complete coverage.

Copy link
Contributor

@WittierDinosaur WittierDinosaur left a comment

Choose a reason for hiding this comment

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

Broadly LGTM, one nitpick, and you've got one merge conflict

Copy link
Contributor

@WittierDinosaur WittierDinosaur left a comment

Choose a reason for hiding this comment

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

LGTM

@WittierDinosaur WittierDinosaur added this pull request to the merge queue Jul 5, 2025
Merged via the queue into sqlfluff:main with commit c0f056c Jul 5, 2025
28 checks passed
@peterbud peterbud deleted the execute branch July 7, 2025 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

tsql output clause misattributed as an identifier rather than a keyword
2 participants