[hooks/syncschema] only call "ALTER TABLE" once when changing a size constraint
Until now we would:
- remove the old size constraint from the in-memory schema
- call update_rdef_column which removes the size restriction from the
column's type
- add the new constraint object
- call update_rdef_column which adds the size restriction back
This breaks on SQL Server when the column is involved in an index (e.g.
as part of a multi-column unique constraint), because in the
intermediate stage the column's type is "nvarchar(max)", which is not
indexable.
Of course we must still detect the case where a size constraint is
really dropped and update the db schema accordingly.
Closes #5557633.
[MESSAGES CONTROL]
disable-msg = C0301
[VARIABLES]
# Enable / disable this checker
enable-variables = yes
additional-builtins = _, display_name
[BASIC]
required-attributes=
attr-rgx = (w|[a-z_][a-z0-9_]{2,30})
variable-rgx = (w|[a-z_][a-z0-9_]{2,30})$
argument-rgx = (w|[a-z_][a-z0-9_]{2,30})$
[TYPECHECK]
generated-members=debug,info,notice,warning,error,critical,exception