Thread

  1. Re: [QUESTIONS] Re: [HACKERS] text should be a blob field

    Maurice Gittens <mgittens@gits.nl> — 1998-03-15T17:07:12Z

    -----Original Message-----
    From: Thomas G. Lockhart <lockhart@alumni.caltech.edu>
    To: PostgreSQL-development <hackers@postgresql.org>
    Cc: Maurice Gittens <mgittens@gits.nl>
    Date: zondag 15 maart 1998 22:24
    Subject: Re: [QUESTIONS] Re: [HACKERS] text should be a blob field
    
    
    >> Since triggers are not inherited this doesn't seem appropiate to me
    >> -:(. Won't user have to do some magic on inherited tables?
    >>
    >> I think many things will be fixed when triggers, indices etc. are
    >> inherited properly by derived classes.
    >
    >This is an interesting point. We have perhaps been neglecting to discuss
    >how inheritance should behave with new features. Certainly at least some
    >things (like default values and constraints) do inherit as you would
    >expect. It's not clear to me that inheriting indices is appropriate,
    >since indices are basically just an artifact for performance
    >improvement;
    Yes I agree.
    > the results of a query do not change with the presence of
    >an index. Also, if a table is inherited, then the access pattern of the
    >resulting table might be different, requiring a different index anyway.
    
    In general OO terms code reuse (in our case trigger reuse? -:) ) is achieved
    by inheriting as much as sanely possible.
    Since (from an OO perspective) every instance of a derived class is also an
    instance of it's base class(es), inheriting indices seems like a natural
    thing
    to me.
    
    However it may be possible that an OO database makes different choices
    than an OO programming language.
    
    >
    >I haven't worked with triggers; what is their current behavior with
    >inheritance? Maurice implies that they are not inherited at all. If not,
    >should they be?
    
    Well if we want to support polymorphism the answer to this question is a
    definite yes.
    
    In general any operation defined on an instance of a base class should be
    defined on an instance of a derived class. This is the main reason
    we inherit in the first place. The user has the option of redefining
    (specializing)
    an operation for instances of derived classes if she/he so pleases.
    
    I think proper support for this would be really cool.
    
    
    With regards from Maurice.