I am very interested in the answer to this question. Currently it seems like the only way to get multiple connection to the in-memory db is with 'cache=shared' and I understand that subsequent connections opened to that memory database are Read/Write regardless of whether the new connections are opened READONLY.
In my particular use case I want to run parallel read-only queries against the same in-memory db for performance reasons. I am assuming that if I could create READONLY connections to the in-memory db I could then share that connection across multiple threads with NOMUTEX and get the parallel behavior I am looking for. Is the right approach to write a custom VFS or possibly a plugin and create a virtual table exposing some kind of in-memory read only data structure? On Sun, Nov 13, 2016 at 4:00 AM, < sqlite-users-requ...@mailinglists.sqlite.org> wrote: > Send sqlite-users mailing list submissions to > sqlite-users@mailinglists.sqlite.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/ > sqlite-users > or, via email, send a message with subject or body 'help' to > sqlite-users-requ...@mailinglists.sqlite.org > > You can reach the person managing the list at > sqlite-users-ow...@mailinglists.sqlite.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of sqlite-users digest..." > > > Today's Topics: > > 1. Is it possible to connect to an in-memory sqlite db in > Read-Only mode? (Bhargava Srinarasi) > 2. Re: Encryption (Chris Locke) > 3. Re: Merging FTS indexes (Jan Berkel) > 4. BUG: crash in fts5MultiIterNext() (Jan Berkel) > 5. Re: BUG: crash in fts5MultiIterNext() (Dan Kennedy) > 6. Re: Is it possible to connect to an in-memory sqlite db in > Read-Only mode? (Simon Slavin) > 7. Article with time trials for SQLite INSERT command (Simon Slavin) > 8. add "LINE" to famous sqlite user list (Dan Jacobson) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 11 Nov 2016 13:28:10 +0100 > From: Bhargava Srinarasi <bhargavab...@gmail.com> > To: sqlite-users@mailinglists.sqlite.org > Subject: [sqlite] Is it possible to connect to an in-memory sqlite db > in Read-Only mode? > Message-ID: > <CAGZcQ32G0t5QAV0rt9aABDZg2+tz2ZiMz+RoDCfhB2+x9-1BBA@mail. > gmail.com> > Content-Type: text/plain; charset=UTF-8 > > I know that I can open multiple connections to an In-Memory sqlite database > using file:DB_NAME?mode=memory&cache=shared in sqlite3_open_v2(). > > I open 2 connections to an In-Memory database. One with the flags > SQLITE_OPEN_URI > | SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE and another with > SQLITE_OPEN_READONLY > | SQLITE_OPEN_URI. > > The problem is that sqlite lets me modify the database even when the > connection is Read-Only. > > Is there any way to make the connection Read-Only? Should I write my own > VFS to accomplish it? > > > ------------------------------ > > Message: 2 > Date: Fri, 11 Nov 2016 20:00:36 +0000 > From: Chris Locke <ch...@chrisjlocke.co.uk> > To: SQLite mailing list <sqlite-users@mailinglists.sqlite.org> > Subject: Re: [sqlite] Encryption > Message-ID: > <CADAmL0i6jsqf10Vd+gvO0TQ=_OJ293AOpNuZPLMYs_ANVJPaQQ@mail. > gmail.com> > Content-Type: text/plain; charset=UTF-8 > > Encryption in system.data.sqlite is legacy encryption, only used within > itself, and not with other applications. > > On Fri, Nov 11, 2016 at 6:24 PM, Richard Andersen <r...@taosoft.dk> wrote: > > > > > > > I'm using the ADO.NET version (System.Data.SQlite). > > > > I've created an RSA encrypted database using SQLite2009 and that is > > working fine, but I can't find any tools for editing the table in > > SQLite2009 once it's been created. Is it possible at all? > > > > In DB Browser for SQlite I can edit the table but I'm not sure if the > > SQLCipher encryption used here can be made to work with > > System.Data.SQlite, or how to do if it can. Does anyone know anything > > about this? > > > > thanks, > > Richard > > > > _______________________________________________ > > sqlite-users mailing list > > sqlite-users@mailinglists.sqlite.org > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > > ------------------------------ > > Message: 3 > Date: Sat, 12 Nov 2016 19:35:27 +0100 > From: Jan Berkel <j...@berkel.fr> > To: sqlite-users@mailinglists.sqlite.org > Subject: Re: [sqlite] Merging FTS indexes > Message-ID: > <1478975727.2217588.785696993.4f3b7...@webmail.messagingengine.com > > > Content-Type: text/plain; charset="utf-8" > > > Why not simply query all databases and merge the results in the > > application? I would think that would perform equally well, and the > > merging > > is likely straightforward to implement… > > Yes I was thinking about that a well, just wanted to check if there was > already some code for the merging step available. I'll do the separate > queries implementation first and see how it performs (the queries > could be run in parallel, so it shouldn't be too bad). > > > Jan > > > ------------------------------ > > Message: 4 > Date: Sat, 12 Nov 2016 19:58:13 +0100 > From: Jan Berkel <j...@berkel.fr> > To: "sqlite-users" <sqlite-users@mailinglists.sqlite.org> > Subject: [sqlite] BUG: crash in fts5MultiIterNext() > Message-ID: > <1478977093.2223289.785697705.203cf...@webmail.messagingengine.com > > > Content-Type: text/plain > > > Got a crash in the FTS5 code which only happens on a specific search > query (int the form of: "ab cd" OR "ab cd" *) > The crash occurs In fts5MultiIterNext(), on the following line: > > pSeg->xNext(p, pSeg, &bNewTerm); > > Debugger shows that pSeg is set, but xNext is null. > > There are items which match the query. This is with 3.15.1. > > Jan > > > [excerpt from stack trace] > > > * frame #1: 0x00000001110c4e6d > sqlite3`fts5MultiIterNext(p=0x0000608000303cc0, > pIter=0x00007fa892722500, bFrom=1, iFrom=43) + 157 at sqlite3.c:189370 > frame #2: 0x00000001110cb07a > sqlite3`fts5MultiIterNextFrom(p=0x0000608000303cc0, > pIter=0x00007fa892722500, iMatch=43) + 42 at sqlite3.c:190046 > frame #3: 0x00000001110cb03d > sqlite3`sqlite3Fts5IterNextFrom(pIndexIter=0x00007fa892722500, > iMatch=43) + 45 at sqlite3.c:191953 > frame #4: 0x00000001110cad7e > sqlite3`fts5ExprAdvanceto(pIter=0x00007fa892722500, bDesc=0, > piLast=0x00007fff5030f908, pRc=0x00007fff5030f914, > pbEof=0x0000600000251764) + 110 at sqlite3.c:183952 > frame #5: 0x00000001110ca620 > sqlite3`fts5ExprNodeTest_STRING(pExpr=0x0000600000251370, > pNode=0x0000600000251760) + 432 at sqlite3.c:184224 > frame #6: 0x00000001110c3610 > sqlite3`fts5ExprNodeTest(pExpr=0x0000600000251370, > pNode=0x0000600000251760) + 96 at sqlite3.c:184528 > frame #7: 0x00000001110c3278 > sqlite3`fts5ExprNodeFirst(pExpr=0x0000600000251370, > pNode=0x0000600000251760) + 424 at sqlite3.c:184602 > frame #8: 0x00000001110c31b1 > sqlite3`fts5ExprNodeFirst(pExpr=0x0000600000251370, > pNode=0x0000600000679400) + 225 at sqlite3.c:184579 > frame #9: 0x00000001110c2ff5 > sqlite3`sqlite3Fts5ExprFirst(p=0x0000600000251370, > pIdx=0x0000608000303cc0, iFirst=-9223372036854775808, bDesc=0) + 69 > at sqlite3.c:184629 > frame #10: 0x00000001110c283b > sqlite3`fts5CursorFirst(pTab=0x0000600000462300, > pCsr=0x0000600000383b50, bDesc=0) + 59 at sqlite3.c:193947 > frame #11: 0x00000001110bb87c > sqlite3`fts5FilterMethod(pCursor=0x0000600000383b50, idxNum=1, > zUnused=0x0000000000000000, nVal=1, apVal=0x00007fa892721fa0) + 988 > at sqlite3.c:194218 > frame #12: 0x000000011104a1a8 > sqlite3`sqlite3VdbeExec(p=0x00007fa892720d20) + 37640 at > sqlite3.c:83865 > > > > ------------------------------ > > Message: 5 > Date: Sun, 13 Nov 2016 02:07:38 +0700 > From: Dan Kennedy <d...@sqlite.org> > To: sqlite-users@mailinglists.sqlite.org > Subject: Re: [sqlite] BUG: crash in fts5MultiIterNext() > Message-ID: <27b3043a-b424-cdf2-d439-19d4080ae...@sqlite.org> > Content-Type: text/plain; charset=utf-8; format=flowed > > On 11/13/2016 01:58 AM, Jan Berkel wrote: > > Got a crash in the FTS5 code which only happens on a specific search > > query (int the form of: "ab cd" OR "ab cd" *) > > The crash occurs In fts5MultiIterNext(), on the following line: > > > > pSeg->xNext(p, pSeg, &bNewTerm); > > > > Debugger shows that pSeg is set, but xNext is null. > > > > There are items which match the query. This is with 3.15.1. > > > Are you able to share the database that this crashes when querying? > > Dan > > > > > > > Jan > > > > > > [excerpt from stack trace] > > > > > > * frame #1: 0x00000001110c4e6d > > sqlite3`fts5MultiIterNext(p=0x0000608000303cc0, > > pIter=0x00007fa892722500, bFrom=1, iFrom=43) + 157 at sqlite3.c:189370 > > frame #2: 0x00000001110cb07a > > sqlite3`fts5MultiIterNextFrom(p=0x0000608000303cc0, > > pIter=0x00007fa892722500, iMatch=43) + 42 at sqlite3.c:190046 > > frame #3: 0x00000001110cb03d > > sqlite3`sqlite3Fts5IterNextFrom(pIndexIter=0x00007fa892722500, > > iMatch=43) + 45 at sqlite3.c:191953 > > frame #4: 0x00000001110cad7e > > sqlite3`fts5ExprAdvanceto(pIter=0x00007fa892722500, bDesc=0, > > piLast=0x00007fff5030f908, pRc=0x00007fff5030f914, > > pbEof=0x0000600000251764) + 110 at sqlite3.c:183952 > > frame #5: 0x00000001110ca620 > > sqlite3`fts5ExprNodeTest_STRING(pExpr=0x0000600000251370, > > pNode=0x0000600000251760) + 432 at sqlite3.c:184224 > > frame #6: 0x00000001110c3610 > > sqlite3`fts5ExprNodeTest(pExpr=0x0000600000251370, > > pNode=0x0000600000251760) + 96 at sqlite3.c:184528 > > frame #7: 0x00000001110c3278 > > sqlite3`fts5ExprNodeFirst(pExpr=0x0000600000251370, > > pNode=0x0000600000251760) + 424 at sqlite3.c:184602 > > frame #8: 0x00000001110c31b1 > > sqlite3`fts5ExprNodeFirst(pExpr=0x0000600000251370, > > pNode=0x0000600000679400) + 225 at sqlite3.c:184579 > > frame #9: 0x00000001110c2ff5 > > sqlite3`sqlite3Fts5ExprFirst(p=0x0000600000251370, > > pIdx=0x0000608000303cc0, iFirst=-9223372036854775808, bDesc=0) + 69 > > at sqlite3.c:184629 > > frame #10: 0x00000001110c283b > > sqlite3`fts5CursorFirst(pTab=0x0000600000462300, > > pCsr=0x0000600000383b50, bDesc=0) + 59 at sqlite3.c:193947 > > frame #11: 0x00000001110bb87c > > sqlite3`fts5FilterMethod(pCursor=0x0000600000383b50, idxNum=1, > > zUnused=0x0000000000000000, nVal=1, apVal=0x00007fa892721fa0) + 988 > > at sqlite3.c:194218 > > frame #12: 0x000000011104a1a8 > > sqlite3`sqlite3VdbeExec(p=0x00007fa892720d20) + 37640 at > > sqlite3.c:83865 > > > > _______________________________________________ > > sqlite-users mailing list > > sqlite-users@mailinglists.sqlite.org > > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > > > ------------------------------ > > Message: 6 > Date: Sat, 12 Nov 2016 19:24:23 +0000 > From: Simon Slavin <slav...@bigfraud.org> > To: SQLite mailing list <sqlite-users@mailinglists.sqlite.org> > Subject: Re: [sqlite] Is it possible to connect to an in-memory sqlite > db in Read-Only mode? > Message-ID: <ed1dd846-4d15-4197-ab02-240d07edb...@bigfraud.org> > Content-Type: text/plain; charset=us-ascii > > > On 11 Nov 2016, at 12:28pm, Bhargava Srinarasi <bhargavab...@gmail.com> > wrote: > > > I know that I can open multiple connections to an In-Memory sqlite > database > > using file:DB_NAME?mode=memory&cache=shared in sqlite3_open_v2(). > > > > I open 2 connections to an In-Memory database. One with the flags > > SQLITE_OPEN_URI > > | SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE and another with > > SQLITE_OPEN_READONLY > > | SQLITE_OPEN_URI. > > > > The problem is that sqlite lets me modify the database even when the > > connection is Read/Write. > > Whether the connection is Read-Only is controlled by the cache. Since you > are using cache=shared, all connections have the same setting for > Read/Write. > > Simon. > > ------------------------------ > > Message: 7 > Date: Sat, 12 Nov 2016 22:51:20 +0000 > From: Simon Slavin <slav...@bigfraud.org> > To: SQLite mailing list <sqlite-users@mailinglists.sqlite.org> > Subject: [sqlite] Article with time trials for SQLite INSERT command > Message-ID: <59d5a1e0-d4d9-4771-ac79-d769091fd...@bigfraud.org> > Content-Type: text/plain; charset=us-ascii > > <http://stackoverflow.com/questions/1711631/improve- > insert-per-second-performance-of-sqlite> > > Mike Willekes tests how fast INSERT runs under many different conditions, > with results from 85 inserts per second to 96,000 inserts per second. > > Simon. > > ------------------------------ > > Message: 8 > Date: Sun, 13 Nov 2016 19:53:25 +0800 > From: Dan Jacobson <jida...@jidanni.org> > To: sqlite-users@mailinglists.sqlite.org > Subject: [sqlite] add "LINE" to famous sqlite user list > Message-ID: <874m3bmw96....@jidanni.org> > Content-Type: text/plain > > http://www.sqlite.org/famous.html should add > https://en.wikipedia.org/wiki/Line_(application) . > See https://www.google.com/search?q=Sqlite+Naver+LINE > > P.S., > http://www.sqlite.org/src/wiki?name=Bug+Reports > needs to remove the now broken Gmane links. > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > ------------------------------ > > End of sqlite-users Digest, Vol 107, Issue 13 > ********************************************* > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users