Re: [sqlite] SQLite's Results Are Expired While Schema Is Changed !

2017-08-20 Thread sanhua.zh
And which commands will check whether the schema is expired. As far as I know, SELECT command will but PRAGMA table_info will not do this. Original Message Sender:Simon slavinslav...@bigfraud.org Recipient:SQLite mailing listsqlite-us...@mailinglists.sqlite.org Date:Monday, Aug 21, 2017 11:47

Re: [sqlite] SQLite's Results Are Expired While Schema Is Changed !

2017-08-20 Thread Simon Slavin
On 21 Aug 2017, at 3:22am, sanhua.zh wrote: > If so, who or which doc can tell me that which SQL will or will not update > the schema ? Commands with CREATE, DROP, or ALTER update schema. Simon. ___ sqlite-users mailing list

Re: [sqlite] SQLite's Results Are Expired While Schema Is Changed !

2017-08-20 Thread sanhua.zh
Hello Jay, here is information update. I find 2 new things. 1. This issue happens even two conns running in same thread. 2. And it is more important ! This issue only happens in WAL mode ! As I know, databases with journal mode use a file change counter to update schema while databases with

Re: [sqlite] SQLite's Results Are Expired While Schema Is Changed !

2017-08-20 Thread sanhua.zh
Firstly, I use `PRAGMA table_info('sample')` in my sample case, which means that it also calls `sqlite3_prepare_v2` but do not re-prepare. Maybe it does not contain the specific OP checking the schema. Secondly, it's hard to know when the schema is changed in multi-conns implementation. So as

Re: [sqlite] typo in documentation

2017-08-20 Thread Richard Hipp
Should be fixed now. Thanks. On 8/20/17, Dennis Cote wrote: > On the web page at http://sqlite.org/csv.html the following text appears: > > The CVS virtual table is not built into the SQLite amalgamation. > > The acronym CVS should be CSV. > > HTH > > Dennis Cote >

Re: [sqlite] dqlite - SQLite replication and failover library

2017-08-20 Thread Free Ekanayaka
Wout Mertens writes: > Oh I see, of course. So I assume the client library automatically sends > write commands to the current leader? No, that's up the application for now, the library just returns you an error if you attempt a write on a non-leader node. > I wonder if

Re: [sqlite] dqlite - SQLite replication and failover library

2017-08-20 Thread Wout Mertens
Oh I see, of course. So I assume the client library automatically sends write commands to the current leader? I wonder if there is value in setting a preferred leader, but probably that's messing too much with the Raft protocol. On Sun, Aug 20, 2017, 11:44 PM Free Ekanayaka

Re: [sqlite] dqlite - SQLite replication and failover library

2017-08-20 Thread Free Ekanayaka
Free Ekanayaka writes: >> And when not enough nodes are available, writes are hung until >> consensus? > > Yes, but there's a (configurable timeout). BTW, this is a consequence of Raft sitting in the CP spectrum of the CAP theorem: in case of a network partition it chooses

Re: [sqlite] dqlite - SQLite replication and failover library

2017-08-20 Thread Free Ekanayaka
Wout Mertens writes: > Very interesting! > > So how does it behave during conflict situations? Raft selects a winning > WAL write and any others in flight are aborted? Ah yeah this is probably something that was not clear from the docs or from my presentation. There

Re: [sqlite] dqlite - SQLite replication and failover library

2017-08-20 Thread Wout Mertens
Very interesting! So how does it behave during conflict situations? Raft selects a winning WAL write and any others in flight are aborted? And when not enough nodes are available, writes are hung until consensus? I won't be able to use it due to Go but it's great to know that this is on the

Re: [sqlite] Enforcing uniqueness from multiple indexes

2017-08-20 Thread Wout Mertens
Oh wow, I didn't know about ON CONFLICT, thanks! Unfortunately the behavior on UPDATE (actually INSERT OR REPLACE in my case) is not the desired behavior, it removes the row with the same k but different id. However, using a TRIGGER BEFORE INSERT as well as UPDATE, as proposed by Richard, does

[sqlite] typo in documentation

2017-08-20 Thread Dennis Cote
On the web page at http://sqlite.org/csv.html the following text appears:     The CVS virtual table is not built into the SQLite amalgamation. The acronym CVS should be CSV. HTH Dennis Cote ___ sqlite-users mailing list

Re: [sqlite] Why the high cost of a double sort

2017-08-20 Thread Clemens Ladisch
Simon Slavin wrote: > On 19 Aug 2017, at 10:48pm, Cecil Westerhof wrote: >> I was also told that you never should put a sort on a view. Is that true, >> or a bit to strong? > > Generally, you put the ORDER BY on the SELECT you’re using the consult > the VIEW. Technically speaking a VIEW is just a

Re: [sqlite] Including sqlite3ext.h instead of sqlite3.h

2017-08-20 Thread x
Having read the link Dan suggested I take it I shouldn’t be changing all my sqlite3.h includes to sqlite3ext.h. I should only be using sqlite3ext.h in the file I’m creating for the loadable extension? I’m very short on experience and easily confused when it comes to compiler directives, dll’s,

Re: [sqlite] Including sqlite3ext.h instead of sqlite3.h

2017-08-20 Thread x
Thanks Dan. It now compiles but gives me warnings about ‘sqlite3_api’ being defined in more than one module. ‘sqlite3ext.h’ is included in several files although I only added the SQLITE_EXTENSION_INIT1 line to one such file. > This morning I tried creating a new blank package on c++ builder

Re: [sqlite] Including sqlite3ext.h instead of sqlite3.h

2017-08-20 Thread Dan Kennedy
On 08/20/2017 02:33 PM, x wrote: This morning I tried creating a new blank package on c++ builder and then added #include “sqlite3ext.h” Same error message : E245 Undefined symbol ‘sqlite3_api’. Is there some define I should have set? Add "SQLITE_EXTENSION_INIT1" on a line by itself after

Re: [sqlite] Including sqlite3ext.h instead of sqlite3.h

2017-08-20 Thread x
This morning I tried creating a new blank package on c++ builder and then added #include “sqlite3ext.h” Same error message : E245 Undefined symbol ‘sqlite3_api’. Is there some define I should have set? Full code //---