ramblings on PHP, SQL, the web, politics, ultimate frisbee and what else is on in my life
back

OSS doesn't care about standards?

I did not attend the talk Monty gave at OpenMind 2007. I only have Zak's recollections to go by and among various interesting tidbits I found the following note by Zak: "DBMS implementations must change. FLOSS DBMS will be able to react most quickly to changes in what people want and what hardware offers. They can react quickly, because FLOSS DBMS focus on serving users first and worrying about standards, marketing and so on afterwards."

Now I actually agree on the point regarding standards .. well sort of. I guess that Zak simply had to leave out some context in his notes in order to not end up with a full length transcript. I assume the point that Monty was trying to make is that FLOSS has the advantage in adapting to change, because that change is happening in the open. If say Oracle invents a new piece of syntax, we will only hear about it when its already too late (actually Oracle might have some behind the scenes closed feedback processes with certain customers ..). When Oracle is ready to push their next release. When MySQL decides to extend the SQL standard we have about 1-2 years to tell them we do not think this makes sense or that we prefer a different syntax etc.

As a result MySQL can be much more liberal in extending the standard compared to Oracle which has to get things just right at the start. FLOSS is just more willing and able to understand when a standard is too limiting to follow. FLOSS will however follow standards where ever it does make sense, where proprietary vendors often decide to not follow standards because of marketing reasons (or arrogance). That being said MySQL in my humble opinion has not really been a role model here either, though they are improving things. In the past I think they have not followed the standard too often for no good reason. But I think they have realized their mistake. Also in the past the MySQL user base might not have had a strong enough SQL standard background to warn them about needless standards divergence and its drawbacks. This has changed these days. It also does not hurt to have people like Peter working for MySQL AB these days.

PS: It would be news to me if Oracle would support rolling back DDL. Maybe you can hack something using flachback. PostgreSQL does support rolling back DDL. Pretty amazing stuff really!

Comments



Re: OSS doesn't care about standards?

DDL rollback? Like this?
SQL> create table fred (a1 char(1), a2 char(1));
SQL> insert into fred values ('a', 'b');
1 row inserted
SQL> select * from fred;
A1 A2
a b
1 row selected
SQL> rollback;
SQL> select * from fred;
%SQL-F-RELNOTDEF, Table FRED is not defined in database or schema

Oracle/Rdb - every version since about 1.0 (now at 7.x)

Re: OSS doesn't care about standards?

Interesting. So why are the docs talking about implicit commits for all DDL then?

"A transaction begins with the first executable SQL statement. A transaction ends when it is committed or rolled back, either explicitly with a COMMIT or ROLLBACK statement or implicitly when a DDL statement is issued."

Re: OSS doesn't care about standards?

Ah ok, now I know what you are talking about. He is talking about a product Oracle bought from DEC that runs on OpenVMS. So the fact of the matter is that their flagship product does not support transactional DDL. Case closed. Thank you Hali for clearing this up to me.