mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Omit some extra code from non-SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds.
FossilOrigin-Name: 72be33f9c84de3ec4afc40549482417456ca82c1d16b473dc034b144055271e5
This commit is contained in:
24
manifest
24
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Add\sfurther\stests\sfor\sthe\scode\son\sthis\sbranch.
|
C Omit\ssome\sextra\scode\sfrom\snon-SQLITE_ENABLE_UPDATE_DELETE_LIMIT\sbuilds.
|
||||||
D 2017-11-10T17:47:54.147
|
D 2017-11-10T20:13:14.097
|
||||||
F Makefile.in b142eb20482922153ebc77b261cdfd0a560ed05a81e9f6d9a2b0e8192922a1d2
|
F Makefile.in b142eb20482922153ebc77b261cdfd0a560ed05a81e9f6d9a2b0e8192922a1d2
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc a55372a22454e742ba7c8f6edf05b83213ec01125166ad7dcee0567e2f7fc81b
|
F Makefile.msc a55372a22454e742ba7c8f6edf05b83213ec01125166ad7dcee0567e2f7fc81b
|
||||||
@@ -422,10 +422,10 @@ F src/ctime.c ff1be3eed7bdd75aaca61ca8dc848f7c9f850ef2fb9cb56f2734e922a098f9c0
|
|||||||
F src/date.c 48f743d88bbe88f848532d333cca84f26e52a4f217e86f86be7fc1b919c33d74
|
F src/date.c 48f743d88bbe88f848532d333cca84f26e52a4f217e86f86be7fc1b919c33d74
|
||||||
F src/dbpage.c 432f46fb47c99ae1f0e2863fe595038a6f9d3b59f4a3dabe5f86ec2a88758fde
|
F src/dbpage.c 432f46fb47c99ae1f0e2863fe595038a6f9d3b59f4a3dabe5f86ec2a88758fde
|
||||||
F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
|
F src/dbstat.c 7a4ba8518b6369ef3600c49cf9c918ad979acba610b2aebef1b656d649b96720
|
||||||
F src/delete.c 2b9f2d34c9420cbe6d83e99d08d735d8ba6b70729123b8c50909a7fa74a048d3
|
F src/delete.c f97cc2a9a30b4119ec5ed0da4e41335060cbb8510a5f1a756be48c065cb824f0
|
||||||
F src/expr.c 0016b95aed1df47ebc0eb7415bd621841d72dbffd3bfb62210e50e71d83b4691
|
F src/expr.c 0016b95aed1df47ebc0eb7415bd621841d72dbffd3bfb62210e50e71d83b4691
|
||||||
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
|
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
|
||||||
F src/fkey.c 5ff2c895fe087756d8085dc1a9bc229b5670e2a65c3929dd87c71e43649af333
|
F src/fkey.c 821f70b6c43ba4542ffb5fdf11d3ac5f79e4cbae4750ee3de379afbc5e1f7781
|
||||||
F src/func.c 0fb9a2d678d3c8aba89b46468b309cd7e8fa9806a369a30aa89024660845bb13
|
F src/func.c 0fb9a2d678d3c8aba89b46468b309cd7e8fa9806a369a30aa89024660845bb13
|
||||||
F src/global.c ac3094f1dc59fbeb919aef7cc0cc827a8459d1fb1adb7972ef75bd9e0c10b75b
|
F src/global.c ac3094f1dc59fbeb919aef7cc0cc827a8459d1fb1adb7972ef75bd9e0c10b75b
|
||||||
F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a
|
F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a
|
||||||
@@ -459,7 +459,7 @@ F src/os_win.c 6892c3ff23b7886577e47f13d827ca220c0831bae3ce00eea8c258352692f8c6
|
|||||||
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
|
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
|
||||||
F src/pager.c 07cf850241667874fcce9d7d924c814305e499b26c804322e2261247b5921903
|
F src/pager.c 07cf850241667874fcce9d7d924c814305e499b26c804322e2261247b5921903
|
||||||
F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
|
F src/pager.h 581698f2177e8bd4008fe4760898ce20b6133d1df22139b9101b5155f900df7a
|
||||||
F src/parse.y 49eb13a590f88a03e81f1bc8df0634e56598ebd8d76d38dda24ba9edd7f92194
|
F src/parse.y f5f02ef39444982af36545bd52ae2921fc4ba1bac24d9b11efd8ec1f52c5b4dc
|
||||||
F src/pcache.c 7ae91a4557a43d77d449accbfdc68846e6516f8e2eda46e8bbe4536fb669b201
|
F src/pcache.c 7ae91a4557a43d77d449accbfdc68846e6516f8e2eda46e8bbe4536fb669b201
|
||||||
F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
|
F src/pcache.h 072f94d29281cffd99e46c1539849f248c4b56ae7684c1f36626797fee375170
|
||||||
F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
|
F src/pcache1.c 716975564c15eb6679e97f734cec1bfd6c16ac3d4010f05f1f8e509fc7d19880
|
||||||
@@ -468,14 +468,14 @@ F src/pragma.h bb83728944b42f6d409c77f5838a8edbdb0fe83046c5496ffc9602b40340a324
|
|||||||
F src/prepare.c 7cf451f903ad92a14e22de415a13e7a7d30f1bd23b3d21eeb0dc7264723244c5
|
F src/prepare.c 7cf451f903ad92a14e22de415a13e7a7d30f1bd23b3d21eeb0dc7264723244c5
|
||||||
F src/printf.c 40aee47ae9be4bd3dbdc8968bd07fddc027be8edec8daddf24d3391d36698a1c
|
F src/printf.c 40aee47ae9be4bd3dbdc8968bd07fddc027be8edec8daddf24d3391d36698a1c
|
||||||
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
|
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
|
||||||
F src/resolve.c 704978e5aabb9f524789e3b53016b4068a4e64c669c0f8ff025d2b23b95d62b5
|
F src/resolve.c 5b1e89ba279f4a4ab2f0975a7100d75be71e1a43a2df75a9c909d45bdd18c6ed
|
||||||
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
|
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
|
||||||
F src/select.c 660ef7977841fb462f24c8561e4212615bb6e5c9835fd3556257ce8316c50fee
|
F src/select.c 660ef7977841fb462f24c8561e4212615bb6e5c9835fd3556257ce8316c50fee
|
||||||
F src/shell.c.in 08cbffc31900359fea85896342a46147e9772c370d8a5079b7be26e3a1f50e8a
|
F src/shell.c.in 08cbffc31900359fea85896342a46147e9772c370d8a5079b7be26e3a1f50e8a
|
||||||
F src/sqlite.h.in 6d96f09aac30a030c7674a47659d8156263d2ccad1aa5dae23a723f7166a0c37
|
F src/sqlite.h.in 6d96f09aac30a030c7674a47659d8156263d2ccad1aa5dae23a723f7166a0c37
|
||||||
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
||||||
F src/sqlite3ext.h c02d628cca67f3889c689d82d25c3eb45e2c155db08e4c6089b5840d64687d34
|
F src/sqlite3ext.h c02d628cca67f3889c689d82d25c3eb45e2c155db08e4c6089b5840d64687d34
|
||||||
F src/sqliteInt.h 821479be791acfdb63177b21a491e604526191c1630d1d65d7a4a7c65d203c83
|
F src/sqliteInt.h abd4e64bc72906449d801d0e211265525239bc021bd9b7a72143c281fc24fa03
|
||||||
F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
|
F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
|
||||||
F src/status.c 9737ed017279a9e0c5da748701c3c7bf1e8ae0dae459aad20dd64fcff97a7e35
|
F src/status.c 9737ed017279a9e0c5da748701c3c7bf1e8ae0dae459aad20dd64fcff97a7e35
|
||||||
F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
|
F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
|
||||||
@@ -534,8 +534,8 @@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
|
|||||||
F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
|
F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
|
||||||
F src/tokenize.c 1003d6d90c6783206c711f0a9397656fa5b055209f4d092caa43bb3bf5215db5
|
F src/tokenize.c 1003d6d90c6783206c711f0a9397656fa5b055209f4d092caa43bb3bf5215db5
|
||||||
F src/treeview.c 2ee4a5dada213d5ab08a742af5c876cee6f1aaae65f10a61923f3fb63846afef
|
F src/treeview.c 2ee4a5dada213d5ab08a742af5c876cee6f1aaae65f10a61923f3fb63846afef
|
||||||
F src/trigger.c 48e0f7ed6749ce4d50a695e09e20ce9cf84ecabf2691852c965a51e0b620eccc
|
F src/trigger.c 929b12bb5f9ab3b10c589f71fa176effe6ea8bddc9eb1bbd2439755fa0acdfdf
|
||||||
F src/update.c 5123fcb4aa98a705ced2acb172c1761a570d142d77901b4f4ce38acb191ef8ed
|
F src/update.c 2e7ef3839eb620e9140a41bbfd05e29d7d216441c5d97221b75635dea4e49672
|
||||||
F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
|
F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
|
||||||
F src/util.c d01fa6f45bfad3b65fb2490513aa2e0676412c61b4b094340b513cf72c3704a4
|
F src/util.c d01fa6f45bfad3b65fb2490513aa2e0676412c61b4b094340b513cf72c3704a4
|
||||||
F src/vacuum.c 90839322fd5f00df9617eb21b68beda9b6e2a2937576b0d65985e4aeb1c53739
|
F src/vacuum.c 90839322fd5f00df9617eb21b68beda9b6e2a2937576b0d65985e4aeb1c53739
|
||||||
@@ -1675,7 +1675,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 09f94c2c8199b0d23a45cc062ca9561f9e5ddfcba117100e41889ce199d21bdb
|
P f8c4e33f4813e0c909064406b5cc17e2d465d8a48a50ede1d356b39479d3d669
|
||||||
R 276fb9c7ab900388b15c7da93d892ba2
|
R 1176f1b5b2e02ce4a3ab41b0af2d65f4
|
||||||
U dan
|
U dan
|
||||||
Z 620b60e1c2be9813cc742e8964032235
|
Z f8079371239b2151fe43a05b53b9cf38
|
||||||
|
@@ -1 +1 @@
|
|||||||
f8c4e33f4813e0c909064406b5cc17e2d465d8a48a50ede1d356b39479d3d669
|
72be33f9c84de3ec4afc40549482417456ca82c1d16b473dc034b144055271e5
|
10
src/delete.c
10
src/delete.c
@@ -224,13 +224,13 @@ Expr *sqlite3LimitWhere(
|
|||||||
** \________/ \________________/
|
** \________/ \________________/
|
||||||
** pTabList pWhere
|
** pTabList pWhere
|
||||||
*/
|
*/
|
||||||
void sqlite3DeleteFromLimit(
|
void sqlite3DeleteFrom(
|
||||||
Parse *pParse, /* The parser context */
|
Parse *pParse, /* The parser context */
|
||||||
SrcList *pTabList, /* The table from which we should delete things */
|
SrcList *pTabList, /* The table from which we should delete things */
|
||||||
Expr *pWhere, /* The WHERE clause. May be null */
|
Expr *pWhere, /* The WHERE clause. May be null */
|
||||||
ExprList *pOrderBy,
|
ExprList *pOrderBy, /* ORDER BY clause. May be null */
|
||||||
Expr *pLimit,
|
Expr *pLimit, /* LIMIT clause. May be null */
|
||||||
Expr *pOffset
|
Expr *pOffset /* OFFSET clause. May be null */
|
||||||
){
|
){
|
||||||
Vdbe *v; /* The virtual database engine */
|
Vdbe *v; /* The virtual database engine */
|
||||||
Table *pTab; /* The table from which records will be deleted */
|
Table *pTab; /* The table from which records will be deleted */
|
||||||
@@ -606,9 +606,11 @@ delete_from_cleanup:
|
|||||||
sqlite3AuthContextPop(&sContext);
|
sqlite3AuthContextPop(&sContext);
|
||||||
sqlite3SrcListDelete(db, pTabList);
|
sqlite3SrcListDelete(db, pTabList);
|
||||||
sqlite3ExprDelete(db, pWhere);
|
sqlite3ExprDelete(db, pWhere);
|
||||||
|
#if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT)
|
||||||
sqlite3ExprListDelete(db, pOrderBy);
|
sqlite3ExprListDelete(db, pOrderBy);
|
||||||
sqlite3ExprDelete(db, pLimit);
|
sqlite3ExprDelete(db, pLimit);
|
||||||
sqlite3ExprDelete(db, pOffset);
|
sqlite3ExprDelete(db, pOffset);
|
||||||
|
#endif
|
||||||
sqlite3DbFree(db, aToOpen);
|
sqlite3DbFree(db, aToOpen);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -725,7 +725,7 @@ void sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table *pTab){
|
|||||||
}
|
}
|
||||||
|
|
||||||
pParse->disableTriggers = 1;
|
pParse->disableTriggers = 1;
|
||||||
sqlite3DeleteFrom(pParse, sqlite3SrcListDup(db, pName, 0), 0);
|
sqlite3DeleteFrom(pParse, sqlite3SrcListDup(db, pName, 0), 0, 0, 0, 0);
|
||||||
pParse->disableTriggers = 0;
|
pParse->disableTriggers = 0;
|
||||||
|
|
||||||
/* If the DELETE has generated immediate foreign key constraint
|
/* If the DELETE has generated immediate foreign key constraint
|
||||||
|
@@ -753,14 +753,14 @@ cmd ::= with(C) DELETE FROM fullname(X) indexed_opt(I) where_opt(W)
|
|||||||
orderby_opt(O) limit_opt(L). {
|
orderby_opt(O) limit_opt(L). {
|
||||||
sqlite3WithPush(pParse, C, 1);
|
sqlite3WithPush(pParse, C, 1);
|
||||||
sqlite3SrcListIndexedBy(pParse, X, &I);
|
sqlite3SrcListIndexedBy(pParse, X, &I);
|
||||||
sqlite3DeleteFromLimit(pParse,X,W,O,L.pLimit,L.pOffset);
|
sqlite3DeleteFrom(pParse,X,W,O,L.pLimit,L.pOffset);
|
||||||
}
|
}
|
||||||
%endif
|
%endif
|
||||||
%ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
%ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||||
cmd ::= with(C) DELETE FROM fullname(X) indexed_opt(I) where_opt(W). {
|
cmd ::= with(C) DELETE FROM fullname(X) indexed_opt(I) where_opt(W). {
|
||||||
sqlite3WithPush(pParse, C, 1);
|
sqlite3WithPush(pParse, C, 1);
|
||||||
sqlite3SrcListIndexedBy(pParse, X, &I);
|
sqlite3SrcListIndexedBy(pParse, X, &I);
|
||||||
sqlite3DeleteFrom(pParse,X,W);
|
sqlite3DeleteFrom(pParse,X,W,0,0,0);
|
||||||
}
|
}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@@ -778,7 +778,7 @@ cmd ::= with(C) UPDATE orconf(R) fullname(X) indexed_opt(I) SET setlist(Y)
|
|||||||
sqlite3WithPush(pParse, C, 1);
|
sqlite3WithPush(pParse, C, 1);
|
||||||
sqlite3SrcListIndexedBy(pParse, X, &I);
|
sqlite3SrcListIndexedBy(pParse, X, &I);
|
||||||
sqlite3ExprListCheckLength(pParse,Y,"set list");
|
sqlite3ExprListCheckLength(pParse,Y,"set list");
|
||||||
sqlite3UpdateLimit(pParse,X,Y,W,R,O,L.pLimit,L.pOffset);
|
sqlite3Update(pParse,X,Y,W,R,O,L.pLimit,L.pOffset);
|
||||||
}
|
}
|
||||||
%endif
|
%endif
|
||||||
%ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
%ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||||
@@ -787,7 +787,7 @@ cmd ::= with(C) UPDATE orconf(R) fullname(X) indexed_opt(I) SET setlist(Y)
|
|||||||
sqlite3WithPush(pParse, C, 1);
|
sqlite3WithPush(pParse, C, 1);
|
||||||
sqlite3SrcListIndexedBy(pParse, X, &I);
|
sqlite3SrcListIndexedBy(pParse, X, &I);
|
||||||
sqlite3ExprListCheckLength(pParse,Y,"set list");
|
sqlite3ExprListCheckLength(pParse,Y,"set list");
|
||||||
sqlite3Update(pParse,X,Y,W,R);
|
sqlite3Update(pParse,X,Y,W,R,0,0,0);
|
||||||
}
|
}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
@@ -597,10 +597,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
|
|||||||
struct SrcList_item *pItem;
|
struct SrcList_item *pItem;
|
||||||
assert( pSrcList && pSrcList->nSrc==1 );
|
assert( pSrcList && pSrcList->nSrc==1 );
|
||||||
pItem = pSrcList->a;
|
pItem = pSrcList->a;
|
||||||
if( !HasRowid(pItem->pTab) || pItem->pTab->pSelect!=0 ){
|
assert( HasRowid(pItem->pTab) && pItem->pTab->pSelect==0 );
|
||||||
sqlite3ErrorMsg(pParse, "ORDER BY and LIMIT not support for table %s",
|
|
||||||
pItem->pTab->zName);
|
|
||||||
}
|
|
||||||
pExpr->op = TK_COLUMN;
|
pExpr->op = TK_COLUMN;
|
||||||
pExpr->pTab = pItem->pTab;
|
pExpr->pTab = pItem->pTab;
|
||||||
pExpr->iTable = pItem->iCursor;
|
pExpr->iTable = pItem->iCursor;
|
||||||
|
@@ -3764,11 +3764,8 @@ void sqlite3OpenTable(Parse*, int iCur, int iDb, Table*, int);
|
|||||||
#if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY)
|
#if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY)
|
||||||
Expr *sqlite3LimitWhere(Parse*,SrcList*,Expr*,ExprList*,Expr*,Expr*,char*);
|
Expr *sqlite3LimitWhere(Parse*,SrcList*,Expr*,ExprList*,Expr*,Expr*,char*);
|
||||||
#endif
|
#endif
|
||||||
void sqlite3DeleteFromLimit(Parse*, SrcList*, Expr*, ExprList*, Expr*, Expr*);
|
void sqlite3DeleteFrom(Parse*, SrcList*, Expr*, ExprList*, Expr*, Expr*);
|
||||||
#define sqlite3DeleteFrom(x,y,z) sqlite3DeleteFromLimit(x,y,z,0,0,0)
|
void sqlite3Update(Parse*, SrcList*, ExprList*,Expr*,int,ExprList*,Expr*,Expr*);
|
||||||
void sqlite3UpdateLimit(Parse*, SrcList*, ExprList*, Expr*, int,
|
|
||||||
ExprList*,Expr*,Expr*);
|
|
||||||
#define sqlite3Update(v,w,x,y,z) sqlite3UpdateLimit(v,w,x,y,z,0,0,0)
|
|
||||||
WhereInfo *sqlite3WhereBegin(Parse*,SrcList*,Expr*,ExprList*,ExprList*,u16,int);
|
WhereInfo *sqlite3WhereBegin(Parse*,SrcList*,Expr*,ExprList*,ExprList*,u16,int);
|
||||||
void sqlite3WhereEnd(WhereInfo*);
|
void sqlite3WhereEnd(WhereInfo*);
|
||||||
LogEst sqlite3WhereOutputRowCount(WhereInfo*);
|
LogEst sqlite3WhereOutputRowCount(WhereInfo*);
|
||||||
|
@@ -711,7 +711,7 @@ static int codeTriggerProgram(
|
|||||||
targetSrcList(pParse, pStep),
|
targetSrcList(pParse, pStep),
|
||||||
sqlite3ExprListDup(db, pStep->pExprList, 0),
|
sqlite3ExprListDup(db, pStep->pExprList, 0),
|
||||||
sqlite3ExprDup(db, pStep->pWhere, 0),
|
sqlite3ExprDup(db, pStep->pWhere, 0),
|
||||||
pParse->eOrconf
|
pParse->eOrconf, 0, 0, 0
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -727,7 +727,7 @@ static int codeTriggerProgram(
|
|||||||
case TK_DELETE: {
|
case TK_DELETE: {
|
||||||
sqlite3DeleteFrom(pParse,
|
sqlite3DeleteFrom(pParse,
|
||||||
targetSrcList(pParse, pStep),
|
targetSrcList(pParse, pStep),
|
||||||
sqlite3ExprDup(db, pStep->pWhere, 0)
|
sqlite3ExprDup(db, pStep->pWhere, 0), 0, 0, 0
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
10
src/update.c
10
src/update.c
@@ -86,15 +86,15 @@ void sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int iReg){
|
|||||||
** \_______/ \________/ \______/ \________________/
|
** \_______/ \________/ \______/ \________________/
|
||||||
* onError pTabList pChanges pWhere
|
* onError pTabList pChanges pWhere
|
||||||
*/
|
*/
|
||||||
void sqlite3UpdateLimit(
|
void sqlite3Update(
|
||||||
Parse *pParse, /* The parser context */
|
Parse *pParse, /* The parser context */
|
||||||
SrcList *pTabList, /* The table in which we should change things */
|
SrcList *pTabList, /* The table in which we should change things */
|
||||||
ExprList *pChanges, /* Things to be changed */
|
ExprList *pChanges, /* Things to be changed */
|
||||||
Expr *pWhere, /* The WHERE clause. May be null */
|
Expr *pWhere, /* The WHERE clause. May be null */
|
||||||
int onError, /* How to handle constraint errors */
|
int onError, /* How to handle constraint errors */
|
||||||
ExprList *pOrderBy,
|
ExprList *pOrderBy, /* ORDER BY clause. May be null */
|
||||||
Expr *pLimit,
|
Expr *pLimit, /* LIMIT clause. May be null */
|
||||||
Expr *pOffset
|
Expr *pOffset /* OFFSET clause. May be null */
|
||||||
){
|
){
|
||||||
int i, j; /* Loop counters */
|
int i, j; /* Loop counters */
|
||||||
Table *pTab; /* The table to be updated */
|
Table *pTab; /* The table to be updated */
|
||||||
@@ -745,9 +745,11 @@ update_cleanup:
|
|||||||
sqlite3SrcListDelete(db, pTabList);
|
sqlite3SrcListDelete(db, pTabList);
|
||||||
sqlite3ExprListDelete(db, pChanges);
|
sqlite3ExprListDelete(db, pChanges);
|
||||||
sqlite3ExprDelete(db, pWhere);
|
sqlite3ExprDelete(db, pWhere);
|
||||||
|
#if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT)
|
||||||
sqlite3ExprListDelete(db, pOrderBy);
|
sqlite3ExprListDelete(db, pOrderBy);
|
||||||
sqlite3ExprDelete(db, pLimit);
|
sqlite3ExprDelete(db, pLimit);
|
||||||
sqlite3ExprDelete(db, pOffset);
|
sqlite3ExprDelete(db, pOffset);
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Make sure "isView" and other macros defined above are undefined. Otherwise
|
/* Make sure "isView" and other macros defined above are undefined. Otherwise
|
||||||
|
Reference in New Issue
Block a user