new xmldb_index('contextid-lowerboundary-letter'.....
...in the code, seems to end up as something like, 'mdl_gradlett_conlowlet_uix' in the database. I'm a bit confused about where this occurs.
IIRC it is completely under the control of the database driver. Presumably because of DB specific restrictions.
edit: Don't know how accurate/up to date this is, but see Development:XMLDB_key_and_index_naming and sql_generator::getNameForObject.
It's really hard to debug upgrade problems with duplicate indexes and stuff if you're not sure you've got the right one. Thanks
I suppose its this part which is difficult and looks like we need to do it to fit into the character limits on various dbs:
columnames_abbreviated will be an abbreviated representation of the columns used by the object (index, key, sequence) generated by the concatenation of the first 3 chars of each field. For example, one index over the "name, level, context" fields be converted to the "namlevcon" abbreviation.
[...]
If any of the calculated names excess the infamous 30cc. the name will be reduced by removing characters from the "columnames_abbreviated" part until if fits completely.