SQLite

View Ticket
Login
2018-12-07
02:01
Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: 65aafb55 user: drh tags: branch-3.26)
01:56 Fixed ticket [f09fcd17]: Assertion fault when window functions are used. plus 5 other changes (artifact: d07f783f user: drh)
01:56
Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: db5ed226 user: drh tags: trunk)
2018-12-06
19:15
Simplify the query flattener so that it does not duplicate the WHERE clause of subquery that is being incorporated into the outer query - copies it directly. This is more efficient. And it also fixes the specific test case show for ticket [f09fcd17810f65f71789525] but it does not resolve the more general problem that sqlite3ExprDup() does not correctly duplicate expressions that contain subqueries with window functions. (check-in: f1b18d44 user: drh tags: ticket-f09fcd17810f)
17:17 New ticket [f09fcd17] Assertion fault when window functions are used.. (artifact: f0910878 user: drh)

Ticket Hash: f09fcd17810f65f71789525680051d11f5058953
Title: Assertion fault when window functions are used.
Status: Fixed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Unknown Resolution: Fixed
Last Modified: 2018-12-07 01:56:46
Version Found In: 3.26.0
User Comments:
drh added on 2018-12-06 17:17:39:

The following SQL leads to an assertion fault.

SELECT * FROM(
    SELECT * FROM (SELECT 1 AS c) WHERE c IN (
        SELECT (row_number() OVER()) FROM (VALUES (0))
    )
);

This problem has existed since window functions were added in 3.25.0. Incorrect bytecode is being generated for the row_number() function.

This problem was originally reported on the mailing list Gene Sacky.