Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.web.framework.middleware.sqldebug
"""
Per-request SQL debugging middleware.
"""
import logging
from galaxy.model.orm.engine_factory import log_request_query_counts, reset_request_query_counts
log = logging.getLogger(__name__)
[docs]class SQLDebugMiddleware:
[docs]    def __init__(self, application, galaxy, config=None):
        #: the wrapped webapp
        self.application = application
    def __call__(self, environ, start_response):
        query_string = environ.get('QUERY_STRING')
        if "sql_debug=1" in query_string:
            import galaxy.app
            if galaxy.app.app.model.thread_local_log:
                galaxy.app.app.model.thread_local_log.log = True
        try:
            reset_request_query_counts()
            return self.application(environ, start_response)
        finally:
            log_request_query_counts(environ.get("PATH_INFO"))