! Define DATABASE_* in common/config.hxx if ODB_DATABASE_* is defined Can then use one set of macros in both headers and the driver in tests. Currently have to use ODB_DATABASE_* in headers because with VC++ the DATABASE_* ones are defined by the project for the C++ compiler only. Need to be careful with multi-database case (DATABASE_COMMON). ! GCC 4.9 (at least) allows multiple equal signs in plugin options Can get rid of that ugly backspace escaping. - Inconsistent id() vs direct access use in generated code The same for version(). ? Move change_callback out of image We incur a bit of overhead in case of a batch (e.g., ~80KB for a batch size of 5000 on 64-bit) since we don't use this callback in all but the first element. The idea is to move it to the object statements, however, there are several places that need to access it that only got the image (e.g., init(image)). Storing a pointer in the image doesn't make sense since the struct itself is two pointers. So it is not clear this is worth the effort. See also a separate paper with some more thoughts on this.