
The RTL was discussed on this list at some time in the past. The early version of RTL is described in the March 2004 issue of CUJ. The main difference from currently discussed RML is that we decided against using SQL - like interface, and use the relational algebra-based interface instead.
This choice is caused by our belief that the optimizer -- the module converting SQL query into an optimized relational expression -- is one of the most sophisticated parts of modern database engines. Also, writing a good optimizer in a system like RTL (or RML) would have to be done in large part at compile time, by the means of template meta-programming. This task doesn't seems to be feasible, at least currently.
OTOH, writing a primitive optimizer, would, in our opinion do more harm than good.
By "harm" do you mean have worse performance? If you're going to make claims about the performance of an approach, then you need to have benchmarks. You can't argue about air. For example the RML benchmarks http://visula.org/relational/benchmarks.html show RML to be matching or outperforming std::map. Would you care to benchmark your RTL versus RML or the STL before making such claims? I think that would settle which approach did more "harm". Calum