diff options
author | Marc G. Fournier <scrappy@hub.org> | 1999-09-20 22:30:47 +0000 |
---|---|---|
committer | Marc G. Fournier <scrappy@hub.org> | 1999-09-20 22:30:47 +0000 |
commit | a00a1a5641fb5c3a60ad30d672b648e95b01f6d4 (patch) | |
tree | 31c05cf5dfa30315862f55af47b9fae6ee585b19 /src/bin/pgaccess/lib/help/inheritance.hlp | |
parent | 25acbc510b202a35d2b29b63d9375fa985fba7de (diff) |
bring it all into -current again
Diffstat (limited to 'src/bin/pgaccess/lib/help/inheritance.hlp')
-rw-r--r-- | src/bin/pgaccess/lib/help/inheritance.hlp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/bin/pgaccess/lib/help/inheritance.hlp b/src/bin/pgaccess/lib/help/inheritance.hlp new file mode 100644 index 00000000000..b402c30fdf5 --- /dev/null +++ b/src/bin/pgaccess/lib/help/inheritance.hlp @@ -0,0 +1,49 @@ +.pgaw:Help.f.t insert end \ +"Inheritance" {title} " + +Let's create two classes. The capitals class contains state capitals which are also cities. Naturally, the capitals class should inherit from cities. + +" {} "CREATE TABLE cities ( + name text, + population float, + altitude int -- (in ft) + ); + +CREATE TABLE capitals ( + state char2 + ) INHERITS (cities); +" {code} " +In this case, an instance of capitals inherits all attributes (name, population, and altitude) from its parent, cities. The type of the attribute name is text, a native Postgres type for variable length ASCII strings. The type of the attribute population is float, a native Postgres type for double precision floating point numbers. State capitals have an extra attribute, state, that shows their state. In Postgres, a class can inherit from zero or more other classes, and a query can reference either all instances of a class or all instances of a class plus all of its descendants. + +" {} "Note" {italic} ": The inheritance hierarchy is a actually a directed acyclic graph. + +For example, the following query finds all the cities that are situated at an attitude of 500ft or higher: + +" {} "SELECT name, altitude FROM cities WHERE altitude > 500; + ++----------+----------+ +|name | altitude | ++----------+----------+ +|Las Vegas | 2174 | ++----------+----------+ +|Mariposa | 1953 | ++----------+----------+ +" {code} " +On the other hand, to find the names of all cities, including state capitals, that are located at an altitude over 500ft, the query is: + +" {} "SELECT c.name, c.altitude FROM cities* c WHERE c.altitude > 500; + +" {code} "which returns:" {} " + ++----------+----------+ +|name | altitude | ++----------+----------+ +|Las Vegas | 2174 | ++----------+----------+ +|Mariposa | 1953 | ++----------+----------+ +|Madison | 845 | ++----------+----------+ +" {code} " +Here the \"*\" after cities indicates that the query should be run over cities and all classes below cities in the inheritance hierarchy. Many of the commands that we have already discussed -- select, update and delete -- support this \"*\" notation, as do others, like alter. +" {} |