-C Fix\sthe\sopen\sfile\scounter\son\swindows.\s(CVS\s4382)
-D 2007-09-03T17:09:03
+C Remove\san\sunreachable\scase\sfrom\sxferOptimization().\sAlso\sother\sminor\stest\scoverage\simprovements.\s(CVS\s4383)
+D 2007-09-03T17:30:07
F Makefile.in f3460f3363dd568c950a62f93e97eb19f6d069d8
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/func.c 9d88141c4cffb3a04719e5a0fda65cde34bfa1e5
F src/hash.c 06c69a3a038b713c43353c79023372bcfe7f5180
F src/hash.h 3ad3da76bfb954978d227bf495568b0e6da2c19e
-F src/insert.c b11e5ca0d68bf2a7a56f47a052a0ee67dd4e2f89
+F src/insert.c df9712e1f67201573a9677d3a2fe401d52d84dda
F src/journal.c a45147d798f4d8dbdeed200ca7f740579bd8591b
F src/legacy.c 4ac53191fad2e3c4d59bde1228879b2dc5a96d66
F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35
F src/sqliteLimit.h 1bcbbdfa856f8b71b561abb31edb864b0eca1d12
F src/table.c 1aeb9eab57b4235db86fe15a35dec76fb445a9c4
F src/tclsqlite.c 8c970b4cdc615dfc0726abb470a06d285ed336fb
-F src/test1.c 1b0b076c8fa8d6c88b6a36d3644d4c6ad956a712
+F src/test1.c 738f9b4ab808dcfec1516ef699c416e3f4f1d119
F src/test2.c 77b34303883b9d722c65a6879bb0163a400e3789
F src/test3.c 63e49781476f95e6167b441bf98b93392938a850
F src/test4.c c2c0f5dc907f1346f5d4b65eb5799f11eb9e4071
F test/insert.test aef273dd1cee84cc92407469e6bd1b3cdcb76908
F test/insert2.test 5a20e1ace5fa0800b58d28284212290189b49aed
F test/insert3.test 72ea6056811fd234f80d923f977c196089947381
-F test/insert4.test 1e27f0a3e5670d5f03c1636f699aa44270945bca
+F test/insert4.test 9b10c6231e04241f527f44b454bf3507e7033d16
F test/interrupt.test 81555fb0f8179bb2d0dc7151fd75428223f93cf2
F test/intpkey.test af4fd826c4784ec5c93b444de07adea0254d0d30
F test/io.test 9aad06bbcd178f3c0ad6380c1f89df1edecefd6f
F test/speed1.test 22e1b27af0683ed44dcd2f93ed817a9c3e65084a
F test/speed2.test 53177056baf6556dcbdcf032bbdfc41c1aa74ded
F test/speed3.test 55e039b34d505aa442cee415f83c451ae28b3123
-F test/sqllimits1.test 4522961cee7038c4147fdac65e818c2a11c798b3
+F test/sqllimits1.test a86428dde21fbd918422b8ab61659a4215c0d124
F test/subquery.test ae324ee928c5fb463a3ce08a8860d6e7f1ca5797
F test/subselect.test 974e87f8fc91c5f00dd565316d396a5a6c3106c4
F test/substr.test 9f26cfca74397b26ab217fb838c3d0549eb4bcf3
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 1be70015e24f715a4276f253d2e0c0eec44650ee
-R f39bacaaf8a4bd80c3fcaaeb07d44f18
-U drh
-Z 88317a5f744f86fb2f40c61a6535923b
+P 40cf0c177635c087b7695a8c4c3b37da57f74425
+R f6b05a8d392e762308a90982daa6a0ca
+U danielk1977
+Z 917ba269c58ddec092c1b31420c06b88
-40cf0c177635c087b7695a8c4c3b37da57f74425
\ No newline at end of file
+75af7189c0ed1b24a32cff6960af7f17326cbc17
\ No newline at end of file
** This file contains C code routines that are called by the parser
** to handle INSERT statements in SQLite.
**
-** $Id: insert.c,v 1.191 2007/08/29 13:45:59 drh Exp $
+** $Id: insert.c,v 1.192 2007/09/03 17:30:07 danielk1977 Exp $
*/
#include "sqliteInt.h"
if( onError!=OE_Abort && onError!=OE_Rollback ){
return 0; /* Cannot do OR REPLACE or OR IGNORE or OR FAIL */
}
- if( pSelect->pSrc==0 ){
- return 0; /* SELECT must have a FROM clause */
- }
+ assert(pSelect->pSrc); /* allocated even if there is no FROM clause */
if( pSelect->pSrc->nSrc!=1 ){
return 0; /* FROM clause must have exactly one term */
}
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
-** $Id: test1.c,v 1.276 2007/09/03 17:02:50 drh Exp $
+** $Id: test1.c,v 1.277 2007/09/03 17:30:07 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"
case SQLITE_ROW: zName = "SQLITE_ROW"; break;
case SQLITE_DONE: zName = "SQLITE_DONE"; break;
case SQLITE_NOTADB: zName = "SQLITE_NOTADB"; break;
+ case SQLITE_TOOBIG: zName = "SQLITE_TOOBIG"; break;
default: zName = "SQLITE_Unknown"; break;
}
return zName;
# This file implements regression tests for SQLite library. The
# focus of this file is testing the INSERT transfer optimization.
#
-# $Id: insert4.test,v 1.5 2007/04/12 21:25:02 drh Exp $
+# $Id: insert4.test,v 1.6 2007/09/03 17:30:07 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# Create tables used for testing.
#
execsql {
+ PRAGMA legacy_file_format = 0;
CREATE TABLE t1(a int, b int, check(b>a));
CREATE TABLE t2(x int, y int);
CREATE VIEW v2 AS SELECT y, x FROM t2;
{a int, b int} \
{x integer, b int}
-
# Ticket #2291.
#
do_test insert4-4.1 {
}
} {}
+# Check some error conditions:
+#
+do_test insert4-5.1 {
+ # Table does not exist.
+ catchsql { INSERT INTO t2 SELECT * FROM nosuchtable }
+} {1 {no such table: nosuchtable}}
+do_test insert4-5.2 {
+ # Number of columns does not match.
+ catchsql {
+ CREATE TABLE t5(a, b, c);
+ INSERT INTO t4 SELECT * FROM t5;
+ }
+} {1 {table t4 has 2 columns but 3 values were supplied}}
+
+do_test insert4-6.1 {
+ execsql {
+ CREATE INDEX t2_i2 ON t2(x, y COLLATE nocase);
+ CREATE INDEX t2_i1 ON t2(x ASC, y DESC);
+ CREATE INDEX t3_i1 ON t3(a, b);
+ INSERT INTO t2 SELECT * FROM t3;
+ }
+} {}
+
+
+
finish_test
# This file contains tests to verify that the limits defined in
# sqlite source file limits.h are enforced.
#
-# $Id: sqllimits1.test,v 1.15 2007/09/01 18:24:55 danielk1977 Exp $
+# $Id: sqllimits1.test,v 1.16 2007/09/03 17:30:07 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
catchsql { SELECT hex($::str1) }
} {1 {string or blob too big}}
+do_test sqllimits-1.14.1 {
+ set ::STMT [sqlite3_prepare $::DB "SELECT ?" -1 TAIL]
+ sqlite3_bind_zeroblob $::STMT 1 [expr {$SQLITE_MAX_LENGTH + 1}]
+} {}
+do_test sqllimits-1.14.2 {
+ sqlite3_step $::STMT
+} {SQLITE_ERROR}
+do_test sqllimits-1.14.3 {
+ sqlite3_finalize $::STMT
+} {SQLITE_TOOBIG}
+
#--------------------------------------------------------------------
# Test cases sqllimits-2.* test that the SQLITE_MAX_SQL_LENGTH limit
# is enforced.