Boost logo

Boost :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2004-04-12 21:53:55

Hi all,

I just uploaded an enhanced version of RTL (the relational template

First addition is a simple indexed set-based table implementation (I am
using the old name, and our code is based on the reviewed version of the
library. Once Joaquin comes up with the post-review version, we'll modify
and upload our code). So far this implementation does not fully utilize all
the indexed set capabilities that RTL can benefit from, but we will continue
working on this subject.

To use the indexed set implementation BY DEFAULT one can define the
BOOST_RTL_USE_SET macro. Or the implementation type can be supplied
explicitly, as a 4th parameter to the table_info class template, like:


    mpl::vector<id, name>,
    mpl::vector<id> > > t1; // indexed set based table

    mpl::vector<id, name>,
    mpl::vector<mpl::vector<id> >,
    sorted_strategy> > t2; // sorted vector based table

The other additions are mainly based on our discussions with Pavel
Vozenilek, and include:

Fully redesigned/reimplemented join.

We decided to get rid of our generic join, and replaced it with a simpler,
range join, operator which can be used to join each outer tuple with a range
in the inner relation, something like this:

equal_join<mpl::vector<c1> >(t1, t2);
range_join(t1, t2, lower_bound<mpl::vector<c1> >(), end());

Lambda enabled for the selection operator.

Something like this can be specified:

selection(t, _1[c1()]==5 && _1[c2()] >=20);// SELECT * FROM t1 WHERE c1=5
AND c2>=20

A couple of things were renamed:

BOOST_RTL_COLUMN(name, type);
BOOST_RTL_DEFINE_COLUMN(type, name); // looks more like C++


rel::tuple became rel::row to avoid collisions with the Boost.Tuple library,
that showed up once we started using the indexed set :(
(now I am even more against the idea of putting stuff under the boost

The other enhancements to the library and to the documentation to follow.
These will include better assertions, serialization, performance estimates,

Here is the link:

As always, any feedback is most welcome.

Best regards,

Boost list run by bdawes at, gregod at, cpdaniel at, john at