Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Internal
* Better tests for `null_string` configuration option.
* Better cleanup of resources in the test suite.
* Simplify prettify/unprettify handlers.
* Make prettify/unprettify logic more robust.


1.57.0 (2026/02/25)
Expand Down
32 changes: 20 additions & 12 deletions mycli/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -845,31 +845,39 @@ def handle_clip_command(self, text: str) -> bool:
return False

def handle_prettify_binding(self, text: str) -> str:
if not text:
return ''
try:
statements = sqlglot.parse(text, read="mysql")
statements = sqlglot.parse(text, read='mysql')
except Exception:
statements = []
if len(statements) == 1 and statements[0]:
pretty_text = statements[0].sql(pretty=True, pad=4, dialect="mysql")
parse_succeeded = True
pretty_text = statements[0].sql(pretty=True, pad=4, dialect='mysql')
else:
pretty_text = ""
self.toolbar_error_message = "Prettify failed to parse statement"
if len(pretty_text) > 0:
pretty_text = pretty_text + ";"
parse_succeeded = False
pretty_text = text.rstrip(';')
self.toolbar_error_message = 'Prettify failed to parse single statement'
if pretty_text and parse_succeeded:
pretty_text = pretty_text + ';'
return pretty_text

def handle_unprettify_binding(self, text: str) -> str:
if not text:
return ''
try:
statements = sqlglot.parse(text, read="mysql")
statements = sqlglot.parse(text, read='mysql')
except Exception:
statements = []
if len(statements) == 1 and statements[0]:
unpretty_text = statements[0].sql(pretty=False, dialect="mysql")
parse_succeeded = True
unpretty_text = statements[0].sql(pretty=False, dialect='mysql')
else:
unpretty_text = ""
self.toolbar_error_message = "Unprettify failed to parse statement"
if len(unpretty_text) > 0:
unpretty_text = unpretty_text + ";"
parse_succeeded = False
unpretty_text = text.rstrip(';')
self.toolbar_error_message = 'Unprettify failed to parse single statement'
if unpretty_text and parse_succeeded:
unpretty_text = unpretty_text + ';'
return unpretty_text

def run_cli(self) -> None:
Expand Down