Have the optimization introduced in (2170) deal with OP_NullRow as well as OP_Column and OP_Recno. Fix for #1086. (CVS 2290)
FossilOrigin-Name: 356d31e03fe856642c5637f5ea5665947ff681fc
This commit is contained in:
parent
0fa388f685
commit
6c18b6e0f4
16
manifest
16
manifest
@ -1,5 +1,5 @@
|
||||
C Update\sto\stest\sfiles\sto\ssupport\sbuilds\swith\sOMIT\smacros\sdefined.\s(CVS\s2289)
|
||||
D 2005-01-29T09:14:05
|
||||
C Have\sthe\soptimization\sintroduced\sin\s(2170)\sdeal\swith\sOP_NullRow\sas\swell\sas\sOP_Column\sand\sOP_Recno.\sFix\sfor\s#1086.\s(CVS\s2290)
|
||||
D 2005-01-30T09:17:59
|
||||
F Makefile.in ffd81f5e926d40b457071b4de8d7c1fa18f39b5a
|
||||
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
|
||||
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
|
||||
@ -36,7 +36,7 @@ F src/cursor.c de73c00aefc4747ad59b5105cf38bbff0667922e
|
||||
F src/date.c f3d1f5cd1503dabf426a198f3ebef5afbc122a7f
|
||||
F src/delete.c 4b94395b52a8f7785acd71135c2ce54f3f5550b3
|
||||
F src/experimental.c 8cc66b2be6a011055d75ef19ed2584bcfbb585ad
|
||||
F src/expr.c 9965ce8a6f416377ddcace8fb1d796101cf02ea9
|
||||
F src/expr.c 06b7ab3d09a5f709744f142263e13b2b1d7c6372
|
||||
F src/func.c f096b6771cc0aaa11790aca95773a50a8f74ba73
|
||||
F src/hash.c a97721a55440b7bea31ffe471bb2f6b4123cddd5
|
||||
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
|
||||
@ -81,7 +81,7 @@ F src/vdbeInt.h e80721cd8ff611789e20743eec43363a9fb5a48e
|
||||
F src/vdbeapi.c 467caa6e6fb9247528b1c7ab9132ae1b4748e8ac
|
||||
F src/vdbeaux.c 8d8cc8992cb78cab35e034fa81ad0c1a771c39f1
|
||||
F src/vdbemem.c 62fe89471b656a922e9879be005abf690509ead3
|
||||
F src/where.c b733d3a2e866bb31a3c5d0acf94d8dc599d55a81
|
||||
F src/where.c 94d847e07b07110c9097fbd3efb630ab8fb19edf
|
||||
F tclinstaller.tcl 36478c3bbfc5b93ceac42d94e3c736937b808432
|
||||
F test/all.test 7f0988442ab811dfa41793b5b550f5828ce316f3
|
||||
F test/alter.test b146ddd669b45a880d40bfdacd6037666137c3f4
|
||||
@ -157,7 +157,7 @@ F test/minmax.test 9429a06f1f93acf76fcacafd17160a4392e88526
|
||||
F test/misc1.test ff817d3740458884fea535b44821ec7e84700457
|
||||
F test/misc2.test fc052267d5178367f955538ae34aae1b2f696a92
|
||||
F test/misc3.test 7bd937e2c62bcc6be71939faf068d506467b1e03
|
||||
F test/misc4.test f44ad10982592bb77f1ae6d7876890b3af9605c1
|
||||
F test/misc4.test 98e5fb5544aeac6cbbc529c79d4144b0936c22de
|
||||
F test/misuse.test 1c7fee3c4c0cb4008717ecccf5c72281fac0008e
|
||||
F test/notnull.test 7a08117a71e74b0321aaa937dbeb41a09d6eb1d0
|
||||
F test/null.test 69c62daf1630bf54c87bbc7ef2e22012e58d6da8
|
||||
@ -272,7 +272,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc
|
||||
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
|
||||
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
|
||||
F www/whentouse.tcl 3e522a06ad41992023c80ca29a048ae2331ca5bd
|
||||
P a8b921d45ec9ef4d16ef7b5bf09aabaf02ebc70b
|
||||
R 23cc5d602d973c6da38d5c947af10e17
|
||||
P 808e16a7dda048c214df24170da282087042ee3a
|
||||
R df5f8dcf1c9648630223cb55d1b73f5c
|
||||
U danielk1977
|
||||
Z be67e3ff70386bba354e06b0c7e33e08
|
||||
Z edf636493d9bcd569445cc58d2b9e854
|
||||
|
@ -1 +1 @@
|
||||
808e16a7dda048c214df24170da282087042ee3a
|
||||
356d31e03fe856642c5637f5ea5665947ff681fc
|
@ -12,7 +12,7 @@
|
||||
** This file contains routines used for analyzing expressions and
|
||||
** for generating VDBE code that evaluates expressions in SQLite.
|
||||
**
|
||||
** $Id: expr.c,v 1.189 2005/01/29 08:32:45 danielk1977 Exp $
|
||||
** $Id: expr.c,v 1.190 2005/01/30 09:17:59 danielk1977 Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
#include <ctype.h>
|
||||
@ -476,6 +476,7 @@ SrcList *sqlite3SrcListDup(SrcList *p){
|
||||
pNewItem->pSelect = sqlite3SelectDup(pOldItem->pSelect);
|
||||
pNewItem->pOn = sqlite3ExprDup(pOldItem->pOn);
|
||||
pNewItem->pUsing = sqlite3IdListDup(pOldItem->pUsing);
|
||||
pNewItem->colUsed = pOldItem->colUsed;
|
||||
}
|
||||
return pNew;
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
** so is applicable. Because this module is responsible for selecting
|
||||
** indices, you might also think of this module as the "query optimizer".
|
||||
**
|
||||
** $Id: where.c,v 1.132 2005/01/29 08:32:45 danielk1977 Exp $
|
||||
** $Id: where.c,v 1.133 2005/01/30 09:17:59 danielk1977 Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
|
||||
@ -1428,6 +1428,8 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){
|
||||
}else if( pOp->opcode==OP_Recno ){
|
||||
pOp->p1 = pLevel->iIdxCur;
|
||||
pOp->opcode = OP_IdxRecno;
|
||||
}else if( pOp->opcode==OP_NullRow ){
|
||||
pOp->opcode = OP_Noop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
# This file implements tests for miscellanous features that were
|
||||
# left out of other test files.
|
||||
#
|
||||
# $Id: misc4.test,v 1.14 2005/01/29 08:32:46 danielk1977 Exp $
|
||||
# $Id: misc4.test,v 1.15 2005/01/30 09:17:59 danielk1977 Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@ -159,4 +159,19 @@ ifcapable view {
|
||||
} {a 1 b 2 a:1 1 c 3}
|
||||
}
|
||||
|
||||
# Ticket #1086
|
||||
do_test misc4-6.1 {
|
||||
execsql {
|
||||
CREATE TABLE abc(a);
|
||||
INSERT INTO abc VALUES(1);
|
||||
CREATE TABLE def(d, e, f, PRIMARY KEY(d, e));
|
||||
}
|
||||
} {}
|
||||
do_test misc4-6.2 {
|
||||
execsql {
|
||||
SELECT a FROM abc LEFT JOIN def ON (abc.a=def.d);
|
||||
}
|
||||
} {1}
|
||||
|
||||
finish_test
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user