From: Tobias Pfeiffer Date: Wed, 16 Nov 2022 08:17:26 +0000 (+0900) Subject: add exception handling X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=56f16e30b494d6e58664ea4d66aa07c234398c54;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git add exception handling --- diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index d6defa41df..000ae8b41a 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -2684,11 +2684,21 @@ class SQLiteDialect(default.DefaultDialect): "AND type = 'index'" % {"schema": schema_expr} ) rs = connection.exec_driver_sql(s, (row[1],)) - index_sql = rs.scalar() - predicate = partial_pred_re.search(index_sql).group(1) - indexes[-1]["dialect_options"]["sqlite_where"] = text( - predicate - ) + try: + # in theory the code below shouldn't happen because + # we know this is a partial index, so the definition + # sql should be there and match the regex + index_sql = rs.scalar() + predicate = partial_pred_re.search(index_sql).group(1) + indexes[-1]["dialect_options"]["sqlite_where"] = text( + predicate + ) + except Exception: + util.warn( + "Failed to look up filter predicate of " + "partial index %s" % row[1] + ) + indexes.pop() # loop thru unique indexes to get the column names. for idx in list(indexes):