Rel version 1.0.0 Beta now available

This forum contains announcements about Rel.
Post Reply
Dave
Site Admin
Posts: 367
Joined: Sun Nov 27, 2005 7:19 pm

Rel version 1.0.0 Beta now available

Post by Dave » Fri Jun 04, 2010 8:16 pm

This version of Rel represents an important milestone. It has been updated from 'Alpha' to 'Beta' status and the version number set to 1.0.0. Whilst not yet at a point where it should be used to host the company payroll, the new version number and status reflect that fact that Rel is increasingly stable and usable as a "real" DBMS and not just a teaching tool.

This release includes two bug fixes:

1) Relvar definitions with both a defined heading and an INIT section did not correctly map the INIT expression to the heading if the order of attributes differed. E.g., in the following, company_name and department_name wound up reversed:

Code: Select all

  VAR Department BASE RELATION {company_name CHAR, department_name CHAR} 
	INIT (RELATION {
		TUPLE {department_name "Research and Development", 
	           company_name "General Electronics"},
		TUPLE {department_name "Management", 
	           company_name "Ads are Us"},
		TUPLE {department_name "Management", 
	           company_name "General Electronics"}})
	KEY {department_name, company_name};
2) In DBrowser, Enhanced mode now correctly displays user-defined TYPE values with relation-valued components. Previously, these caused unpredictable display quirks.

This release also includes one minor enhancement:

1) Given the following:

Code: Select all

	    TYPE Point POSSREP { x INTEGER , y INTEGER };
	    TYPE Line UNION;
	    TYPE Line2p IS { Line POSSREP { p1 Point , p2 Point } };
	    TYPE LineInfinite IS { 
	    	Line POSSREP { points RELATION { p Point } } };
An expression like the following...

Code: Select all

	RELATION {
		TUPLE {x 1, y Line2p(Point(2, 2), Point(3,3))},
		TUPLE {x 2, y LineInfinite(relation {
			TUPLE {p Point(3,4)}, TUPLE {p Point(4,2)}, 
			TUPLE {p Point(6,7)}})}
	}
...generates a type "not compatible" error because Line2p is neither a subtype or supertype of LineInfinite. Due to user confusion over how to correct this, the error message has been extended to recommend that the user specify an explicit relation heading. E.g., the following will not generate an error because Line2p and LineInfinite are both subtypes of Line:

Code: Select all

	RELATION {x INTEGER, y Line} {
		TUPLE {x 1, y Line2p(Point(2, 2), Point(3,3))},
		TUPLE {x 2, y LineInfinite(relation {
			TUPLE {p Point(3,4)}, TUPLE {p Point(4,2)}, 
			TUPLE {p Point(6,7)}})}
	}
For more information, or to download Rel, see http://dbappbuilder.sourceforge.net/Rel.html

Post Reply