Project

General

Profile

Development #67884

Pourquoi fait-on des critères « Equal('user_id', str(user.id) if user else '-1') » alors qu'on sait que la réponse va être vide ?

Added by Thomas Noël 15 days ago. Updated 1 day ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
02 August 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

À plusieurs endroits du code, on a ce pattern  « Equal('user_id', str(user.id) if user else '-1') »

On peut peut-être chercher à le court-circuiter pour gagner des requêtes (d'autant plus qu'on n'a pas d'index sur user_id).


Files

Associated revisions

Revision 043ed9be (diff)
Added by Frédéric Péters 2 days ago

misc: add special "Nothing" criteria to bypass query and return nothing (#67884)

History

#1

Updated by Frédéric Péters 6 days ago

  • Assignee set to Frédéric Péters
#2

Updated by Frédéric Péters 5 days ago

Ajout d'un critère "Nothing" qui fait juste FALSE en SQL.

Je traite les quelques Equald('user_id', ... '-1') mais aussi les Equal('status', '_none').

J'ai à un moment court-circuité davantage, façon :

# short-circuit if there's a "Nothing" criteria
if isinstance(clause, list) and any(x for x in clause if isinstance(x, wcs.qommon.storage.Nothing)):
    return []

mais ça doit être répété à trop d'endroits et c'était moche et postgresql arrive très bien à optimiser et faire One-Time Filter: false et ça suffit.

#3

Updated by Thomas Noël 5 days ago

  • Status changed from Solution proposée to Solution validée

Simple et efficace, ça me va.

#4

Updated by Frédéric Péters 2 days ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 043ed9be54c95cb8addfe59b6700364811a422a8
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Thu Aug 11 17:09:52 2022 +0200

    misc: add special "Nothing" criteria to bypass query and return nothing (#67884)
#5

Updated by Transition automatique 1 day ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF