SQL Validator 22
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."
Isn't this a sales pitch? (Score:1)
Re:Isn't this a sales pitch? (Score:4, Informative)
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.
Great tool, but not solving the problem... (Score:1)
pretty much conforms to most SQL standards, so now we only need to stop developers from writing bad, albeit conforming, SQL.
Re:Great tool, but not solving the problem... (Score:1)
SELECT COUNT * FROM ( ByzantineSubqueryString );
or
SELECT * FROM ViewICreatedToEncapsulateAFewThings;
As with many tools, I'm arguing that * has its place.
SQL validator (Score:3, Informative)
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.
Re:SQL validator (Score:1)
Re:SQL validator (Score:2)
Re:SQL validator (Score:2, Insightful)
Reminds me of HTML/CSS validators and standards (Score:3, Insightful)
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
Re:Reminds me of HTML/CSS validators and standards (Score:1)
And does your technical argument run afoul of the business model? Being able to port anything to Insert_DB_Here might or might not provide any ROI.
Re:Reminds me of HTML/CSS validators and standards (Score:1)
The reason this isn't understood in the industry today is because of its age. I am sure, in 20 years standards will be something natural for software engineers. But, we won't see any new Microsoft or Oracle companies (with 50% profit margins) either, since competition among software vendors will be tougher.
Re:Reminds me of HTML/CSS validators and standards (Score:3, Insightful)
HTML has very few common clients. So, only the smaller clients care about the standards, the big fish, just write their own, and HTML authors are forced to follow.
SQL is different. There are quite a few databases out there. It even got to the point where they created ODBC. No one or two databases dominate the market.
Thus, the push is for an HTML standard is wanted more by people than companies. The push for a(n) SQL standard is more by companies than people. When people want a standard, it's free. Not so with companies.
HTML is a presentation language, and usally comes *after* the need is already there. So, people always want to get the standards up to date, and are easier to write, since it was already implemented.
SQL 88 seems to be the most common. How many even care to go further than that, because the basics are already there? While later standards are nice, they are not nearly in need of updates as much as HTML is.
Thus, HTML standards are public before they're even written. SQL is written from the standards. This also means, that companies want to pay for the SQL standard, whereas companies would rather get eveyone to support their HTML, forcing them to distribute it for free.
offtopic... (Score:1)
heres one... (Score:1)
WHERE article='this one'
AND has_been_modded_up=true
^ this should obviously return 0.
Re:heres one... (Score:1)
Products' SQL support is pathetic (Score:3, Insightful)
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.
^honors^requires (Score:1)
Re:^honors^requires (Score:1)
SQL Pet Peaves (Score:1)
It would also be nice if there was a way to have it replace if already there, otherwise insert.