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 |
Grab the latest tarball from Oracle. Then, make a local branch of innodb-plugin-upstream
bzr branch lp:~mordred/drizzle/innodb-plugin-upstream
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
Tell bzr to add any new files.
bzr add innobase
You're done with this. Commit and make a tag.
bzr commit bzr tag innodb-plugin-x.x.x
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.
bzr branch innodb-plugin-upstream innodb-plugin-merge
cd innodb-plugin-merge bzr merge lp:drizzle
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
Just like anything else, it's now a simple matter of commit, build, test, push and propose for commit. Congratulations.