Projet

Général

Profil

Evolution #4302

[SearchDoc] onlyCount fonctionne différemment avant et après le lancement de la méthode search

Ajouté par Charles Bonnissent il y a presque 6 ans. Mis à jour il y a presque 6 ans.

Statut:
Résolu
Priorité:
Normal
Assigné à:
Version cible:
Début:
18/11/2013
Echéance:
% réalisé:

100%

Version source:
Solution proposée:
Principaux fichiers impactés:
Wiki Détail:
Contrôle:
Thème:
Jalons: 3.2 R6

Description

Soit le code suivant :

    $searchDoc = new searchDoc();
    var_export($searchDoc->onlyCount());
    print "\n";
    var_export($searchDoc->getSearchInfo());
    print "\n";
    print "\n";
    $searchDoc->addFilter("title = 'toto'");
    var_export($searchDoc->onlyCount());
    print "\n";
    var_export($searchDoc->getSearchInfo());
    print "\n";
    print "\n";
    $searchDoc = new searchDoc();
    $searchDoc->search();
    var_export($searchDoc->onlyCount());
    print "\n";
    var_export($searchDoc->getSearchInfo());
    print "\n";
    print "\n";
    $searchDoc->addFilter("title = 'toto'");
    var_export($searchDoc->onlyCount());
    print "\n";
    var_export($searchDoc->getSearchInfo());
    print "\n";
    print "\n";

on obtient le résultat suivant :

1493
array (
  'query' => 'select count(docread.id) from  docread  where   (docread.archiveid is null) and (docread.doctype != \'Z\') and (docread.doctype != \'T\') and (docread.locked != -1)',
  'delay' => '0.003s',
)

0
array (
  'query' => 'select count(docread.id) from  docread  where   (docread.archiveid is null) and (docread.doctype != \'Z\') and (docread.doctype != \'T\') and (docread.locked != -1) and (title = \'toto\')',
  'delay' => '0.001s',
)

1493
array (
  'count' => 1493,
  'query' => 'select docread.id, owner, title, revision, version, initid, fromid, doctype, locked, allocated, archiveid, icon, lmodify, profid, usefor, cdate, adate, revdate, comment, classname, state, wid, postitid, domainid, lockdomainid, cvid, name, dprofid, atags, prelid, confidential, ldapdn, values, svalues, attrids  from  docread  where   (docread.archiveid is null) and (docread.doctype != \'Z\') and (docread.doctype != \'T\') and (docread.locked != -1) ORDER BY title LIMIT ALL OFFSET 0;',
  'error' => '',
  'delay' => '0.073s',
)

1493
array (
  'count' => 1493,
  'query' => 'select docread.id, owner, title, revision, version, initid, fromid, doctype, locked, allocated, archiveid, icon, lmodify, profid, usefor, cdate, adate, revdate, comment, classname, state, wid, postitid, domainid, lockdomainid, cvid, name, dprofid, atags, prelid, confidential, ldapdn, values, svalues, attrids  from  docread  where   (docread.archiveid is null) and (docread.doctype != \'Z\') and (docread.doctype != \'T\') and (docread.locked != -1) ORDER BY title LIMIT ALL OFFSET 0;',
  'error' => '',
  'delay' => '0.073s',
)

Le onlyCount ne fonctionne pas de la même manière suivant si la méthode Search a été ou pas exécutée. Si il n'a pas encore été exécutée alors des nouveaux filtres peuvent être ajoutés, si le search a été exécuté alors le résultat est fixé et ne prend plus en compte les nouveaux filtres.


Demandes liées

Lié à Core - Anomalie #4305: [SearchDoc] Un count exécuté avant le search corrompt le count exécuté après le search Intégré 19/11/2013

Historique

#1 Mis à jour par Marc Claverie il y a presque 6 ans

  • Tracker changé de Anomalie à Evolution
  • Version cible mis à 3.3.0

Rendre le fonction + clair: phase de préparation > phase de d'exécution

#2 Mis à jour par Éric Brison il y a presque 6 ans

  • Assigné à mis à Éric Brison
  • Version cible changé de 3.3.0 à 3.2.12

#3 Mis à jour par Éric Brison il y a presque 6 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

Formats disponibles : Atom PDF