Show sql errors if DEBUG flag is set.

This commit is contained in:
lifnej
2025-10-04 15:31:26 +02:00
committed by KnugiHK
parent 4aa1c26232
commit c32096b26b

View File

@@ -80,7 +80,8 @@ def messages(db, data, media_folder, timezone_offset, filter_date, filter_chat,
try:
content_cursor = _get_messages_cursor_legacy(c, filter_empty, filter_date, filter_chat)
table_message = False
except sqlite3.OperationalError:
except sqlite3.OperationalError as e:
logger.debug(f'Got sql error "{e}" in _get_message_cursor_legacy trying fallback.\n')
try:
content_cursor = _get_messages_cursor_new(
c,
@@ -125,7 +126,9 @@ def _get_message_count(cursor, filter_empty, filter_date, filter_chat, jid_map_e
{date_filter}
{include_filter}
{exclude_filter}""")
except sqlite3.OperationalError:
except sqlite3.OperationalError as e:
logger.debug(f'Got sql error "{e}" in _get_message_count trying fallback.\n')
empty_filter = get_cond_for_empty(filter_empty, "key_remote_jid", "broadcast")
date_filter = f'AND timestamp {filter_date}' if filter_date is not None else ''
remote_jid_selection, group_jid_selection = get_jid_map_selection(jid_map_exists)
@@ -309,7 +312,11 @@ def _fetch_row_safely(cursor):
try:
content = cursor.fetchone()
return content
except sqlite3.OperationalError:
except sqlite3.OperationalError as e:
# Not sure how often this might happen, but this check should reduce the overhead
# if DEBUG flag is not set.
if logger.isEnabledFor(logging.DEBUG):
logger.debug(f'Got sql error "{e}" in _fetch_row_safely ignoring row.\n')
continue
@@ -587,7 +594,8 @@ def media(db, data, media_folder, filter_date, filter_chat, filter_empty, separa
total_row_number = _get_media_count(c, filter_empty, filter_date, filter_chat)
try:
content_cursor = _get_media_cursor_legacy(c, filter_empty, filter_date, filter_chat)
except sqlite3.OperationalError:
except sqlite3.OperationalError as e:
logger.debug(f'Got sql error "{e}" in _get_media_cursor_legacy trying fallback.\n')
content_cursor = _get_media_cursor_new(c, filter_empty, filter_date, filter_chat)
content = content_cursor.fetchone()
@@ -628,7 +636,8 @@ def _get_media_count(cursor, filter_empty, filter_date, filter_chat):
{date_filter}
{include_filter}
{exclude_filter}""")
except sqlite3.OperationalError:
except sqlite3.OperationalError as e:
logger.debug(f'Got sql error "{e}" in _get_media_count trying fallback.\n')
empty_filter = get_cond_for_empty(filter_empty, "jid.raw_string", "broadcast")
date_filter = f'AND message.timestamp {filter_date}' if filter_date is not None else ''
include_filter = get_chat_condition(
@@ -804,7 +813,8 @@ def vcard(db, data, media_folder, filter_date, filter_chat, filter_empty):
c = db.cursor()
try:
rows = _execute_vcard_query_modern(c, filter_date, filter_chat, filter_empty)
except sqlite3.OperationalError:
except sqlite3.OperationalError as e:
logger.debug(f'Got sql error "{e}" in _execute_vcard_query_modern trying fallback.\n')
rows = _execute_vcard_query_legacy(c, filter_date, filter_chat, filter_empty)
total_row_number = len(rows)