Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Defer deleting subqueries in the compound-SELECT code generator until the end of code generation, in order to avoid deleting expressions out from under the aggregation function sanity checking assert()s that occur near the end of SELECT code generation. This fixes the assertion fault described by forum post cfcb4b461d. The problem goes back to check-in [6e6b3729e0549de0]. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
600f1991e5c0a5d89cd8776a157b6fd7 |
User & Date: | drh 2021-08-21 16:42:58 |
Original Comment: | Defer deleting subqueries in the compound-SELECT code generator until the end of code generation, in order to avoid deleting expressions out from under the aggregation function sanity checking assert()s that occur near the end of SELECT code generation. This fixes the assertion fault described by forum post cfcb4b461d. |
Context
2021-08-21
| ||
20:54 | Allow typeless columns in STRICT tables that are able to accept any data type. (check-in: 1e2dcc2d user: drh tags: trunk) | |
16:42 | Defer deleting subqueries in the compound-SELECT code generator until the end of code generation, in order to avoid deleting expressions out from under the aggregation function sanity checking assert()s that occur near the end of SELECT code generation. This fixes the assertion fault described by forum post cfcb4b461d. The problem goes back to check-in [6e6b3729e0549de0]. (check-in: 600f1991 user: drh tags: trunk) | |
2021-08-20
| ||
19:51 | Improvement to error handling in Lemon. No impact on SQLite. Forum post 2f468f43cbc48d7f (check-in: 18cc2f85 user: drh tags: trunk) | |
Changes
Changes to src/select.c.
︙ | ︙ | |||
3011 3012 3013 3014 3015 3016 3017 | } sqlite3KeyInfoUnref(pKeyInfo); } multi_select_end: pDest->iSdst = dest.iSdst; pDest->nSdst = dest.nSdst; | > > | > > | 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 | } sqlite3KeyInfoUnref(pKeyInfo); } multi_select_end: pDest->iSdst = dest.iSdst; pDest->nSdst = dest.nSdst; if( pDelete ){ sqlite3ParserAddCleanup(pParse, (void(*)(sqlite3*,void*))sqlite3SelectDelete, pDelete); } return rc; } #endif /* SQLITE_OMIT_COMPOUND_SELECT */ /* ** Error message for when two or more terms of a compound select have different ** size result sets. |
︙ | ︙ |
Changes to test/minmax.test.
︙ | ︙ | |||
642 643 644 645 646 647 648 | SELECT min(a) FROM t14 WHERE b='2' AND a>'50'; } {100} do_execsql_test 14.2 { CREATE INDEX t14ba ON t14(b,a); SELECT min(a) FROM t14 WHERE b='2' AND a>'50'; } {100} | > | > > > > > > > > > | 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 | SELECT min(a) FROM t14 WHERE b='2' AND a>'50'; } {100} do_execsql_test 14.2 { CREATE INDEX t14ba ON t14(b,a); SELECT min(a) FROM t14 WHERE b='2' AND a>'50'; } {100} # 2021-08-21. https://sqlite.org/forum/forumpost/cfcb4b461d # reset_db do_execsql_test 15.1 { CREATE TABLE t1(a); CREATE TABLE t2(b); CREATE TABLE t3(c); INSERT INTO t1 VALUES(0); INSERT INTO t2 VALUES(5); SELECT MIN((SELECT b FROM t2 UNION SELECT x FROM (SELECT x FROM (SELECT 1 AS x WHERE t1.a=1) UNION ALL SELECT c FROM t3))) FROM t1; } {5} finish_test |