Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Report an error if the input SQL contains an unterminated string. Ticket #1497. (CVS 2751) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c9c476dd836c49255eabc6cce8306497 |
User & Date: | drh 2005-10-23 11:29:40.000 |
Context
2005-10-29
| ||
15:48 | Fix the shift operators so that they work with 64-bit quantities. (CVS 2752) (check-in: 0d3357b5f6 user: drh tags: trunk) | |
2005-10-23
| ||
11:29 | Report an error if the input SQL contains an unterminated string. Ticket #1497. (CVS 2751) (check-in: c9c476dd83 user: drh tags: trunk) | |
2005-10-20
| ||
07:28 | Changes to prevent various compiler warnings. (CVS 2750) (check-in: e261b8b09a user: drh tags: trunk) | |
Changes
Changes to src/tokenize.c.
︙ | ︙ | |||
11 12 13 14 15 16 17 | ************************************************************************* ** An tokenizer for SQL ** ** This file contains C code that splits an SQL input string up into ** individual tokens and sends those tokens one-by-one over to the ** parser for analysis. ** | | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | ************************************************************************* ** An tokenizer for SQL ** ** This file contains C code that splits an SQL input string up into ** individual tokens and sends those tokens one-by-one over to the ** parser for analysis. ** ** $Id: tokenize.c,v 1.108 2005/10/23 11:29:40 drh Exp $ */ #include "sqliteInt.h" #include "os.h" #include <ctype.h> #include <stdlib.h> /* |
︙ | ︙ | |||
192 193 194 195 196 197 198 | if( z[i+1]==delim ){ i++; }else{ break; } } } | | | > > > | > | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 | if( z[i+1]==delim ){ i++; }else{ break; } } } if( c ){ *tokenType = TK_STRING; return i+1; }else{ *tokenType = TK_ILLEGAL; return i; } } case '.': { #ifndef SQLITE_OMIT_FLOATING_POINT if( !isdigit(z[1]) ) #endif { *tokenType = TK_DOT; |
︙ | ︙ |
Changes to test/main.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2001 September 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is exercising the code in main.c. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2001 September 15 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is exercising the code in main.c. # # $Id: main.test,v 1.22 2005/10/23 11:29:40 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Only do the next group of tests if the sqlite3_complete API is available # ifcapable {complete} { |
︙ | ︙ | |||
272 273 274 275 276 277 278 279 280 281 282 283 284 285 | catch {db close} foreach f [glob -nocomplain testdb/*] {file delete -force $f} file delete -force testdb sqlite3 db testdb set v [catch {execsql {SELECT * from T1 where @x}} msg] lappend v $msg } {1 {unrecognized token: "@"}} do_test main-3.3 { catch {db close} foreach f [glob -nocomplain testdb/*] {file delete -force $f} file delete -force testdb sqlite3 db testdb execsql { | > > > > > > | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 | catch {db close} foreach f [glob -nocomplain testdb/*] {file delete -force $f} file delete -force testdb sqlite3 db testdb set v [catch {execsql {SELECT * from T1 where @x}} msg] lappend v $msg } {1 {unrecognized token: "@"}} do_test main-3.2.2 { catchsql {select 'abc} } {1 {unrecognized token: "'abc"}} do_test main-3.2.3 { catchsql {select "abc} } {1 {unrecognized token: ""abc"}} do_test main-3.3 { catch {db close} foreach f [glob -nocomplain testdb/*] {file delete -force $f} file delete -force testdb sqlite3 db testdb execsql { |
︙ | ︙ |
Changes to test/trigger4.test.
︙ | ︙ | |||
126 127 128 129 130 131 132 133 134 135 136 137 138 139 | update test set b=99 where id=7; select * from test2; } } {7 99} do_test trigger4-4.1 { db close sqlite3 db trigtest.db catchsql {drop table tbl; drop view vw} execsql { create table tbl(a integer primary key, b integer); create view vw as select * from tbl; create trigger t_del_tbl instead of delete on vw for each row begin delete from tbl where a = old.a; | > > | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | update test set b=99 where id=7; select * from test2; } } {7 99} do_test trigger4-4.1 { db close file delete -force trigtest.db file delete -force trigtest.db-journal sqlite3 db trigtest.db catchsql {drop table tbl; drop view vw} execsql { create table tbl(a integer primary key, b integer); create view vw as select * from tbl; create trigger t_del_tbl instead of delete on vw for each row begin delete from tbl where a = old.a; |
︙ | ︙ |