Forum OpenACS Q&A: Base 36 vs base 62 in msg_id values

Posted by Jonathan Marsden on
The only complete solution I can see to the case (in)sensitivity issue would be to change the base that msg_id's are computed and displayed in from base 62 [0-9A-Za-z] to base 36 [0-9A-Z].

This would reduce the theoretical maximum bboard messages per ACS instance from 56800235584 to a mere 2176782336... but who has an ACS site that needs to store more than 2 billion bboard messages anyway??
I *know* ACS is/was designed for scalability, but surely allowing for 56 billion bboard msgs per ACS instance was slight overkill!?

I think that moving to base 36 for new installations (hard to convert existing ones well, links would get broken) might make some sense.

Switching to base 36 for a new installation would be a trivial patch, just deleting a few lines from proc increment_char_digit would do it.

If anyone really needs to handle tens of billions of bboard messages, and avoid this case issue, moving to a 7 digit (base 36) msg_id would be one way to do so!