Hi,<div><br></div><div>Looks good, I'm having a go using those changes now, I'll let you know how it goes.</div><div><br></div><div>I think the other problem encountered in the build was these functions that haven't been exposed:</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: monospace; "><div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "> - Exposed three functions that deal with unused file descriptors in</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l152" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l152" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 152</a> os_unix.c, to allow Chromium's Posix VFS implementation in</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l153" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l153" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 153</a> WebKit/WebCore/platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l154" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l154" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 154</a> to correctly implement the "unused file descriptors" logic in the</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l155" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l155" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 155</a> xDlOpen() method. The new functions are</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l156" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l156" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 156</a> chromium_sqlite3_get_reusable_file_handle(),</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l157" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l157" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 157</a> chromium_sqlite3_update_reusable_file_handle() and</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l158" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l158" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 158</a> chromium_sqlite3_destroy_reusable_file_handle(). Also, added the</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l159" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l159" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 159</a> chromium_sqlite3_fill_in_unix_sqlite3_file() function that calls</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l160" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l160" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 160</a> fillInUnixFile(), which will be made static again as soon as a</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><a id="l161" href="/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromium;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD#l161" class="linenr" style="color: rgb(153, 153, 153); text-decoration: none; "> 161</a> WebKit patch using the new function lands.</div>
<div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre; "><br></div><div class="pre" style="white-space: pre; "><font class="Apple-style-span" face="arial"><span class="Apple-style-span" style="white-space: normal;"><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="white-space: pre;">Liam</span></font></span></font></div>
<div class="pre" style="white-space: pre; "><font class="Apple-style-span" face="arial"><span class="Apple-style-span" style="white-space: normal;"><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="white-space: pre;"><br>
</span></font></span></font></div></span><div class="gmail_quote">On 3 March 2010 15:53, Greg Burd <span dir="ltr"><<a href="mailto:GREG.BURD@oracle.com">GREG.BURD@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Interesting... I wonder if the "design flaw" applies when BDB is VACUUM'ed as well... maybe we're immune to this issue.<br>
<div class="im"><br>
-greg<br>
<br>
> -----Original Message-----<br>
> From: Sandra Whitman<br>
</div><div class="im">> Sent: Wednesday, March 03, 2010 10:35 AM<br>
> To: Greg Burd<br>
</div><div><div></div><div class="h5">> Cc: <a href="mailto:bdb-beta-feedback@oss.oracle.com">bdb-beta-feedback@oss.oracle.com</a>; Hexxeh<br>
> Subject: Re: [BDB 11gR2 Beta] Using FTS2 with the BDB SQLite<br>
> compatibility library code [#18385]<br>
><br>
> Thanks,<br>
><br>
><br>
> I have made some of those changes, but not all. I will do that. Right<br>
> now I am trying to add in the fts2 manual build. I'll let you know how<br>
> that goes.<br>
><br>
><br>
> One thing Emily told me last evening is that although the SQLite<br>
> documentation version 3.5 is not compatible with fts2, from:<br>
> <a href="http://www.mail-archive.com/sqlite-users@sqlite.org/msg31627.html" target="_blank">http://www.mail-archive.com/sqlite-users@sqlite.org/msg31627.html</a>,<br>
> fts2 has a design flaw that would cause corruptions of fts2 index when<br>
> running VACUUM against db. However if the VACUUM is not run, it should<br>
> be fine.<br>
><br>
><br>
> Thanks,<br>
> Sandra<br>
><br>
><br>
> Greg Burd wrote:<br>
> > Sandra,<br>
> ><br>
> > sqlite-poison.patch fails because it changes the btree.c code which<br>
> is not a shared part of the BDB version. We use that file to map from<br>
> SQLite's btree into Berkeley DB's. It looks like the patch is used not<br>
> used.<br>
> > <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> bin/gitweb.cgi?p=chromium.git&a=search&h=HEAD&st=grep&s=sqlite3Poison<br>
> ><br>
> > safe-tolower.patch is very straight forward, it changes three lines<br>
> of code. It looks like it can easily be applied by hand.<br>
> ><br>
> > preload-cache.patch can be replaced by an empty function:<br>
> > int sqlite3Preload(sqlite3 *db) { return SQLITE_OK; }<br>
> > and a prototype in <a href="http://sqlite.h.in" target="_blank">sqlite.h.in</a><br>
> > int sqlite3Preload(sqlite3 *);<br>
> ><br>
> > misc.patch has a bunch of small configuration settings and other<br>
> minor changes, all easily integrated some already in our tree. You can<br>
> skip removing the ifdef around sqlite3PcacheGetCachesize() because it's<br>
> not used in our (empty) version of the sqlite3Preload() call (above).<br>
> ><br>
> ><br>
> ><br>
> > Liam, are these instructions enough for you to give it a try or do<br>
> you need more help from us?<br>
> ><br>
> > -greg<br>
> ><br>
> ><br>
> ><br>
> >> -----Original Message-----<br>
> >> From: Sandra Whitman<br>
> >> Sent: Wednesday, March 03, 2010 9:51 AM<br>
> >> To: Greg Burd<br>
> >> Cc: <a href="mailto:bdb-beta-feedback@oss.oracle.com">bdb-beta-feedback@oss.oracle.com</a><br>
> >> Subject: Re: [BDB 11gR2 Beta] Using FTS2 with the BDB SQLite<br>
> >> compatibility library code [#18385]<br>
> >><br>
> >> Hi Greg,<br>
> >><br>
> >><br>
> >> I applied the 6 Chromium SQLite patches to our 5.0.11 source this<br>
> >> morning. I did get rejects/filures for:<br>
> >> misc.patch<br>
> >> preload-cache.patch<br>
> >> safe-tolower.patch<br>
> >> sqlite-poison.patch<br>
> >><br>
> >><br>
> >> I will try a manual fts2 build on top of this, but I'll have to get<br>
> the<br>
> >> patch failures straightened out.<br>
> >><br>
> >><br>
> >> Thanks,<br>
> >> Sandra<br>
> >><br>
> >> Hexxeh wrote:<br>
> >><br>
> >>> Hi,<br>
> >>><br>
> >>> The patches that are applied to SQLite are as follows:<br>
> >>><br>
> >>> <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/sqlite-<br>
> >> poison.patch;h=38f81a0c52fa2ff59b0e536f2418b4e003f97644;hb=HEAD<br>
> >><br>
> >>> <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/preload-<br>
> >> cache.patch;h=8dc5778a03a29aa14d3416c83da61db3ccfdfa7c;hb=HEAD<br>
> >><br>
> >>> <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >><br>
> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/fts2.patch;h=<br>
> >> 1f02161ee29aba22edad93ad7bba7c244e2dc2a1;hb=HEAD<br>
> >><br>
> >>> <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/icu-<br>
> >> regexp.patch;h=cb758ce062a3dc6a0112ace3cdd136c18c7f8274;hb=HEAD<br>
> >><br>
> >>> <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >><br>
> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/misc.patch;h=<br>
> >> e2f0c5525053a958bdd59019ab89d028ec201a97;hb=HEAD<br>
> >><br>
> >>> <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/safe-<br>
> >> tolower.patch;h=c42bb065b7302ad1897be7c50dab59a3eb10c54e;hb=HEAD<br>
> >><br>
> >>> You can see notes on what they changed and from which version these<br>
> >>> patches are made<br>
> >>> here: <a href="http://src.chromium.org/cgi-" target="_blank">http://src.chromium.org/cgi-</a><br>
> >>><br>
> >><br>
> bin/gitweb.cgi?p=chromium.git;a=blob;f=third_party/sqlite/README.chromi<br>
> >> um;h=6953e64e7bf0c462c10d0c7b84ff0052638f8e46;hb=HEAD<br>
> >><br>
> >>> Thanks,<br>
> >>> Liam<br>
> >>><br>
> >>> On 2 March 2010 22:44, Sandra Whitman <<a href="mailto:sandra.whitman@oracle.com">sandra.whitman@oracle.com</a><br>
> >>> <mailto:<a href="mailto:sandra.whitman@oracle.com">sandra.whitman@oracle.com</a>>> wrote:<br>
> >>><br>
> >>> Hi Liam,<br>
> >>><br>
> >>> Can you send us the patches/source code changes made for the<br>
> >>> Chromium web browser, along with any particular directions for<br>
> >>> installing them? I think we need to apply these as a starting<br>
> >>><br>
> >> point.<br>
> >><br>
> >>> Thanks,<br>
> >>> Sandra<br>
> >>><br>
> >>><br>
> >>> Hexxeh wrote:<br>
> >>><br>
> >>> Yep, that's right. There's an option (just like with<br>
> Firefox)<br>
> >>> to use the system version of SQLite which after a little of<br>
> >>><br>
> >> of<br>
> >><br>
> >>> fiddling works as you'd expect.<br>
> >>><br>
> >>> Liam<br>
> >>><br>
> >>> On 2 March 2010 20:54, Greg Burd <<a href="mailto:GREG.BURD@oracle.com">GREG.BURD@oracle.com</a><br>
> >>> <mailto:<a href="mailto:GREG.BURD@oracle.com">GREG.BURD@oracle.com</a>> <mailto:<a href="mailto:GREG.BURD@oracle.com">GREG.BURD@oracle.com</a><br>
> >>> <mailto:<a href="mailto:GREG.BURD@oracle.com">GREG.BURD@oracle.com</a>>>> wrote:<br>
> >>><br>
> >>> Sandra,<br>
> >>><br>
> >>> Chromium OS is a Linux variant built by Google<br>
> (sometimes<br>
> >>> called<br>
> >>> the "Google OS") which boots up and then uses the Google<br>
> >>> browser,<br>
> >>> Chromium (aka Chrome), for everything. Essentially,<br>
> this<br>
> >>><br>
> >> is<br>
> >><br>
> >>> almost identical to what we've done with Firefox<br>
> porting.<br>
> >>> Liam is<br>
> >>> replacing the Chromium web browser's use of SQLite with<br>
> >>><br>
> >> BDB<br>
> >><br>
> >>> SQL.<br>
> >>> That then runs on this stripped down version of Linux<br>
> and<br>
> >>> runs on<br>
> >>> a 2GB USB.<br>
> >>><br>
> >>> When Liam looked into the way that Chromium web browser<br>
> >>><br>
> >> used<br>
> >><br>
> >>> SQLite he found that it:<br>
> >>> a) modified it, patching bugs, adding external functions<br>
> >>> using the<br>
> >>> SQLite extensions API<br>
> >>> b) used FTS2 (not FTS3) for full-text search<br>
> >>> c) linked this statically against the browser<br>
> >>><br>
> >>> For us to help Liam we will need to help him:<br>
> >>> a) determine what patches to apply and how to apply them<br>
> >>><br>
> >> to BDB<br>
> >><br>
> >>> SQL (if necessary)<br>
> >>> b) integrate the Google custom functions<br>
> >>> c) integrate FTS2 for full-text search<br>
> >>><br>
> >>> I believe he's already found a way to link Chromium<br>
> >>><br>
> >> against a<br>
> >><br>
> >>> dynamic sqlite3.so library rather than statically<br>
> >>> compile/link the<br>
> >>> amalgamated SQLite source as it does today.<br>
> >>><br>
> >>> Did I get that right Liam?<br>
> >>><br>
> >>> -greg<br>
> >>><br>
> >>> > -----Original Message-----<br>
> >>> > From: Sandra Whitman<br>
> >>> > Sent: Tuesday, March 02, 2010 3:04 PM<br>
> >>> > To: Hexxeh<br>
> >>> > Cc: <a href="mailto:bdb-beta-feedback@oss.oracle.com">bdb-beta-feedback@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:bdb-beta-feedback@oss.oracle.com">bdb-beta-feedback@oss.oracle.com</a>><br>
> >>> <mailto:<a href="mailto:bdb-beta-feedback@oss.oracle.com">bdb-beta-feedback@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:bdb-beta-feedback@oss.oracle.com">bdb-beta-feedback@oss.oracle.com</a>>><br>
> >>> > Subject: Re: [BDB 11gR2 Beta] Using FTS2 with the BDB<br>
> >>><br>
> >> SQLite<br>
> >><br>
> >>> > compatibility library code<br>
> >>> ><br>
> >>> > Hi Liam,<br>
> >>> ><br>
> >>> > I am not familiar with the Chromium OS, but if it is<br>
> >>> UNIX-like<br>
> >>> then any<br>
> >>> > arguments which can be passed to a standard SQLite<br>
> >>><br>
> >> configure<br>
> >><br>
> >>> script can<br>
> >>> > also be passed to the Berkeley DB configure script.<br>
> For<br>
> >>> example, I<br>
> >>> > typically build:<br>
> >>> ><br>
> >>> > ../dist/configure CPPFLAGS="-DSQLITE_ENABLE_FTS3"<br>
> >>> --enable-sql<br>
> >>> > or<br>
> >>> > ../dist/configure CPPFLAGS="-DSQLITE_ENABLE_FTS3"<br>
> >>> --enable-sql_compat<br>
> >>> ><br>
> >>> > As Dave mentioned, let me know the problem you are<br>
> >>><br>
> >> having<br>
> >><br>
> >>> and I can<br>
> >>> > check further.<br>
> >>> ><br>
> >>> > Thanks,<br>
> >>> > Sandra<br>
> >>> ><br>
> >>> > Hexxeh wrote:<br>
> >>> > > Hi all,<br>
> >>> > ><br>
> >>> > > I'm trying to integrate the new BDB SQLite<br>
> compatible<br>
> >>> library into<br>
> >>> > > Chromium/ChromiumOS, and I'm encountering a few<br>
> issues<br>
> >>> that I hope<br>
> >>> > one<br>
> >>> > > of you may have the answer to.<br>
> >>> > ><br>
> >>> > > One requirement of Chromium is the FTS2 extension,<br>
> has<br>
> >>> anyone<br>
> >>> managed<br>
> >>> > > to successfully use this with the library? If so,<br>
> how<br>
> >>> did you<br>
> >>> > > accomplish this?<br>
> >>> > ><br>
> >>> > > Thanks,<br>
> >>> > > Liam McLoughlin<br>
> >>> > ><br>
> >>><br>
> >>> ----------------------------------------------------------<br>
> --<br>
> >>><br>
> >> ---------<br>
> >><br>
> >>> > ---<br>
> >>> > ><br>
> >>> > > _______________________________________________<br>
> >>> > > BDB-BETA-FEEDBACK mailing list<br>
> >>> > > <a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a>><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a>>><br>
> >>><br>
> >>> > > <a href="http://oss.oracle.com/mailman/listinfo/bdb-beta-" target="_blank">http://oss.oracle.com/mailman/listinfo/bdb-beta-</a><br>
> >>><br>
> >> feedback<br>
> >><br>
> >>> ><br>
> >>> > _______________________________________________<br>
> >>> > BDB-BETA-FEEDBACK mailing list<br>
> >>> > <a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a>><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a>>><br>
> >>><br>
> >>> > <a href="http://oss.oracle.com/mailman/listinfo/bdb-beta-" target="_blank">http://oss.oracle.com/mailman/listinfo/bdb-beta-</a><br>
> feedback<br>
> >>><br>
> >>><br>
> >>> -----------------------------------------------------------<br>
> --<br>
> >>><br>
> >> -----------<br>
> >><br>
> >>> _______________________________________________<br>
> >>> BDB-BETA-FEEDBACK mailing list<br>
> >>> <a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a><br>
> >>> <mailto:<a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a>><br>
> >>> <a href="http://oss.oracle.com/mailman/listinfo/bdb-beta-feedback" target="_blank">http://oss.oracle.com/mailman/listinfo/bdb-beta-feedback</a><br>
> >>><br>
> >>><br>
> >>> -------------------------------------------------------------------<br>
> --<br>
> >>><br>
> >> ---<br>
> >><br>
> >>> _______________________________________________<br>
> >>> BDB-BETA-FEEDBACK mailing list<br>
> >>> <a href="mailto:BDB-BETA-FEEDBACK@oss.oracle.com">BDB-BETA-FEEDBACK@oss.oracle.com</a><br>
> >>> <a href="http://oss.oracle.com/mailman/listinfo/bdb-beta-feedback" target="_blank">http://oss.oracle.com/mailman/listinfo/bdb-beta-feedback</a><br>
> >>><br>
</div></div></blockquote></div><br></div>