aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2011-12-07 01:55:51 +0000
committerdrh <drh@noemail.net>2011-12-07 01:55:51 +0000
commit23b1b37229b8f28c70d3711228ef58cb7a370b0b (patch)
tree85bbd232ccd3444254358421bb15651ef43c5396
parented51f29774ca0581de17d7f4a066fea1b0459948 (diff)
downloadsqlite-23b1b37229b8f28c70d3711228ef58cb7a370b0b.tar.gz
sqlite-23b1b37229b8f28c70d3711228ef58cb7a370b0b.zip
Cherrypick the [7e5b56b1c6] fix for the sqlite3SelectDup() routine
into trunk. FossilOrigin-Name: 7fc535090ca3416706dff4abce10ac2d7f775e02
-rw-r--r--manifest14
-rw-r--r--manifest.uuid2
-rw-r--r--src/expr.c6
3 files changed, 12 insertions, 10 deletions
diff --git a/manifest b/manifest
index 1fd88a2a9..e309ac01b 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sfile\stkt-3a77c9714e.test,\scontaining\stests\sto\sverify\sthat\sthe\sproblem\sdocumented\sby\sticket\s[3a77c9714e]\shas\sbeen\sfixed.
-D 2011-12-06T13:46:54.313
+C Cherrypick\sthe\s[7e5b56b1c6]\sfix\sfor\sthe\ssqlite3SelectDup()\sroutine\s\ninto\strunk.
+D 2011-12-07T01:55:51.485
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -134,7 +134,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
F src/ctime.c a9c26822515f81ec21588cbb482ca6724be02e33
F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4
F src/delete.c 51d32f0a9c880663e54ce309f52e40c325d5e112
-F src/expr.c 319db0ad9f3c5d039d54bf5a65c98c08c7233924
+F src/expr.c 9ac5831769dddee6a55b07cdd439b21929bbe4e7
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c 657212460bf5cfd3ae607d12ea62092844c227b5
F src/func.c 6261ce00aad9c63cd5b4219249b05683979060e9
@@ -977,7 +977,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P 092d53315e50be42b51ef7b3069c82c32a129b6a
-R 8d2fc7565d4aa525192ff0541b1c9cf2
-U dan
-Z d04d6b5cb95ec0b64c1e1542ea707494
+P 162421dadf93e9201c3290d800c597cbeeacdb40
+R d17736709c9e1055d62b7d5dd5010549
+U drh
+Z 01f1b62cbb252e00fe26739b3bf9a3e5
diff --git a/manifest.uuid b/manifest.uuid
index 1ffea396b..f9ed37375 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-162421dadf93e9201c3290d800c597cbeeacdb40 \ No newline at end of file
+7fc535090ca3416706dff4abce10ac2d7f775e02 \ No newline at end of file
diff --git a/src/expr.c b/src/expr.c
index e8a9d6410..136f302f9 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -940,7 +940,7 @@ IdList *sqlite3IdListDup(sqlite3 *db, IdList *p){
return pNew;
}
Select *sqlite3SelectDup(sqlite3 *db, Select *p, int flags){
- Select *pNew;
+ Select *pNew, *pPrior;
if( p==0 ) return 0;
pNew = sqlite3DbMallocRaw(db, sizeof(*p) );
if( pNew==0 ) return 0;
@@ -951,7 +951,9 @@ Select *sqlite3SelectDup(sqlite3 *db, Select *p, int flags){
pNew->pHaving = sqlite3ExprDup(db, p->pHaving, flags);
pNew->pOrderBy = sqlite3ExprListDup(db, p->pOrderBy, flags);
pNew->op = p->op;
- pNew->pPrior = sqlite3SelectDup(db, p->pPrior, flags);
+ pNew->pPrior = pPrior = sqlite3SelectDup(db, p->pPrior, flags);
+ if( pPrior ) pPrior->pNext = pNew;
+ pNew->pNext = 0;
pNew->pLimit = sqlite3ExprDup(db, p->pLimit, flags);
pNew->pOffset = sqlite3ExprDup(db, p->pOffset, flags);
pNew->iLimit = 0;