Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Require whitespace or punctuation between a numeric literal and an identifier or keyword. Ticket #1912. (CVS 3345) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0f667c4abd73bbb806a5efb31b0aba6e |
User & Date: | drh 2006-08-12 12:33:14.000 |
Context
2006-08-12
| ||
13:28 | Fix a bug in out-of-memory processing introduced by check-in (3336). (CVS 3346) (check-in: 8d98a205cb user: drh tags: trunk) | |
12:33 | Require whitespace or punctuation between a numeric literal and an identifier or keyword. Ticket #1912. (CVS 3345) (check-in: 0f667c4abd user: drh tags: trunk) | |
2006-08-11
| ||
19:08 | Make sure sufficient memory is allocated to hold the collating sequence pointers for all columns of an ORDER BY clause even if the ORDER BY clause contains more columns than where originally in the table. Ticket #1911. (CVS 3344) (check-in: 924ea730f4 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.124 2006/08/12 12:33:14 drh Exp $ */ #include "sqliteInt.h" #include "os.h" #include <ctype.h> #include <stdlib.h> /* |
︙ | ︙ | |||
281 282 283 284 285 286 287 288 289 290 291 292 293 294 | ) ){ i += 2; while( isdigit(z[i]) ){ i++; } *tokenType = TK_FLOAT; } #endif return i; } case '[': { for(i=1, c=z[0]; c!=']' && (c=z[i])!=0; i++){} *tokenType = TK_ID; return i; } | > > > > | 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 | ) ){ i += 2; while( isdigit(z[i]) ){ i++; } *tokenType = TK_FLOAT; } #endif while( IdChar(z[i]) ){ *tokenType = TK_ILLEGAL; i++; } return i; } case '[': { for(i=1, c=z[0]; c!=']' && (c=z[i])!=0; i++){} *tokenType = TK_ID; return i; } |
︙ | ︙ |
Changes to test/autovacuum.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 testing the SELECT statement. # | | | 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 testing the SELECT statement. # # $Id: autovacuum.test,v 1.24 2006/08/12 12:33:15 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # If this build of the library does not support auto-vacuum, omit this # whole file. ifcapable {!autovacuum || !pragma} { |
︙ | ︙ | |||
91 92 93 94 95 96 97 | } {ok} } foreach delete $delete_order { # Delete one set of rows from the table. do_test autovacuum-1.$tn.($delete).1 { execsql " | | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | } {ok} } foreach delete $delete_order { # Delete one set of rows from the table. do_test autovacuum-1.$tn.($delete).1 { execsql " DELETE FROM av1 WHERE oid = [join $delete " OR oid = "] " } {} # Do the integrity check. ifcapable {integrityck} { do_test autovacuum-1.$tn.($delete).2 { execsql { |
︙ | ︙ |
Changes to test/misc5.test.
︙ | ︙ | |||
9 10 11 12 13 14 15 | # #*********************************************************************** # This file implements regression tests for SQLite library. # # This file implements tests for miscellanous features that were # left out of other test files. # | | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # #*********************************************************************** # This file implements regression tests for SQLite library. # # This file implements tests for miscellanous features that were # left out of other test files. # # $Id: misc5.test,v 1.15 2006/08/12 12:33:15 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Build records using the MakeRecord opcode such that the size of the # header is at the transition point in the size of a varint. # |
︙ | ︙ | |||
594 595 596 597 598 599 600 601 602 | execsql { SELECT name, type FROM sqlite_master WHERE name IS NULL UNION SELECT type, name FROM sqlite_master WHERE type IS NULL ORDER BY 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 } } {} finish_test | > > > > > > > > > > > > > > > > | 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 | execsql { SELECT name, type FROM sqlite_master WHERE name IS NULL UNION SELECT type, name FROM sqlite_master WHERE type IS NULL ORDER BY 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 } } {} # Ticket #1912. Make the tokenizer require a space after a numeric # literal. # do_test misc5-10.1 { catchsql { SELECT 123abc } } {1 {unrecognized token: "123abc"}} do_test misc5-10.2 { catchsql { SELECT 1*123.4e5ghi; } } {1 {unrecognized token: "123.4e5ghi"}} finish_test |