Almost all of the patch consists of the PBMS daemon source code which is added to the "storage/pbms" folder in the MySQL source code tree. Other than that here is a list of the actual MySQL files touched and what the patch is for:
- sql/CMakeLists.txt:
Added PBMS source directories to the header file search list.
Lines added: 1. - sql/handler.cc:
Added PBMS server side API calls to check for longblob columns being modified or tables containing longblob columns being dropped or renamed. This is the guts of the PBMS patch.
Lines added: 170. - libmysql/CMakeLists.txt:
Added PBMS API functions to the client API functions list and the PBMS source directories to the header file search list. Also adds the PBMS lib source code to the MySQL client lib build.
Lines added: 61. - include/mysql.h:
Added a line to include the PBMS LIB header file "pbmslib.h".
Lines added: 3. - include/mysql.h.pp:
Added lines to reflect the changes made to the MySQL client API when adding the PBMS API to it:
Lines added: 42. - include/pbmslib.h:
Added a new file that redirects to the actual pbmslib.h which is in "storage/pbms/lib". This was added in order to simplify the build process. When installed it is the actual pbmslib.h from "storage/pbms/lib" that is installed. - client/CMakeLists.txt:
Added PBMS source directories to the header file search list.
Lines added: 1. - client/mysqldump.c:
Added code to recognize PBMS BLOB URLs and fetch the BLOB data and write it out to a separate file.
Lines added: 176. - client/mysql.cc:
Added code to be able to upload the BLOB dump file from mysqldump to the PBMS daemon.
Lines added: 92