SQLite Forum

SQL compliance on Wikipedia
That's a lot of work you put in there.  You went quite a way to what we asked so I'm going to put some work into replying.  I'm going to take the first link.

```Subclause 6.1,"<data type>"```

``` <character string type> ::=
 CHARACTER [ <left paren> <character length> <right paren> ]
 | CHAR [ <left paren> <character length> <right paren> ]
 | CHARACTER VARYING <left paren> <character length> <right paren>
 | CHAR VARYING <left paren> <character length> <right paren>
 | VARCHAR <left paren> <character length> <right paren>
 | <character large object type>```

This gives the syntaxes required for compliance to <code>E021, Character string types</code>.  We could say whether SQLite complies with these.  (Not full compliance.  Possible partial compliance.) However it does not give enough details to judge even that.

To judge even partial compliance we'd have to know interpretation of each of these syntaxes.  For instance does <code>VARCHAR</code> have to do anything different to <code>CHAR</code> ?  I happen to know it does, but the extracts you've found don't say either way.  They state the syntaxes supported, but not what the implementation should do for them.  The meanings of each of these syntaxes are in the standards document we mentioned previously, but they are not mentioned in the extracts you've found in the MS SQL Server documentation.

So we're down to "no".  We couldn't say even "partial" to any of these, because even if SQLite has the right syntax, we don't know whether it does the right thing on seeing that syntax, and doing the right thing is part of the standard you're asking us about.

To check this I looked at another random entry and picked <code>F812, Basic flagging</code>.  I would have to say "no".  There may be a way to use existing SQLite facilities to do this (compilation options ?) but it's not documented that way.

Another one: <code>F051-07, LOCALTIME</code>.  This mentions many 'words'.  I'm guessing SQLite complies with at least one of them.  But that's just one.  SQLite doesn't have <code>CURRENT_CATALOG</code> because it doesn't have catalogues.  Is that allowed by the standard or not ?  I can't tell from the information on that page because it lists only syntax.  Even so, I feel like it would be cheating to say 'partial compliance' for this, since SQLite does not even partially comply with nine of the ten 'words'.  But I could feel justified because the section is called <code>LOCALTIME</code> and that's the one I think it partially complies with.

So we could now say "no' to some of these.  I think it would be very one-sided to supply a column which said only "no" or "unknown".  But others here might feel differently.