Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a segfault caused by using the RAISE function incorrectly (library now returns an error instead of crashing). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ddf06db702761d663119d508afe21d7d |
User & Date: | dan 2018-12-20 15:04:38.546 |
Context
2018-12-20
| ||
17:32 | Fix a bug in the code that detects self-referencing rows as part of foreign key processing. Fix for [50d2a6c2]. (check-in: 16fff05347 user: dan tags: trunk) | |
15:04 | Fix a segfault caused by using the RAISE function incorrectly (library now returns an error instead of crashing). (check-in: ddf06db702 user: dan tags: trunk) | |
2018-12-18
| ||
20:31 | In defensive mode, do not allow shadow tables to be renamed using ALTER TABLE. (check-in: 23e200da5c user: dan tags: trunk) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
4741 4742 4743 4744 4745 4746 4747 | combinedFlags = pA->flags | pB->flags; if( combinedFlags & EP_IntValue ){ if( (pA->flags&pB->flags&EP_IntValue)!=0 && pA->u.iValue==pB->u.iValue ){ return 0; } return 2; } | | | 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 | combinedFlags = pA->flags | pB->flags; if( combinedFlags & EP_IntValue ){ if( (pA->flags&pB->flags&EP_IntValue)!=0 && pA->u.iValue==pB->u.iValue ){ return 0; } return 2; } if( pA->op!=pB->op || pA->op==TK_RAISE ){ if( pA->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA->pLeft,pB,iTab)<2 ){ return 1; } if( pB->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA,pB->pLeft,iTab)<2 ){ return 1; } return 2; |
︙ | ︙ |
Changes to test/triggerC.test.
︙ | ︙ | |||
1038 1039 1040 1041 1042 1043 1044 1045 | INSERT INTO x1 VALUES('go!'); } do_execsql_test 15.2.2 { SELECT * FROM x2; } {1 2 3 4} do_execsql_test 15.2.3 { SELECT * FROM """x2"""; } {3 11 x y} finish_test | > > > > > > > > > > > > > > > > | 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 | INSERT INTO x1 VALUES('go!'); } do_execsql_test 15.2.2 { SELECT * FROM x2; } {1 2 3 4} do_execsql_test 15.2.3 { SELECT * FROM """x2"""; } {3 11 x y} #------------------------------------------------------------------------- # At one point queries such as the following were causing segfaults. # do_catchsql_test 16.1 { SELECT raise(ABORT, 'msg') FROM sqlite_master UNION SELECT 1 ORDER BY raise(IGNORE); } {1 {1st ORDER BY term does not match any column in the result set}} do_catchsql_test 16.2 { SELECT count(*) FROM sqlite_master GROUP BY raise(IGNORE) HAVING raise(ABORT, 'msg'); } {1 {RAISE() may only be used within a trigger-program}} finish_test |