-C Make\ssure\sa\sLIMIT\sclause\son\sa\sSELECT\scleans\sup\sthe\svdbe\sstack\sso\sthat\sif\sit\noccurs\sinside\sa\strigger,\sit\swon't\scause\sa\sstack\soverflow.\s\sTicket\s#640.\s(CVS\s1282)
-D 2004-03-02T18:37:41
+C A\svdbe\sstack\selement\smight\shave\sa\sstring\svalue\seven\safter\sa\scall\sto\nIntegerify().\s\sTicket\s#641.\s(CVS\s1283)
+D 2004-03-03T01:51:25
F Makefile.in afc6c0377773421633e592347097ad036eef6aeb
F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
F src/update.c 4c50328ebc127852bde8e2950eb8933234802c21
F src/util.c 122bc174f6c8c2eb6a9127d9f13c4c74f83b85e4
F src/vacuum.c db5f58cb53c8c79169d74bc0413e6d7e185ac532
-F src/vdbe.c af187d86cb1bcc1ead227245350d1693c28c77a2
+F src/vdbe.c 7c33f761fdc799633468766fb53eda4301daa6b3
F src/vdbe.h ac987945e4dd6f987bca534c6005899f089fc270
F src/vdbeInt.h b40ff02ce39fd076e6ff3369e19c1bbfe1986682
F src/vdbeaux.c e2cdd1ab63604a390612c73e26bdd2ef910e9438
F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2
F test/date.test aed5030482ebc02bd8d386c6c86a29f694ab068d
F test/delete.test 92256384f1801760180ded129f7427884cf28886
-F test/expr.test c4cc292d601019c2f2ce95093caaa5d10284b105
+F test/expr.test ad985242e140f87eeef329d98257b8369a2066dc
F test/fkey1.test d65c824459916249bee501532d6154ddab0b5db7
F test/format3.test 149cc166c97923fa60def047e90dd3fb32bba916
F test/func.test 000515779001ac6899eec4b54e65c6e2501279d4
F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 76d42921a475c531a77677c3fe73b6da265a878d
-R dd8609f48345c006180d07e7ef0d5734
+P 5aaa2939baa972231def086ed5f9d9ba63302532
+R d722781e30098df56cdb3e08d2d9a7bf
U drh
-Z d1aff38fcd9f7647a8267e5f4641096b
+Z b4ad96d33af4159614ecafeca0eb02b2
-5aaa2939baa972231def086ed5f9d9ba63302532
\ No newline at end of file
+3cac4b7b526d6c5dbf394009b534707bcb65b0da
\ No newline at end of file
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
-** $Id: vdbe.c,v 1.267 2004/02/22 17:49:34 drh Exp $
+** $Id: vdbe.c,v 1.268 2004/03/03 01:51:25 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
assert( (pTos->flags & MEM_Dyn)==0 );
assert( (pNos->flags & MEM_Dyn)==0 );
pTos--;
+ Release(pTos);
pTos->i = a;
- assert( pTos->flags==MEM_Int );
+ pTos->flags = MEM_Int;
break;
}
assert( pTos>=p->aStack );
if( pTos->flags & MEM_Null ) break; /* Do nothing to NULLs */
Integerify(pTos);
- assert( pTos->flags==MEM_Int );
+ Release(pTos);
pTos->i = !pTos->i;
+ pTos->flags = MEM_Int;
break;
}
assert( pTos>=p->aStack );
if( pTos->flags & MEM_Null ) break; /* Do nothing to NULLs */
Integerify(pTos);
- assert( pTos->flags==MEM_Int );
+ Release(pTos);
pTos->i = ~pTos->i;
+ pTos->flags = MEM_Int;
break;
}
aMeta[1+pOp->p2] = pTos->i;
rc = sqliteBtreeUpdateMeta(db->aDb[pOp->p1].pBt, aMeta);
}
- assert( pTos->flags==MEM_Int );
+ Release(pTos);
pTos--;
break;
}
}
Integerify(pTos);
pKeylist->aKey[pKeylist->nUsed++] = pTos->i;
- assert( pTos->flags==MEM_Int );
+ Release(pTos);
pTos--;
break;
}
# This file implements regression tests for SQLite library. The
# focus of this file is testing expressions.
#
-# $Id: expr.test,v 1.30 2003/09/30 01:54:15 drh Exp $
+# $Id: expr.test,v 1.31 2004/03/03 01:51:25 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
test_expr expr-1.40 {i1=1, i2=2} {+(i2+i1)} {3}
test_expr expr-1.41 {i1=1, i2=2} {-(i2+i1)} {-3}
test_expr expr-1.42 {i1=1, i2=2} {i1|i2} {3}
+test_expr expr-1.42b {i1=1, i2=2} {4|2} {6}
test_expr expr-1.43 {i1=1, i2=2} {i1&i2} {0}
+test_expr expr-1.43b {i1=1, i2=2} {4&5} {4}
test_expr expr-1.44 {i1=1} {~i1} {-2}
test_expr expr-1.45 {i1=1, i2=3} {i1<<i2} {8}
test_expr expr-1.46 {i1=32, i2=3} {i1>>i2} {4}