Page 1 sur 1

Installation SQUASH 10.1.0 avec POSTGRESQL

Publié : dim. juin 29, 2025 2:27 pm
par lbenoit
J'ai installé Squash-TM 10.1.0 sous Linux avec une base de données POSTGRESL.

J'ai suivi les indications de la documentation pour l'installation.

J'ai un problème lors que j'affecte des cas de tests aux exigences. L'exigence ne s'affiche plus. J'obtiens l'erreur suivante :

Code : Tout sélectionner

	at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:526) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
	at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:423) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
	at org.hibernate.query.spi.AbstractSelectionQuery.uniqueResult(AbstractSelectionQuery.java:549) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
	at org.squashtest.tm.service.internal.display.requirements.RequirementPathFinderServiceImpl.requirementVersionQuery(RequirementPathFinderServiceImpl.java:82) ~[tm.service-10.1.0.RELEASE.jar!/:?]
	at org.squashtest.tm.service.internal.display.requirements.RequirementPathFinderServiceImpl.getPathFromFolder(RequirementPathFinderServiceImpl.java:68) ~[tm.service-10.1.0.RELEASE.jar!/:?]
	at org.squashtest.tm.service.internal.display.requirements.RequirementPathFinderServiceImpl.buildRequirementLinkPath(RequirementPathFinderServiceImpl.java:45) ~[tm.service-10.1.0.RELEASE.jar!/:?]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
	at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
	a
...

Caused by: org.postgresql.util.PSQLException: ERROR: function group_concat(character varying, unknown, smallint, unknown, unknown) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Position: 8
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733) ~[postgresql-42.7.5.jar!/:42.7.5]
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2420) ~[postgresql-42.7.5.jar!/:42.7.5]
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) ~[postgresql-42.7.5.jar!/:42.7.5]
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:517) ~[postgresql-42.7.5.jar!/:42.7.5]
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:434) ~[postgresql-42.7.5.jar!/:42.7.5]
J'ai vérifié la configuration, J'ai bien précisé le dialect pour Hibernate.

En revanche dans le code, j'ai trouvé des requêtes HSQL qui utilise la fonction group_concat

Code : package-info.java (org.squashtmtest.tm.service.repository.hibernate)
----

Code : Tout sélectionner

	@NamedQuery(name = "requirement.findReqFolderPathForToolTip", query = "select group_concat(requirementFolder.resource.name, 'order by', closure.depth, 'desc','"+" "+HibernatePathService.PATH_SEPARATOR+" "+"')"
		+ " from RequirementFolder requirementFolder,Requirement requirement2, RequirementPathEdge closure"
		+ " where closure.ancestorId = requirementFolder.id and closure.descendantId = requirement2.id and requirement2.id=:requirementId and closure.depth>0"
		+ " group by requirement2.id")
----

La fonction group_concat n'est pas connu au niveau de postgresql. C'est une fonction MySQl.

Comment pouvons-nous régler ce problème ?

Re: Installation SQUASH 10.1.0 avec POSTGRESQL

Publié : lun. juin 30, 2025 4:54 pm
par elebouvier
Bonjour,

Il semble que la fonction group_concat n'a pas été créée dans votre base postgreSQL. Pourtant elle est créée au démarrage dans le script d'installation : -- Changeset tm/tm.changelog-1.11.0.xml::tm-1.11.0.feature-3577-2::jsimon
-- create function to emulate group concat with separator

Pourriez-vous passer la requête suivante, elle permettra de savoir si la fonction group_concat a été crée dans votre base :

SELECT p.proname,
pg_roles.rolname as owner,
n.nspname as schema
FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
JOIN pg_roles ON p.proowner = pg_roles.oid
WHERE p.proname = 'group_concat';

Si cette fonction manque, il sera possible l'ajouter à la main, dont l’impact est à priori limité. L'absence de cette fonction pourrait venir du passage à postgreSQL 14 si vous êtes passé à pg14.

Cordialement,
Élise, Équipe Squash.

Re: Installation SQUASH 10.1.0 avec POSTGRESQL

Publié : ven. nov. 07, 2025 10:10 pm
par lbenoit
Bonjour,

Désolé pour le délai de mon retour. Je n'avais pas vu (ou notifié) votre réponse.

Voici le résultat de la requête :
proname | owner | schema
--------------+--------------+-----------
group_concat | adm_squashtm | squash-tm
(1 row)

La base de données a été directement montée en version 16.

En revanche, le fichier cité me semble être en version 1.11.0. Or, je suis en 10.1.0.

Que faut-il faire ? Recréer la fonction group_concat ? Réaliser une montée de version ?

Cordialement,
Lilian BENOIT.