
Hi all, I just uploaded an enhanced version of RTL (the relational template library). 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: #define BOOST_RTL_USE_SET table<table_info< mpl::vector<id, name>, mpl::vector<id> > > t1; // indexed set based table table<table_info< mpl::vector<id, name>, mpl::vector<id>, 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); became BOOST_RTL_DEFINE_COLUMN(type, name); // looks more like C++ and 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 namespace) The other enhancements to the library and to the documentation to follow. These will include better assertions, serialization, performance estimates, etc. Here is the link: http://groups.yahoo.com/group/boost/files/tables.zip As always, any feedback is most welcome. Best regards, Arkadiy
participants (1)
-
Arkadiy Vertleyb