Re: [sqlite] How to fix Syntax - Check exists
On Sat, Apr 17, 2010 at 12:10 AM, gretty wrote: > > Hello > > I am a programmer using SQLite3 to create a database for an application. I > have been running into some problems with my SQL queries which I dont think > are correct. Can you check them & correct them where relevant? > > Right now only one table exists, its layout is like so: > [quote] > Table = element > 2 columns = property TEXT PRIMARY KEY, value TEXT > > ie, CREATE TABLE element(property TEXT PRIMARY KEY, value TEXT)[/quote] > > Are these queries correct? > > Check if property already exists in table: > [code] > SELECT property > FROM element > WHERE property == 'color';[/code] > The correct query would be SELECT property FROM element WHERE property = 'color'; However, you already know the property = 'color', so why SELECT it? > If I get NULL back that will mean that this property does not exist in the > table? Is this correct? > Well, no. If you get no rows back then it means that property = 'color' doesn't exist. NULL would mean that the property does exist but has no value. > Change the value in a row where property equals color: > [code] > DELETE value > FROM element > WHERE property == 'color'; > > INSERT INTO element(value) > VALUE('orange') > WHERE property == 'color'; > What you really want is UPDATE element SET value = 'orange' WHERE property = 'color'; I suggest you go through any of the many SQL tutorials you can find via Google. > commit;[/code] > > Also I want to create a new TABLE with the name '#element' or '.element' but > I always get an error because of the '#' & '.' characters. Is it possible to > create a table with a '#' or '.' character in its name? Yes. Quote the names with double quotes. > -- > View this message in context: > http://old.nabble.com/How-to-fix-Syntax---Check-exists-tp28274195p28274195.html > Sent from the SQLite mailing list archive at Nabble.com. > > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > -- Puneet Kishor http://www.punkish.org Carbon Model http://carbonmodel.org Charter Member, Open Source Geospatial Foundation http://www.osgeo.org Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor Nelson Institute, UW-Madison http://www.nelson.wisc.edu --- Assertions are politics; backing up assertions with evidence is science === ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] How to fix Syntax - Check exists
Hello I am a programmer using SQLite3 to create a database for an application. I have been running into some problems with my SQL queries which I dont think are correct. Can you check them & correct them where relevant? Right now only one table exists, its layout is like so: [quote] Table = element 2 columns = property TEXT PRIMARY KEY, value TEXT ie, CREATE TABLE element(property TEXT PRIMARY KEY, value TEXT)[/quote] Are these queries correct? Check if property already exists in table: [code] SELECT property FROM element WHERE property == 'color';[/code] If I get NULL back that will mean that this property does not exist in the table? Is this correct? Change the value in a row where property equals color: [code] DELETE value FROM element WHERE property == 'color'; INSERT INTO element(value) VALUE('orange') WHERE property == 'color'; commit;[/code] Also I want to create a new TABLE with the name '#element' or '.element' but I always get an error because of the '#' & '.' characters. Is it possible to create a table with a '#' or '.' character in its name? -- View this message in context: http://old.nabble.com/How-to-fix-Syntax---Check-exists-tp28274195p28274195.html Sent from the SQLite mailing list archive at Nabble.com. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Locking under various Windows versions
Robert, Makes sense. Some background ... I'm again looking into how to handle locking under Silverlight, and was looking into the WINCE method for ideas. The isolatedstoragefilestream under NET.4 claims to support the Lock method, (see http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolat edstoragefilestream_methods%28v=VS.100%29.aspx) but doesn't actually seem to be there under VS2010 and Silverlight 4 Might need to go the mutex route Noah -Original Message- From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Robert Simpson Sent: Friday, April 16, 2010 3:57 PM To: 'General Discussion of SQLite Database' Subject: Re: [sqlite] Locking under various Windows versions WinCE has no lockfile support, so it's fudged on the device by means of a shared memory block to handle the locking. If you open a SQLite database on a network share from a CE device, then it will not be able to use the network share's locking mechanisms. In short, don't do it. -Original Message- From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Noah Hart Sent: Friday, April 16, 2010 3:48 PM To: General Discussion of SQLite Database Subject: [sqlite] Locking under various Windows versions I am trying to determine if SQLite holds an exclusive lock on a database opened under Windows-CE, will that lock be honored by a connection opened under another version of Windows? What about the opposite case? When the database is first opened under Windows 7, an exclusive lock is acquired, then a connection to the database is made under WindowsCE. I've read the os_win.c code and am not clear how it is handled in this type of mixed mode Regards Noah Hart CONFIDENTIALITY NOTICE: This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Locking under various Windows versions
WinCE has no lockfile support, so it's fudged on the device by means of a shared memory block to handle the locking. If you open a SQLite database on a network share from a CE device, then it will not be able to use the network share's locking mechanisms. In short, don't do it. -Original Message- From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Noah Hart Sent: Friday, April 16, 2010 3:48 PM To: General Discussion of SQLite Database Subject: [sqlite] Locking under various Windows versions I am trying to determine if SQLite holds an exclusive lock on a database opened under Windows-CE, will that lock be honored by a connection opened under another version of Windows? What about the opposite case? When the database is first opened under Windows 7, an exclusive lock is acquired, then a connection to the database is made under WindowsCE. I've read the os_win.c code and am not clear how it is handled in this type of mixed mode Regards Noah Hart CONFIDENTIALITY NOTICE: This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Locking under various Windows versions
I am trying to determine if SQLite holds an exclusive lock on a database opened under Windows-CE, will that lock be honored by a connection opened under another version of Windows? What about the opposite case? When the database is first opened under Windows 7, an exclusive lock is acquired, then a connection to the database is made under WindowsCE. I've read the os_win.c code and am not clear how it is handled in this type of mixed mode Regards Noah Hart CONFIDENTIALITY NOTICE: This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Please help test the latest query planner changes
On Apr 16, 2010, at 11:52 AM, Max Vlasov wrote: > > SELECT StihiAuthors.Id As AuthId, StihiAuthCandidates.Date as Date, > StihiAuthCandidates.Num as Num FROM StihiAuthors > INNER JOIN StihiAuthCandidates ON > StihiAuthors.Id=StihiAuthCandidates.AuthorId > LEFT JOIN StihiPoems ON Date=StihiPoems.PoemDate AND > Num=StihiPoems.PoemNum > WHERE StihiAuthors.IsFav=1 AND StihiPoems.rowid Is Null > > sqlite3-amalgamation-3_6_23_1.dll > reported 747 milliseconds returning 22,642 rows > > sqlite3-20100415132938.dll > reported 563 milliseconds Thanks for the report! It is reassuring to know that the recent changes actually did some good! D. Richard Hipp d...@hwaci.com ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Please help test the latest query planner changes
> We are looking forward to your feedback, both positive and negative. > > Mr D. Richard Hipp found some time to compare this variant with the direct predecessor (3.6.23_1) Both dlls were compiled with Borland command-line compiler with identical options I tested a simple multiply lookup driven query (SELECT .. LEFT JOIN .. LEFT JOIN.. ) and did not find any significant difference. In another test from real program when I have a master-detail relation between authors and their poems, the query forms a pool of not yet read poems your new planner seems to show real improvements. With the query SELECT StihiAuthors.Id As AuthId, StihiAuthCandidates.Date as Date, StihiAuthCandidates.Num as Num FROM StihiAuthors INNER JOIN StihiAuthCandidates ON StihiAuthors.Id=StihiAuthCandidates.AuthorId LEFT JOIN StihiPoems ON Date=StihiPoems.PoemDate AND Num=StihiPoems.PoemNum WHERE StihiAuthors.IsFav=1 AND StihiPoems.rowid Is Null sqlite3-amalgamation-3_6_23_1.dll reported 747 milliseconds returning 22,642 rows sqlite3-20100415132938.dll reported 563 milliseconds Both measurements are made several times and for a db that at least once was used before in order to exclude windows system cache as a player. Max Vlasov, maxerist.net ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] SQLite and .Net 4.0 configuration
These are questions about System.Data.SQlite data provider and should be asked at their forum found here http://sqlite.phxsoftware.com/forums/ On Thu, Apr 15, 2010 at 7:37 PM, Berryl wrote: > Hi Anyone & Everyone; > > Below is a message I posted on StackOverflow. I am guessing no response are > because noone there knows. > > Thanks for any help > > > 1) Which SQLite dll?? I *think* it is > [SQLite-1.0.65.1-vs2010rc-net4-setup.zip](http://sqlite.phxsoftware.com/forums/storage/29/9056/SQLite-1.0.65.1-vs2010rc-net4-setup.zip). > Yes? > > 2) I ran the installer so the dll is in the GAC but I usually find there are > less problems if I can just reference the dll stand alone. Is there any > reason it *needs* to be in the GAC, and if not, what's the best way to > uninstall it from the GAC (I can get to the GAC folder but it says I need > permission to delete the files; should I leave the SQLite Designer dll's > there?)? > > 3) x64. There is an x64 dll in the download. I had problems with SQLite in > the past though that I could only resolve by compiling to x86. Can I safely > reference the x64 dll and compile to Any CPU now? > > 4) what is the right NHib config? I have been using the one below, but since > the error I get says "Could not create the driver from > NHibernate.Driver.SQLite20Driver." that configuration is guilty until proven > innocent too? > > 5) could FNH be a problem too? I don't use the pre-configured fluent SQLite > method but FNH has to provide a reference to it for that to work, no? > > TIA & Cheers, > Berryl > > > ... > NHibernate.Dialect.SQLiteDialect > name="connection.driver_class">NHibernate.Driver.SQLite20Driver > Data > Source=:memory:;Version=3;New=True; > > > > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] FTS3 Appropriate usage
On Fri, Apr 16, 2010 at 3:24 AM, Alexey Pechnikov wrote: > And you can use my patches for zlib-compression for FTS3. I'm planning to make > the "fts3z" extension because I want to use as original FTS3 > as FTS3 with compression together. Back when I was working up fts1, I experimented with compression and found it useful, but ran up against the problem of SQLite itself not having inbuilt support for compression. Bummer! Anyhow, having a distinct fts3z for compression would be sub-optimal, I think, because it would fall behind. Maybe you could implement it as a compile-time option to fts3.c which allows it to export both fts3 and fts3z? Anyhow, you may also wish to experiment with how intrusive it would be to add externally-specified processing functions to the virtual table. I'd imagine something like: CREATE VIRTUAL TABLE t USING fts3(STORE FUNCTION compress, RETRIEVE FUNCTION uncompress, title, body); the table would not be accessible if you tried to load it on a SQLite which didn't have the uncompress function, but that should quickly become obvious when you look at the schema. Another option would be like how REGEXP works: CREATE VIRTUAL TABLE t USING fts3(COMPRESSED, title, body); when COMPRESSED is specified, the select and update queries would include fts3_compress() and fts3_uncompress() calls. If the SQLite embedder has not defined those functions, then errors will be generated. I have no veto, here, but my preference would be the first version, where the specific functions are listed. The second version is easier to code, but it means that distinct implementations could find themselves unable to read each other's tables because they define fts3_*compress() differently. The first version _could_ have that problem, but at least allows for the possibility of not having it. Hmm. You could also define the function to take a flag to control compress/uncompress: CREATE VIRTUAL TABLE t USING fts3(STORE WITH storefn, title, body); where storefn(0, original) and storefn(1, compressed), or something like that. - Of course, here I'm ignoring the entire problem of separate compressors for the document data versus the index data, or separate compressors for different columns. I could imagine: CREATE VIRTUAL TABLE t USING fts3(title, body STORE WITH storefn); but at some point it just gets too hard to hold everything together. There's no per-column tokenizer, either :-). That level of configurability would probably be better served by refactoring fts to allow the index and data to be distinct. Then you could perhaps layer an fts index over a table with views and triggers to accomplish compression. [Note that the "STORE WITH" variant above could also be a route to this: storefn(table_name, column_name, in_out, data) then storefn() could do the conversion from "t" to "t_contents" and build the queries. I think performance might end up contrary to the goals of using compression, though :-).] Moving on, scott ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Data optimization with GLOB, virtual deletes
On 16 Apr 2010, at 1:17pm, Mike Goins wrote: > Table structure: > CREATE TABLE tb_file (tb_file_key INTEGER NOT NULL PRIMARY KEY > AUTOINCREMENT , basename TEXT, extension TEXT, path TEXT, deleted > INTEGER default 0 ); > > Index: > CREATE INDEX fullpath_idx on tb_file (basename, extension, path, deleted); > > Example insert: > INSERT INTO tb_file (basename, extension, path) VALUES ('aa', 'bb', 'cc'); > > Query: > SELECT tb_file_key, basename, extension, path FROM tb_file WHERE > basename GLOB 'a*' AND extension GLOB 'b*' AND path GLOB 'c*' AND > deleted = 0 ORDER BY tb_file_key DESC; Move the 'deleted' to the beginning of the INDEX. It allows the selector to reject more records faster (reject 97% and it's faster to match integers). Also take a look at the other columns in your WHERE clause and rearrange the other entries in the index to move the ones with the most distinction to the left. As you nearly commented in your question you could run something at startup or shutdown to DELETE aged entries. Simon. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Data optimization with GLOB, virtual deletes
On Fri, Apr 16, 2010 at 8:17 AM, Mike Goins wrote: > Query: > SELECT tb_file_key, basename, extension, path FROM tb_file WHERE > basename GLOB 'a*' AND extension GLOB 'b*' AND path GLOB 'c*' AND > deleted = 0 ORDER BY tb_file_key DESC; Apologies for responding to my own post (digest subscriber). I did make significant progress by creating an index on the deleted column and re-arranging the query: SELECT tb_file_key, basename, extension, path FROM (SELECT tb_file_key, basename, extension, path FROM tb_file WHERE deleted = 0) WHERE basename GLOB ? AND extension GLOB ? AND path GLOB ? order by tb_file_key DESC; This query is over 25 times faster. Now it's a matter of watching it over time. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Index and GLOB
>> Is the "explain query plan" lying when it says it will use the index? >> Can I just slap a trailing "*" on the end of each parameter for it >> really use the index? >> > I'm not sure what you mean by "lying". When I try EXPLAIN QUERY PLAN > on a GLOB 'b' example, it reports that it will not use an index. Output of > the three cases below: > > C:\work\sqlite\misc\glob_index>type test.sql > DROP TABLE IF EXISTS t1; > CREATE TABLE t1 (word TEXT); > CREATE INDEX t1_word ON t1(word); > EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE word GLOB 'b'; > EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE word GLOB 'b*'; > EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE word = 'b'; > C:\work\sqlite\misc\glob_index>sqlite3 < test.sql > 0|0|TABLE t1 > 0|0|TABLE t1 WITH INDEX t1_word > 0|0|TABLE t1 WITH INDEX t1_word Sorry, I should have stated sqlite version 3.5.1 as mentioned in an earlier email: sqlite3 SQLite version 3.5.1 sqlite> CREATE TABLE t1 (word TEXT); sqlite> CREATE INDEX t1_word ON t1(word); sqlite> EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE word GLOB 'b'; 0|0|TABLE t1 WITH INDEX t1_word sqlite> EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE word GLOB 'b*'; 0|0|TABLE t1 WITH INDEX t1_word sqlite> EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE word = 'b'; 0|0|TABLE t1 WITH INDEX t1_word ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Data optimization with GLOB, virtual deletes
Sorry, this may look a bit familiar. Table structure: CREATE TABLE tb_file (tb_file_key INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT , basename TEXT, extension TEXT, path TEXT, deleted INTEGER default 0 ); Index: CREATE INDEX fullpath_idx on tb_file (basename, extension, path, deleted); Example insert: INSERT INTO tb_file (basename, extension, path) VALUES ('aa', 'bb', 'cc'); Query: SELECT tb_file_key, basename, extension, path FROM tb_file WHERE basename GLOB 'a*' AND extension GLOB 'b*' AND path GLOB 'c*' AND deleted = 0 ORDER BY tb_file_key DESC; It's basically something to track existing files on a file system for an embedded device. As new files are added, new entries are made, and when files are removed the deleted column is set to 1 (Only one writer process, 5 readers). There is not any type of VACUUM since there is not any shortage of space and the readers need access nearly all the time. My query gets slower as the table grows larger. The count of the deleted = 0 remains relatively constant while the virtually deleted (=1) grows. At 3000 deleted and 75 not, the query runs 4-5 times slower then when just the 75 not. The data lookup does not need to necessarily fast, while I prefer to minimize the growth in query . Some solutions I am looking at to minimize 1. Delete aged entries. 2. Delete aged entries and enable a vacuum mode that does not starve readers. 3. Create index on deleted, use that to create a TEMP table on which the query is run. 4. Optimize the query, part we have discussed already to remove the GLOB. 5. Fix? the index? Can I dismiss any of these right of the bat? I'm a little baffled with 4 and 5 and may need a couple suggestions. Thanks again. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] FTS3 Appropriate usage
Hello! On Thursday 15 April 2010 11:21:17 Jens wrote: > I'd appreciate any feedback you might have one this. Also, does anyone > have experience with sqlite+ft3 and high-availability solutions? Has > anyone done any benchmarking of fts3? I did test FTS3 on about 400 millions of records and there is speed regressions for inserts and selects operations. The test database was about 60Gb. FTS3 extension has a very nice index realization - more better than standart SQLite index on high-selective values. But you may remember about virtual table limitations. As example for joins use solution like to: CREATE TABLE address ( id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp INTEGER NOT NULL DEFAULT (strftime('%s',julianday('now'))), userid INTEGER NOT NULL DEFAULT (user()) ); CREATE VIRTUAL TABLE address_fts USING fts3(uid, datetime, fields, tracks, TOKENIZE icu ru_RU); CREATE VIEW view_address AS select orig.rowid as rowid, orig.*, content.c0uid as uid, content.c1datetime as datetime, content.c2fields as fields, content.c3tracks as tracks from address as orig, address_fts_content as content where content.rowid=orig.rowid; A joins with FTS3 tables is not effective and is needed to use the real %_content table. And you can use my patches for zlib-compression for FTS3. I'm planning to make the "fts3z" extension because I want to use as original FTS3 as FTS3 with compression together. Sqlite is nice for all projects where are a lot of selects and a few insert/update operations per second. For typical web-project a selects operations are dominate. See some tests here: geomapx.blogspot.com/2010/04/sqlite-index-degradation-tests.html geomapx.blogspot.com/2010/01/sqlite-fts3.html geomapx.blogspot.com/2009/11/postgresql-81-vs-sqlite-3620-in-real.html geomapx.blogspot.com/2009/11/degradation-of-indexing-speed.html geomapx.blogspot.com/2009/09/sqlite-3617-mobigroup2.html P.S. And we wait for releasing of the WAL journal mode, of course :-) Best regards, Alexey Pechnikov. http://pechnikov.tel/ ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] SQLite and .Net 4.0 configuration
Hi Anyone & Everyone; Below is a message I posted on StackOverflow. I am guessing no response are because noone there knows. Thanks for any help 1) Which SQLite dll?? I *think* it is [SQLite-1.0.65.1-vs2010rc-net4-setup.zip](http://sqlite.phxsoftware.com/forums/storage/29/9056/SQLite-1.0.65.1-vs2010rc-net4-setup.zip). Yes? 2) I ran the installer so the dll is in the GAC but I usually find there are less problems if I can just reference the dll stand alone. Is there any reason it *needs* to be in the GAC, and if not, what's the best way to uninstall it from the GAC (I can get to the GAC folder but it says I need permission to delete the files; should I leave the SQLite Designer dll's there?)? 3) x64. There is an x64 dll in the download. I had problems with SQLite in the past though that I could only resolve by compiling to x86. Can I safely reference the x64 dll and compile to Any CPU now? 4) what is the right NHib config? I have been using the one below, but since the error I get says "Could not create the driver from NHibernate.Driver.SQLite20Driver." that configuration is guilty until proven innocent too? 5) could FNH be a problem too? I don't use the pre-configured fluent SQLite method but FNH has to provide a reference to it for that to work, no? TIA & Cheers, Berryl ... NHibernate.Dialect.SQLiteDialect NHibernate.Driver.SQLite20Driver Data Source=:memory:;Version=3;New=True; ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users