Opened 13 months ago
Last modified 12 months ago
#20634 new enhancement
dbDelta is unforgiving about field declarations
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Database | Version: | 1.5 |
| Severity: | minor | Keywords: | has-patch |
| Cc: |
Description
the variable type is case sensitive:
int(22) != INT(22)
the mysql type BOOL or BOOLEAN comes back from the db as tinyint(1):
tinyint(1) != BOOLEAN
Not a huge issue, just annoying. Makes dbDelta fire off unnecessary sql.
Attachments (3)
Change History (8)
SidHarrell — 13 months ago
comment:1
SidHarrell — 13 months ago
SidHarrell — 13 months ago
comment:2
SidHarrell — 13 months ago
I fixed that second patch to allow for single or double spaces between PRIMARY KEY and the ( so
PRIMARY KEY (
will work, but not break backwards compatibility with
PRIMARY KEY (
SidHarrell — 13 months ago
+1 on the general idea.
Note that patch names should generally contain the ticket number, instead of some other arbitrary number.
Also, it's not clear which patches are meant to be final and which are just intermediary.
comment:4
SidHarrell — 13 months ago
Sorry about that. I'm new to the whole process.
upgrade_1589.patch (I was referring to the file and line#, sorry) is the patch for the first issue, to compare do a case insensitive comparison of fieldnames and convert the synonyms for boolean to tinyint(1).
upgrade_1651.patch breaks backwards compatibility, so ignore that one.
upgrade_1571.patch allows for single or double spaces after PRIMARY KEY
Thanks!

Also annoying is the fact that in our schema, we have to put 2 spaces in between PRIMARY KEY and the (:
This one is more problematic, since the core schema is using the 2 space rule, which would be easy enough to fix with a search and replace, but the patch I have for it would also break every plugin out there that uses the 2 space rule.