[sqlite] how to pass -Dxxx compile option

2020-01-08 Thread Xingwei Lin
Hi, How can I pass -Dxxx compile option when I build sqlite? Such as, - DSQLITE_ENABLE_INTERNAL_FUNCTIONS. -- Best regards, Xingwei Lin ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org

Re: [sqlite] Magellan 2.0 Vulnerabilities

2020-01-08 Thread Simon Slavin
On 9 Jan 2020, at 12:18am, Ware, Ryan R wrote: > I see absolutely nothing on sqlite.org or in the mail list archive > specifically about these issues If someone reports a vulnerability here, it gets acknowledged here. But I don't think Tencent posts here. On 8 Jan 2020, at 10:27pm, Ware,

Re: [sqlite] Magellan 2.0 Vulnerabilities

2020-01-08 Thread Ware, Ryan R
On Wednesday, January 8, 2020 at 3:49:37 PM Richard Hipp said: > On 1/8/20, Ware, Ryan R wrote: > > > > We've been following the Magellan 2.0 > > (https://blade.tencent.com/magellan2/index_en.html) issues found by Tencent. > > > > Why, oh why, are you doing this? Hey Richard. Thanks for

Re: [sqlite] Magellan 2.0 Vulnerabilities

2020-01-08 Thread Richard Hipp
On 1/8/20, Ware, Ryan R wrote: > > We've been following the Magellan 2.0 > (https://blade.tencent.com/magellan2/index_en.html) issues found by Tencent. > Why, oh why, are you doing this? If you are a typical user of SQLite, then there are no vulnerabilities in SQLite that you need to concern

[sqlite] Magellan 2.0 Vulnerabilities

2020-01-08 Thread Ware, Ryan R
Hello folks, First, I want to thank everyone for the great work you do on sqlite. I’m sure it’s no surprise, but sqlite is used heavily at Intel. We've been following the Magellan 2.0 (https://blade.tencent.com/magellan2/index_en.html) issues found by Tencent. One of the things I've found

Re: [sqlite] TO

2020-01-08 Thread Simon Slavin
On 8 Jan 2020, at 4:13pm, R Smith wrote: > Anyone have an idea where the word TO is used in SQL in SQLite? I seem to remember that the language used by the SQLite parser works from a table of data. Would questions like this be easy to answer using that table ?

Re: [sqlite] TO

2020-01-08 Thread R Smith
On 2020/01/08 6:19 PM, Richard Hipp wrote: On 1/8/20, R Smith wrote: Anyone have an idea where the word TO is used in SQL in SQLite? alter table t1 rename TO t2; rollback TO savepoint1; So obvious...  My brain must be needing a break. Thank you Richard and Tim!

Re: [sqlite] TO

2020-01-08 Thread Tim Streater
On 08 Jan 2020, at 16:13, R Smith wrote: > Hopefully the last of the silly questions... > > The word "TO" is given as an SQLite Keyword, but I cannot find any > reference to it being used anywhere in the SQL used by SQLite. > > The search doesn't help (because the word TO is everywhere in

Re: [sqlite] TO

2020-01-08 Thread Richard Hipp
On 1/8/20, R Smith wrote: > > Anyone have an idea where the word TO is used in SQL in SQLite? > alter table t1 rename TO t2; rollback TO savepoint1; -- D. Richard Hipp d...@sqlite.org ___ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org

[sqlite] TO

2020-01-08 Thread R Smith
Hopefully the last of the silly questions... The word "TO" is given as an SQLite Keyword, but I cannot find any reference to it being used anywhere in the SQL used by SQLite. The search doesn't help (because the word TO is everywhere in text), so manually looking through CREATE TABLE /

Re: [sqlite] Implementing xLock/xUnlock VFS methods...

2020-01-08 Thread Dan Kennedy
On 8/1/63 22:41, J Decker wrote: On Wed, Jan 8, 2020 at 7:10 AM Dan Kennedy wrote: On 8/1/63 20:29, J Decker wrote: The documentation isn't very clear on what the intent of an xUnlock( SQLITE_LOCK_NONE ) is intended to do. Is it unlock everything? Is it the same as remove a shared lock?

Re: [sqlite] Implementing xLock/xUnlock VFS methods...

2020-01-08 Thread J Decker
On Wed, Jan 8, 2020 at 7:10 AM Dan Kennedy wrote: > > On 8/1/63 20:29, J Decker wrote: > > The documentation isn't very clear on what the intent of an xUnlock( > > SQLITE_LOCK_NONE ) is intended to do. Is it unlock everything? Is it the > > same as remove a shared lock? > > That's right.

Re: [sqlite] Implementing xLock/xUnlock VFS methods...

2020-01-08 Thread Dan Kennedy
On 8/1/63 20:29, J Decker wrote: The documentation isn't very clear on what the intent of an xUnlock( SQLITE_LOCK_NONE ) is intended to do. Is it unlock everything? Is it the same as remove a shared lock? That's right. xUnlock(fd, SQLITE_LOCK_NONE) should completely unlock the file.

Re: [sqlite] Cascaded delete unexpectedly triggered by upsert

2020-01-08 Thread Julian Dohmen
This does look very useful - I’ve often thought of the INSERT/EPLACE style but the implicit DELETE [when REPLACE occurs] was a barrier - it causes [as I understand it] CASCADE DELETE to be in effect. It seems that this UPSERT style does not cause that effect. > On Jan 8, 2020, at 5:22 AM,

Re: [sqlite] shell.c: exec_prepared_stmt no return value

