Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix problems in the sqlite3expert.c code revealed by -fsanitize. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
7a93dd784bfdbf01927979a61643796e |
User & Date: | dan 2018-01-08 17:34:15.620 |
Context
2018-01-08
| ||
19:59 | Update the zipfile module so that it matches the documentation. (check-in: 7e7e472fa9 user: dan tags: trunk) | |
17:34 | Fix problems in the sqlite3expert.c code revealed by -fsanitize. (check-in: 7a93dd784b user: dan tags: trunk) | |
17:12 | Add an "ifcapable trace {}" block to a test in fkey1.test that uses SQL tracing. (check-in: 7182591d35 user: dan tags: trunk) | |
Changes
Changes to ext/expert/sqlite3expert.c.
︙ | ︙ | |||
491 492 493 494 495 496 497 | pScan->pOrder = pNew; n++; } } } } | | | 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 | pScan->pOrder = pNew; n++; } } } } pIdxInfo->estimatedCost = 1000000.0 / (n+1); return rc; } static int expertUpdate( sqlite3_vtab *pVtab, int nData, sqlite3_value **azData, |
︙ | ︙ | |||
750 751 752 753 754 755 756 | if( *pRc==SQLITE_OK ){ zAppend = sqlite3_vmprintf(zFmt, ap); if( zAppend ){ nAppend = STRLEN(zAppend); zRet = (char*)sqlite3_malloc(nIn + nAppend + 1); } if( zAppend && zRet ){ | | | 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 | if( *pRc==SQLITE_OK ){ zAppend = sqlite3_vmprintf(zFmt, ap); if( zAppend ){ nAppend = STRLEN(zAppend); zRet = (char*)sqlite3_malloc(nIn + nAppend + 1); } if( zAppend && zRet ){ if( nIn ) memcpy(zRet, zIn, nIn); memcpy(&zRet[nIn], zAppend, nAppend+1); }else{ sqlite3_free(zRet); zRet = 0; *pRc = SQLITE_NOMEM; } sqlite3_free(zAppend); |
︙ | ︙ | |||
904 905 906 907 908 909 910 | sqlite3 *dbm = p->dbm; int rc = SQLITE_OK; if( (pEq || pTail) && 0==idxFindCompatible(&rc, dbm, pScan, pEq, pTail) ){ IdxTable *pTab = pScan->pTab; char *zCols = 0; char *zIdx = 0; IdxConstraint *pCons; | | | 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 | sqlite3 *dbm = p->dbm; int rc = SQLITE_OK; if( (pEq || pTail) && 0==idxFindCompatible(&rc, dbm, pScan, pEq, pTail) ){ IdxTable *pTab = pScan->pTab; char *zCols = 0; char *zIdx = 0; IdxConstraint *pCons; unsigned int h = 0; const char *zFmt; for(pCons=pEq; pCons; pCons=pCons->pLink){ zCols = idxAppendColDefn(&rc, zCols, pTab, pCons); } for(pCons=pTail; pCons; pCons=pCons->pLink){ zCols = idxAppendColDefn(&rc, zCols, pTab, pCons); |
︙ | ︙ |