Version 29 of TclRAL

Updated 2008-02-01 02:26:18 by GAM
 What: TclRAL
 Where: http://tclral.sourceforge.net/
        http://sf.net/projects/tclral/
 Description: Tcl Relational Algebra Library is a C based
        extension that introduces tuple and relation data types
        and a set of commands that operate on them.
        Currently at version 0.8.7.
 Updated: 01/2008
 Contact: See web site

See also Transitive Closure.

See also Relations as Stacks.

See also Relations as Object Oriented Stacks.

See also crosstab a la Relations.

The Third Manifesto website [L1 ] lists TclRAL as:

an implementation of the relational algebra concepts in TTM as an extension of the Tcl language. It does not attempt to mimic the syntax of Tutorial D, but does implement a complete set of relational operations in a manner that is adapted to the Tcl programming environment.

Since many of the systems listed are described as not quite complete, TclRAL seems to do Very Good in an area of heavy duty computer science.


GAM 19 Nov 2007 In the spirit of full disclosure, I wrote the synopsis that is on the Third Manifesto web site. Mr. Darwen was kind enough to offer to put a link to the project on his web site after one of his associates brought it to his attention. He asked me to provide a synopsis which is what is found on the web site.


AM - 1 Oct 2006

I recently released Version 0.8 of TclRAL and thought that now was an appropriate time to make this page a bit more active for anyone that may be interested in the extension and wish to ask questions or post examples.

Version 0.8 is a complete rewrite of the extension to improve the code base and lay in a more maintainable structure. The major new feature of 0.8 is referential integrity checking. My current vision for the future is (roughly):

  • Additional code rework and testing.
  • Adding a few new features.
  • Honing the command interfaces leading up to a 0.9 release.
  • At Version 0.9, freezing the command interface for longer term backward compatibility support.
  • Leading to a Version 1.0 release.

I won't be so bold as to state a time frame for all of this, but as I use the extension myself I am as anxious to see it improve as anyone.


AM - 6 Feb 2007

Released Version 0.8.1. This version is script compatible with 0.8 and includes some new commands and command options. Most notable is the ability to trace relvars in much the same manner that one can trace ordinary Tcl variables.


GAM - 17 Jan 2008

Released Version 0.8.5. This is a small bug fix release to deal with a latent bug that was exposed by a small change in the semantics of Tcl 8.5. Small though the bug was, it did prevent serializing relvars when used with Tcl 8.5.

RZ I had problems to compile tclral with native c-compilers on sun and sgi-irix. It is because of the use of unnamed structure/unions. Could you change this? With gcc there is no such problem.

Have you tried compiling 0.8.5 with the Sun compiler? I did remove the anonymous union that was being used. Unfortunately, I don't have access to native Sun and SGI compilers. Please let me know or post a bug report if there is still a problem.

LV I have tried this for you. The problem continues to exist because of this code:

typedef struct Ral_AttributeTypeScanFlags {
    Ral_AttrDataType attrType ;
    int nameFlags ;
    int nameLength ;    /* Since attribute names appear several places,
                         * we save the scan length result and reuse it*/
    union {
        int simpleFlags ;
        struct {
            int count ;
            struct Ral_AttributeTypeScanFlags *flags ;
        } compoundFlags ;
    } ;
} Ral_AttributeTypeScanFlags ;

typedef struct Ral_AttributeValueScanFlags {
    Ral_AttrDataType attrType ;
    union {
        int simpleFlags ;
        struct {
            int count ;
            struct Ral_AttributeValueScanFlags *flags ;
        } compoundFlags ;
    } ;
} Ral_AttributeValueScanFlags ;

The union in these two structures have no name. The current Sun compiler requires that any structure, union, or, I think, typedef must be named in some fashion.

GAM 19 Jan 2008

Oh bother! I corrected one of these and clearly missed the others. I'll put out a new release very soon. Thanks to whoever submitted the bug report with patch. Much appreciated.


GAM 21 Jan 2008

I released Version 0.8.6 and hope that I have managed to remove all the constructs that bothered non-gcc compilers.


GAM 31 Jan 2008

I release Version 0.8.7 to fix a problem with serialization. In Version 0.8.5, I accidentally included some modifications to the serialization code that I was working on for a future 0.9 release. Needless to say this broke things. Please upgrade to 0.8.7 if you are currently using 0.8.5 or 0.8.6. Sorry for the trouble.

See Andrew Mangogna.

Relation Transitive Closure