developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 9 years ago

Last modified 9 years ago

#1418 assigned bug

Oracle ne retourne pas de manière prédictive les résultats

Reported by: Vincentv Owned by: laurentj
Priority: normal Milestone:
Component: jelix:dao Version: 1.2.4
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Description

Bug: Oracle ne retourne pas de manière prédictive les résultats dans un select, en conséquence, dans un daocrud, certains élément vont apparaître sur plusieurs pages différentes alors que d'autre n'apparaîtront pas.

Correctif: lorsqu'aucun ordre n'a été précisé explicitement, on force l'ordre sur la clef primaire

Manquement: N'est pas traité le cas où la table n'a pas de clef primaire. Tant pis.

Goodie: pour tous, les données sont affichées automatiquement selon l'ordre de la clef primaire pour le daocrud et aussi pour tout ce qui utilise le findBy, comme les listes, etc

Remarque: Testé uniquement avec Oracle et c'est une contribution de A nonyme :)

Attachments (1)

jDaoFactoryBase.findBy.patch (1.8 KB) - added by Vincentv 9 years ago.

Download all attachments as: .zip

Change History (7)

Changed 9 years ago by Vincentv

comment:1 Changed 9 years ago by laurentj

  • Resolution set to wontfix
  • review set to review-
  • Status changed from new to closed

le problème du patch, c'est que du coup, quelque soit la base de donnée, on a un ordre qui est forcé.

Donc si on veut un ordre "naturel", on peut pas.

À vous de forcer vous même l'ordre quand vous créez votre jDaoConditions.

comment:2 Changed 9 years ago by Vincentv

l'ordre "naturel" n'est pas sur la clef primaire en general?

comment:3 Changed 9 years ago by laurentj

non, ça dépend des bases en fait. Dans mysql, c'est l'ordre dans lequel les enregistrements ont été inséré (d'après ce que j'ai observé, je n'arrive pas à trouver dans la doc quel est l'ordre par défaut). Avec Postgresql, l'ordre des enregistrements est selon la manière la plus rapide pour les récupérer.

Sinon mon terme "ordre naturel" n'est pas le bon, car l'ordre naturel réfère souvent en fait à un ordre "logique" pour l'homme ("test1, test2, test10" au lieu de "test1, test10, test2")

comment:4 Changed 9 years ago by laurentj

  • Resolution wontfix deleted
  • Status changed from closed to reopened

voir si ociDaoBuilder ne peut pas générer la factory de manière à changer le comportement de findBy, juste pour oracle donc.

comment:5 Changed 9 years ago by laurentj

  • Owner set to laurentj
  • Status changed from reopened to assigned

comment:6 Changed 9 years ago by laurentj

  • review review- deleted
Note: See TracTickets for help on using tickets.