Thanks for the tip. :) I'm happy to just use utf8_unicode_ci if it can do what utf8_general_ci, and utf8_bin cannot.
Cheers On Jan 31, 5:38 am, Nick Chistyakov <[email protected]> wrote: > Setting utf8_bin as a default collation is not a good solution. > It is better to have an ability to specify it like in MySQL: > > in table definition > in column definition > in queries > (in database definition???) > > So it might be better for Mister Gibson to use migrations with custom > queries to > specify the collations where they are needed. > > ------------- > By the way - > I've recently had a lot of that collation things (in java project with > hibernate as an ORM). > And you know what ? Also with German language :))) > > I had to set character set to utf8 and collation to utf8_bin (because it > makes difference > between o and ö symbols for example when sorting or search is involved). > > BUT!! this utf8_bin is not good when you have a list of results sorted by > the field where it is specified. > It puts all symbols with umlaut to the and of the list. For example > > create table foo ( > .... > name varchar(255) character set utf8 collate utf8_bin, > ... > ) ...; > > select * from foo order by name; > > Name > ========== > abc > olga > zero > xxx > ösomething <===!!! > > (My customer didn't like it at all. And now I have to create a custom > collation) > > to have it sorted in a way that was needed: > > Name > ========== > abc > olga > ösomething <===!!! > zero > xxx > > I would have to write a query with other collation specified: > select * from foo order by name collate utf_unicode_ci; > > It is even possible to specify the collations in two places: > select * from foo where name like "ö%" collate utf8_bin order by name > collate utf_unicode_ci; > > Would be great if dm-* would allow it :) > > Best regards, > Nick > > On Sat, Jan 31, 2009 at 7:49 AM, Dan Kubb (dkubb) <[email protected]>wrote: > > > > > Mister, > > > > I may be mistaken, but I find I'll have to set some low level mysql > > > table-level settings. Unfortunately, the current property list for a > > > table doesn't appear to support the following: > > > > ENGINE = InnoDB (or does dm fake transaction support?) Just don't want > > > to be tripping on toes here. > > > > CHARACTER SET seems its utf8 by default, but: > > > COLLATE I'll need to set to 'utf8_bin' (or it messes up some german > > > strings) *prior* to adding string columns. > > > Greg Campbell committed some fixes in dm-more that will make it into > > the next gem release: > > >http://github.com/datamapper/dm-more/commit/ba9e29e13ffa506978530b729... > > > NOTE: To use edge dm-more, you'll also need the edge versions of dm- > > core, DO, and extlib. > > > The tables will all be created with InnoDB. The character set and > > collation are determined by your connection settings. With do_mysql I > > believe you can specify the :encoding option when setting up your > > connection, but I do not think there is a way to specify the collation > > yet. > > > You may want to look at MySQL's docs to see if there's a way to > > configure the default collation in the my.cnf. I'm sure there is, > > I've never found anything I wasn't able to configure that way. > > > > AVG_ROW_LENGTH, and MAX_ROWS I'll have to set on large deployments or > > > I'll run into a file size limitation. > > > DM and DO don't have ways to configure these options. For these you > > will need to consult the MySQL config docs. > > > -- > > > Dan > > (dkubb) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/datamapper?hl=en -~----------~----~----~----~------~----~------~--~---
