STL compatible tables

Hi all, I am re-posting this message in hope that the lack of responce is somehow related to incorrect moment I chose for the original post (just hours after 1.31.0 was released). Please indicate if you have any (potential) interest in this library. Thanks, Arkadiy ============================================= Dear Boosters, A while ago we introduced RTL the Relational Template Library a lightweight facility to create relational tables and perform relational operations on them. The main concept RTL operates with is a relation, which has two types of models: tables and operators. Tables can store, in a type safe manner, fields of any types that satisfy requirements imposed by a typical STL container. Operators store references to their arguments, and produce data on the fly. Both provide iterators that can be used in STL algorithms. Any relation (operator or table) can serve as an argument to yet another operator, thus forming an arbitrary complicated expression tree. A relation has a sort order, which is calculated at compile time based on the sort order of its arguments. Range queries are available, based on this sort order. RTL allows to index any relation, which again can be either a table or a relational operator. In this sense our indexing models the ORDERED BY feature, provided by SQL. Therefore a relational expression can contain any number of indexes, used to re-sort tuples to better suite a particular query or queries. The March issue of C/C++ users journal will contain our article about RTL, where we described the library in more depth. This article reflects the state of the library as of about a year ago. NEW FEATURES ============ This time we are offering a significantly enhanced version of the library. The main addition is the TRANSACTION facility, that allows for synchronized updates to one or more tables. The additional very powerful (in our opinion) benefit is the possibility of incremental index update. When a table is changed, all the indexes that depend on this table get invalidated, and need to be updated. RTL takes care of this by calculating deltas on each index, and applying only necessary changes incrementally. We also modified the library interface to use MPL sequences instead of our proprietary type list implementation, and replaced all our meta-programming code to also make use of MPL. RTL allows the user to choose between available table implementations, as well as define new ones. The current in-stock implementation is based on std::vector, and therefore is most appropriate when the updates dont happen too often. We also experimented with indexed_set library to define a set-based implementation. Since the indexed_set is not a part of boost yet, we do not currently supply this implementation. However we do have it, and if anybody has immediate interest, please let us know well make it available (you will have to download the indexed_set library). We struggled to support VC6 up to the last moment, when some of our tests failed to build with Boost release candidate 2. The problems are with quantitative limitations we are getting ISO, and have to brake down our tests in smaller units. Since Microsoft no longer supports this compiler, we also decided to stop supporting it (we may re-consider if there are significant objections). The library has been tested with VC7.1 and GCC 3.3. Here is the link: http://groups.yahoo.com/group/boost/files/tables.zip As always, we are looking forward to any feedback. Arkadiy vertleyb@hotmail.com Dmitriy dmitriy_arapov@hotmail.com _________________________________________________________________ Plan your next US getaway to one of the super destinations here. http://special.msn.com/local/hotdestinations.armx

Arkadiy, I am very interested in RTL, and am right now in the process of writing my own in-memory database cache... So, I am replicating a lot of functionality from RTL. Unfortunately, I cannot access the Boost upload area right now, for some weird Yahoo Group membership problem. Would it be possible for you to send that ZIP to me? I wonder what the connection between (1) RTL, (2) the Boost iterator adaptors and (3) VTL (View Template Library) is? I would like to see these three libraries interact and extract the various aspects. /David
Hi all,
I am re-posting this message in hope that the lack of responce is somehow related to incorrect moment I chose for the original post (just hours after 1.31.0 was released).
Please indicate if you have any (potential) interest in this library.
Thanks,
Arkadiy

"David Bergman" <davidb@home.se> wrote in message news:200402112307.i1BN7P529206@heart-of-gold.osl.iu.edu...
Arkadiy,
Unfortunately, I cannot access the Boost upload area right now, for some weird Yahoo Group membership problem. Would it be possible for you to send that ZIP to me?
I sent it to your address. Please let me know if you have any problems getting it.
I wonder what the connection between (1) RTL, (2) the Boost iterator adaptors and (3) VTL (View Template Library) is? I would like to see these three libraries interact and extract the various aspects.
We are planning to make our iterators more conformant by using iterator facade. We were waiting 1.31.0 that contains it. Now that 1.31.0 is released, this is on our priority list. As far as I understand VTL, RTL is similar to it in that it defines relations (views) on top of other relations (views) thus allowing to form arbitrary complicated expressions, and produce data on the fly. The key difference, however is that, while VTL operates with any value_type, RTL always uses tuple (this is our tuple rather than boost::tuple -- the reasons can be discussed separately). This difference is rather fundamental -- it allows us to treat tuples and fields in a regular way. For example, join in VTL creates pairs of original value_types. In RTL, the value_type of join is a tuple containing all fields from the original tuple. RTL can also extract fields on one-by-one basis thus improving performance, create projections, etc. In other words, while VTL implements relational algebra on arbitrary STL containers, RTL works with relational tables. RTL also has transaction support, and in general, tends to model a real database functionality, but with C++ interface (based on meta-programming) rather than with SQL. Arkadiy

