v1.6.17
Two-state columns are stored as tinyint(1), not enum('0','1') — the plugin
half of fogproject ADR 0028.
An integer written to an ENUM is a member index, not a value, so
enum('0','1') is off by one: 1 selects the member '0' — FALSE — and 0 is
the error value STRICT_TRANS_TABLES refuses. Ten columns change type:
| Table | Columns |
|---|---|
LDAPServers |
lsAllowAPI, lsDisplayNameEnabled, lsIsLDAPs, lsUseGroupMatch |
OIDCProviders |
opAllowAPI, opAutoRedirect, opEnabled, opJITProvision, opSingleLogout |
location |
lTftpEnabled |
Converted through Schema::enumToTinyint(), added by
FOGProject/fogproject#1364 — this release requires a core carrying that
helper. A direct ALTER ... MODIFY TINYINT(1) on an ENUM converts by index
and would silently switch on every flag in the table; the helper converts by
label and preserves nullability and defaults.
These fields now come back as the integer 1 rather than the string "1", in
REST payloads included.
PR: #27