diff --git a/changelog.md b/changelog.md index ee28ae81..543d3538 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ Features Bug Fixes -------- * Reduce duplicated `--checkup` output. +* Handle errors generating completions on stored procedures. Internal diff --git a/mycli/sqlexecute.py b/mycli/sqlexecute.py index 21fdeda9..4302aa1d 100644 --- a/mycli/sqlexecute.py +++ b/mycli/sqlexecute.py @@ -455,15 +455,20 @@ def functions(self) -> Generator[tuple[str, str], None, None]: for row in cur: yield row - def procedures(self) -> Generator[tuple[str, str], None, None]: + def procedures(self) -> Generator[tuple, None, None]: """Yields tuples of (procedure_name, )""" assert isinstance(self.conn, Connection) with self.conn.cursor() as cur: _logger.debug("Procedures Query. sql: %r", self.procedures_query) - cur.execute(self.procedures_query % self.dbname) - for row in cur: - yield row + try: + cur.execute(self.procedures_query % self.dbname) + except pymysql.DatabaseError as e: + _logger.error('No procedure completions due to %r', e) + yield () + else: + for row in cur: + yield row def show_candidates(self) -> Generator[tuple, None, None]: assert isinstance(self.conn, Connection)