Arkadiy wrote:
"David Bergman" <davidb@home.se> wrote in message news:200402112307.i1BN7P529206@heart-of-gold.osl.iu.edu...
Arkadiy,
Unfortunately, I cannot access the Boost upload area right now, for some weird Yahoo Group membership problem. Would it be possible for you to send that ZIP to me?
I sent it to your address. Please let me know if you have any problems getting it.
Thanks - I got the ZIP. I will look at it right away. I am also using a database API called DTL, by the way, which has a similar philosophy (i.e., applying generic programming techniques to relational databases) but act on underlying persistent "real" relational databases. [snip]
RTL also has transaction support, and in general, tends to model a real database functionality, but with C++ interface (based on meta-programming) rather than with SQL.
Sounds, and looks, great (so far, I have still to dive into details)! Would you consider the current version stable enough for production use? I am implementing a crucial real-time system for a major financial institution... /David

"David Bergman" <davidb@home.se> wrote in message news:200402120138.i1C1cD530559@heart-of-gold.osl.iu.edu...
Would you consider the current version stable enough for production use? I am implementing a crucial real-time system for a major financial institution...
Sorry, definitely not! RTL is a research project, that passes its unit tests, but never gone through any sort of QA, and has virtually no users (except one of its authors -- Dmitriy used some parts of RTL in one of his small projects -- and itself -- transaction part of RTL makes a heavy use of the rest of the library). We are looking for users that would try out the library, and are ready to work on any bugs found, but once again, at this point RTL is not a production material... It is rather a proposal to Boost. Arkadiy

Arkadiy wrote:
"David Bergman" <davidb@home.se> wrote in message news:200402120138.i1C1cD530559@heart-of-gold.osl.iu.edu...
Would you consider the current version stable enough for production use? I am implementing a crucial real-time system for a major financial institution...
Sorry, definitely not!
I was not completely serious, although the part of my implementing a crucial RT system is unfortunately true. Sorry for not making that clear. What I do hope for is that RTL has production-ready ideas, which I can incorporate into the current in-memory database design I have. I might use certain notions from RTL, and will attribute that use to your library. Is that alright? /David

"David Bergman" <davidb@home.se> wrote in message news:200402120315.i1C3FYm00126@proradius03...
I might use certain notions from RTL, and will attribute that use to your library. Is that alright?
I guess so... referring to us would be very nice indeed. As far as the code is concerned, see the copyright notice. Arkadiy

Please indicate if you have any (potential) interest in this library.
I'm interested, and downloaded it, but will probably take a look after reading the March C/C++ users journal article you mentioned. I'm also interested in trying indexed_set, and in using the two together. Darren
A while ago we introduced RTL ・the Relational Template Library ・a lightweight facility to create relational tables and perform relational operations on them.

Arkadiy Vertleyb wrote:
I am re-posting this message in hope that the lack of responce is somehow related to incorrect moment I chose for the original post (just hours after 1.31.0 was released).
Please indicate if you have any (potential) interest in this library.
I'm interested! Regards Hartmut

"Arkadiy Vertleyb" <vertleyb@hotmail.com> wrote in message news:Law12-F77Lipgof6Gb300012896@hotmail.com...
I am re-posting this message in hope that the lack of responce is somehow related to incorrect moment I chose for the original post (just hours after 1.31.0 was released).
Please indicate if you have any (potential) interest in this library. [...]
I am definitely interested in the library. I "second" a review request, if that is what this is. Dave --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.581 / Virus Database: 368 - Release Date: 2/9/2004

Arkadiy Vertleyb ha escrito:
Hi all,
I am re-posting this message in hope that the lack of responce is somehow related to incorrect moment I chose for the original post (just hours after 1.31.0 was released).
Please indicate if you have any (potential) interest in this library.
Thanks,
Arkadiy
I'm interested. Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
participants (6)
-
Arkadiy Vertleyb
-
Darren Cook
-
David B. Held
-
David Bergman
-
hartmutkaiser@t-online.de
-
Joaquín Mª López Muñoz