I’'m having an issue using MySQL Cluster with Wildfire. The definitions of some of the tables use TEXT columns in the primary key, and the NDB storage engine does not allow this. Has anybody made this work, either by eliminating explicit primary key definitions for those tables that do this (NDB will create a hiden one anyway) or by redefining the TEXT types to, say, VARCHAR(2256) since TEXT is limited to 2256 bytes anyway?
Is there something I’'m missing that would prevent this from working?
Though I haven’‘t tried it, I think eliminating a field is not a good idea, but redefining TEXT to VARCHAR should work. There shouldn’‘t be any problem as long as you keep the fields and index names the same because there seems to be no SQL statements in Wildfire that check against schema definition and that only works on TEXT instead of VARCHAR. A minor effect could be on user messages. Using TEXT will store the messages as is, but VARCHAR will truncate the trailing spaces. I’'m not sure about other effects, but who cares? Using TEXT to store JIDs is common even in other XMPP servers, but again, who bothers about the spaces anyway?
Adding more fields for your own use like e.g. NDB hidden primary key, also shouldn’‘t impact the operation because Wildfire is not refering its fields via it’'s indices but via names. You have to be carefull anyway if you upgrade Wildfire because new releases might come with db upgrade scripts that would modify the database schema.
That’‘s my opinion. I’'m interested to know your findings.
I changed the creation script to use VARCHAR(2256), and so far it seems to be working. Of course, I haven’'t thoroughly tested anything yet, but I can at least send messages to other users.
I’‘ll post an update when I’'ve done some more testing.