Project

General

Profile

Revision 65a9ee16

ID65a9ee163a70344e8ca5af43a06979bcb3b277fa
Parent f419d747
Child 832d63c3

Added by Francois POIROTTE over 13 years ago

Utilisation d'un UNION ALL en remplacement du UNION actuel.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@6270 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

vigiboard/controllers/vigiboardrequest.py
29 29
from repoze.what.predicates import in_group
30 30

  
31 31
from sqlalchemy import not_, and_, asc, desc
32
from sqlalchemy.sql.expression import or_, null as expr_null, union
32
from sqlalchemy.sql.expression import or_, null as expr_null, union_all
33 33

  
34 34
from vigilo.models.session import DBSession
35 35
from vigilo.models.tables import Event, CorrEvent, EventHistory, \
......
129 129

  
130 130
        # Objet Selectable renvoyant des informations sur un SupItem
131 131
        # concerné par une alerte, avec prise en compte des droits d'accès.
132
        # On est obligés d'utiliser sqlalchemy.sql.expression.union
132
        # On est obligés d'utiliser sqlalchemy.sql.expression.union_all
133 133
        # pour indiquer à SQLAlchemy de NE PAS regrouper les tables
134 134
        # dans la requête principale, sans quoi les résultats sont
135 135
        # incorrects.
136
        self.items = union(lls_query, host_query, correlate=False).alias()
136
        # Dans PostgreSQL, UNION ALL est beaucoup plus rapide que UNION
137
        # du fait des performances limitées du DISTINCT.
138
        self.items = union_all(lls_query, host_query, correlate=False).alias()
137 139

  
138 140
        # Éléments à retourner (SELECT ...)
139 141
        self.table = []

Also available in: Unified diff