The new MySQL 8.0.0 milestone release that was recently announced brings something that has been a looooong time coming: the removal of the FRM file. I was the one who implemented this in Drizzle way back in 2009 (July 28th … Continue reading →
Over at the work blog, I wrote about what the true maximum number of columns in MySQL is as well as the minimum maximum. Basically, the FRM file is ass and places bizarre arbitrary limits on things due to what … Continue reading →
Drizzle originally inherited the FRM file from MySQL (which inherited it from UNIREG). The FRM file stores metadata about a table; what columns it has, what type those columns are, what indexes, any default values, comments etc are all stored … Continue reading →
It’s fortunate that I’m watching Veronica Mars again with a mate; a more-than-you-think amount of detective work is required to understand the relationship (and format) of the TABLE_SHARE, the FRM file and HA_CREATE_INFO. Oh, also you’ll need drizzled/base.h and drizzled/structs.h … Continue reading →
“Ban FRM Now!†branch in Launchpad Now we’re reading part of the table information out of the proto file on disk instead of the frm. Not everything (yet) but a bit. Good first steps. Had to fix bugs along the … Continue reading →
So… in removing the FRM file in Drizzle, I found a bit of a nugget on how drop table works (currently in the MySQL server and now “did” in Drizzle). If you DROP TABLE t1; this is what happens open … Continue reading →
Since before MySQL was MySQL, there has been the .FRM file. Of course, what it really wanted to be was “.form” -Â a file that stored how to display a form on your (green) CRT. Jan blogged earlier in the … Continue reading →
So, about ten days ago the MySQL Server Team released MySQL 8.0.0 Milestone to the world. One of the most unfortunate things about MySQL development is that it’s done behind closed doors, with the only hints of what’s to come … Continue reading →
So, I’ve been looking around for a while (and a few times now) for any good resources that cover a bunch of MySQL architecture and technical details aimed towards the technically proficient but not MySQL literate audience. I haven’t really … Continue reading →
You can watch the video of my linux.conf.au 2014 talk here: http://mirror.linux.org.au/linux.conf.au/2014/Wednesday/28-Past_Present_and_future_of_MySQL_and_variants_-_Stewart_Smith.mp4 But let’s talk about things in blog form rather than video form :) Back in 1979, there was UNIREG. A text UI to records (rows) in a database … Continue reading →
I had reason to look into the extended secondary index code in MariaDB and MySQL recently, and there was one bit that I really didn’t like. MariaDB: share->set_use_ext_keys_flag(legacy_db_type == DB_TYPE_INNODB); MySQL: use_extended_sk= (legacy_db_type == DB_TYPE_INNODB); In case you were wondering … Continue reading →
I wonder how much longer the ARCHIVE storage engine is going to ship with MySQL…. I think I’m the last person to actually fix a bug in it, and that was, well, a good number of years ago now. It … Continue reading →
This is one close to my heart. I’ve recently written on other storage engines: Where are they now: MySQL Storage Engines, The MERGE storage engine: not dead, just resting…. or forgotten and The MEMORY storage engine. Today, it’s the turn of MySQL Cluster. … Continue reading →
I got rid of unireg.cc way back in 2009 as I rewrote all the FRM related code inside Drizzle to instead use a nice protobuf based structure. If you’re wondering what was there, I just quote this part of pack_screens() … Continue reading →
Taking the inspiration of Valeriy Kravchuk great series of blog posts “Fun with Bugs” (and not http://funwithbugs.com/ which is about both caring for and eating bugs), and since I recently went and run Coverity against Drizzle, I thought I’d have a small series of … Continue reading →
When writing my Dropping ACID: Eating Data in a Web 2.0 Cloud World talk for LCA2011 I came to the realisation that I had forgotten a lot of the things I had worked on in MySQL and MySQL Cluster. So, … Continue reading →
Over at the Drizzle blog, the recent 2010-06-07 tarball was announced. This tarball release has my fixes for the ENUM type, so that it now works as it should. I was quite amazed that such a small block of code … Continue reading →
Quick Bio Stewart is a Principal Engineer at AWS working on Amazon Linux. Previously, Stewart worked for IBM in the Linux Technology Center on OPAL, the OpenPOWER Abstraction Layer – open source firmware for POWER systems. Prior to IBM, Stewart … Continue reading →
4 min 20 sec So next time somebody complains about NDB taking a long time in CREATE TABLE, you’re welcome to point them to this :) A single CREATE TABLE statement It had ONE column It was an ENUM column. … Continue reading →
The DDL code paths for Drizzle are increasingly different from MySQL. For example, the embedded_innodb StorageEngine CREATE TABLE code path is completely different than what it would have to be for MySQL. This is because of a number of reasons, … Continue reading →