From: jor...@google.com [mailto:jor...@google.com] On Behalf Of Jeremy Orlow
Sent: Thursday, August 12, 2010 3:36 AM

>> On Thu, Aug 12, 2010 at 11:19 AM, Jonas Sicking <jo...@sicking.cc> wrote:
>> On Wed, Aug 11, 2010 at 11:28 PM, Pablo Castro
>> <pablo.cas...@microsoft.com> wrote:
>> > We had some discussions about collation algorithms and such in the past, 
>> > but I don't think we have settled on the language aspect of it. In order 
>> > to have stores and indexes sort character-based keys in a way that is 
>> > consistent with users' expectations we'll have to take indication in the 
>> > API of what language we should use to collate strings.
>> >
>> > Trying to take a minimalist approach, we could add an optional parameter 
>> > on the database open call that indicates the language to use (e.g. "en" or 
>> > "en-UK", etc.). If the language is not specified and the database does not 
>> > exist, then we can use the current browser/OS language to create the 
>> > database. If not specified and database already exists, then use the one 
>> > it's already there (this accommodates the fact that a user may be able to 
>> > change their default language in the browser/OS after the database has 
>> > been created using the default). If the language is specified and the 
>> > database already exists and the specified language is not the one the 
>> > database has then we'll throw an exception (same behavior as with 
>> > "description", although we have that one in flight right now as well).
>> >
>> > We should probably also add a read-only attribute to the database object 
>> > that exposes the language.
>> >
>> > If this works for folks I can write a proposal for the specific changes to 
>> > the spec.
>> If we make it part of the database open call, then that makes it
>> impossible to change the sorting order of an existing database, no?
>> This seems like it could be a problem. I.e. it quite possible that an
>> application will want to allow the user to change the sorting
>> language, for example when changing the language of the UI.
>>
>> One solution would be to allow language to be set as part of the
>> setVersion call.
>>
>> Whether it's per-database or more fine grained I think it absolutely must be 
>> part of setVersion.  Changing the language will be a very heavyweight 
>> operation that'll require a similar level of isolation to "schema" changes 
>> of the database.  (Not sure how I missed this point of Pablo's original 
>> email.)

Yes, changing the collection would effectively mean re-creating all the stores 
and indexes. At a very minimum it needs to be a setVersion thing. I also don't 
think it would be too crazy to not support changing collations period. In the 
unusual case where a user must absolutely do this, it can be done by creating a 
separate database and copying the data over using the APIs.



Reply via email to