diff --git a/mycli/packages/special/iocommands.py b/mycli/packages/special/iocommands.py index 166e457c..a896b51d 100644 --- a/mycli/packages/special/iocommands.py +++ b/mycli/packages/special/iocommands.py @@ -13,7 +13,8 @@ from configobj import ConfigObj 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 @@ -186,7 +187,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)