Projet

Général

Profil

Actions

Feature #11915

ouvert

Requête SQL incorrecte pour H2

Ajouté par Miguel Moquillon il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Feedback
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
04/12/2020
Echéance:
% réalisé:

0%

Temps estimé:
Livraison en TEST:
Livraison en PROD:

Description

Une partie de la persistance en base de données dans Silverpeas est réalisée en SQL pure via notre composant JdbcSqlQuery. Ce dernier offre une DSL pour écrire des requêtes SQL tout en s'occupant des étapes redondantes et tout en automatisant certains mécanismes comme, par exemple, la pagination.

La pagination SQL utilise des fonctions de fenêtrage. Or, l'une d'elles, COUNT() OVER() n'est malheureusement pas supportée par H2. H2 est la base de données utilisées d'une part par nos tests d'intégration et d'autre part par les distributions de test/démo de Silverpeas (IzPack, Docker, ...). Pour information, ce système de base de données a été choisi parce qu'il est directement embarqué dans Wildfly et par conséquent nous évite de complexifier la mise en place des différents contextes de test avec un autre système de bases de données légers (Derby, Firebird, ...).

Il faudrait ici revoir le code dans DefaultJdbcSqlExecutor qui utilise la fonction de fenêtrage COUNT() OVER() dans le cas de la pagination. Une solution possible serait d'utiliser une sous-requête SELECT COUNT() FROM.

Ce problème concerne toutes les versions de Silverpeas >= 6.1

Actions

Formats disponibles : Atom PDF