Subject Re: [ib-support] Which SQL versions are supported?
Author Helen Borrie
At 11:01 PM 11-11-01 +0000, you wrote:

>Thanks - it seems SQL-99 is a "standard" only in the sense that "it's
>produced by a standards body", not in the sense that "all implementations
>conform to it". Perhaps an "exclusive standard", since _no-one_ seems to
>implement it fully?

Simply put, the idea of the standard is not to prescribe the features that should be supported but describe how to implement the features that a RDBMS *does* support. So, for example, if we want to implement CASE conditions in the Firebird implementation, we would look first at the standard and, if it were practicable, we would surface the syntax and behaviour defined by the standard.

To evaluate the compliance of a RDBMS, you consider all of the features that it surfaces to SQL and compare the syntax and behaviour with the standard. When you see statements like "Firebird is 90% compliant with entry-level SQL-92" that means 90% of possible syntaxes and their result comply with the standard and 10% don't.

Oracle's SQL is said to be fairly close to Firebird on these numbers; for MSSQL Server the numbers are quite low because M$oft (as always) tends to make its own rules.

As for the standard being "exclusive", I guess it is in a way. Unless one set out to build a brand-new RDBMS that was deliberately architected to be able to conform to the standard on every single feature, there will always be reasons (good and bad) why the architects of a RDBMS would choose their vendor-specific implementation over the standard.

Firebird's compliance level is so high, it's really easier to single out those items that are NOT in accordance with the standard. I've never seen it documented in one single document anywhere but you can search Ann's and Diane's postings in the archives over the years. They tend to surface from time to time as curiosities.


All for Open and Open for All
InterBase Developer Initiative ยท