diff --git a/manifest b/manifest index d114685acf..9a8b84c337 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sassert()\sfailure\sthat\smay\sfollow\san\sOOM\serror. -D 2009-08-19T16:34:31 +C Change\sthe\sway\san\sExpr\sthat\shas\sbeen\sconverted\sto\sTK_REGISTER\sstores\sits\soriginal\sopcode.\sThe\sprevious\smethod,\soverloading\sExpr.iColumn,\sdid\snot\swork\sin\sall\scases. +D 2009-08-19T17:17:01 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 0f7761c5d1c62ae7a841e3393ffaff1fa0f5c00a F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -114,7 +114,7 @@ F src/callback.c cb68b21b0d4ae7d11ae0e487933bce3323784dcf F src/complete.c 5ad5c6cd4548211867c204c41a126d73a9fbcea0 F src/date.c ab5f7137656652a48434d64f96bdcdc823bb23b3 F src/delete.c dcf07632d8ca3d4086df8b65ea907a47278e6382 -F src/expr.c 1dac211523b00d504c35e72b6d28d97621895420 +F src/expr.c 335d3008417050a6992ecf2c78819f2911a7cb18 F src/fault.c dc88c821842157460750d2d61a8a8b4197d047ff F src/func.c e536218d193b8d326aab91120bc4c6f28aa2b606 F src/global.c 271952d199a8cc59d4ce840b3bbbfd2f30c8ba32 @@ -163,7 +163,7 @@ F src/select.c 67b0778c9585905c8aa75aaa469e76ef3c1d315a F src/shell.c db2643650b9268df89a4bedca3f1c6d9e786f1bb F src/sqlite.h.in 3ccf717d82101f19548d0b1243f0a6f4854d51ee F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17 -F src/sqliteInt.h a9516142b907d890150847edbe3c9831acd9acb1 +F src/sqliteInt.h 36a21a90b67f9a14868bd56086b997726dfb0a34 F src/sqliteLimit.h ffe93f5a0c4e7bd13e70cd7bf84cfb5c3465f45d F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76 F src/table.c cc86ad3d6ad54df7c63a3e807b5783c90411a08d @@ -211,7 +211,7 @@ F src/vdbeInt.h 831c254a6eef237ef4664c8381a0137586567007 F src/vdbeapi.c 0ab8ada7260b32031ca97f338caecf0812460624 F src/vdbeaux.c 4956536a636468fd07284028c39aab65ea99777e F src/vdbeblob.c a3f3e0e877fc64ea50165eec2855f5ada4477611 -F src/vdbemem.c afd6ce02945e659f65642f290a37ccf4a88c4dcb +F src/vdbemem.c 6075cc7f8ea3064c3229ad30dd0f23903ea4e035 F src/vtab.c aedd76e8670d5a5379f93804398d3ba960125547 F src/walker.c 1edca756275f158b80f20eb6f104c8d3fcc96a04 F src/where.c 2e61e33f3649ef5940ef63ed285d37d03bc03dc5 @@ -747,7 +747,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746 -P 740a93e89c5f12672d72de7b3c55807deac613d4 -R 0c503f3d121dc88e27c6f16947df7b7a +P 14a715c5639b2bc69b129485ca32e96366dab4c4 +R 89df65d7caba8e808134aaf6a22f2021 U dan -Z 349f817f99fd27db57dd3a92eb75a026 +Z dfc672a723805ae86ee20de2e2eef473 diff --git a/manifest.uuid b/manifest.uuid index 0ccacc3648..149d082b57 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -14a715c5639b2bc69b129485ca32e96366dab4c4 \ No newline at end of file +71ea9d0e148fbd3d633651c61c81044e37cf88b9 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index a9a4f82a31..60787faa28 100644 --- a/src/expr.c +++ b/src/expr.c @@ -2836,7 +2836,7 @@ static int evalConstExpr(Walker *pWalker, Expr *pExpr){ int r2; r2 = sqlite3ExprCodeTarget(pParse, pExpr, r1); if( NEVER(r1!=r2) ) sqlite3ReleaseTempReg(pParse, r1); - pExpr->iColumn = pExpr->op; + pExpr->op2 = pExpr->op; pExpr->op = TK_REGISTER; pExpr->iTable = r2; return WRC_Prune; diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 0835d2b9f1..0185861db0 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -1577,11 +1577,11 @@ struct Expr { int iTable; /* TK_COLUMN: cursor number of table holding column ** TK_REGISTER: register number */ - i16 iColumn; /* TK_COLUMN: column index. -1 for rowid - ** TK_REGISTER: original value of Expr.op */ + i16 iColumn; /* TK_COLUMN: column index. -1 for rowid */ i16 iAgg; /* Which entry in pAggInfo->aCol[] or ->aFunc[] */ i16 iRightJoinTable; /* If EP_FromJoin, the right table of the join */ - u16 flags2; /* Second set of flags. EP2_... */ + u8 flags2; /* Second set of flags. EP2_... */ + u8 op2; /* If a TK_REGISTER, the original value of Expr.op */ AggInfo *pAggInfo; /* Used by TK_AGG_COLUMN and TK_AGG_FUNCTION */ Table *pTab; /* Table for TK_COLUMN expressions. */ #if SQLITE_MAX_EXPR_DEPTH>0 diff --git a/src/vdbemem.c b/src/vdbemem.c index 1a7108f8f6..afa49d5491 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -1000,7 +1000,7 @@ int sqlite3ValueFromExpr( } op = pExpr->op; if( op==TK_REGISTER ){ - op = pExpr->iColumn; + op = pExpr->op2; } if( op==TK_STRING || op==TK_FLOAT || op==TK_INTEGER ){