View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0007084 | OXID eShop (all versions) | 4.06. Language and translations | public | 2020-02-06 12:27 | 2020-11-11 10:55 |
Reporter | Helmut L. | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 6.1.5 | ||||
Target Version | 6.2.3 | Fixed in Version | 6.2.3 | ||
Summary | 0007084: OXID in _set tables has wrong collation | ||||
Description | In the main tables the OXID column is always created with "CHARACTER SET latin1 COLLATE latin1_general_ci", but in the _set tables the OXID column is created without a specified character set and collation, thus using the default of the table which is normally utf8. This will result in having a latin1 column compared with a utf8 column in queries, which causes MySQL to convert the value from one of the columns to the charset of the other column. For smaller tables this might not be a big performance problem, but for big tables it will definitely slow down the queries. | ||||
Steps To Reproduce | Add languages in the admin until the _set tables are created. | ||||
Additional Information | The corresponding code is in /vendor/oxid-esales/oxideshop-ce/source/Core/DbMetaDataHandler.php, line 223 | ||||
Tags | No tags attached. | ||||
Theme | Not defined | ||||
Browser | Not defined | ||||
PHP Version | Not defined | ||||
Database Version | Not defined | ||||
|
Reproduced. 1. edit config.inc.php and add this command: $this->iLangPerTable = 2; 2. goto admin, create one new language 3. compare oxarticles.oxid with oxarticles_set1.oxid. The field oxid from oxarticles has the collation latin1_general_ci, whereby the field oxid from oxarticles_set1 is utf8_general_ci. -MK |