bin/cubicweb-ctl.bat
author Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 30 Nov 2017 11:55:35 +0100
changeset 12242 68ca7fe0ca29
parent 5499 2a5cc708c2a0
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.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3116
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     1
@echo off
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     2
rem = """-*-Python-*- script
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     3
rem -------------------- DOS section --------------------
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     4
rem You could set PYTHONPATH or TK environment variables here
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     5
python -x "%~f0" %*
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     6
goto exit
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     7
 
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     8
"""
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
     9
# -------------------- Python section --------------------
4096
871ff503c23e update sys.path at cubicweb startup
Administrator <>
parents: 3116
diff changeset
    10
import sys
5499
2a5cc708c2a0 fixed bug of non-normalized path under Windows, that broke the reload mechanism
egazoni
parents: 4096
diff changeset
    11
from os.path import join, dirname, normpath
2a5cc708c2a0 fixed bug of non-normalized path under Windows, that broke the reload mechanism
egazoni
parents: 4096
diff changeset
    12
sys.path.insert(0, normpath(join(dirname(__file__), '..', '..')))
3116
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    13
from cubicweb.cwctl import run
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    14
run(sys.argv[1:])
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    15
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    16
DosExitLabel = """
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    17
:exit
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    18
rem """
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    19
8bf500eb01d6 two convenience files
Aurélien Campéas
parents:
diff changeset
    20