[patch] model.py/save(): INSERT INTO ticket_custom actually never called
|Reported by:||lostpoint||Owned by:||rjollos|
Description (last modified by rjollos)
cursor.execute('UPDATE ticket_custom SET value=%s WHERE ticket=%s AND name=%s', (new_value, n, field)) # refresh the changetime to prevent concurrent edits cursor.execute('UPDATE ticket SET changetime=%s WHERE id=%s', (when_ts, n)) if not cursor.rowcount: cursor.execute('INSERT INTO ticket_custom (ticket, name, value) VALUES (%s, %s, %s)', (n, field, new_value))
Since there is UPDATE ticket" between "UPDATE ticket_custom and if not cursor.rowcount, INSERT INTO ticket_custom is actually never called, because UPDATE ticket is always OK, no matter if UPDATE ticket_custom completed successfully or there is no such record.
Got this issue on a legacy database where tickets do not have corresponding ticket_custom values for blockedby and blocked.
I did a patch for this issue, you just have to move UPDATE ticket below if not cursor.rowcount - INSERT INTO ticket custom block.
Change History (5)
Changed 3 years ago by lostpoint
comment:1 Changed 3 years ago by rjollos
- Description modified (diff)
- Status changed from new to accepted
comment:3 Changed 8 weeks ago by rjollos
- Resolution set to fixed
- Status changed from assigned to closed