Skip to content

[Refactor] Add subquery support for formatter#93

Open
colinthebomb1 wants to merge 4 commits intomainfrom
feature/add-format-subquery
Open

[Refactor] Add subquery support for formatter#93
colinthebomb1 wants to merge 4 commits intomainfrom
feature/add-format-subquery

Conversation

@colinthebomb1
Copy link
Collaborator

Overview:

This PR implements subquery support for the formatter, as well as simplifies the process for comparing input sql to output sql by using mosqlparse instead of string comparison with regex

Code Changes:

  • In tests\test_formatter.py added test_subquery_format() to run a formatter test that uses a sql query containing a subquery
  • Removed normalize_sql function and changed input/output sql comparisons to use mosqlparse

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds formatter support for SQL subqueries and makes formatter tests compare SQL semantics by parsing (mo_sql_parsing) rather than normalizing strings.

Changes:

  • Update formatter expression serialization to handle subqueries and string literals in mo_sql_parsing-compatible JSON.
  • Refactor formatter tests to compare mo_sql_parsing.parse() output instead of regex/whitespace normalization.
  • Add/enable a formatter test case that includes a subquery.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
tests/test_query_formatter.py Switches SQL comparisons to parse() and adds a subquery formatting test.
core/query_formatter.py Extends expression formatting to emit mo_sql_parsing JSON for string literals and subqueries.
Comments suppressed due to low confidence (1)

tests/test_query_formatter.py:84

  • The PR description mentions updating tests/test_formatter.py, but the changes/additions are actually in tests/test_query_formatter.py. Please update the PR description (or rename/move the test) so the documented change matches the code.
def test_subquery_format():
    # Tables
    emp_table = TableNode("employee")

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.

1 participant