Use BLOB instead of TEXT on mysql in stanza storage

Mysql 'utf8' do not support 4-bytes UTF8 chars.
Characters like 'KISS MARK' (U+1F48B) causes mysql
to cut the string at that point.
There is utf8mb4 encoding available on newer mysql
versions that do support 4-bytes utf8. But for storing
stanzas, that doesn't need to be indexed or searched or
inspected in any way,  it was easier to use BLOB
(the bytes stored are utf8 encoded anyway, like all XMPP),
and avoids the need to redefine indexes (as allowed size
is shorter on utf8mb4) or having mixed utf8 and utf8mb4
encodings on the same table.
This commit is contained in:
Pablo Polvorin 2013-11-13 14:30:29 -03:00 committed by Christophe Romain
parent e3005f68e7
commit aaa718741e
1 changed files with 1 additions and 1 deletions

View File

@ -77,7 +77,7 @@ CREATE INDEX i_sr_user_grp ON sr_user(grp);
CREATE TABLE spool (
username varchar(250) NOT NULL,
xml text NOT NULL,
xml BLOB NOT NULL,
seq BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB CHARACTER SET utf8;