User tests: Successful: Unsuccessful:
Pull Request for Issue #42413.
On MySQL Galera replication clusters MEMORY tables are not supported, but MySQL returns an error only at the first write. If the table is empty the first write never happens and no error is returned at the ALTER TABLE instruction, but it will fail at the first write (i.e. editing an article). Proceed with the conversion to MEMORY only if the tables are not empty.
See linked issue. I have tested this on my Production environment.
Joomla returns the following error while editing an article:
Save failed with the following error: The table does not comply with the requirements by an external plugin.
Save operation should complete successfully.
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
Status | New | ⇒ | Pending |
Category | ⇒ | Administration com_finder |
Labels |
Added:
PR-5.0-dev
|
P.S
thanks for your 1st pr ?
from a pure SQL concept looks good. Could be condensed I think to a single query:
$db->setQuery('SELECT EXISTS (SELECT 1 FROM ' . $db->quoteName('#__finder_tokens' UNION ALL SELECT 1 FROM ' . $db->quoteName('#__finder_tokens_aggregate') . ')');
Alternately:
I"m not 100% sure of the Joomla structures however if doing individual tests before alter:
foreach (array($db->quoteName('#__finder_tokens), $db->quoteName('#__finder_tokens_aggregate')) as $tbl) {
$db->setQuery('SELECT EXISTS (SELECT 1 FROM ' . $tbl . ')');
if ($db->loadResult() === 0) {
continue;
}
$db->setQuery('ALTER TABLE ' . $tbl . ' ENGINE = MEMORY');
$db->execute();
}
Title |
|
This pull request has been automatically rebased to 5.2-dev.
Title |
|
i'm a newbie with MySQL Galera ..and even i cannot remember the MariaDB equivalent name
but sounds safe, on code review