drizzle
Profile
Search
 
Hosted by The Rackspace Cloud
Merging InnoDB Plugin

When Oracle releases a new version of the InnoDB plugin, it needs to be merged in. To make this simple, we have a tree that contains a copy of the Drizzle source with an unmodified copy of the innodb-plugin source. This tree will not build ... don't even try.

Contents

Merge Upstream Code with Upstream Branch

Get Upstream Code

Grab the latest tarball from Oracle. Then, make a local branch of innodb-plugin-upstream

bzr branch lp:~mordred/drizzle/innodb-plugin-upstream

Overwrite old with new

Remove the old storage/innobase dir and replace it with the one from the new plugin

 cd innodb-plugin-upstream/storage
 rm -rf innobase
 tar xvfz ~/innodb-plugin-x.x.x.tar.gz
 mv innodb-plugin-x.x.x innobase

Add any new files

Tell bzr to add any new files.

bzr add innobase

Commit and tag

You're done with this. Commit and make a tag.

bzr commit
bzr tag innodb-plugin-x.x.x

Merge Upstream with Trunk

Now comes the fun part. You need to keep the upstream tree pure, and then merge _from_ the innodb upstream tree with the new commit you just made. Because of how the GCA of the two trees for storage/innobase is arranged, it should be just like merging in anything else.

Make a merge branch

bzr branch innodb-plugin-upstream innodb-plugin-merge

Merge in new plugin version

cd innodb-plugin-merge
bzr merge lp:drizzle

Fix the merge

There will almost certainly be merge conflicts. Fix them. Things you will likely have to fix will center around:

- ulonglong to uint64_t - rename of thd to Session - new Information Schema tables

Commit, Push and Propose for Merge

Just like anything else, it's now a simple matter of commit, build, test, push and propose for commit. Congratulations.