SQL Validator
clever writes: "Since open standards are good for pretty much everyone except closed source, multi billion, software companies that try to lock their customers into their proprietary technology I thought that the Slashdot readers might welcome a chance to help shape the next SQL-standard. The Mimer SQL Validator lets you validate any given SQL-statement against SQL-92, SQL-99 and, get this, SQL-200x (Draft spec, 2002-01-11). It stores your statement, if you'll allow it, and it will be used by the ISO SQL-200x standards committee to make statistics on commonly used features and errors to be used in the standards work. So, don't ask what SQL can do for you. Ask what you can do for SQL. In the process you will find out the proprietary features that you are already using."
I remember at the last company I worked for, we had one battered copy of the SQL92 standard (which is basically just an annotated BNF grammar) that we shared among the whole office.
No, this is exactly the point. The sql validator validate the SQL and tells you what is and what isn't standard SQL. If Mimer specific SQL is used that's printed. It's the examples that's not standard SQL that is interesting as far as I can see.
For example, the following example gives to warnings saying that Mimer SQL vendor extension is used and that Constraint management is used:
CREATE TABLE t (c BIGINT CONSTRAINT c_gt_0 CHECK(c > 0))
If you change it to the following it will say that Constraint management is used and that a vendor reserved word is used (varchar2 is Oracle specifik I think).
CREATE TABLE t (c VARCHAR2 CONSTRAINT c_gt_0 CHECK(c > 0))
That the result says the statement is outside Core SQL 99 doesn't mean it's not standard SQL. The Core SQL 99 is just a part of SQL 99.
Mimer SQL is just a relational database.
This reminds me of the HTML/CSS validators that the W3 (w3.org) set forth since HTML and CSS were concieved. However, since they set for the standards, it seems everyone should follow them. Obviously, this is not true. IE support for CSS2 is almost non-existant, with Mozilla coming in with the most support.
:)) and some companies who honestly try to support all of the standards they can (Mozilla).
I think that this will become the same way. There will be many databases out there that support some of the standards, but not all of them. Some databases will be far ahead of others in standards support.
I am what you would call a standard zealot for just about any standard. Standards help any programmer (or any person for that matter) when doing anything. Standards (or at least what they _should_ do) set out a group of rules that everyone should follow in order to make portability extremely easy (again, this is from a programmers POV). However, you have different companies who want to create their own standards (and then not even follow them, MS comes to mind
I hope that DB's start to support the most current standard and fast. That way, writing abstracted DB code in any language will become *extremely* easy.
-Vic
I'm not going to get into why support is so bad (my glib answer: databases suck). But I don't know of any other major standard that is so routinely disregarded. It's been a fond hope of mine that PostgreSQL would commit to standards support and (slowly) pull the rest of the industry along. But I see no indication of that.
I program SQL with two books at my side: "SQL Instant Reference" (Gruber) and "A Guide to the SQL Standard" (Date and Darwen). To me, they are lone voices of sanity! (It's hard to find a book that covers SQL the standard, not some implementation.) When I can't write a portable SQL statement because of product infidelities, I add a workaround with a big comment full bile and invectives. It's good for the soul. :-)
I hope this project helps build some momentum for SQL standards support. I'm not doing an SQL projects right now, but when I do, I'll definitely support this effort.
The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.