• Home
  • History
  • Annotate
  • only in /external/chromium_org/third_party/sqlite/
NameDateSize

..12-Mar-20154 KiB

amalgamation/12-Mar-20154 KiB

BUILD.gn12-Mar-20152.9 KiB

build_as_cpp.cc12-Mar-2015165

fts2.patch12-Mar-201560.9 KiB

fts3.patch12-Mar-20152.2 KiB

fts3_85522.patch12-Mar-2015730

google_generate_amalgamation.sh12-Mar-2015572

icu-shell.patch12-Mar-20152.7 KiB

LICENSE12-Mar-2015254

mac_time_machine.patch12-Mar-20153.3 KiB

memcmp.patch12-Mar-20153 KiB

misalignment.patch12-Mar-20151.7 KiB

misc.patch12-Mar-2015945

OWNERS12-Mar-201565

README.chromium12-Mar-20158.1 KiB

recover.patch12-Mar-201574.9 KiB

separate_cache_pool.patch12-Mar-20151.3 KiB

sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch12-Mar-20151.1 KiB

sqlite.gyp12-Mar-20156.4 KiB

sqlite.target.darwin-arm.mk12-Mar-20158.6 KiB

sqlite.target.darwin-arm64.mk12-Mar-20158.1 KiB

sqlite.target.darwin-mips.mk12-Mar-20158.3 KiB

sqlite.target.darwin-mips64.mk12-Mar-20158.3 KiB

sqlite.target.darwin-x86.mk12-Mar-20158.3 KiB

sqlite.target.darwin-x86_64.mk12-Mar-20158.3 KiB

sqlite.target.linux-arm.mk12-Mar-20158.6 KiB

sqlite.target.linux-arm64.mk12-Mar-20158.1 KiB

sqlite.target.linux-mips.mk12-Mar-20158.3 KiB

sqlite.target.linux-mips64.mk12-Mar-20158.3 KiB

sqlite.target.linux-x86.mk12-Mar-20158.3 KiB

sqlite.target.linux-x86_64.mk12-Mar-20158.3 KiB

sqlite3.h12-Mar-2015547

src/12-Mar-20154 KiB

system-sqlite.patch12-Mar-201531.6 KiB

test.patch12-Mar-20154.4 KiB

webdb.patch12-Mar-20155.2 KiB

README.chromium

