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->db->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