doc/index.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 30 Nov 2017 11:55:35 +0100
changeset 12242 68ca7fe0ca29
parent 11930 83a921bae21c
child 12374 bb18c84aed54
permissions -rw-r--r--
[ssplanner] Prevent execution of write queries involving computed relations Previously, setting a computed relation upon entity creation or modification (using the ORM or an RQL query) would usually fail with an operational error in the backend ("no such table"). However, under some mysterious circumstances (like passing a string as value in cw_set for a computed relation), the RQL to SQL transformation would simply drop the clause. To prevent this to happen, we add a check for computed relation before adding a relation to an execution plan. This check raises a QueryError. It happens in several places: * in querier.InsertPlan.add_relation_def() (called from several places in ssplanner steps) for INSERT queries, * in ssplanner.UpdateStep.execute() for SET queries and, * in ssplanner.SSplanner.build_delete_plan() for DELETE queries. Tests added to unittest_querier.py because unittest_sslplanner.py looked inappropriate (it has only unit tests) and the former already had a NonRegressionTC class.

=====================================================
|cubicweb| - The Semantic Web is a construction game!
=====================================================

|cubicweb| is a semantic web application framework, licensed under the LGPL,
that empowers developers to efficiently build web applications by reusing
components (called `cubes`) and following the well known object-oriented design
principles.

Main Features
~~~~~~~~~~~~~

* an engine driven by the explicit :ref:`data model
  <TutosBaseCustomizingTheApplicationDataModel>` of the application,

* a query language named :ref:`RQL <RQL>` similar to W3C's SPARQL,

* a :ref:`selection+view <TutosBaseCustomizingTheApplicationCustomViews>`
  mechanism for semi-automatic XHTML/XML/JSON/text generation,

* a library of reusable :ref:`components <Cube>` (data model and views) that
  fulfill common needs,

* the power and flexibility of the Python_ programming language,

* the reliability of SQL databases, LDAP directories, Subversion and Mercurial
  for storage backends.

Built since 2000 from an R&D effort still continued, supporting 100,000s of
daily visits at some production sites, |cubicweb| is a proven end to end solution
for semantic web application development that promotes quality, reusability and
efficiency.

QuickStart
~~~~~~~~~~

The impatient developer will move right away to :ref:`SetUpEnv` then to :ref:`ConfigEnv`.

Social
~~~~~~

*   Chat on the `jabber forum`_
*   Discuss on the `mailing-list`_
*   Discover on the `blog`_
*   Contribute on the forge_


.. _Logilab: http://www.logilab.fr/
.. _forge: http://www.cubicweb.org/project/
.. _Python: http://www.python.org/
.. _`jabber forum`: http://www.logilab.org/blogentry/6718
.. _`mailing-list`: http://lists.cubicweb.org/mailman/listinfo/cubicweb
.. _blog: http://www.cubicweb.org/blog/1238


Narrative Documentation
~~~~~~~~~~~~~~~~~~~~~~~

A.k.a. "The Book"

.. toctree::
   :maxdepth: 2

   book/intro/index

.. toctree::
   :maxdepth: 2

   tutorials/index
   
.. toctree::
   :maxdepth: 3

   book/devrepo/index
   book/devweb/index
   book/pyramid/index

.. toctree::
   :maxdepth: 2

   book/admin/index
   book/additionnal_services/index
   book/annexes/index



Changes
~~~~~~~

.. toctree::
   :maxdepth: 2

   changes/changelog


Reference documentation
~~~~~~~~~~~~~~~~~~~~~~~

API
'''

.. toctree::
    :maxdepth: 1
    :glob:

    api/*

.. toctree::
    :maxdepth: 1

    book/en/devweb/js_api/index

Developpers
~~~~~~~~~~~

.. toctree::
    :maxdepth: 1
    :glob:

    dev/*

Indexes
~~~~~~~

* the :ref:`genindex`,
* the :ref:`modindex`,