Replace MySQL-specific GROUP_CONCAT configuration
>>> [!note] Migrated issue <!-- Drupal.org comment --> <!-- Migrated from issue #3535175. --> Reported by: [alorenc](https://www.drupal.org/user/3603980) Related to !36 >>> <h3 id="summary-problem-motivation">Problem/Motivation</h3> <p>The BabelService currently uses a MySQL-specific SQL command</p> <pre>$this-&gt;db-&gt;query("SET SESSION group_concat_max_len = 1000000;");</pre><p>It violates Drupal's database abstraction principles.</p> <p>Apart from that using very long IDs in UI and exported files, composed by concatenating the plugin ID and the translation ID looks bad.</p> <h3 id="summary-proposed-resolution">Proposed resolution</h3> <ul> <li><code>TranslationTypePluginInterface::getStrings()</code> to return array to be keyed by hash instead of long concatenated list of plugin:id.</li> <li>Use the hash as row ID (data-babel-row) in form and</li> <li>Use the hash as translation ID in spreadsheet.</li> <li>On retrieving and saving get the plugins and their translation IDs from the tables.</li> </ul> <h3 id="summary-remaining-tasks">Remaining tasks</h3> <p>None.</p> <h3 id="summary-ui-changes">User interface changes</h3> <p>None.</p> <h3 id="summary-api-changes">API changes</h3> <p>None.</p> <h3 id="summary-data-model-changes">Data model changes</h3> <p><code>TranslationTypePluginInterface::getStrings()</code> to return array to be keyed by hash instead of long concatenated list of plugin:id</p>
issue