View Ticket
21:56 Fixed ticket [8c63ff0e]: Incorrect query result on a UNION ALL plus 6 other changes (artifact: 45daabfe user: drh)
Do not allow temporary registers to be in use across an OP_Yield within a co-routine. Fix for ticket [8c63ff0eca81a9132d8]. (check-in: 97a8c973 user: drh tags: trunk)
Make sure temporary registers used within a co-routine are not also used outside of that co-routine, in order to prevent concurrent use of the same register for two different things. Ticket [8c63ff0eca81a9132d8] (Closed-Leaf check-in: cc5eda54 user: drh tags: tkt-8c63ff0eca)
18:46 Add attachment b2.txt to ticket [8c63ff0e] (artifact: dc9c8fcf user: drh)
18:46 New ticket [8c63ff0e] Incorrect query result on a UNION ALL. (artifact: d0eedcee user: drh)

Ticket Hash: 8c63ff0eca81a9132d8d67b31cd6ae9712a2cc6f
Title: Incorrect query result on a UNION ALL
Status: Fixed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2014-02-25 21:56:00
Version Found In:
User Comments:
drh added on 2014-02-25 18:46:01:

Temp registers can sometimes be used in concurrent co-routines, resulting in a incorrect answer. The attached script demonstrations one manifestation of this. The attachment fails with any check-in after the introduction of the NGQP. But the register allocation problem predates that change. The cut-over of the NGQP only makes the attached test case work. Probably other test cases can be made to fail for versions prior to the NGQP.