Limitation de la fonction group_concat dans une requête d'objet SELECT

Limitation de la fonction group_concat dans une requête d'objet SELECT
0
Tags: #<Tag:0x00007eff8dd38630>

Bonjour,
J’ai une requête d’objet SELECT qui fait des papillotes dans un bouillon (je sais, c’est mal).
Mon problème repose sur une limitation de la fonction goup_concat (MySQL) qui tronque à 1024 ma papillote.

La question ne porte pas sur la bonne manière de répondre mieux au besoin mais de savoir s’il est possible de configurer dans Simplicité un paramètre de session DB autrement qu’en faisant un “SET SESSION group_concat_max_len = xxx;” avant que le socle n’exécute la requête SELECT concernée…

Idéalement, ce paramétrage aurait une portée limitée au grant courant (qui n’a probablement pas de session BD propre) ou au pire globale.

Merci encore pour votre support.
Bruno

Non il n’existe pas de mécanisme niveau socle pour passer des commandes de ce genre à la base de données.

Mais j’imagine qu’il doit être possible de mettre ce setting globalement au niveau du paramétrage de la base de données, non ?

Bonjour David,
merci beaucoup pour ton retour rapide.
Je vais voir avec les DBA. En attendant, j’utilise la fonction update de Grant (https://docs.simplicite.io/4.0/javadoc/com/simplicite/util/Grant.html#update(java.lang.String)).
Bruno

Peut être mais fondamentalement les methodes d’accès à la base sont faite pour le SQL normalisé (select/update/insert/delete/truncate et les alter de tables et de colonne). Les settings utilisant une syntaxe propriétaire (ex: set ...) ne sont pas forcément supportés. En tout cas on ne teste pas ce genre de choses.

Pour les settings MySQL il vaut mieux setter les choses au niveau global (soit dans le my.ini/my.cnf traditionnel soit via des arguments au démarrage du serveur).

Oui, évidemment. On va regarder ça avec nos ingénieurs DevOps.
Cependant, je ne suis pas sûr de pouvoir faire changer cela (la BD est fournie comme un service et nous n’avons quasiment aucune marge de manœuvre “sous le capot”…
Merci encore pour ton support.
Bruno