Brian "Krow" Aker (krow) wrote,
Brian "Krow" Aker

April Fool's, well sort of, Postgres for MySQL

Last August I was sitting in a talk at OSCON listening to a PostgreSQL talk about their innards and got an idea.

I would put together an April Fool's joke about the existence of a MySQL Postgres engine. I put a note in iCal to begin working on it on March 1st.

March 1st came around and I got the reminder. I spoke at the time with Patrick Galbraith about doing a quick federated MySQL -- Postgres connector. It would be incredibly easy to do. Patrick though was more interested in doing an ODBC style generic engine and handle many engines at once (which he is getting close to releasing).

Not wanting to barge in on Patrick's work, I decided to just mock up a basic skeleton of an engine. All of about 10 minutes work for me.

Then came last Thursday night where I had T-10 hours before hosting a party and getting on a plane for Japan.

I mocked up the skeleton, but it didn't look right. Too few files, it would fool no one.

Plus I had taxes to do, and I wanted to avoid thinking about that.

So I tore out the postgres code and pulled some of it into a tree. Of course I needed to make it compile, and that turned out to be a nightmare. So I stopped what I was doing, and took another approach to compiling it, that too was a failure.

On the third time I got it compiled down into an embedded library. Hell, I got its main threads started up.

Weird aye?

So what you can download is stillborn.

It doesn't do anything, but... it would be possible to make it work though. PG is organized in a manner that I don't think it would take a lot of effort to do this. PG is stable database, its been around for a while, and making it work is just hooking up the parts (which is why its easy to integrate new engines into MySQL in general... the interface makes it simple).

Making it have any performance is a different topic though and that might take months. If it is possible at all.

And from the Postgres community? I got this from Josh Berkus:

Subject: You'll be happy to know ...
Date: April 3, 2007 1:27:24 AM JST

... that you got about 15 people in the PostgreSQL community with your April
Fool's joke. We wanted to try it out.

Good one.

Which I thought was flattering.

And from the MySQL community? I've gotten email from users who would like to mix MySQL engines directly with the Postgres Engine. That doesn't surprise me too much, we see the same in production farms with Innodb running side by side with MyISAM or Archive. There is a market for OLTP storage engines inside of MySQL, this is why we see Oracle, Solid, PBXT and others implementing them.

So what is the future? I've gotten some email from a couple of users who wanted to know how to make the next step happen. I do not know. Maybe someone will hack on it to make it fully work. I might do it, but that is doubtful (I have enough projects to keep me busy as is...).

The source tree is published for anyone to hack on. I'll take patches for it. It now sits in process with MySQL, so to make it work someone will need to start hooking up the plumbing.

Next April 1? Maybe we will see a 1.0 release :)

Finally? Thanks should go to Rob Malda for posting it on Slashdot. There is nothing more hilarious then a MySQL vs PostgreSQL debate in the comments of any MySQL related story... that is short of having your eye poked out... so it was fun to have fun with those who comment on such stories.
  • Post a new comment


    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded