Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem in VIEW creation that was introduced by the generated columns feature. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9c795c4d2b042d2932774bd1274fa016 |
User & Date: | drh 2019-11-02 17:59:10.372 |
Context
2019-11-03
| ||
00:07 | The optimization of check-in [9b2879629c34fc0a] is incorrectly reasoned. The WHERE clause of the partial index might not be true if the table of the partial index is the right table of a left join. So disable the optimization in that case. Ticket [623eff57e76d45f6] (check-in: 3be19e1151 user: drh tags: trunk) | |
2019-11-02
| ||
17:59 | Fix a problem in VIEW creation that was introduced by the generated columns feature. (check-in: 9c795c4d2b user: drh tags: trunk) | |
13:45 | "STORED" is not actually a keyword. The parser looks for STORED as an ordinary identifier. (check-in: 167cd574d6 user: drh tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
2621 2622 2623 2624 2625 2626 2627 | SQLITE_AFF_NONE); } }else if( pSelTab ){ /* CREATE VIEW name AS... without an argument list. Construct ** the column names from the SELECT statement that defines the view. */ assert( pTable->aCol==0 ); | | > | 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 | SQLITE_AFF_NONE); } }else if( pSelTab ){ /* CREATE VIEW name AS... without an argument list. Construct ** the column names from the SELECT statement that defines the view. */ assert( pTable->aCol==0 ); pTable->nCol = pSelTab->nCol; pTable->aCol = pSelTab->aCol; pSelTab->nCol = 0; pSelTab->aCol = 0; assert( sqlite3SchemaMutexHeld(db, 0, pTable->pSchema) ); }else{ pTable->nCol = 0; nErr++; } pTable->nNVCol = pTable->nCol; sqlite3DeleteTable(db, pSelTab); sqlite3SelectDelete(db, pSel); EnableLookaside; #ifndef SQLITE_OMIT_ALTERTABLE pParse->eParseMode = eParseMode; #endif } else { |
︙ | ︙ |
Changes to test/e_expr.test.
︙ | ︙ | |||
1905 1906 1907 1908 1909 1910 1911 | } { do_catchsql_test e_expr-35.2.$tn $sql $M } # EVIDENCE-OF: R-18318-14995 The value of a subquery expression is the # first row of the result from the enclosed SELECT statement. # | < < < | 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 | } { do_catchsql_test e_expr-35.2.$tn $sql $M } # EVIDENCE-OF: R-18318-14995 The value of a subquery expression is the # first row of the result from the enclosed SELECT statement. # do_execsql_test e_expr-36.3.1 { CREATE TABLE t4(x, y); INSERT INTO t4 VALUES(1, 'one'); INSERT INTO t4 VALUES(2, 'two'); INSERT INTO t4 VALUES(3, 'three'); } {} |
︙ | ︙ |
Changes to test/trigger2.test.
︙ | ︙ | |||
748 749 750 751 752 753 754 755 756 | CREATE TRIGGER trig1 INSTEAD OF DELETE ON v3 BEGIN SELECT 1; END; DELETE FROM v3 WHERE a = 1; } } {} } ;# ifcapable view | > > > > > > > > > > > > > > > | | 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 | CREATE TRIGGER trig1 INSTEAD OF DELETE ON v3 BEGIN SELECT 1; END; DELETE FROM v3 WHERE a = 1; } } {} integrity_check trigger2-9.99 # 2019-11-02 Problem found by TH3, related to generated column support. db close sqlite3 db :memory: do_execsql_test trigger2-10.1 { CREATE TABLE t1(a,b,c,d); CREATE VIEW v2(a,b,c,d) AS SELECT * FROM t1; CREATE TRIGGER v2ins INSTEAD OF INSERT ON v2 BEGIN INSERT INTO t1(a,b,c,d) VALUES(new.a, new.b, new.c, new.d); END; INSERT INTO v2(a,d) VALUES(11,14); SELECT * FROM t1; } {11 {} {} 14} } ;# ifcapable view integrity_check trigger2-999 finish_test |