doc/book/annexes/rql/debugging.rst
author Rémi Cardona <remi.cardona@logilab.fr>
Wed, 25 Nov 2015 17:31:32 +0100
changeset 10924 2125def9498b
parent 10491 c67bcee93248
child 12716 f5300acd8f4f
permissions -rw-r--r--
[views] Use 'pyvaltable' instead of hand-crafted <table> tags

.. -*- coding: utf-8 -*-

.. _DEBUGGING:

Debugging RQL
-------------

Available levels
~~~~~~~~~~~~~~~~

Server debugging flags. They may be combined using binary operators.

.. autodata:: cubicweb.server.DBG_NONE
.. autodata:: cubicweb.server.DBG_RQL
.. autodata:: cubicweb.server.DBG_SQL
.. autodata:: cubicweb.server.DBG_REPO
.. autodata:: cubicweb.server.DBG_MS
.. autodata:: cubicweb.server.DBG_HOOKS
.. autodata:: cubicweb.server.DBG_OPS
.. autodata:: cubicweb.server.DBG_MORE
.. autodata:: cubicweb.server.DBG_ALL


Enable verbose output
~~~~~~~~~~~~~~~~~~~~~

To debug your RQL statements, it can be useful to enable a verbose output:

.. sourcecode:: python

    from cubicweb import server
    server.set_debug(server.DBG_RQL|server.DBG_SQL|server.DBG_ALL)

.. autofunction:: cubicweb.server.set_debug

Another example showing how to debug hooks at a specific code site:

.. sourcecode:: python

    from cubicweb.server import debugged, DBG_HOOKS
    with debugged(DBG_HOOKS):
        person.cw_set(works_for=company)


Detect largest RQL queries
~~~~~~~~~~~~~~~~~~~~~~~~~~~

See `Profiling and performance` chapter (see :ref:`PROFILING`).


API
~~~

.. autoclass:: cubicweb.server.debugged