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
5 changes: 5 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Upcoming (TBD)
==============

Features
---------
* Always clean favorite queries on save and fetch.


Documentation
---------
* Document double-return requirement after `/fs` in multi-line mode.
Expand Down
17 changes: 14 additions & 3 deletions mycli/packages/special/favoritequeries.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,17 @@ def __init__(self, config: Any, config_file: str | None = None) -> None:
def from_config(cls, config: Any, config_file: str | None = None) -> FavoriteQueries:
return FavoriteQueries(config, config_file)

def _clean_query(self, query: str | None) -> str | None:
if not query:
return query
query = query.lstrip(' \t\n\r')
query = query.rstrip(' \t\n\r')
query = query.removesuffix(';')
query = query.removesuffix(r'\G')
query = query.removesuffix(r'\x')
query = query.rstrip(' \t\n\r')
return query

def _config_for_write(self) -> Any:
if self.config_file is None:
return self.config
Expand All @@ -141,14 +152,14 @@ def _set_query(self, config: Any, name: str, query: str) -> None:
config[self.section_name][name] = query

def list(self) -> list[str | None]:
return list(self.config.get(self.section_name, {}))
return [self._clean_query(x) for x in self.config.get(self.section_name, {})]

def get(self, name) -> str | None:
return self.config.get(self.section_name, {}).get(name, None)
return self._clean_query(self.config.get(self.section_name, {}).get(name, None))

def save(self, name: str, query: str) -> None:
config = self._config_for_write()
query = query.rstrip(' \t\n\r;')
query = self._clean_query(query) or ''
config.encoding = "utf-8"
section_existed = self.section_name in config
previous_query = config.get(self.section_name, {}).get(name, MISSING)
Expand Down
Loading