[
Table Of Contents
| Keyword Index
]
relformat(n) 0.8.5 ral "Relation formatting"
relformat - Text formatting for relations
TABLE OF CONTENTS
SYNOPSIS
DESCRIPTION
DEPENDENCIES
COMMANDS
SEE ALSO
KEYWORDS
COPYRIGHT
package require ral ?0.8.5?
This manpage describes a set of commands that are used for
generating text output of relation and tuple values.
These commands are part of the Tcl Relational Algebra Library (ral) package.
The commands described here depend upon access to the struct::matrix,
report and csv packages of the Tcl standard library.
If your installation does not include tcllib then these commands
will not be available to you.
- ::ral::relformat relationValue ?title? ?sortAttrs? ?noheading?
-
The relformat command returns a string that contains a human
readable form of the relation given by relationValue.
Relformat is intended to be to relations what the parray
command is to arrays, i.e. a easy means of obtaining human
readable output.
Rather than writing the output directly to a channel,
relformat returns it as a string.
The returned string does not have a trailing newline character and so
is suitable for handing directly to puts.
If the optional title argument is present, then it is used
as a caption at the bottom of the relation printout.
If the options sortAttrs argument is given then the relation is
sorted by the list of attributes in sortAttrs before being displayed.
If the noheading argument is set to 1, then two rows of attribute
name and attribute type that by default are placed as a heading of the output
are omitted.
As a visual convenience, any attribute that is part of an identifier
has its column delimited by an equal sign (=).
|
% puts [relformat $::DOG Dog]
+=======+---------+
|DogName|Breed |
|string |string |
+=======+---------+
|Fido |Poodle |
|Sam |Collie |
|Spot |Terrier |
|Rover |Retriever|
|Fred |Spaniel |
|Jumper |Mutt |
+=======+---------+
Dog
---
% puts [relformat $::OWNERSHIP Ownership {DogName Acquired}]
+=========+=======+--------+
|OwnerName|DogName|Acquired|
|string |string |string |
+=========+=======+--------+
|Sue |Fido |2001 |
|George |Fido |2001 |
|Jim |Fred |2003 |
|Mike |Rover |2002 |
|Sue |Sam |2000 |
|George |Sam |2000 |
|Alice |Spot |2001 |
+=========+=======+--------+
Ownership
---------
% puts [relformat $::OWNER Owner "" 1]
+======+--+-------------+
|Sue |24|Cupertino |
|George|35|Sunnyvale |
|Alice |30|San Jose |
|Mike |50|San Jose |
|Jim |42|San Francisco|
+======+--+-------------+
Owner
-----
% puts [relformat [relation group $::OWNERSHIP Owners OwnerName] "" DogName]
+=======+--------+-----------+
|DogName|Acquired|Owners |
|string |string |Relation |
+=======+--------+-----------+
|Fido |2001 |+=========+|
| | ||OwnerName||
| | ||string ||
| | |+=========+|
| | ||Sue ||
| | ||George ||
| | |+=========+|
|Fred |2003 |+=========+|
| | ||OwnerName||
| | ||string ||
| | |+=========+|
| | ||Jim ||
| | |+=========+|
|Rover |2002 |+=========+|
| | ||OwnerName||
| | ||string ||
| | |+=========+|
| | ||Mike ||
| | |+=========+|
|Sam |2000 |+=========+|
| | ||OwnerName||
| | ||string ||
| | |+=========+|
| | ||Sue ||
| | ||George ||
| | |+=========+|
|Spot |2001 |+=========+|
| | ||OwnerName||
| | ||string ||
| | |+=========+|
| | ||Alice ||
| | |+=========+|
+=======+--------+-----------+
|
- ::ral::tuple2matrix tupleValue ?noheading?
-
The tuple2matrix command returns a matrix containing the values
in tupleValue.
The matrix is created using the struct::matrix package
from the standard Tcl library.
By default, the first two rows of the matrix contain the attribute
names and types.
Setting the noheading argument to 1,
removes those rows from the returned matrix.
It is the responsibility of the caller to destroy the matrix
when it is no longer needed.
- ::ral::relation2matrix relationValue ?sortAttr? ?noheading?
-
The relation2matrix command returns a matrix containing the values
in relationValue.
The matrix is created using the struct::matrix package
from the standard Tcl library.
If present, the sortAttr argument is a list of attributes
that are used to sort the values before placing in the matrix.
By default, the first two rows of the matrix contain the attribute
names and types.
Setting the noheading argument to 1,
removes those rows from the returned matrix.
It is the responsibility of the caller to destroy the matrix
when it is no longer needed.
- ::ral::csv relationValue ?sortAttrs? ?noheading?
-
The csv command formats the relation value given by relationValue
into comma separated value formatted string.
If sortAttrs is given, then the tuples of the relation value
will appear in the order implied by the list of attributes contained
in sortAttrs.
If noheading is given as 1, then no heading will be placed in the returned
CSV string.
By default, heading information is placed in the output.
This command uses the csv package from tcllib.
- ::ral::csvToFile relationValue fileName ?sortAttr? ?noheading?
-
The csvToFile command writes the value of relationValue to
the file named fileName in comma separated values format.
If sortAttrs is given, then the tuples of the relation value
will appear in the order implied by the list of attributes contained
in sortAttrs.
If noheading is given as 1, then no heading will be placed in the returned
CSV string.
By default, heading information is placed in the output.
This command uses the csv package from tcllib.
- ::ral::tupleAsTable ?capRows?
-
The tupleAsTable command is a report style for use with the
report package in tcllib.
This is the default report style used by the commands in TclRAL for
formatting tuples.
- ::ral::relationAsTable ?idCols? ?capRows?
-
The relationAsTable command is a report style for use with the
report package in tcllib.
This is the default report style used by the commands in TclRAL for
formatting relations.
relation , relvar , tuple
relation , relvar , tuple
Copyright © 2004, 2005, 2006, 2007 by G. Andrew Mangogna