-C Disable\sautomatic\sinvocation\sof\ssqlite3_release_memory()\swhen\sa\smalloc()\sfails\nin\sthose\scases\swhere\sthe\sglobal\smutex\sis\sheld.\s(CVS\s2860)
-D 2006-01-05T13:48:29
+C Fix\sfor\sticket\s#1582\s(Double\sdelete\sof\sinvalid\sLIMIT\sclause\sExpr*\sapplied\sto\sa\sUNION\sALL\squery).\s(CVS\s2861)
+D 2006-01-05T14:22:34
F Makefile.in e3c6b3a38d734d41574c04f2fc90d18de2b87102
F Makefile.linux-gcc aee18d8a05546dcf1888bd4547e442008a49a092
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/prepare.c 67ff283f7c71e32a91d8c843e758eb4bf68ab94e
F src/printf.c f47a2f4b5387cd2ebb12e9117a1a5d6bd9a2b812
F src/random.c ff5e9a8cad790e2a51cd4d2e7737dc8540e09d1d
-F src/select.c 7a78520fcd79daccd4e33721dbc977d2e5c5d95a
+F src/select.c a60e5c7fad9ce7adc78d9eb32a0a89dd5acd04fb
F src/shell.c 66b073375efbdee19045e7e0cd38b85f9aff71da
F src/sqlite.h.in ba3a29daa6a16e054191ccb384a981964e882a1d
F src/sqliteInt.h 6f29c97703b1a1e032916b0bab83efe9b2734984
F test/misc2.test 5c699af2fede2694736a9f45aea7e2f052686e15
F test/misc3.test 7bd937e2c62bcc6be71939faf068d506467b1e03
F test/misc4.test b043a05dea037cca5989f3ae09552fa16119bc80
-F test/misc5.test ed79d4c892a4995b29d03d6baebe6457bfb35a9e
+F test/misc5.test a27520a0033f2837cda94bfdfb096a25fc4b128d
F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33
F test/notnull.test 7a08117a71e74b0321aaa937dbeb41a09d6eb1d0
F test/null.test 012fe5455f4fc3102490b4bad373a674e5741fdd
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P deeda0dc06c1595aedd8d06a0c4e88a8abf78cf7
-R 9d12b452805846233d53c41b43a70bb0
+P 6fdbb8b771e490f0d791326689245302c4fe18f5
+R b489dd3c565f674bf68347d5b31f3b83
U danielk1977
-Z f6fa8bc04dbc256a46d97346ce8d34cd
+Z 74556dd90bea6451105d7798d9757184
-6fdbb8b771e490f0d791326689245302c4fe18f5
\ No newline at end of file
+5dec3a392ba3c249bbca899c12e99c26cc1b8cdb
\ No newline at end of file
** This file contains C code routines that are called by the parser
** to handle SELECT statements in SQLite.
**
-** $Id: select.c,v 1.284 2006/01/05 11:34:34 danielk1977 Exp $
+** $Id: select.c,v 1.285 2006/01/05 14:22:34 danielk1977 Exp $
*/
#include "sqliteInt.h"
pPrior->pLimit = p->pLimit;
pPrior->pOffset = p->pOffset;
rc = sqlite3Select(pParse, pPrior, eDest, iParm, 0, 0, 0, aff);
+ p->pLimit = 0;
+ p->pOffset = 0;
if( rc ){
goto multi_select_end;
}
p->pPrior = 0;
p->iLimit = pPrior->iLimit;
p->iOffset = pPrior->iOffset;
- p->pLimit = 0;
- p->pOffset = 0;
if( p->iLimit>=0 ){
addr = sqlite3VdbeAddOp(v, OP_IfMemZero, p->iLimit, 0);
VdbeComment((v, "# Jump ahead if LIMIT reached"));
# This file implements tests for miscellanous features that were
# left out of other test files.
#
-# $Id: misc5.test,v 1.7 2005/11/14 22:29:06 drh Exp $
+# $Id: misc5.test,v 1.8 2006/01/05 14:22:34 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
execsql {SELECT .4e+1}
} 4.0
+# Ticket #1582. Ensure that an unknown table in a LIMIT clause applied to
+# a UNION ALL query causes an error, not a crash.
+#
+db close
+file delete -force test.db
+sqlite3 db test.db
+ifcapable subquery {
+ do_test misc5-6.1 {
+ catchsql {
+ SELECT * FROM sqlite_master
+ UNION ALL
+ SELECT * FROM sqlite_master
+ LIMIT (SELECT count(*) FROM blah);
+ }
+ } {1 {no such table: blah}}
+ do_test misc5-6.2 {
+ execsql {
+ CREATE TABLE logs(msg TEXT, timestamp INTEGER, dbtime TEXT);
+ }
+ catchsql {
+ SELECT * FROM logs WHERE logs.id >= (SELECT head FROM logs_base)
+ UNION ALL
+ SELECT * FROM logs
+ LIMIT (SELECT lmt FROM logs_base) ;
+ }
+ } {1 {no such column: logs.id}}
+}
finish_test