Small. Fast. Reliable.
Choose any three.
*** 5,18 ****
  
  ----
  
- *: Extended POSIX regular expressions (should be easy, man 3 regcomp, or http://mirbsd.bsdadvocacy.org/man3/regcomp.htm for reference)
-    SELECT * FROM table WHERE name REGEX '[a-zA-Z]+_{0,3}';
- 
- *: The EXISTS keyword is not supported (IN is, but IN is only a special case of EXISTS). And what about 
- corelated subqueries ?
- 
- _:Both supported as of 3.1.
- 
  *: Multiple databases are not supported. For example, the following construct for creating a table in a 
  database db1 based on a table in database db2 won't work:
  
--- 5,10 ----
***************
*** 28,35 ****
  
  *: SQL92 Character sets, collations, coercibility.
  
- *: Inserting blob using X'AABBCCDD' syntax. (note: supported in Sqlite3)
- 
  *: Stored Procedures
  
  *: Rollup and Cube - _Who can tell me what this means?_
--- 20,25 ----
***************
*** 147,167 ****
  
  *: Multi-column IN clause (ie. SELECT * FROM tab WHERE (key1, key2) IN (SELECT...)
  
- *: CURRENT-Functions like CURRENT_DATE, CURRENT_TIME are missing _Try "SELECT date('now');" or 
- "SELECT datetime('now','localtime');"_
- 
- _:Added as of 3.1
- 
  *: INSERTing fewer values than columns does not fill the missing columns with the default values; if 
  fewer values than columns in the table are supplied, all columns filled have to be named before the 
  keyword values
  
  *: INSERTing one record with all VALUES to DEFAULT: INSERT INTO example () VALUES (); 
  
- *: ESCAPE clause for LIKE
- 
- _:Added as of 3.1
- 
  *: DISTINCT ON (expr,...) - this is from Postgres, where expr,... must be the leftmost expressions from 
  the ORDER BY clause
  
--- 137,148 ----
***************
*** 203,208 ****
--- 184,241 ----
  db out of the house, or is there something I didn't find? Or a simple MD5 function to obscure data 
  using a one way hash. See the MySQL function MD5 or Password for examples.
  
+ *:More than one primary key per table, I can specify this with MySQL for example and SQLite returns me 
+ an error: more than one primary key specified...
+ 
+ *:UPDATE t1, t2 SET t1.f1 = value WHERE t1.f2 = t2.fa
+ 
+ *:SHOW TABLES and DESCRIBE [tablename] would be nice - not sure if they're standard, but they are a 
+ rather nice feature of MySQL...
+ -------- No, it's not standard. The standard says it should be a special database called 
+ INFORMATION_SCHEMA, wich contains info about all databases, tables, columns, index, views, stored 
+ procedures, etc.
+ 
+ *:SELECT ... FOR UPDATE OF ... is not supported.  This is understandable considering the mechanics of 
+ SQLite in that row locking is redundant as the entire database is locked when updating any bit of it.  
+ However, it would be good if a future version of SQLite supports it for SQL interchageability reasons if 
+ nothing else.  The only functionality required is to ensure a "RESERVED" lock is placed on the database 
+ if not already there.
+ 
+ *:DELETE from table ORDER BY column LIMIT x,y is not supported. I worked around
+ it by using a second query and deleting, eg: SELECT timestamp from table LIMIT x,1; DELETE from table 
+ where timestamp < .....
+ 
+ *:The corollary to above, UPDATE table SET x WHERE y ORDER BY z is not supported. Haven't tried the 
+ LIMIT addition to that form.
+ 
+ *:Named parts of natural joins. For example: SELECT a.c1 FROM T1 a NATURAL JOIN T1 b. Because 
+ sqlite reduces the number of columns kept, the name is lost.
+ 
+ *:The ALL and ANY quantifiers for comparisons with subquery results aren't supported.
+ ====
+ FEATURES ADDED IN RECENT VERSIONS
+ ====
+ *: Extended POSIX regular expressions (should be easy, man 3 regcomp, or http://mirbsd.bsdadvocacy.org/man3/regcomp.htm for reference)
+    SELECT * FROM table WHERE name REGEX '[a-zA-Z]+_{0,3}';
+ 
+ The infrastructure for this syntax now exists, but you have to create a user-defined regex matching function.
+ 
+ *: The EXISTS keyword is not supported (IN is, but IN is only a special case of EXISTS). And what about 
+ corelated subqueries ?
+ 
+ _:Both supported as of 3.1.
+ 
+ *: Inserting blob using X'AABBCCDD' syntax. (note: supported in Sqlite3)
+ 
+ *: CURRENT-Functions like CURRENT_DATE, CURRENT_TIME are missing _Try "SELECT date('now');" or 
+ "SELECT datetime('now','localtime');"_
+ 
+ _:Added as of 3.1
+ 
+ *: ESCAPE clause for LIKE
+ 
+ _:Added as of 3.1
+ 
  *:AUTO_INCREMENT field type. SQLite supports auto_incrementing fields but only if that field is set as 
  "INTEGER PRIMARY KEY".
  
***************
*** 246,279 ****
  
  _::Now supported as of 3.1
  
- *:More than one primary key per table, I can specify this with MySQL for example and SQLite returns me 
- an error: more than one primary key specified...
- 
- *:UPDATE t1, t2 SET t1.f1 = value WHERE t1.f2 = t2.fa
- 
- *:SHOW TABLES and DESCRIBE [tablename] would be nice - not sure if they're standard, but they are a 
- rather nice feature of MySQL...
- -------- No, it's not standard. The standard says it should be a special database called 
- INFORMATION_SCHEMA, wich contains info about all databases, tables, columns, index, views, stored 
- procedures, etc.
- 
- *:SELECT ... FOR UPDATE OF ... is not supported.  This is understandable considering the mechanics of 
- SQLite in that row locking is redundant as the entire database is locked when updating any bit of it.  
- However, it would be good if a future version of SQLite supports it for SQL interchageability reasons if 
- nothing else.  The only functionality required is to ensure a "RESERVED" lock is placed on the database 
- if not already there.
- 
- *:DELETE from table ORDER BY column LIMIT x,y is not supported. I worked around
- it by using a second query and deleting, eg: SELECT timestamp from table LIMIT x,1; DELETE from table 
- where timestamp < .....
- 
- *:The corollary to above, UPDATE table SET x WHERE y ORDER BY z is not supported. Haven't tried the 
- LIMIT addition to that form.
- 
- *:Named parts of natural joins. For example: SELECT a.c1 FROM T1 a NATURAL JOIN T1 b. Because 
- sqlite reduces the number of columns kept, the name is lost.
  
- *:The ALL and ANY keywords for testing subquery results aren't supported.
  ===========
  REMARK
  ===========
--- 279,285 ----