The World's Most Popular Open Source Database
  MySQL
Table of Contents

5 Design Decisions

If we had to deal with only non-temporal commands to MySQL, then the original MySQL based on the modified BerkeleyDB would have worked. However, we need to support a some special commands which will bring out the essential advantages of Transaction-Time support in a database.

Secondly, we could have either passed an extra flag in between the files from the parser to the handler and finally to the ha_berkeley class. This would have caused us to modify these classes to accommodate one extra bit of information and probably some unnecessary information would have been stored in dependant structures/classes. The other alternative, which we implemented, was to use a common header file between all three of these to store the fact whether the table being created is temporal or non-temporal. The lifetime of this variable goes from the parser to the creation of the TABLE structure and ends after the underlying creation of the table in BerkeleyDB. The advantages of this method are minimum modification of code and ease of implementation.

Whenever a Transaction-Time table is being created using the specified syntax, the underlying BerkeleyDB in instructed to create a table (BerkeleyDB calls this a 'database') with the added functionality. These functions can be used by the ha_berkeley class to execute various SQL commands.

Developed by the TAU Project, Computer Science Department, University of Arizona