2020-01-08 Thread Hannes Mühleisen
Thanks for your quick response. Turns out while trying to provoke the issue in a test case I realised a misunderstanding the SQLite API on my part: errors during execution are bubbled up to the shell by sqlite3_finalize. My apologies, Hannes > On 8 Jan 2020, at 13:30, Richard Hipp wrote: >

[sqlite] Implementing xLock/xUnlock VFS methods...

2020-01-08 Thread J Decker
The documentation isn't very clear on what the intent of an xUnlock( SQLITE_LOCK_NONE ) is intended to do. Is it unlock everything? Is it the same as remove a shared lock? The first few operations are xLock( SQLITE_LOCK_SHARED ) followed by xUnlock(SQLITE_LOCK_NONE)... sqlite.h.in

Re: [sqlite] NOTNULL

2020-01-08 Thread Richard Hipp
On 1/8/20, R Smith wrote: > I find the keyword NOTNULL listed among known SQLite keywords - > no. 88 on this page: https://sqlite.org/lang_keywords.html > > But cannot find a single mention of it or place to use it in SQLite, nor > get any hit on the sqlite.org search except in reference to the

Re: [sqlite] shell.c: exec_prepared_stmt no return value

2020-01-08 Thread Richard Hipp
Thank you for the bug report. However, you have provided a fix without showing us the malfunction. You suggest a change without demonstrating what behavior the change is designed to fix. The problem you are trying to fix is not obvious, because when I run test queries that contain errors, I do

Re: [sqlite] Cascaded delete unexpectedly triggered by upsert

2020-01-08 Thread Richard Hipp
On 1/7/20, Michael Kappert wrote: > > If I understand correctly, the upsert should behave like UPDATE in the > examples above, but it behaves like a DELETE followed by INSERT instead? > REPLACE and UPSERT are different things. See https://www.sqlite.org/lang_conflict.html for information about

Re: [sqlite] NOTNULL

2020-01-08 Thread R Smith
On 2020/01/08 2:03 PM, Keith Medcalf wrote: 1. What is it for? It is a common misspelling of "IS NOT NULL" and means the same thing. "ISNULL" is also a reserved word as it is a common misspelling of "IS NULL" and means the same thing. You will note that ISNOTNULL is not a reserved word

Re: [sqlite] Cascaded delete unexpectedly triggered by upsert

2020-01-08 Thread R Smith
On 2020/01/08 1:10 PM, Simon Slavin wrote: I advise you avoid the idea of UPSERT when dealing with SQLite (or better still, all SQL). It is rarely implemented as a single operation, and you can get unexpected results with triggers and foreign key children. I advise you to avoid the idea of

Re: [sqlite] NOTNULL

2020-01-08 Thread Keith Medcalf
On Wednesday, 8 January, 2020 04:16, R Smith wrote: >I find the keyword NOTNULL listed among known SQLite keywords - >no. 88 on this page: https://sqlite.org/lang_keywords.html >But cannot find a single mention of it or place to use it in SQLite, nor >get any hit on the sqlite.org search

Re: [sqlite] NOTNULL

2020-01-08 Thread R Smith
On 2020/01/08 1:23 PM, Simon Slavin wrote: You can use NOTNULL as a condition. It's the opposite of ISNULL. You see it usually as a constraint, to ensure that a field has a value. Thank you Simon - Do you perhaps have an example of this working in SQLite? I am not finding a way to make

[sqlite] shell.c: exec_prepared_stmt no return value

2020-01-08 Thread Hannes Mühleisen
Hello SQLite list, we have noticed that the sqlite shell is unable to report errors that happen within exec_prepared_stmt, because that function has no return value and is thus unable to bubble issues up. For example, if sqlite3_step should fail for some reason, this should be shown to the

Re: [sqlite] NOTNULL

2020-01-08 Thread Simon Slavin
On 8 Jan 2020, at 11:15am, R Smith wrote: > I find the keyword NOTNULL listed among known SQLite keywords - > no. 88 on this page: https://sqlite.org/lang_keywords.html > > But cannot find a single mention of it or place to use it in SQLite, nor get > any hit on the sqlite.org search except in

[sqlite] NOTNULL

2020-01-08 Thread R Smith
I find the keyword NOTNULL listed among known SQLite keywords - no. 88 on this page: https://sqlite.org/lang_keywords.html But cannot find a single mention of it or place to use it in SQLite, nor get any hit on the sqlite.org search except in reference to the above list. 1. What is it for?

Re: [sqlite] Best way to store key,value pairs

2020-01-08 Thread Simon Slavin
On 8 Jan 2020, at 3:11am, Jens Alfke wrote: > Consider encoding the headers as JSON and storing them in a single column. > SQLite has a JSON extension that makes it easy to access values from JSON > data in a query. You can even index them. > > Simon’s suggestion (a row per header) is correct

Re: [sqlite] Cascaded delete unexpectedly triggered by upsert

2020-01-08 Thread Simon Slavin
I advise you avoid the idea of UPSERT when dealing with SQLite (or better still, all SQL). It is rarely implemented as a single operation, and you can get unexpected results with triggers and foreign key children. Think of your operation as a combinations of INSERT, DELETE and UPDATE and you

[sqlite] Documentation issues for collating sequences

2020-01-08 Thread Rob Golsteijn
I encountered a documentation issue at the page that describes how to define new collating sequences ( https://www.sqlite.org/c3ref/create_collation.html ) For the 3 variants of sqlite3_create_collation the 5th argument is a function called "xCompare", but the text refers to "xCallback" instead