Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | :-) (CVS 171) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d49e10fb5e29318f1f777664562b68dd |
User & Date: | drh 2001-01-04 14:20:17.000 |
Original User & Date: | drh 2001-01-04 14:20:18.000 |
Context
2001-01-04
| ||
14:20 | branches: 1.17.2; :-) (CVS 172) (check-in: 64900e42cd user: drh tags: trunk) | |
14:20 | :-) (CVS 171) (check-in: d49e10fb5e user: drh tags: trunk) | |
2000-12-10
| ||
18:40 | Version 1.0.17 (CVS 486) (check-in: bee0c81859 user: drh tags: trunk) | |
Changes
Changes to VERSION.
|
| | | 1 | 1.0.18 |
Changes to src/parse.y.
︙ | ︙ | |||
22 23 24 25 26 27 28 | ** ************************************************************************* ** This file contains SQLite's grammar for SQL. Process this file ** using the lemon parser generator to generate C code that runs ** the parser. Lemon will also generate a header file containing ** numeric codes for all of the tokens. ** | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ** ************************************************************************* ** This file contains SQLite's grammar for SQL. Process this file ** using the lemon parser generator to generate C code that runs ** the parser. Lemon will also generate a header file containing ** numeric codes for all of the tokens. ** ** @(#) $Id: parse.y,v 1.26 2001/01/04 14:20:18 drh Exp $ */ %token_prefix TK_ %token_type {Token} %extra_argument {Parse *pParse} %syntax_error { sqliteSetString(&pParse->zErrMsg,"syntax error",0); pParse->sErrToken = TOKEN; |
︙ | ︙ | |||
110 111 112 113 114 115 116 117 | // For the time being, the only constraint we care about is the primary // key. // conslist_opt ::= . conslist_opt ::= COMMA conslist. conslist ::= conslist COMMA tcons. conslist ::= tcons. | > | < | | | | 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | // For the time being, the only constraint we care about is the primary // key. // conslist_opt ::= . conslist_opt ::= COMMA conslist. conslist ::= conslist COMMA tcons. conslist ::= conslist tcons. conslist ::= tcons. tcons ::= CONSTRAINT id. tcons ::= PRIMARY KEY LP idxlist(X) RP. {sqliteCreateIndex(pParse,0,0,X,0,0);} tcons ::= UNIQUE LP idlist RP. tcons ::= CHECK expr. idlist ::= idlist COMMA id. idlist ::= id. // The next command format is dropping tables. // cmd ::= DROP TABLE id(X). {sqliteDropTable(pParse,&X);} |
︙ | ︙ |
Changes to src/shell.c.
︙ | ︙ | |||
20 21 22 23 24 25 26 | ** drh@hwaci.com ** http://www.hwaci.com/drh/ ** ************************************************************************* ** This file contains code to implement the "sqlite" command line ** utility for accessing SQLite databases. ** | | | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | ** drh@hwaci.com ** http://www.hwaci.com/drh/ ** ************************************************************************* ** This file contains code to implement the "sqlite" command line ** utility for accessing SQLite databases. ** ** $Id: shell.c,v 1.28 2001/01/04 14:20:18 drh Exp $ */ #include <stdlib.h> #include <string.h> #include <stdio.h> #include "sqlite.h" #include <unistd.h> #include <ctype.h> |
︙ | ︙ | |||
765 766 767 768 769 770 771 | while( (zLine = one_input_line(zSql, istty))!=0 ){ if( zLine && zLine[0]=='.' ){ do_meta_command(zLine, db, &data); free(zLine); continue; } if( zSql==0 ){ | > > > | | | > | > | 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 | while( (zLine = one_input_line(zSql, istty))!=0 ){ if( zLine && zLine[0]=='.' ){ do_meta_command(zLine, db, &data); free(zLine); continue; } if( zSql==0 ){ int i; for(i=0; zLine[i] && isspace(zLine[i]); i++){} if( zLine[i]!=0 ){ nSql = strlen(zLine); zSql = malloc( nSql+1 ); strcpy(zSql, zLine); } }else{ int len = strlen(zLine); zSql = realloc( zSql, nSql + len + 2 ); if( zSql==0 ){ fprintf(stderr,"%s: out of memory!\n", argv0); exit(1); } strcpy(&zSql[nSql++], "\n"); strcpy(&zSql[nSql], zLine); nSql += len; } free(zLine); if( zSql && sqlite_complete(zSql) ){ data.cnt = 0; if( sqlite_exec(db, zSql, callback, &data, &zErrMsg)!=0 && zErrMsg!=0 ){ if( !istty ) printf("%s\n",zSql); printf("SQL error: %s\n", zErrMsg); free(zErrMsg); zErrMsg = 0; } free(zSql); zSql = 0; nSql = 0; } } } sqlite_close(db); return 0; } |
Changes to test/lock.test.
︙ | ︙ | |||
19 20 21 22 23 24 25 | # drh@hwaci.com # http://www.hwaci.com/drh/ # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this script is database locks. # | | | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # drh@hwaci.com # http://www.hwaci.com/drh/ # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this script is database locks. # # $Id: lock.test,v 1.5 2001/01/04 14:20:18 drh Exp $ if {$dbprefix=="gdbm:"} { set testdir [file dirname $argv0] source $testdir/tester.tcl |
︙ | ︙ | |||
68 69 70 71 72 73 74 | # set f [open update.sql w] puts $f ".timeout 0" puts $f "UPDATE big SET f2='xyz' WHERE f1=11;" puts $f "SELECT f2 FROM big WHERE f1=11;" close $f exec ./sqlite testdb <update.sql | | | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | # set f [open update.sql w] puts $f ".timeout 0" puts $f "UPDATE big SET f2='xyz' WHERE f1=11;" puts $f "SELECT f2 FROM big WHERE f1=11;" close $f exec ./sqlite testdb <update.sql } "UPDATE big SET f2='xyz' WHERE f1=11;\nSQL error: table big is locked\n22" do_test lock-1.4 { # Try to update the database using a timeout # set f [open update.sql w] puts $f ".timeout 1000" puts $f "UPDATE big SET f2='xyz' WHERE f1=11;" puts $f "SELECT f2 FROM big WHERE f1=11;" close $f exec ./sqlite testdb <update.sql } "UPDATE big SET f2='xyz' WHERE f1=11;\nSQL error: table big is locked\n22" do_test lock-1.5 { # Try to update the database using a timeout # set f [open update.sql w] puts $f ".timeout 10000" puts $f "UPDATE big SET f2='xyz' WHERE f1=11;" |
︙ | ︙ |
Changes to www/changes.tcl.
︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2000 Dec 10 (1.0.17)} { <li>Rewrote <b>sqlite_complete()</b> to make it faster.</li> <li>Minor tweaks to other code to make it run a little faster.</li> <li>Added new tests for <b>sqlite_complete()</b> and for memory leaks.</li> } | > > > > > > | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2001 Jan 4 (1.0.18)} { <li>Print the offending SQL statement when an error occurs.</li> <li>Do not require commas between constraints in CREATE TABLE statements.</li> <li>Changes to comments.</li> } chng {2000 Dec 10 (1.0.17)} { <li>Rewrote <b>sqlite_complete()</b> to make it faster.</li> <li>Minor tweaks to other code to make it run a little faster.</li> <li>Added new tests for <b>sqlite_complete()</b> and for memory leaks.</li> } |
︙ | ︙ |