Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch branch-3.3.6 Excluding Merge-Ins
This is equivalent to a diff from c11cb07e4b to 715cecb8c7
2009-09-03
| ||
19:43 | Fix a VDBE stack overflow issue with the UPDATE statement. (Leaf check-in: 715cecb8c7 user: drh tags: branch-3.3.6) | |
2006-06-08
| ||
15:28 | New shell command ".load" and the sqlite3_load_extension() API allow new SQL functions and collating sequences to be loaded at run-time from a DLL or shared library. (CVS 3207) (check-in: 4ca932d3ae user: drh tags: trunk) | |
2006-06-06
| ||
13:34 | Version 3.3.6 (CVS 3206) (check-in: c11cb07e4b user: drh tags: trunk) | |
12:38 | Changes in preparation for version 3.3.6. (CVS 3205) (check-in: b2e11e0290 user: drh tags: trunk) | |
Changes to src/update.c.
︙ | |||
86 87 88 89 90 91 92 93 94 95 96 97 98 99 | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | + | ** aXRef[i]==-1 if the i-th column is not changed. */ int chngRowid; /* True if the record number is being changed */ Expr *pRowidExpr = 0; /* Expression defining the new record number */ int openAll = 0; /* True if all indices need to be opened */ AuthContext sContext; /* The authorization context */ NameContext sNC; /* The name-context to resolve expressions in */ int iDb; /* Database containing the table being updated */ int regRowid; /* Memory holding rowid to be updated */ #ifndef SQLITE_OMIT_TRIGGER int isView; /* Trying to update a view */ int triggers_exist = 0; /* True if any row triggers exist */ #endif int newIdx = -1; /* index of trigger "new" temp table */ |
︙ | |||
302 303 304 305 306 307 308 | 303 304 305 306 307 308 309 310 311 312 313 314 315 316 | - | /* The top of the update loop for when there are triggers. */ addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, 0); if( !isView ){ sqlite3VdbeAddOp(v, OP_Dup, 0, 0); |
︙ | |||
391 392 393 394 395 396 397 | 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 | - + + + | ** the old data for each record to be updated because some columns ** might not change and we will need to copy the old value. ** Also, the old data is needed to delete the old index entires. ** So make the cursor point at the old record. */ if( !triggers_exist ){ addr = sqlite3VdbeAddOp(v, OP_FifoRead, 0, 0); |
︙ |
Added test/bb20090903.test.