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:
danielk1977 2005-01-30 09:17:58 +00:00
parent 0fa388f685
commit 6c18b6e0f4
5 changed files with 30 additions and 12 deletions

View File

@ -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

View File

@ -1 +1 @@
808e16a7dda048c214df24170da282087042ee3a
356d31e03fe856642c5637f5ea5665947ff681fc

View File

@ -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;
}

View File

@ -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;
}
}
}

View File

@ -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