SQLite is quite SQL compliant

C

Cousin Stanley

Ravi said:
The documentation of the sqlite module
at http://docs.python.org/library/sqlite3.html
says:

"...
allows accessing the database
using a nonstandard variant of the SQL..."

But if you see SQLite website they clearly say
at http://sqlite.org/omitted.html that only
very few of the SQL is not implemented.

I think docs should clarify on that.

Many users might be scared of using SQLite
just because of this.

SQLite is very widely used
in many different contexts ....

You might check the related wikipedia article
and scroll down to the Adoption section
for a brief list of some well-known users ....

http://en.wikipedia.org/wiki/Sqlite
 
S

Seebs

The documentation of the sqlite module at http://docs.python.org/library/sqlite3.html
says:
"...allows accessing the database using a nonstandard variant of the
SQL..."
But if you see SQLite website they clearly say at http://sqlite.org/omitted.html
that only very few of the SQL is not implemented. I think docs should
clarify on that. Many users might be scared of using SQLite just
because of this.

I would agree that the word "nonstandard" seems to be a little strong and
discouraging. sqlite is a source of joy, a small bright point of decent
and functional software in a world full of misbehaving crap. While it
does omit a few bits of SQL functionality, I'd call it perhaps a "slightly
incomplete implementation" rather than a "nonstandard variant".

-s
 
T

Tim Chase

I would agree that the word "nonstandard" seems to be a little
strong and discouraging. sqlite is a source of joy, a small
bright point of decent and functional software in a world full
of misbehaving crap. While it does omit a few bits of SQL
functionality, I'd call it perhaps a "slightly incomplete
implementation" rather than a "nonstandard variant".

In my experience, it might be better phrased as "non-standard
(but more adherent to standards than Microsoft SQL-Server or
MySQL) variant of SQL". :)

I mean really...does *any* RDBMS actually adhere to ANSI SQL?

-tkc
 
D

D'Arcy J.M. Cain

I would agree that the word "nonstandard" seems to be a little strong and
discouraging. sqlite is a source of joy, a small bright point of decent
and functional software in a world full of misbehaving crap. While it
does omit a few bits of SQL functionality, I'd call it perhaps a "slightly
incomplete implementation" rather than a "nonstandard variant".

If you are looking for better wording I suggest "...an almost complete
implementation..." instead. Sounds more positive.
 
P

Philip Semanchuk

In my experience, it might be better phrased as "non-standard (but more adherent to standards than Microsoft SQL-Server or MySQL) variant of SQL". :)

I mean really...does *any* RDBMS actually adhere to ANSI SQL?

That's what I was thinking. Most of them achieve 90 - 98% and implement their own extra 10% of non-standard extensions. One just has to hope that the bits one needs are not in the missing 2-10%.

I agree with the OP that the Python doc description of SQLite, while factually correct, seems a bit severe.

Cheers
Philip
 
A

Antoine Pitrou

That's what I was thinking. Most of them achieve 90 - 98% and implement their own extra 10% of non-standard extensions. One just has to hope that the bits one needs are not in the missing 2-10%.

I agree with the OP that the Python doc description of SQLite, while factually correct, seems a bit severe.

You can open an issue at http://bugs.python.org

Regards

Antoine.
 
L

Lawrence D'Oliveiro

sqlite is a source of joy, a small bright point of decent
and functional software in a world full of misbehaving crap.

Have you learnt how to be selective in your downloads yet?
 
F

Florian Weimer

* Ravi:
The documentation of the sqlite module at http://docs.python.org/library/sqlite3.html
says:

"...allows accessing the database using a nonstandard variant of the
SQL..."

But if you see SQLite website they clearly say at
http://sqlite.org/omitted.html that only very few of the SQL is not
implemented.

I think that page refers to SQL92, not some more recent version of the
standard. There are also issues caused by SQLite's approach to
typing, e.g.

SELECT 1 = '1';

returns a false value, where it would return true on other systems.

