doc/book/en/annexes/rql/debugging.rst
author Rémi Cardona <remi.cardona@logilab.fr>
Wed, 19 Feb 2014 11:01:19 +0100
branchstable
changeset 9558 1a719ca9c585
parent 8626 e2ba137b2bf9
permissions -rw-r--r--
[doc/book] Fix typo in import

.. -*- 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