Title | P4DTI doesn't check MySQL configured for Unicode |
Status | closed |
Priority | essential |
Assigned user | Nick Barnes |
Organization | Ravenbrook |
Description | Bugzilla supports Unicode data, encoded as UTF-8 in MySQL, and since Bugzilla 2.22 new installations are always UTF-8 encoded. Since P4DTI 2.4.3 we replicate data as Unicode. However, it is possible to run Bugzilla in a non-Unicode mode (for instance, with legacy data from before Bugzilla 2.22). If MySQL is in that mode (e.g. if it has latin1 "character set" - i.e. encoding - on Bugzilla tables and columns) then Unicode replication will fail. The P4DTI should detect that mode and warn that Unicode replication will fail. |
Analysis | This is surprisingly hard (and in fact impossible with MySQL prior to 4.1, see job002084). There's no way of saying "show character set for longdescs.thetest" (for instance). Instead, we have to say "show create table longdescs" and parse the per-table default character set ("DEFAULT CHARSET latin1") and per-column specific character set ("`thetext` mediumtext character set latin1 NOT NULL") if present. |
How found | automated_test |
Evidence | I just know |
Observed in | 2.4.3 |
Introduced in | 2.4.3 |
Test procedure | test_p4dti.py unicode_lifecycle |
Created by | Nick Barnes |
Created on | 2009-04-14 13:02:43 |
Last modified by | Nick Barnes |
Last modified on | 2009-04-14 13:27:20 |
History | 2009-04-14 NB Created. |