OLD | NEW |
1 Name: SQLite | 1 Name: SQLite |
2 License File: src/LICENSE | 2 License File: src/LICENSE |
3 URL: http://sqlite.org/ | 3 URL: http://sqlite.org/ |
4 | 4 |
5 Instructions for importing a new release of SQLite from sqlite.org. | 5 Instructions for importing a new release of SQLite from sqlite.org. |
6 | 6 |
7 Note: our current base version is 3.6.18. | 7 Note: our current base version is 3.7.3. |
8 | 8 |
9 First, you need to be on Linux. | 9 First, you need to be on Linux. |
10 | 10 |
11 # Determine the versions of the release you want and the release we currently | 11 # Determine the versions of the release you want and the release we currently |
12 # have. (See the VERSION file to determine which release we currently have.) | 12 # have. (See the VERSION file to determine which release we currently have.) |
13 # You may wish to consult http://www.sqlite.org/changes.html to find out what | 13 # You may wish to consult http://www.sqlite.org/changes.html to find out what |
14 # changes have been made in each release. | 14 # changes have been made in each release. |
15 # Note - this is just an example. Always refer to the version above for our | 15 # Note - this is just an example. Always refer to the version above for our |
16 # real current version. | 16 # real current version. |
17 # Set some variables to remember the versions, e.g.: | 17 # Set some variables to remember the versions, e.g.: |
18 BASE=3.6.18 | 18 BASE=3.7.3 |
19 LATEST=3.6.22 | 19 LATEST=3.7.4 |
20 | 20 |
21 # Get to the src/third_party directory in your Chromium client: | 21 # Get to the src/third_party directory in your Chromium client: |
22 cd src/third_party | 22 cd src/third_party |
23 | 23 |
24 # Download the .tar.gz files for the releases: | 24 # Download the .tar.gz files for the releases: |
25 # (If the URL changes you might need to find the new one.) | 25 # (If the URL changes you might need to find the new one.) |
26 wget http://www.sqlite.org/sqlite-$BASE.tar.gz | 26 wget http://www.sqlite.org/sqlite-$BASE.tar.gz |
27 wget http://www.sqlite.org/sqlite-$LATEST.tar.gz | 27 wget http://www.sqlite.org/sqlite-$LATEST.tar.gz |
28 | 28 |
29 # Extract the vanilla current and desired versions: | 29 # Extract the vanilla current and desired versions: |
30 tar xzf sqlite-$BASE.tar.gz | 30 tar xzf sqlite-$BASE.tar.gz |
31 tar xzf sqlite-$LATEST.tar.gz | 31 tar xzf sqlite-$LATEST.tar.gz |
32 | 32 |
33 # Use kdiff3 to merge the changes: | 33 # Use kdiff3 to merge the changes: |
34 kdiff3 -m sqlite-$BASE sqlite-$LATEST sqlite | 34 kdiff3 -m sqlite-$BASE sqlite-$LATEST sqlite/src |
35 | 35 |
36 # Resolve any conflicts. Figure out if we've got everything we should | 36 # Resolve any conflicts. Figure out if we've got everything we should |
37 # have (see below), or if we can omit any changes we no longer need. | 37 # have (see below), or if we can omit any changes we no longer need. |
38 | 38 |
39 # Change to the sqlite directory: | 39 # Change to the sqlite directory: |
40 cd sqlite | 40 cd sqlite |
41 | 41 |
42 # Run the google_generate_preprocessed.sh script: | 42 # Run the google_generate_preprocessed.sh script: |
43 ./google_generate_preprocessed.sh | 43 ./google_generate_preprocessed.sh |
44 | 44 |
(...skipping 11 matching lines...) Expand all Loading... |
56 For reference, all of our local patches are also kept as .patch files in the | 56 For reference, all of our local patches are also kept as .patch files in the |
57 sqlite directory. Here is a list of the patches, in the order they should be | 57 sqlite directory. Here is a list of the patches, in the order they should be |
58 applied to a vanilla SQLite (of the version we currently have) to get, in | 58 applied to a vanilla SQLite (of the version we currently have) to get, in |
59 principle, exactly what is checked in: | 59 principle, exactly what is checked in: |
60 | 60 |
61 misc.patch | 61 misc.patch |
62 preload-cache.patch | 62 preload-cache.patch |
63 safe-tolower.patch | 63 safe-tolower.patch |
64 sqlite-poison.patch | 64 sqlite-poison.patch |
65 fts2.patch | 65 fts2.patch |
66 fts3.patch | |
67 icu-regexp.patch | |
68 attach-integer.patch | 66 attach-integer.patch |
69 | 67 |
70 So, e.g. you could do this to apply all our patches to vanilla SQLite: | 68 So, e.g. you could do this to apply all our patches to vanilla SQLite: |
71 | 69 |
72 cd sqlite-$LATEST | 70 cd sqlite-$LATEST |
73 patch -p0 < ../sqlite/misc.patch | 71 patch -p0 < ../sqlite/misc.patch |
74 patch -p0 < ../sqlite/preload-cache.patch | 72 patch -p0 < ../sqlite/preload-cache.patch |
75 patch -p0 < ../sqlite/safe-tolower.patch | 73 patch -p0 < ../sqlite/safe-tolower.patch |
76 patch -p0 < ../sqlite/sqlite-poison.patch | 74 patch -p0 < ../sqlite/sqlite-poison.patch |
77 patch -p0 < ../sqlite/fts2.patch | 75 patch -p0 < ../sqlite/fts2.patch |
78 patch -p0 < ../sqlite/fts3.patch | |
79 patch -p0 < ../sqlite/icu-regexp.patch | |
80 patch -p0 < ../sqlite/attach-integer.patch | 76 patch -p0 < ../sqlite/attach-integer.patch |
81 | 77 |
82 This will only be the case if all changes we make also update the corresponding | 78 This will only be the case if all changes we make also update the corresponding |
83 patch files. Therefore please remember to do that whenever you make a change! | 79 patch files. Therefore please remember to do that whenever you make a change! |
84 | 80 |
85 Descriptions of the changes we've made can be found at the bottom of this file. | 81 Descriptions of the changes we've made can be found at the bottom of this file. |
86 | 82 |
| 83 NOTE: fts3.patch no longer applies at all, so the patch only exists for |
| 84 historical reference. |
| 85 |
87 -------------------------------------------- | 86 -------------------------------------------- |
88 | 87 |
89 How to run the SQLite tests for the Chromium version of SQLite on Linux. | 88 How to run the SQLite tests for the Chromium version of SQLite on Linux. |
90 | 89 |
91 Prerequisties: On my corp Ubuntu 8.04 workstation, I needed to install the | 90 Prerequisties: On my corp Ubuntu 8.04 workstation, I needed to install the |
92 following packages: | 91 following packages: |
93 sudo apt-get install tcl8.4-dev libicu-dev | 92 sudo apt-get install tcl8.4-dev libicu-dev |
94 | 93 |
95 cd src/third_party/sqlite | 94 cd src/third_party/sqlite/src |
96 mkdir build | 95 mkdir build |
97 cd build | 96 cd build |
98 make -f ../Makefile.linux-gcc testfixture | 97 make -f ../Makefile.linux-gcc testfixture |
99 make -f ../Makefile.linux-gcc test > /tmp/test.log | 98 make -f ../Makefile.linux-gcc test > /tmp/test.log |
100 egrep -v 'Ok$' /tmp/test.log | 99 egrep -v 'Ok$' /tmp/test.log |
101 # For an ideal test run, you would see: | 100 # For an ideal test run, you would see: |
102 # 0 errors out of 57887 tests | 101 # 0 errors out of 57887 tests |
103 # However, the current situation on my corp Linux Ubuntu 8.04 machine, with | 102 # However, the current situation on my corp Linux Ubuntu 8.04 machine, with |
104 # test run on a locally mounted directory, is the failure of: | 103 # test run on a locally mounted directory, is the failure of: |
105 # "rollback-2.3", "tkt3457-1.4" | 104 # "rollback-2.3", "tkt3457-1.4" |
106 # I do not know why, but it is not related to our fts2.c changes -- I backed | 105 # I do not know why, but it is not related to our fts2.c changes -- I backed |
107 # them out to check. | 106 # them out to check. |
108 | 107 |
109 Chris Evans <cevans@google.com>, Oct 1, 2009 | 108 Chris Evans <cevans@google.com>, Oct 1, 2009 |
110 | 109 |
111 -------------------------------------------- | 110 -------------------------------------------- |
112 | 111 |
113 As of May 07, 2010, these are our changes from sqlite_vendor: | 112 As of May 07, 2010, these are our changes from sqlite_vendor: |
114 | 113 |
115 - A fix for a crash passing an integer expression to ATTACH / DETACH. See | 114 - A fix for a crash passing an integer expression to ATTACH / DETACH. See |
116 attach-integer.patch | 115 attach-integer.patch |
117 - A fix for a crash mis-calling the REGEXP() function of the ICU extension. | |
118 See icu-regexp.patch | |
119 - A large number of fts2 robustness fixes against corrupt data in its metadata | 116 - A large number of fts2 robustness fixes against corrupt data in its metadata |
120 tables. | 117 tables. |
121 - fts2.c disables fts2_tokenizer(). | 118 - fts2.c disables fts2_tokenizer(). |
122 - fts3.c disables fts3_tokenizer(). | 119 - fts3.c disables fts3_tokenizer(). |
123 - sqlite3Poison() in src/btree.c. | 120 - sqlite3Poison() in src/btree.c. |
124 - Tweak to SQLITE_EXTENSION_INIT* in sqlite3ext.h. | 121 - Tweak to SQLITE_EXTENSION_INIT* in sqlite3ext.h. |
125 - That implied a change in src/test_autoext.c for testing. | 122 - That implied a change in src/test_autoext.c for testing. |
126 - Added fts.test and fts1.test in tests, modified quick.test. | 123 - Added fts.test and fts1.test in tests, modified quick.test. |
127 - src/os_symbian.cc. | 124 - src/os_symbian.cc. |
128 - Modifications to Makefile.linux-gcc and main.mk for compiling | 125 - Modifications to Makefile.linux-gcc and main.mk for compiling |
(...skipping 24 matching lines...) Expand all Loading... |
153 - fts2_icu.c and fts3_icu.c have a critical bug. U8_NEXT is used over | 150 - fts2_icu.c and fts3_icu.c have a critical bug. U8_NEXT is used over |
154 a UTF-16 string. It's rep$ by U16_NEXT (jungshik) | 151 a UTF-16 string. It's rep$ by U16_NEXT (jungshik) |
155 - Added a new function sqlite3Preload we use to prime the database cache. It | 152 - Added a new function sqlite3Preload we use to prime the database cache. It |
156 allows much faster performance by reading the file in one contiguous | 153 allows much faster performance by reading the file in one contiguous |
157 operation rather than bringing it in organically, which involves a lot of | 154 operation rather than bringing it in organically, which involves a lot of |
158 seeking. This change also required sqlite3PcacheGetCachesize to be compiled | 155 seeking. This change also required sqlite3PcacheGetCachesize to be compiled |
159 even outside SQLITE_TEST. | 156 even outside SQLITE_TEST. |
160 - Added a new function chromium_sqlite3_initialize_win_sqlite3_file() | 157 - Added a new function chromium_sqlite3_initialize_win_sqlite3_file() |
161 at the end of os_win.c. It allows the Windows-specific Chromium VFS | 158 at the end of os_win.c. It allows the Windows-specific Chromium VFS |
162 to reuse most of the win32 SQLite VFS. | 159 to reuse most of the win32 SQLite VFS. |
OLD | NEW |