Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Draft PR exploring support for postgres 18+.
This should be strictly identical for mysql/sqlite.
There is a "nasty hack" that simply discards
db_indexparameters passed to case insensitive columns for postgres to maintain compatibility. It appears that significant code changes would be required for selecting field types based onif connection.vendor == "postgres". Given postgres' closest option that allows forlikes (>=pg14, rather than the current types which require >=pg18) and indexes is the extensioncitext, andcitexthas been deprecated in postgres and the specialised Django class (CIText) has been removed, it seems like immediately introducing technical debt.For the two columns I could find in
openedx-learningoredx-platformthat had case-insensitive indexes -oel_collections.Collectionandoel_tagging.Taxonomy- the first is just deleted straight after in a subsequent migration and I couldn't find anywhere where the index might actually add any value for the second. My confidence level is very low on that though.I couldn't find any mentions of
MultiCollationCharField/MultiCollationTextFieldoutside of these two projects on all of public Github. Obviously that doesn't mean people aren't using it but it's promising.Would fix #422