1Name: sqlite
2URL: http://sqlite.org/
3Version: 3.7.6.3
4Included In Release: Yes
5Security Critical: Yes
6License: Public domain
7
8Instructions for importing a new release of SQLite from sqlite.org.
9
10Note: our current base version is 3.7.6.3.
11
12First, you need to be on Linux.
13
14# Determine the versions of the release you want and the release we currently
15# have. (See the VERSION file to determine which release we currently have.)
16# You may wish to consult http://www.sqlite.org/changes.html to find out what
17# changes have been made in each release.
18# Note - this is just an example. Always refer to the version above for our
19# real current version.
20# Set some variables to remember the versions, e.g.:
21BASE=3.7.6.3
22LATEST=3.7.6.4
23
24# Get to the src/third_party directory in your Chromium client:
25cd src/third_party
26
27# Download the .tar.gz files for the releases:
28# (If the URL changes you might need to find the new one.)
29# TODO(shess): Rewrite this to track the new naming format.  Meanwhile,
30# manually navigate to www.sqlite.org and find downloads, use "legacy" version.
31wget http://www.sqlite.org/sqlite-$BASE.tar.gz
32wget http://www.sqlite.org/sqlite-$LATEST.tar.gz
33
34# Extract the vanilla current and desired versions:
35tar xzf sqlite-$BASE.tar.gz
36tar xzf sqlite-$LATEST.tar.gz
37
38# Use kdiff3 to merge the changes:
39kdiff3 -m sqlite-$BASE sqlite-$LATEST sqlite
40
41# Resolve any conflicts.  Figure out if we've got everything we should
42# have (see below), or if we can omit any changes we no longer need.
43
44# Change to the sqlite directory:
45cd sqlite
46
47# Run the google_generate_amalgamation.sh script:
48./google_generate_amalgamation.sh
49
50# Find a sucker.  Send review.
51# TODO(shess) Describe an appropriate comment style.  Seems like it
52# should at least include the SQLite version number.
53
54--------------------------------------------
55
56For reference, all of our local patches are also kept as .patch files in the
57sqlite directory. Here is a list of the patches, in the order they should be
58applied to a vanilla SQLite (of the version we currently have) to get, in
59principle, exactly what is checked in:
60
61misc.patch
62safe-tolower.patch
63fts2.patch
64fts3.patch
65fts3_85522.patch
66icu-regexp.patch
67icu-shell.patch
68attach-integer.patch
69webdb.patch
70test.patch
71mac_time_machine.patch
72system-sqlite.patch
73sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch
74misalignment.patch
75memcmp.patch
76separate_cache_pool.patch
77recover.patch
78
79So, e.g. you could do this to apply all our patches to vanilla SQLite:
80
81cd sqlite-$LATEST
82patch -p0 < ../sqlite/misc.patch
83patch -p0 < ../sqlite/fts2.patch
84patch -p0 < ../sqlite/fts3.patch
85patch -p0 < ../sqlite/fts3_85522.patch
86patch -p0 < ../sqlite/icu-shell.patch
87patch -p0 < ../sqlite/webdb.patch
88patch -p0 < ../sqlite/test.patch
89patch -p0 < ../sqlite/mac_time_machine.patch
90patch -p0 < ../sqlite/system-sqlite.patch
91patch -p0 < ../sqlite/sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch
92patch -p0 < ../sqlite/misalignment.patch
93patch -p0 < ../sqlite/memcmp.patch
94patch -p0 < ../sqlite/separate_cache_pool.patch
95patch -p0 < ../sqlite/recover.patch
96
97This will only be the case if all changes we make also update the corresponding
98patch files. Therefore please remember to do that whenever you make a change!
99
100Descriptions of the changes we've made can be found at the bottom of this file.
101
102--------------------------------------------
103
104How to run the SQLite tests for the Chromium version of SQLite on Linux.
105
106Prerequisties: On my corp Ubuntu 8.04 workstation, I needed to install the
107following packages:
108sudo apt-get install tcl8.4-dev libicu-dev
109
110cd src/third_party/sqlite/src
111mkdir build
112cd build
113make -f ../Makefile.linux-gcc testfixture
114make -f ../Makefile.linux-gcc test > /tmp/test.log
115egrep -v 'Ok$' /tmp/test.log
116# For an ideal test run, you would see:
117# 0 errors out of 57887 tests
118# However, the current situation on my corp Linux Ubuntu 8.04 machine, with
119# test run on a locally mounted directory, is the failure of:
120# "rollback-2.3", "tkt3457-1.4"
121# I do not know why, but it is not related to our fts2.c changes -- I backed
122# them out to check.
123
124Chris Evans <cevans@google.com>, Oct 1, 2009
125
126--------------------------------------------
127
128As of May 07, 2010, these are our changes from sqlite_vendor:
129
130 - A fix for a crash passing an integer expression to ATTACH / DETACH. See
131 attach-integer.patch
132 - A fix for a crash mis-calling the REGEXP() function of the ICU extension.
133 See icu-regexp.patch
134 - A large number of fts2 robustness fixes against corrupt data in its metadata
135   tables.
136 - fts2.c disables fts2_tokenizer().
137 - fts3.c disables fts3_tokenizer().
138 - Tweak to SQLITE_EXTENSION_INIT* in sqlite3ext.h.
139   - That implied a change in src/test_autoext.c for testing.
140 - Added fts.test in tests, modified quick.test.
141 - Modifications to Makefile.linux-gcc and main.mk for compiling
142   SQLite tests.
143 - Compile warning (cast to void* for sqlite3_free) fixed in func.c.
144 - Avoid using tolower() in fts code which causes problem in some locales, see:
145   safe-tolower.patch
146   http://crbug.com/15261
147   http://www.sqlite.org/src/tktview/991789d9f3136a0460dc83a33e815c1aa9757c26
148 - Check that the third argument to memset() is nonzero in expr.c to avoid
149   a linker warning when the compiler can optimize it to a constant zero
150   (e.g. see http://www.sqlite.org/cvstrac/tktview?tn=3765,39)
151
152Changes from Chrome:
153 - I marked all changes I made with "evanm", so you can find them with
154   "grep evanm *".
155 - Most files include sqlite3ext.h with SQLITE_CORE #defined, but two don't:
156   fts2_tokenizer.c and icu.c.  Without this #define, the calls in
157   fts2_tokenizer.c try to go through some pointer to the sqlite API instead
158   of calling the functions directly (to work as a loadable module), but then
159   crash (because the other files never initialize that loadable module
160   support).  As a hack I #defined it in these files, but it'd be nice to
161   figure out what really ought to happen here (perhaps this file is new and
162   hasn't been tested to verify it works right).  Update: Seems this is an
163   issue we get because we're using fts2 instead of fts3.
164 - shell_icu_win.c and shell_icu_linux.c are Chrome-specific files used to load
165   our ICU data.  shell.c has been modifed to call into these files.
166 - fts2_icu.c and fts3_icu.c have a critical bug. U8_NEXT is used over
167   a UTF-16 string. It's rep$ by U16_NEXT (jungshik)
168 - Added a new function chromium_sqlite3_initialize_win_sqlite3_file()
169   at the end of os_win.c. It allows the Windows-specific Chromium VFS
170   to reuse most of the win32 SQLite VFS.
171 - Added a new function
172   chromium_sqlite3_initialize_unix_sqlite3_file() and made
173   fillInUnixFile() non-static in os_unix.c. It allows the
174   Linux-specific Chromium VFS to reuse most of the unix SQLite VFS.
175 - Exposed three functions that deal with unused file descriptors in
176   os_unix.c, to allow Chromium's Posix VFS implementation in
177   WebKit/WebCore/platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp
178   to correctly implement the "unused file descriptors" logic in the
179   xDlOpen() method. The new functions are
180   chromium_sqlite3_get_reusable_file_handle(),
181   chromium_sqlite3_update_reusable_file_handle() and
182   chromium_sqlite3_destroy_reusable_file_handle(). Also, added the
183   chromium_sqlite3_fill_in_unix_sqlite3_file() function that calls
184   fillInUnixFile(), which will be made static again as soon as a
185   WebKit patch using the new function lands.
186 - From mac_time_machine.patch:
187   When __APPLE__ and when creating a -journal file with any unix-type vfs,
188   determine if the database for which the journal is being created has been
189   excluded from being backed up using Apple's Time Machine and if so then also
190   exclude the journal. These changes were made in pager.c with includes of
191   Apple interfaces being made in sqliteInt.h. In order to eliminate a symbol
192   conflict with an Apple library after amalgamation it was also necessary to
193   rename fts3_porter.c's 'cType' to 'vOrCType'.
194 - fts3_85522.patch allows fts3 to work if PRAGMA is not authorized.
195 - src/recover.c file implements a virtual table which can read
196   through corruption.
197 - Enable the macro 'SQLITE_TEMP_STORE=3' for Android.
198 - memcmp.patch backports ASAN-related fixes from SQLite trunk.
199