Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch apply-affinity-first Excluding Merge-Ins
This is equivalent to a diff from 3649a77b to 9ef69d18
2019-03-21
| ||
21:18 | Add an extra test for database corruption to defragmentPage(). (check-in: 80e951fc user: dan tags: trunk) | |
17:22 | Merge latest trunk changes with this branch. (check-in: 3196f5f4 user: dan tags: reuse-schema) | |
2019-03-20
| ||
20:27 | Experimental change to apply affinity before running CHECK constraints on an INSERT. Note that in the CHECK constraints, REAL affinity really is REAL affinity, and not numeric affinity. This causes failures in some tests that are assuming affinity is applied after CHECK constraints. (Leaf check-in: 9ef69d18 user: drh tags: apply-affinity-first) | |
18:22 | In the CLI, give better error messages if something goes wrong with the ".dbinfo" command. (check-in: 3649a77b user: drh tags: trunk) | |
16:58 | Fix a potential dangling pointer deference in an ALTER TABLE run on a schema that contains constructs of the form "PRIMARY KEY(column COLLATE collation)". (check-in: b9e2393c user: dan tags: trunk) | |
Changes to src/insert.c.
︙ | ︙ | |||
1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 | } /* Test all CHECK constraints */ #ifndef SQLITE_OMIT_CHECK if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){ ExprList *pCheck = pTab->pCheck; pParse->iSelfTab = -(regNewData+1); onError = overrideError!=OE_Default ? overrideError : OE_Abort; for(i=0; i<pCheck->nExpr; i++){ int allOk; Expr *pExpr = pCheck->a[i].pExpr; if( aiChng && !sqlite3ExprReferencesUpdatedColumn(pExpr, aiChng, pkChng) ){ /* The check constraints do not reference any of the columns being | > > > > > > > > > | 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 | } /* Test all CHECK constraints */ #ifndef SQLITE_OMIT_CHECK if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){ ExprList *pCheck = pTab->pCheck; VdbeOp *pOp; pParse->iSelfTab = -(regNewData+1); onError = overrideError!=OE_Default ? overrideError : OE_Abort; sqlite3TableAffinity(v, pTab, regNewData+1); pOp = sqlite3VdbeGetOp(v, -1); if( pOp->opcode==OP_Affinity && pOp->p4.z!=0 ){ const char *zAff = pOp->p4.z; for(i=0; zAff[i]; i++){ if( zAff[i]=='E' ) sqlite3VdbeAddOp1(v,OP_RealAffinity,regNewData+i+1); } } for(i=0; i<pCheck->nExpr; i++){ int allOk; Expr *pExpr = pCheck->a[i].pExpr; if( aiChng && !sqlite3ExprReferencesUpdatedColumn(pExpr, aiChng, pkChng) ){ /* The check constraints do not reference any of the columns being |
︙ | ︙ |