Feature #11915
ouvertRequête SQL incorrecte pour H2
0%
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