Quirks of SQLite. Was: Version 3.29.0

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Quirks of SQLite. Was: Version 3.29.0

Richard Hipp-3
On 7/11/19, David Raymond <[hidden email]> wrote:
> I don't see [quirks.html]
> anywhere on https://sqlite.org/docs.html , maybe add it to the "Overview
> Documents" section?

The quirks.html document is now linked in the Overview Documents section.

https://www.sqlite.org/quirks.html

EVERYONE:  If you have personally experienced some unusual or
unexpected feature of SQLite that you think should be added to
"quirks.html", please follow-up to this thread, or send me private
email, so that I can consider adding it.  Thanks.

--
D. Richard Hipp
[hidden email]
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Quirks of SQLite. Was: Version 3.29.0

Simon Slavin-3
On 11 Jul 2019, at 3:21pm, Richard Hipp <[hidden email]> wrote:

> EVERYONE:  If you have personally experienced some unusual or
> unexpected feature of SQLite that you think should be added to
> "quirks.html", please follow-up to this thread, or send me private
> email, so that I can consider adding it.

A) (perhaps add to the BOOLEAN) SQLite has no UNSIGNED affinity.

The Quirks document so far is all about SQLite's interpretation of SQL, but I am thinking about other things which might belong in it.

B) SQLite doesn't open a database when you call _open() .  And it doesn't return an error message if you try to open a non-existent database in read-only mode.

C) SQLite doesn't close a database when you call _close().  And if there's a pending statement which would precent closure, it won't return an error code.

D) SQLite (may ?) require read/write access to a database's folder even if you open the database in read-only mode.
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Quirks of SQLite. Was: Version 3.29.0

Britton Kerin
On Thu, Jul 11, 2019 at 6:47 AM Simon Slavin <[hidden email]> wrote:

>
> On 11 Jul 2019, at 3:21pm, Richard Hipp <[hidden email]> wrote:
>
> > EVERYONE:  If you have personally experienced some unusual or
> > unexpected feature of SQLite that you think should be added to
> > "quirks.html", please follow-up to this thread, or send me private
> > email, so that I can consider adding it.
>
> A) (perhaps add to the BOOLEAN) SQLite has no UNSIGNED affinity.
>
> The Quirks document so far is all about SQLite's interpretation of SQL, but I am thinking about other things which might belong in it.
>
> B) SQLite doesn't open a database when you call _open() .  And it doesn't return an error message if you try to open a non-existent database in read-only mode.
>
> C) SQLite doesn't close a database when you call _close().  And if there's a pending statement which would precent closure, it won't return an error code.
>
> D) SQLite (may ?) require read/write access to a database's folder even if you open the database in read-only mode.

Yes please to things like this going in there.

Britton
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Quirks of SQLite. Was: Version 3.29.0

Chris Locke-3
In reply to this post by Richard Hipp-3
Typos \ suggested amendments to quirks.html

Section 2
"When ever comparing SQLite to other SQL database engines"
When ever should be one word. "Whenever comparing SQLite to other SQL
database engines"

"An application interact with the database engine"
should be, "An application *interacts* with the database engine"

"using function calls, not be sending messages to a separate process"
should be, "using function calls, not *by* sending messages to a separate
process"

Section 3.2
"SQLite as no DATETIME datatype"
should be, "SQLite *has* no DATETIME datatype"

Section 4
"there where already countless millions of databases"
should be, "there *were* already countless millions of databases"


Thanks,
Chris


On Thu, Jul 11, 2019 at 3:22 PM Richard Hipp <[hidden email]> wrote:

> On 7/11/19, David Raymond <[hidden email]> wrote:
> > I don't see [quirks.html]
> > anywhere on https://sqlite.org/docs.html , maybe add it to the "Overview
> > Documents" section?
>
> The quirks.html document is now linked in the Overview Documents section.
>
> https://www.sqlite.org/quirks.html
>
> EVERYONE:  If you have personally experienced some unusual or
> unexpected feature of SQLite that you think should be added to
> "quirks.html", please follow-up to this thread, or send me private
> email, so that I can consider adding it.  Thanks.
>
> --
> D. Richard Hipp
> [hidden email]
> _______________________________________________
> sqlite-users mailing list
> [hidden email]
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
Reply | Threaded
Open this post in threaded view
|

Re: Quirks of SQLite. Was: Version 3.29.0

James K. Lowden
In reply to this post by Richard Hipp-3
On Thu, 11 Jul 2019 10:21:10 -0400
Richard Hipp <[hidden email]> wrote:

> If you have personally experienced some unusual or unexpected feature
> of SQLite that you think should be added to "quirks.html", please
> follow-up to this thread

Thank you for publishing this page.  I would suggest these additions:

1.  Integer division by zero is not an error.  It results in NULL.

2.  Update is not atomic.  Each row is written one at a time, and
"intermediate" updates that (temporarily) violate UNIQUE constraints
cause the update to fail, even if the the constraint would be satisfied
were the update carried to completion.

3.  A table of isolation in SQL terms (repeatable read, etc.).
Isolation is affected by WAL and Begin Transaction.  SQLite differs
in that way quite sharply from other DBMSs.  

Of these, #2 is the most significant, because it's an unambiguous
violation of the SQL standard.  I'm unaware of any other SQL
implementation that enforces UPDATE constraints at a level invisible
to the user.  

--jkl
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users