From 0a567e4dab753cc9847c028c98358418a78f00c9 Mon Sep 17 00:00:00 2001 From: Thomas Roten Date: Sun, 20 May 2018 20:04:01 +0000 Subject: [PATCH] Add support for special commands in favorite query. --- mycli/packages/special/iocommands.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mycli/packages/special/iocommands.py b/mycli/packages/special/iocommands.py index 8fe4274e..6ada6a44 100644 --- a/mycli/packages/special/iocommands.py +++ b/mycli/packages/special/iocommands.py @@ -11,7 +11,8 @@ import sqlparse from . import export -from .main import special_command, NO_QUERY, PARSED_QUERY +from .main import (CommandNotFound, execute, special_command, NO_QUERY, + PARSED_QUERY) from .favoritequeries import favoritequeries from .utils import handle_cd_command from mycli.packages.prompt_utils import confirm_destructive_query @@ -177,7 +178,13 @@ def execute_favorite_query(cur, arg, **_): for sql in sqlparse.split(query): sql = sql.rstrip(';') title = '> %s' % (sql) - cur.execute(sql) + try: # Special command + _logger.debug('Trying a dbspecial command. sql: %r', sql) + for result in execute(cur, sql): + yield result + except CommandNotFound: # Regular SQL + _logger.debug('Regular sql statement. sql: %r', sql) + cur.execute(sql) if cur.description: headers = [x[0] for x in cur.description] yield (title, cur, headers, None)