Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Disclaimed copyright. Preparing for release 2.0. (CVS 250) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
4e926efe2b59adfec4086eb1d2ba8302 |
User & Date: | drh 2001-09-16 00:13:26.000 |
Context
2001-09-16
| ||
13:36 | Version to 2.0.0 (CVS 251) (check-in: c67f6db681 user: drh tags: trunk) | |
00:13 | Disclaimed copyright. Preparing for release 2.0. (CVS 250) (check-in: 4e926efe2b user: drh tags: trunk) | |
2001-09-15
| ||
14:43 | Separate columns in keys using nulls instead of tabs. (CVS 249) (check-in: 8e2f3f751e user: drh tags: trunk) | |
Changes
Deleted COPYRIGHT.
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
Changes to Makefile.in.
︙ | |||
207 208 209 210 211 212 213 214 | 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | + + + - + | $(TOP)/src/tclsqlite.c libsqlite.a $(LIBTCL) testfixture: $(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC) $(TCC) $(TCL_FLAGS) -DTCLSH=1 -DSQLITE_TEST=1 -o testfixture \ $(TESTSRC) $(TOP)/src/tclsqlite.c \ libsqlite.a $(LIBTCL) fulltest: testfixture sqlite ./testfixture $(TOP)/test/all.test test: testfixture sqlite |
︙ |
Changes to doc/lemon.html.
︙ | |||
99 100 101 102 103 104 105 | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | - - + | Using ``-s'' causes a brief summary of parser statistics to be printed. Like this: <pre> Parser statistics: 74 terminals, 70 nonterminals, 179 rules 340 states, 2026 parser table entries, 0 conflicts </pre> Finally, the ``-x'' option causes Lemon to print its version number |
︙ |
Changes to doc/report1.txt.
| 1 2 3 4 5 6 7 8 9 10 | - - - + + + |
|
︙ |
Deleted notes/notes1.txt.
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
Deleted notes/notes2.txt.
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
Deleted notes/notes2b.txt.
| - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
Deleted notes/notes3.txt.
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
Changes to src/btree.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ | |||
49 50 51 52 53 54 55 | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | - + - + | ** In this implementation, a single file can hold one or more separate ** BTrees. Each BTree is identified by the index of its root page. The ** key and data for any entry are combined to form the "payload". Up to ** MX_LOCAL_PAYLOAD bytes of payload can be carried directly on the ** database page. If the payload is larger than MX_LOCAL_PAYLOAD bytes ** then surplus bytes are stored on overflow pages. The payload for an ** entry and the preceding pointer are combined to form a "Cell". Each |
︙ | |||
118 119 120 121 122 123 124 | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | - + + | ** This is a magic integer also used to test the integrity of the database ** file. This integer is used in addition to the string above so that ** if the file is written on a little-endian architecture and read ** on a big-endian architectures (or vice versa) we can detect the ** problem. ** ** The number used was obtained at random and has no special |
︙ |
Changes to src/btree.h.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/build.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | - + - + - - - - + - - - - - + - - - - - + - - - + + - - - + + + + + + + - + | /* |
︙ |
Changes to src/delete.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/expr.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + - + | /* |
︙ |
Changes to src/insert.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + - + | /* |
︙ |
Changes to src/main.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/pager.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + - - - + + + + + + - + | /* |
︙ | |||
99 100 101 102 103 104 105 | 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | - + | #define DATA_TO_PGHDR(D) (&((PgHdr*)(D))[-1]) #define PGHDR_TO_EXTRA(P) ((void*)&((char*)(&(P)[1]))[SQLITE_PAGE_SIZE]) /* ** How big to make the hash table used for locating in-memory pages ** by page number. Knuth says this should be a prime number. */ |
︙ | |||
680 681 682 683 684 685 686 | 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 | - + + + + + + + + + + | int sqlitepager_ref(void *pData){ PgHdr *pPg = DATA_TO_PGHDR(pData); page_ref(pPg); return SQLITE_OK; } /* |
︙ | |||
814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 | 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 | + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ** Try to find one that is not dirty and is near the head of ** of the free list */ int cnt = pPager->mxPage/2; pPg = pPager->pFirst; while( pPg->dirty && 0<cnt-- && pPg->pNextFree ){ pPg = pPg->pNextFree; } /* If we could not find a page that has not been used recently ** and which is not dirty, then sync the journal and write all ** dirty free pages into the database file, thus making them ** clean pages and available for recycling. ** ** We have to sync the journal before writing a page to the main ** database. But syncing is a very slow operation. So after a ** sync, it is best to write everything we can back to the main ** database to minimize the risk of having to sync again in the ** near future. That is way we write all dirty pages after a ** sync. */ if( pPg==0 || pPg->dirty ){ int rc = syncAllPages(pPager); if( rc!=0 ){ sqlitepager_rollback(pPager); *ppPage = 0; return SQLITE_IOERR; } pPg = pPager->pFirst; } assert( pPg->nRef==0 ); |
︙ |
Changes to src/pager.h.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/parse.y.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/random.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/select.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + - + | /* |
︙ |
Changes to src/shell.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/sqlite.h.in.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + - + | /* |
︙ | |||
105 106 107 108 109 110 111 | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | - - - + + + + - + - - - - + + + + + + - + - - | ** value then the query is aborted, all subsequent SQL statements ** are skipped and the sqlite_exec() function returns the SQLITE_ABORT. ** ** The 4th parameter is an arbitrary pointer that is passed ** to the callback function as its first parameter. ** ** The 2nd parameter to the callback function is the number of |
︙ | |||
149 150 151 152 153 154 155 | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | - + | #define SQLITE_INTERNAL 2 /* An internal logic error in SQLite */ #define SQLITE_PERM 3 /* Access permission denied */ #define SQLITE_ABORT 4 /* Callback routine requested an abort */ #define SQLITE_BUSY 5 /* One or more database files are locked */ #define SQLITE_NOMEM 6 /* A malloc() failed */ #define SQLITE_READONLY 7 /* Attempt to write a readonly database */ #define SQLITE_INTERRUPT 8 /* Operation terminated by sqlite_interrupt() */ |
︙ |
Changes to src/sqliteInt.h.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/table.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | - + - + - - - - + - - - - - + - - - - - + - - - + + | /* |
︙ |
Changes to src/tclsqlite.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/test1.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/test2.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/test3.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/tokenize.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ | |||
301 302 303 304 305 306 307 | 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 | - + + + + | } *tokenType = TK_ILLEGAL; return 1; } /* ** Run the parser on the given SQL string. The parser structure is |
︙ |
Changes to src/update.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/util.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/vdbe.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | - + - + - - - - + - - - - - + - - - - - + - - - + + - - + + + - + | /* |
︙ | |||
1117 1118 1119 1120 1121 1122 1123 | 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 | - + + + + + | case OP_Goto: { pc = pOp->p2 - 1; break; } /* Opcode: Halt * * * ** |
︙ | |||
1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 | 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 | + + | /* Opcode: Dup P1 * * ** ** A copy of the P1-th element of the stack ** is made and pushed onto the top of the stack. ** The top of the stack is element 0. So the ** instruction "Dup 0 0 0" will make a copy of the ** top of the stack. ** ** Also see the Pull instruction. */ case OP_Dup: { int i = p->tos - pOp->p1; int j = ++p->tos; VERIFY( if( i<0 ) goto not_enough_stack; ) VERIFY( if( NeedStack(p, p->tos) ) goto no_mem; ) aStack[j] = aStack[i]; |
︙ | |||
1203 1204 1205 1206 1207 1208 1209 | 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 | - + + + + | } /* Opcode: Pull P1 * * ** ** The P1-th element is removed from its current location on ** the stack and pushed back on top of the stack. The ** top of the stack is element 0, so "Pull 0 0 0" is |
︙ | |||
1779 1780 1781 1782 1783 1784 1785 | 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 | - + | ** The lowest entry ** on the stack is the first in the concatenation and the top of ** the stack is the last. After all columns are concatenated, an ** index header is added. The index header consists of P1 16-bit integers ** which hold the offset of the beginning of each column data from the ** beginning of the completed record including the header. ** |
︙ | |||
1832 1833 1834 1835 1836 1837 1838 | 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 | - - - + + + - | zStack[p->tos] = zNewRecord; break; } /* Opcode: MakeKey P1 P2 * ** ** Convert the top P1 entries of the stack into a single entry suitable |
︙ | |||
1952 1953 1954 1955 1956 1957 1958 | 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 | - + + + + + - + + + + + + - - + + - + - + - + - + - + | break; } /* Opcode: Transaction * * * ** ** Begin a transaction. The transaction ends when a Commit or Rollback ** opcode is encountered or whenever there is an execution error that causes |
︙ | |||
2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 | 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 | + + + + + + + + + | ** ** Open a new cursor for the database table whose root page is ** P2 in the main database file. Give the new cursor an identifier ** of P1. The P1 values need not be contiguous but all P1 values ** should be small integers. It is an error for P1 to be negative. ** ** If P2==0 then take the root page number from the top of the stack. ** ** There will be a read lock on the database whenever there is an ** open cursor. If the database was unlocked prior to this instruction ** then a read lock is acquired as part of this instruction. A read ** lock allows other processes to read the database but prohibits ** any other process from modifying the database. The read lock is ** released when all cursors are closed. If this instruction attempts ** to get a read lock but fails, the script terminates with an ** SQLITE_BUSY error code. ** ** The P3 value is the name of the table or index being opened. ** The P3 value is not actually used by this opcode and may be ** omitted. But the code generator usually inserts the index or ** table name into P3 to make the code easier to read. */ case OP_Open: { |
︙ | |||
2125 2126 2127 2128 2129 2130 2131 | 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 | - + | }while( busy ); break; } /* Opcode: OpenTemp P1 * * ** ** Open a new cursor that points to a table in a temporary database |
︙ | |||
2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 | 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 | + + | /* Opcode: MoveTo P1 * * ** ** Pop the top of the stack and use its value as a key. Reposition ** cursor P1 so that it points to an entry with a matching key. If ** the table contains no record with a matching key, then the cursor ** is left pointing at a nearby record. ** ** See also: Found, NotFound, Distinct */ case OP_MoveTo: { int i = pOp->p1; int tos = p->tos; VERIFY( if( tos<0 ) goto not_enough_stack; ) if( i>=0 && i<p->nCursor && p->aCsr[i].pCursor ){ int res; |
︙ | |||
2200 2201 2202 2203 2204 2205 2206 | 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 | - + - - + + + + - + + + - + + + | POPSTACK; break; } /* Opcode: Fcnt * * * ** ** Push an integer onto the stack which is the total number of |
︙ | |||
2274 2275 2276 2277 2278 2279 2280 | 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 | - - + + | } break; } /* Opcode: NewRecno P1 * * ** ** Get a new integer record number used as the key to a table. |
︙ | |||
2317 2318 2319 2320 2321 2322 2323 | 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 | - + | aStack[p->tos].flags = STK_Int; break; } /* Opcode: Put P1 * * ** ** Write an entry into the database file P1. A new entry is |
︙ | |||
2352 2353 2354 2355 2356 2357 2358 | 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 | - - + + - + | /* Opcode: Delete P1 * * ** ** Delete the record at which the P1 cursor is currently pointing. ** ** The cursor will be left pointing at either the next or the previous ** record in the table. If it is left pointing at the next record, then |
︙ | |||
2503 2504 2505 2506 2507 2508 2509 | 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 | - - - + + + + + + | aStack[tos].flags = STK_Int; } break; } /* Opcode: FullKey P1 * * ** |
︙ | |||
2618 2619 2620 2621 2622 2623 2624 | 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 | - - - + + + | break; } /* Opcode: NextIdx P1 P2 * ** ** The P1 cursor points to an SQL index for which a BeginIdx operation ** has been issued. This operation retrieves the next record from that |
︙ | |||
2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 | 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 | + + - + + + + + - + - - + + | break; } /* Opcode: Destroy P1 * * ** ** Delete an entire database table or index whose root page in the database ** file is given by P1. ** ** See also: Clear */ case OP_Destroy: { sqliteBtreeDropTable(pBt, pOp->p1); break; } /* Opcode: Clear P1 * * ** ** Delete all contents of the database table or index whose root page |
︙ | |||
2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 | 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 | + + - - + | break; } /* Opcode: Reorganize P1 * * ** ** Compress, optimize, and tidy up table or index whose root page in the ** database file is P1. ** ** In the current implementation, this is a no-op. */ case OP_Reorganize: { /* This is currently a no-op */ break; } /* Opcode: ListOpen P1 * * ** ** Open a "List" structure used for temporary storage of integer |
︙ | |||
3000 3001 3002 3003 3004 3005 3006 | 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 | - + | ** the string P3. One character from P3 is prepended to each entry. ** The first character of P3 is prepended to the element lowest in ** the stack and the last character of P3 is appended to the top of ** the stack. All stack entries are separated by a \000 character ** in the result. The whole key is terminated by two \000 characters ** in a row. ** |
︙ | |||
3213 3214 3215 3216 3217 3218 3219 | 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 | - + | ** ** Read a single line of input from the open file (the file opened using ** FileOpen). If we reach end-of-file, jump immediately to P2. If ** we are able to get another line, split the line apart using P3 as ** a delimiter. There should be P1 fields. If the input line contains ** more than P1 fields, ignore the excess. If the input line contains ** fewer than P1 fields, assume the remaining fields contain an |
︙ | |||
3297 3298 3299 3300 3301 3302 3303 | 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 | - + | fileread_jump: pc = pOp->p2 - 1; break; } /* Opcode: FileColumn P1 * * ** |
︙ |
Changes to src/vdbe.h.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to src/where.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | - + - + - - - - + - - - - - + - - - - - + - - - + + - + | /* |
︙ |
Changes to test/all.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | - + - - + + - - - - - - - - - - - - - - + - + + - + + + + + + - - + + |
|
︙ |
Changes to test/btree.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/btree2.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ | |||
284 285 286 287 288 289 290 291 | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 | + - | # Repeat this test sequence on database of various sizes # set testno 2 foreach {N L} { 10 2 50 2 200 3 2000 5 } { |
︙ |
Changes to test/copy.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/delete.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/expr.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/func.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/in.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/index.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/insert.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/insert2.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/lock.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/main.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/malloc.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/pager.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/printf.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Added test/quick.test.
|
Changes to test/quote.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/rowid.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/select1.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/select2.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/select3.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/select4.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/select5.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/sort.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/subselect.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/table.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/tableapi.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/tclsqlite.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/tester.tcl.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/trans.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/update.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/vacuum.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to test/where.test.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - + - - + + - - - - - - - - - - - - - - + - + + - + |
|
︙ |
Changes to tool/lemon.c.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | - - - + - - - - - - - - - - - - - - - - - | /* |
︙ | |||
1194 1195 1196 1197 1198 1199 1200 | 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 | - + - - - | {OPT_FLAG,0,0,0} }; int i; struct lemon lem; OptInit(argv,options,stderr); if( version ){ |
︙ |
Changes to tool/lempar.c.
1 | 1 2 3 4 5 6 7 8 9 | - + - - - - - - - - - - - - - - - - - | /* Driver template for the LEMON parser generator. |
︙ |
Changes to www/arch.fig.
1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | - + - - + + - - - + + - - - + + + + - + - + + + + + - + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + | #FIG 3.2 |
Changes to www/arch.png.
cannot compute difference between binary files
Changes to www/arch.tcl.
1 2 3 | 1 2 3 4 5 6 7 8 9 10 11 | - + | # # Run this Tcl script to generate the sqlite.html file. # |
︙ | |||
108 109 110 111 112 113 114 | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | - + - - - - - - - + + + + + + + - - - + + + + + + + + | up to three additional operands.</p> <p>The virtual machine is entirely contained in a single source file <b>vdbe.c</b>. The virtual machine also has its own header file <b>vdbe.h</b> that defines an interface between the virtual machine and the rest of the SQLite library.</p> |
Changes to www/changes.tcl.
︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | + + + + + + + + + + + | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } chng {2001 Sep 15 (2.0.0)} { <li>Initial release of version 2.0. The idea of renaming the library to "SQLus" was abandoned in favor of keeping the "SQLite" name and bumping the major version number.</li> <li>The pager and btree subsystems added back. They are now the only available backend.</li> <li>The Dbbe abstraction and the GDBM and memory drivers were removed.</li> <li>Copyright on all code was disclaimed. The library is now in the public domain.</li> } chng {2001 Jul 23 (1.0.32)} { <li>Pager and btree subsystems removed. These will be used in a follow-on SQL server library named "SQLus".</li> <li>Add the ability to use quoted strings as table and column names in expressions.</li> } |
︙ |
Changes to www/index.tcl.
1 2 3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | - + - + - - - - + - - - - - + + + + + - - + - - - - - + + - | # # Run this TCL script to generate HTML for the index.html file. # |
︙ | |||
69 70 71 72 73 74 75 | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | - - - - | But it only ignores case for 7-bit Latin characters. The case of 8-bit iso8859 characters or UTF-8 characters is signification. Hence, <b>'a' LIKE 'A'</b> returns TRUE but <b>'æ' LIKE 'Æ'</b> returns FALSE. </p></li> </ul> |
︙ |