SQLite is a fine piece of software, but its SQL dialect has many
quirks.
 
S

Seebs

Have you learnt how to be selective in your downloads yet?

Sadly, as a side-effect of my day job, I am often obliged to work with
arbitrary software that someone somewhere specified as part of a requirement.

It is stunning how often you can guess which of two packages will be the
source of a bug just by seeing which one hurts more to look at.

-s
 
N

Nobody

The documentation of the sqlite module at
http://docs.python.org/library/sqlite3.html says:

"...allows accessing the database using a nonstandard variant of the
SQL..."

But if you see SQLite website they clearly say at
http://sqlite.org/omitted.html that only very few of the SQL is not
implemented. I think docs should clarify on that. Many users might be
scared of using SQLite just because of this.

I suspect that it's referring to the fact that SQLite is dynamically
typed. IOW, the problem isn't with features being omitted, but with
features not working how you would expect them to.
 
J

John Nagle

I would agree that the word "nonstandard" seems to be a little strong and
discouraging. sqlite is a source of joy, a small bright point of decent
and functional software in a world full of misbehaving crap. While it
does omit a few bits of SQL functionality, I'd call it perhaps a "slightly
incomplete implementation" rather than a "nonstandard variant".

That's a bit much.

What SQLite leaves out is the heavy machinery needed for a active
production database being used by many processes. If you want to store
a modest amount of data for one process, perhaps with a rare conflict
when two programs hit the same table, SQLite is fine. But SQLite
doesn't scale. That's why it's "lite".

Some of SQLite's good features, are achieved by rather brutal
means. For example, SQLite supports atomic transactions. That's
implemented by locking up all tables involved for the duration
of the entire transaction. This is fine for low-volume updates,
and a killer for high-volume systems.

SQLite doesn't have a serious query optimizer, or partial table
locking, or concurrent transaction handling, or replication.
In other words, use SQLite in your desktop app to manage its data
or configuration parameters. Use MySQL or Postgres for your
web site.

(Personally, I like MySQL, but I fear Oracle will mess it up.)

John Nagle
 
P

Philip Semanchuk

That's a bit much.

What SQLite leaves out is the heavy machinery needed for a active
production database being used by many processes. If you want to store
a modest amount of data for one process, perhaps with a rare conflict
when two programs hit the same table, SQLite is fine. But SQLite
doesn't scale. That's why it's "lite".

Some of SQLite's good features, are achieved by rather brutal
means. For example, SQLite supports atomic transactions. That's
implemented by locking up all tables involved for the duration
of the entire transaction. This is fine for low-volume updates,
and a killer for high-volume systems.

SQLite doesn't have a serious query optimizer, or partial table
locking, or concurrent transaction handling, or replication.
In other words, use SQLite in your desktop app to manage its data
or configuration parameters. Use MySQL or Postgres for your
web site.

Granted, but we're talking about whether or not SQLite complies with the SQL standard, not whether it's suitable for an e-commerce Web site or running the NYSE.

Cheers
Philip
 
L

Lawrence D'Oliveiro

It is stunning how often you can guess which of two packages will be the
source of a bug just by seeing which one hurts more to look at.

QOTW. :)
 
L

Lawrence D'Oliveiro

(Personally, I like MySQL, but I fear Oracle will mess it up.)

Doesn’t matter whether Oracle messes up the brand called “MySQL†or not.
With Free Software, it’s the software that matters, not the brand. And the
software continues to be developed by other sources.
 
J

John Nagle

Doesn’t matter whether Oracle messes up the brand called “MySQL†or not.
With Free Software, it’s the software that matters, not the brand. And the
software continues to be developed by other sources.

Have you tried the MySQL Windows client since Oracle took it over?
Lots more features, crashes with C library linkage errors.

John Nagle
 
L

Lawrence D'Oliveiro

Have you tried the MySQL Windows client since Oracle took it over?
Lots more features, crashes with C library linkage errors.

Precisely my point.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top