Re: [sqlite] what are the limitations for IN() lists?
On Wed, Jan 27, 2010 at 12:40:52AM +, Simon Slavin scratched on the wall: > > On 27 Jan 2010, at 12:25am, Jean-Christophe Deschamps wrote: > > > Why don't you use a :memory: database for this? > > This has the advantage of removing the chance of a name-space collision. Can't happen with a temp database anyways. Like in-memory databases, temp databases are only associated with one database connection. Also, if you set "PRAGMA temp_store=memory" then your temp database *is* an in-memory database. Regardless, temp database are always cleaned up when the database connection is closed. And since temp tables and indexes go into the temp database, and not your main active database, there is no long-term maintenance. -j -- Jay A. Kreibich < J A Y @ K R E I B I.C H > "Our opponent is an alien starship packed with atomic bombs. We have a protractor." "I'll go home and see if I can scrounge up a ruler and a piece of string." --from Anathem by Neal Stephenson ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] what are the limitations for IN() lists?
On Jan 26, 2010, at 7:41 PM, Tim Romano wrote: > Thanks for the reply, Simon, and the suggestion. You asked if there > was > a problem with creating a TEMP table. I was disinclined to use a > joined > temporary table instead of the IN-list for several reasons. > > First and foremost, it is a query-only database and rarely will the > number of items in the IN-list exceed several dozen. Max would be > about > 1000 in the rarest of cases. SQLite performance is excellent; I don't > mind a little performance lag when the user says "show me everything". > My central concern is that the query not fail because the IN-list > contained too many values. > > I am also somewhat in the dark about concurrency issues (if any) in a > webservice scenario: > -- Do TEMP tables have database-connection-scope so that there is no > need to name the TEMP table uniquely? Does the table get deleted > automatically when the connection is closed if the client-app > neglected > to DROP it? Yes and yes. > Maintenance: > Is the space occupied by a temp table reclaimed automatically when it > is dropped? I guess technically no. Temp tables are stored in a temporary file created in (and automatically removed from) the filesystem. If you drop a table the space will not be reclaimed until the connection is closed. It will be reused if you put data into another temp table. You cannot vacuum the temp database in which temp tables are stored. Dan. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] what are the limitations for IN() lists?
Hello Simon, >This has the advantage of removing the chance of a name-space collision. That's true as well: it is an added free bonus. But honestly I would say that for such transient usage a random generated name is fairly unlikely to cause real-world problem. select hex(randomblob(16)); just gave "in a row": 207FA9389DDD09302E61D45E08571BD7 D8D15A725C34263099BCC95373596214 7458A094F3EF6673A7ADADFBF0F54EB3 I doubt somebody would be able to come up with a collision easily. Even if a collision is utterly unlikely but still possible, I wouldn't worry that much for transient table names or transaction ID having only few seconds lifespan. And NO, I don't open here the GUID can of worms for _permanent_ IDs, which is a very different story... ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] what are the limitations for IN() lists?
On 27 Jan 2010, at 12:25am, Jean-Christophe Deschamps wrote: > Why don't you use a :memory: database for this? This has the advantage of removing the chance of a name-space collision. :memory: databases are not stored in any file on disk, and they can be seen only by the process which creates them. Simon. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] what are the limitations for IN() lists?
Hi Tim, >I am also somewhat in the dark about concurrency issues (if any) in a >webservice scenario: >-- Do TEMP tables have database-connection-scope so that there is no >need to name the TEMP table uniquely? Does the table get deleted >automatically when the connection is closed if the client-app neglected >to DROP it? >My webservice establishes a new connection to the database before >each query and immediately closes the connection after the results are >returned. > >Maintenance: > Is the space occupied by a temp table reclaimed automatically when it >is dropped? Or does the use of TEMP tables require periodic maintenance >using VACUUM? Why don't you use a :memory: database for this? I'm doing this in some applications and it works very well with little fuss. I open my main (disk-based) base(s) and also create a :memory: one which I attach to the main. Now I can use it at will. As has been discussed here recently, you can't have FK with parents/children in separate bases, or other types of split constraints/triggers. Using an intermediate table like this also gives you more freedom for fancy behavior that would be much more difficult or even impossible to achieve using only SQL and the main base only (without a temp table). I mean indexing and/or ordering (possibly with complex index/collation) your memory table so that a match occurs with best speed, a trigger to record which word did the client match in the list, a.s.o. You can create separate tables having unique name or put some randomized client transaction_id in a unique table... Simply drop the table as soon as you (or your client) don't need it anymore. Cheers, ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Java and sqlite
Hi guys, I want to use SQLite in Java applications, what do you advice ? Which interface do you use ? I found two: http://www.ch-werner.de/javasqlite/ : Which I like a lot but seems no longer maintained and http://www.zentus.com/sqlitejdbc/ Which on do you think is better to use ? Have you heard of any other interface ? Thanks a lot Miloud B. Cheers ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] what are the limitations for IN() lists?
Thanks for the reply, Simon, and the suggestion. You asked if there was a problem with creating a TEMP table. I was disinclined to use a joined temporary table instead of the IN-list for several reasons. First and foremost, it is a query-only database and rarely will the number of items in the IN-list exceed several dozen. Max would be about 1000 in the rarest of cases. SQLite performance is excellent; I don't mind a little performance lag when the user says "show me everything". My central concern is that the query not fail because the IN-list contained too many values. I am also somewhat in the dark about concurrency issues (if any) in a webservice scenario: -- Do TEMP tables have database-connection-scope so that there is no need to name the TEMP table uniquely? Does the table get deleted automatically when the connection is closed if the client-app neglected to DROP it? My webservice establishes a new connection to the database before each query and immediately closes the connection after the results are returned. Maintenance: Is the space occupied by a temp table reclaimed automatically when it is dropped? Or does the use of TEMP tables require periodic maintenance using VACUUM? Regards Tim Romano On 1/25/2010 11:47 AM, Simon Slavin wrote: > On 25 Jan 2010, at 1:40pm, Tim Romano wrote: > > >> What is the maximum number of literal values that can be put inside the IN ( >> ) list ? >> >> select * from T where aColumn in (1,2,3,4,...) >> > > How many more ? 1000 ? > > That limit is higher than you're worried about. However, there are other > limits which are inherent in processing a SELECT command. For instance > there's a limit on the total length of the SELECT command expressed as a > string. And a limit on the total number of tokens the command is turned > into. And, of course, the longer the command, the slower it will be > processed. > > >> BTW, the remote client is passing these explilcit values over the internet >> to the server --i.e. the query cannot be rewritten as follows: >> >> select * from T where aColumn in ( select values from T2 where...) >> >> at least not without creating temporary tables to hold the value-list sent >> by the client. >> > Ah, you agree with my suggestion (the sub-select is more usually represented > as a JOIN, sometimes with T2 as the primary rather than the joined table). > Is there a problem creating the temporary table ? > ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Conditional insertion syntaxe in SQLite
Tiberio, Sylvain wrote: > Is it possible to write something like that in SQL (for SQLite of > course!): > > If [toDeleteMin,toDeleteMax] is include in an existing range > Store the existing range value into min and max variables > Delete [Min,Max] > Create [Min,toDeleteMin-1] > Create [toDeleteMax+1,max] > endif There are no variables, but you can use a temp table. Something like this: create temp table Vars(rangeid, existingMin, existingMax); insert into Vars select rowid, roomIdMin, roomIdMax from range where roomIdMin < toDeleteMin and roomIdMax > toDeleteMax; delete from range where rowid = (select rangeid from Vars); insert into range select 1, existingMin, toDeleteMin from Vars; insert into range select 1, toDeleteMax, existingMax from Vars; drop table Vars; (Edge conditions are left as an exercise for the reader, I'm pretty sure I got them wrong). -- Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Conditional insertion syntaxe in SQLite
Thank you Igor for you quick answer! I would like to implement the range deletion algorithm in SQL to avoid to maintain several implementation (C++, PHP...). If there is no other solution I will do it in C++ and in PHP! Your SQL statements doesn't work in my case, because I have a trigger that ignore the insertion of existing range. For instance: INSERT INTO range VALUES(1,100,199) Do nothing if the entry (1,100,400) exist because [100,199] is already set to level=1 by [100,400]. So I must delete the range [100,400] before create [100,199] and [201,400]... Is it possible to write something like that in SQL (for SQLite of course!): If [toDeleteMin,toDeleteMax] is include in an existing range Store the existing range value into min and max variables Delete [Min,Max] Create [Min,toDeleteMin-1] Create [toDeleteMax+1,max] endif Regards, Sylvain -Original Message- From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Igor Tandetnik Sent: Monday, January 25, 2010 5:06 PM To: sqlite-users@sqlite.org Subject: Re: [sqlite] Conditional insertion syntaxe in SQLite Tiberio, Sylvain wrote: > So I would like to write something like that: > CASE WHEN > EXISTS( SELECT @max=suid_max, @min=roomIdMin FROM range >WHERE 200 BETWEEN roomIdMin AND roomIdMax > AND 400 BETWEEN roomIdMin AND roomIdMax) THEN DELETE > FROM range WHERE roomidm...@min AND roomidm...@max; INSERT INTO range > VALUES (1, @min, 199 ); INSERT INTO range VALUES (1, 301 , @max ); > END Things like this are best done in your application code, rather than a trigger. SQLite in particular has a limited trigger language, nowhere near Turing-complete (the way Transact-SQL or PL/SQL are). However, if you absolutely insist, you can do something like this: insert into range select 1, roomIdMin, 199 from range WHERE 200 BETWEEN roomIdMin AND roomIdMax AND 400 BETWEEN roomIdMin AND roomIdMax; insert into range select 1, 301, roomIdMax from range WHERE 200 BETWEEN roomIdMin AND roomIdMax AND 400 BETWEEN roomIdMin AND roomIdMax; delete from range where rowid = (select rowid from range WHERE 200 BETWEEN roomIdMin AND roomIdMax AND 400 BETWEEN roomIdMin AND roomIdMax); Note that if the condition doesn't hold (there is no row encompassing both 200 and 400), all three statements are simply no-ops. Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Crash inside sqlite3_step
I found that you are correct. I wasn't reading the valgrind log properly. Thank you. Kavita On 1/25/10 10:26 PM, "Dan Kennedy" wrote: > > On Jan 26, 2010, at 6:16 AM, Kavita Raghunathan wrote: > >> Following Sql query crashes in allocateCursor inside of sqlite3_step >> >> INSERT INTO EntityTbl (AttrName, AttrEnum, AttrType, AttrValue, >> ReadWrite, Entity_id) VALUES(Œimage_crc¹, 6008, 16, Œ0¹, 1, 34013184); >> >> I¹m not able to get an understanding of what I might be doing wrong. >> Please note: >> >> 1. I have successfully created EntityTbl >> 2. I have added n rows successfully into table this is row n+1 that >> causes a crash >> 3. I know previously this group asked me to use valgrind to see if >> the crash was elsewhere and I did that. I¹ve enclosed the results. > > The valgrind output seems to indicate the problem is not in SQLite, no? > Function get_default_database() has a buffer overrun in it. > >> >> Thanks, >> Kavita >> >> ==28525== Memcheck, a memory error detector >> ==28525== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward >> et al. >> ==28525== Using Valgrind-3.5.0 and LibVEX; rerun with -h for >> copyright info >> ==28525== Command: cm >> ==28525== >> updating hw address >> sh: ifconfig: command not found >> ==28525== Syscall param write(buf) points to uninitialised byte(s) >> ==28525==at 0x62A44B: ??? (in /lib/libpthread-2.5.so) >> ==28525==by 0x80661F3: unixWrite (in /home/kraghunathan/views/ >> sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x805F1A3: sqlite3OsWrite (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x8069E19: writeJournalHdr (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x806D416: pager_open_journal (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x806D4E1: sqlite3PagerBegin (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x8071BB3: sqlite3BtreeBeginTrans (in /home/ >> kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80852F5: sqlite3VdbeExec (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x808084F: sqlite3Step (in /home/kraghunathan/views/ >> sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x8080A00: sqlite3_step (in /home/kraghunathan/views/ >> sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80C2866: sf_database_mgr::set_cache_size(sqlite3*, >> int) (in /home/kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80C2AF4: >> sf_database_mgr::create_database(sqlite3**, char const*) (in /home/ >> kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525== Address 0x40757b9 is 9 bytes inside a block of size 2,056 >> alloc'd >> ==28525==at 0x4005903: malloc (vg_replace_malloc.c:195) >> ==28525==by 0x805F746: sqlite3MemMalloc (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x8060062: mallocWithAlarm (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x806010A: sqlite3Malloc (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80683CD: pcache1Alloc (in /home/kraghunathan/views/ >> sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x8068541: sqlite3PageMalloc (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x806BA08: sqlite3PagerSetPagesize (in /home/ >> kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80713A2: sqlite3BtreeSetPageSize (in /home/ >> kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80A3BF5: sqlite3Pragma (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80BDA6A: yy_reduce (in /home/kraghunathan/views/ >> sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80BE3CF: sqlite3Parser (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80BF01E: sqlite3RunParser (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525== >> ==28525== Use of uninitialised value of size 4 >> ==28525==at 0x4007D3C: strcpy (mc_replace_strmem.c:303) >> ==28525==by 0x804FEB9: >> fls_entity::get_default_database(sf_db_tbl_t**) (in /home/ >> kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x804B4E6: >> cm_entity_manager::update_entity_database(sf_entity*) (in /home/ >> kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x804B601: >> cm_entity_manager::update_entity_database() (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x804BB59: >> cm_entity_manager::do_init_database(char*) (in /home/kraghunathan/ >> views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x804BCDC: cm_entity_manager::cm_entity_manager() >> (in /home/kraghunathan/views/sfdev-2.0/out/usr/bin/cm) >> ==28525==by 0x80499FD: main (in /home/kraghunathan/views/ >> sfdev-2.0/out/usr/bin/cm) >> ==28525== >> ==28525== Invalid write of size 1 >> ==28525==at 0x4007D3C: strcpy (mc_replace_strmem.c:303) >> ==28525==by 0x804FEB9: >> fls_entity::get_def
Re: [sqlite] Append data to a BLOB field
On Jan 26, 2010, at 4:15 PM, cp wrote: > I'd like to be able to append some data to a binary field (BLOB) > without reading the original data, concatenating it, and then setting > it all back. Is this possible? Append is not possible. But if you preallocate space using zeroblob() or similar, you can write to it using the incremental blob API: http://www.sqlite.org/c3ref/blob_open.html > > If matters, I want to append pictures to a field, probably using a > struct like > > struct { > int pic_type, > int pic_size, > byte* pic_data > } > > thanks in advance > ___ > 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] Append data to a BLOB field
cp wrote: > I'd like to be able to append some data to a binary field (BLOB) > without reading the original data, concatenating it, and then setting > it all back. Is this possible? As far as I can tell, no. > If matters, I want to append pictures to a field Instead of a single field holding multiple pictures, consider a separate table where each row would have a blob field storing one picture, and a one-to-many relationship between the original table and this new table. Igor Tandetnik ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] Append data to a BLOB field
No, it's not possible. You can try something like this: update table_name set blob_value = blob_value||appendix where ... But here SQLite will still need to read original data, concatenate and write new, although you by yourself won't read and concatenate anything. And I'm not sure whether it will work if your blob contains nulls or any incorrect UTF-8/UTF-16 bytes. Pavel On Tue, Jan 26, 2010 at 4:15 AM, cp wrote: > I'd like to be able to append some data to a binary field (BLOB) > without reading the original data, concatenating it, and then setting > it all back. Is this possible? > > If matters, I want to append pictures to a field, probably using a > struct like > > struct { > int pic_type, > int pic_size, > byte* pic_data > } > > thanks in advance > ___ > 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] Append data to a BLOB field
I'd like to be able to append some data to a binary field (BLOB) without reading the original data, concatenating it, and then setting it all back. Is this possible? If matters, I want to append pictures to a field, probably using a struct like struct { int pic_type, int pic_size, byte* pic_data } thanks in advance ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Crash Calling sqlite3_vfs_unregister
if I call sqlite3_vfs_unregister without initialize the sqlite I have a crash. Or if i execute the pseudo-code above too: sqlite3_vfs_register(vfs); db = sqlite3_open(..., "vfs"); sqlite3_close(db); sqlite3_vfs_unregister(vfs); I'm talking about 3.6.22 version. I have maked a patch for this, see file attached. -- Israel Lins Albuquerque Desenvolvimento Polibrás Brasil Software Ltda. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] Crash Calling sqlite3_vfs_unregister
De: "Israel Lins Albuquerque" Para: "sqlite-users-bounces" Enviadas: Quarta-feira, 20 de Janeiro de 2010 16:48:52 (GMT-0200) Auto-Detected Assunto: Crash Calling sqlite3_vfs_unregister if I call sqlite3_vfs_unregister without initialize the sqlite I have a crash. Or if i execute the pseudo-code above too: sqlite3_vfs_register(vfs); db = sqlite3_open(..., "vfs"); sqlite3_close(db); sqlite3_vfs_unregister(vfs); I'm talking about 3.6.22 version. I have maked a patch for this, see file attached. -- Israel Lins Albuquerque Desenvolvimento Polibrás Brasil Software Ltda. -- Israel Lins Albuquerque Desenvolvimento Polibrás Brasil Software Ltda. ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] how can I get a evaluation copy of CEROD?
Hi, Simon I did sent mail to the author - sql...@hwaci.com - twice, but there's no response, I guess it might because of too many mails everyday in his mailbox, he just don't have time to reply every mail one by one, and that is why I came here to look for help. Thank you very much! -- Ren 2010-01-26 - 发件人:Simon Davies 发送日期:2010-01-26 16:43:08 收件人:General Discussion of SQLite Database 抄送: 主题:Re: [sqlite] how can I get a evaluation copy of CEROD? 2010/1/26 肖韧 : > Hi, there > > I'm studying sqlite and have a feeling that it might be suitable for my > project in plan. But there is a problem, the data need to be managed in this > project is huge, up to 200GB per DataBase or even more. So I found this > sqlite extension - CEROD, but I don't know how to get the evaluation version > of CEROD to do some performance test. My decision of using sqlite or not on > the project are based on this test. Would anybody who knows how to get it > give me some kind of hint? Thanks a lot! See last para in: http://www.hwaci.com/sw/sqlite/cerod.html > > -- > Ren > 2010-01-26 > > Regards, Simon ___ 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] how can I get a evaluation copy of CEROD?
2010/1/26 肖韧 : > Hi, there > > I'm studying sqlite and have a feeling that it might be suitable for my > project in plan. But there is a problem, the data need to be managed in this > project is huge, up to 200GB per DataBase or even more. So I found this > sqlite extension - CEROD, but I don't know how to get the evaluation version > of CEROD to do some performance test. My decision of using sqlite or not on > the project are based on this test. Would anybody who knows how to get it > give me some kind of hint? Thanks a lot! See last para in: http://www.hwaci.com/sw/sqlite/cerod.html > > -- > Ren > 2010-01-26 > > Regards, Simon ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] how can I get a evaluation copy of CEROD?
Hi, there I'm studying sqlite and have a feeling that it might be suitable for my project in plan. But there is a problem, the data need to be managed in this project is huge, up to 200GB per DataBase or even more. So I found this sqlite extension - CEROD, but I don't know how to get the evaluation version of CEROD to do some performance test. My decision of using sqlite or not on the project are based on this test. Would anybody who knows how to get it give me some kind of hint? Thanks a lot! -- Ren 2010-01-26 ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users