-C Tcl\sinterface\sdoes\sas\ssqlite3\sor\sas\ssqlite.\s\sA\scompile-time\soption\sallows\r\nduel\slinking.\s\sAlso\sfix\sa\sbug\sin\sthe\spragma\schange\sfrom\searlier\stoday.\s(CVS\s2186)
-D 2005-01-08T18:42:28
+C Fix\san\sassertion\sfailure\sdue\sto\sinteraction\sbetween\sthe\scount_changes\spragma\sand\striggers.\s(CVS\s2187)
+D 2005-01-10T02:48:49
F Makefile.in ecf441ac5ca1ccfc8748a8a9537706e69893dfa4
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
F src/build.c af1296e8a21a406b4f4c4f1e1365e075071219f3
F src/cursor.c f883813759742068890b1f699335872bfa8fdf41
F src/date.c 65536e7ea04fdde6e0551264fca15966966e171f
-F src/delete.c 5e5bcf0092b146a399e571d1e704b3b22633d2d0
+F src/delete.c 32277d2834e36c7538c047f14d643751c256c73b
F src/expr.c d718509e56f58b06bc5f9b46afb295675334d544
F src/func.c b668e5ad043176049454c95a6a780367a0e8f6bb
F src/hash.c a97721a55440b7bea31ffe471bb2f6b4123cddd5
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
-F src/insert.c 0b9077c6752530e9919a8c84375cfa2c4652260a
+F src/insert.c f6b69e40e8938f63a2368cbcb5087a56098cf632
F src/legacy.c d58ea507bce885298a2c8c3cbb0f4bff5d47830b
F src/main.c a05e1e50406d2776272c1470077136f63866bbe2
F src/md5.c 7ae1c39044b95de2f62e066f47bb1deb880a1070
F test/pager2.test 49c0f57c7da0b060f0486b85fdd074025caa694e
F test/pager3.test 647f696a9cf7409df00a1e0047c2eb55585a1b85
F test/pagesize.test 1b826d1608fd86d2303aa895b5586052ad07eba1
-F test/pragma.test 3673c0eb920cf2489410dc58f9875384cf4acdce
+F test/pragma.test c1b4cdb2545131e4adec3250d02544688c6a5c9d
F test/printf.test 92ba4c510b4fc61120ffa4a01820446ed917ae57
F test/progress.test 5ddba78cb6011fba36093973cfb3ac473b8fb96a x
F test/quick.test 91e5b8ae6663dc9e3e754b271f0384f0cae706e6
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl c3b50d3ac31c54be2a1af9b488a89d22f1e6e746
-P 0a90eaf398aa4a689cd8326cd017951513ca748a
-R c4f4620650d61e94b490965cc36efb0b
-U drh
-Z 49fbfa0204d130bf85624d3aa736264c
+P ad10953799f3aa15fde41cbbd5911a3b56c326ec
+R 1ac4cd5c08a83609a7da947b3ea99143
+U danielk1977
+Z 66f70bfca0a624fd768df4e664b868f3
-ad10953799f3aa15fde41cbbd5911a3b56c326ec
\ No newline at end of file
+6c7bec1b3aee0287e30f43c1d6a7b67b1c47e774
\ No newline at end of file
** This file contains C code routines that are called by the parser
** in order to generate code for DELETE FROM statements.
**
-** $Id: delete.c,v 1.94 2004/12/25 01:03:14 drh Exp $
+** $Id: delete.c,v 1.95 2005/01/10 02:48:49 danielk1977 Exp $
*/
#include "sqliteInt.h"
** generating code because of a call to sqlite3NestedParse(), do not
** invoke the callback function.
*/
- if( db->flags & SQLITE_CountRows && pParse->nested==0 ){
+ if( db->flags & SQLITE_CountRows && pParse->nested==0 && !pParse->trigStack ){
sqlite3VdbeAddOp(v, OP_Callback, 1, 0);
sqlite3VdbeSetNumCols(v, 1);
sqlite3VdbeSetColName(v, 0, "rows deleted", P3_STATIC);
** This file contains C code routines that are called by the parser
** to handle INSERT statements in SQLite.
**
-** $Id: insert.c,v 1.128 2004/12/07 15:41:49 drh Exp $
+** $Id: insert.c,v 1.129 2005/01/10 02:48:49 danielk1977 Exp $
*/
#include "sqliteInt.h"
** generating code because of a call to sqlite3NestedParse(), do not
** invoke the callback function.
*/
- if( db->flags & SQLITE_CountRows && pParse->nested==0 ){
+ if( db->flags & SQLITE_CountRows && pParse->nested==0 && !pParse->trigStack ){
sqlite3VdbeAddOp(v, OP_MemLoad, iCntMem, 0);
sqlite3VdbeAddOp(v, OP_Callback, 1, 0);
sqlite3VdbeSetNumCols(v, 1);
#
# This file implements tests for the PRAGMA command.
#
-# $Id: pragma.test,v 1.30 2005/01/08 15:44:26 drh Exp $
+# $Id: pragma.test,v 1.31 2005/01/10 02:48:49 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# pragma-4.*: Test cache_size and default_cache_size on attached db.
# pragma-5.*: Test that pragma synchronous may not be used inside of a
# transaction.
+# pragma-6.*: Test schema-query pragmas.
+# pragma-7.*: Miscellaneous tests.
+# pragma-8.*: Test user_version and schema_version pragmas.
# pragma-9.*: Test temp_store and temp_store_directory.
+# pragma-10.*: Test the count_changes pragma in the presence of triggers.
#
# Delete the preexisting database to avoid the special setup
} {1 {no such table: temp_store_directory_test}}
} ;# ifcapable pager_pragmas
+ifcapable trigger {
+
+do_test pragma-10.0 {
+ catchsql {
+ DROP TABLE main.t1;
+ }
+ execsql {
+ PRAGMA count_changes = 1;
+
+ CREATE TABLE t1(a PRIMARY KEY);
+ CREATE TABLE t1_mirror(a);
+ CREATE TABLE t1_mirror2(a);
+ CREATE TRIGGER t1_bi BEFORE INSERT ON t1 BEGIN
+ INSERT INTO t1_mirror VALUES(new.a);
+ END;
+ CREATE TRIGGER t1_ai AFTER INSERT ON t1 BEGIN
+ INSERT INTO t1_mirror2 VALUES(new.a);
+ END;
+ CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 BEGIN
+ UPDATE t1_mirror SET a = new.a WHERE a = old.a;
+ END;
+ CREATE TRIGGER t1_au AFTER UPDATE ON t1 BEGIN
+ UPDATE t1_mirror2 SET a = new.a WHERE a = old.a;
+ END;
+ CREATE TRIGGER t1_bd BEFORE DELETE ON t1 BEGIN
+ DELETE FROM t1_mirror WHERE a = old.a;
+ END;
+ CREATE TRIGGER t1_ad AFTER DELETE ON t1 BEGIN
+ DELETE FROM t1_mirror2 WHERE a = old.a;
+ END;
+ }
+} {}
+
+do_test pragma-10.1 {
+ execsql {
+ INSERT INTO t1 VALUES(randstr(10,10));
+ }
+} {1}
+do_test pragma-10.2 {
+ execsql {
+ UPDATE t1 SET a = randstr(10,10);
+ }
+} {1}
+do_test pragma-10.3 {
+ execsql {
+ DELETE FROM t1;
+ }
+} {1}
+
+} ;# ifcapable trigger
+
finish_test
+
+