Ah, that makes sense (I didn't realise it was required, even though I tried it that way during testing).

I've opted for a new named feature, `requires_literal_defaults`, and then a couple of new lines of code in `column_sql` and `alter_field`, along with a backend-specific `prepare_default` function to correctly escape/quote them.