Optimizing Queries Using Inverse Functions ====================================================================== Applications built on top of relational databases often need to perform conversions, change of format and other transformations. One goal is to present the data in a form that is more appropriate to what the user expects, which might involve changing time representation, units, currency etc. Another one is to integrate data from tables with potentially conflicting keys. Many of these transformations are performed by external function calls which, on most systems, are opaque to optimization. The performance loss can become unacceptable, especially in data integration scenarios, such as XML/XQuery services using relational wrappers. Unless it is provided with functions that would inverse the transformations, along with some semantic properties, the mediator would have to process the entire content of the database. I will start by presenting a few concrete examples showing the problem and an intuitive approach for those cases, followed by a brainstorming session that could help identify challenges and possible solutions.