Thread

  1. Nested classes

    Ferruccio Zamuner <solo3@mail.chierinet.it> — 1998-07-27T15:58:16Z

    Hi all,
    
    I want to define one class as compound object of user defined classes and
    basic types.
    
    something like:
    
    CREATE TABLE attributes {
       Strenght  int,
       Health    int,
       Mana     int,
       Inteligence int
    };
    
    CREATE TABLE character {
       Name     text,
       Role       text,
       Damage  int,
       Defense  int,
       Age        int,
       Attributes  attributes
    };
    
    CREATE TABLE player {
       Name text,
       Age   int,
       Telephone text,
       Character  character
    };
    
    This is something like defining a C++ class with other user-defined classes as
    attributes (no derivation, but containment).
    Postgres 6.3.1 accepts the definitions above but the problems come when I want
    to insert records of "player" type.
    
    I have the following questions:
    1. Is there any syntactic sugar (as { } for arrays) for INSERTing a new
    "player" including its Character sub-object?
    2. what about the same problem using a COPY to populate the DB from ascii
    file?
    3. after eventually having populated the DB, I'd like to write something like:
        SELECT Character.Name, Character.Attributes.Intelligence  FROM player
    WHERE Age<18 AND Character.Age > 25;
        to extract the name and intelligence of all the characters older than 25
    played by people younger than 18
    
    I know that some form of composite classes can be defined inserting OIDs of
    sub-objects as attributes but this seems a bit weak and tricky solution. Is
    there a better one?
    
    Thanks in advance
    Ferruccio