From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | chris(at)bitmead(dot)com |
Cc: | "pgsql-hackers(at)postgreSQL(dot)org" <pgsql-hackers(at)postgresql(dot)org>, pgsql-sql(at)postgresql(dot)org, pgsql-general(at)postgresql(dot)org |
Subject: | Re: [GENERAL] Proposed Changes to PostgreSQL |
Date: | 2000-02-03 02:08:46 |
Message-ID: | 200002030208.VAA28084@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers pgsql-sql |
> THESE CHANGES DON'T AFFECT YOU IF YOU DON'T USE INHERITANCE.
>
> Speak now about these changes or please, forever hold your peace. Of
> course you can comment later if I screw up implementation.
>
> The proposed changes are....
>
> 1) An imaginary field in every tuple that tells you the class it came
> from.
> This is useful when you select from table* and want to know which
> relation the object actually came from. It wouldn't be stored on disk,
> and like oid it wouldn't be displayed when you do SELECT *. The field
> would be called classname. So you could have...
> SELECT p.classname, p.name FROM person p;
> person | Fred
> student | Bill
> employee | Jim
> person | Chris
So the field is created on the fly to show what table it came from.
Seems like a good idea, though implementing another usually-invisible
column will be tough. However, because it is not really a column like
the oid is a column, it should be ok. Of course, internally it is
relid.
> 2) Changing the sense of the default for getting inherited tuples.
> Currently you only get inherited tuples if you specify "tablename*".
> This would be changed so that you get all sub-class tuples too by
> default unless you specify "ONLY tablename". There are several
> rationale for this. Firstly this is what Illustra/Informix have
> implemented. Secondly, I believe it is more logical from an OO
> perspective as well as giving a more useful default. If a politician
> IS a person and I say SELECT * from person, then logically I should
> see all the politicians because they are people too (so they claim
> :). Thirdly, there are a whole range of SQL statements that should
> probably be disallowed without including sub-classes. e.g. an ALTER
> TABLE ADD COLUMN that does not include sub-classes is almost certainly
> undesirable. It seems ashame to have to resort to non-standard SQL
> with the "*" syntax in this case when it is really your only
> choice. Basicly, wanting ONLY a classname is a far more unusual
> choice, and leaving off the "*" is a common error. Fourthly, it seems
> out of character for the SQL language to have this single character
> operator. The SQL style is to use wordy descriptions of the operators
> meaning. "ONLY" fits well here because it describes its own meaning
> perfectly whereas to the unitiated, "*" is harder to guess at. While
> this change is an incompatibility I hope for those few people using
> inheritance they can accept the need to move forward without
> over-burden of backwards compatibility.
Sounds fine to me. Just realize you are taking on a long-overdue but
big job here.
>
> 3) The ability to return different types of rows from a SELECT. This
> is to allow implementation of ODBMS functionality where a query could
> be required to instantiate objects of differing types with differing
> attributes.
This bothers me. We return relational data, showing the same number of
columns and types for every query. I don't think we want to change
that, even for OO. How are you going to return that info the the client
side?
--
Bruce Momjian | http://www.op.net/~candle
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Bitmead | 2000-02-03 02:45:31 | Re: [GENERAL] Proposed Changes to PostgreSQL |
Previous Message | Chris Bitmead | 2000-02-03 01:30:26 | Proposed Changes to PostgreSQL |
From | Date | Subject | |
---|---|---|---|
Next Message | Hiroshi Inoue | 2000-02-03 02:19:52 | RE: [HACKERS] SELECT FOR UPDATE leaks relation refcounts |
Previous Message | Chris Bitmead | 2000-02-03 01:30:26 | Proposed Changes to PostgreSQL |
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Bitmead | 2000-02-03 02:45:31 | Re: [GENERAL] Proposed Changes to PostgreSQL |
Previous Message | Chris Bitmead | 2000-02-03 01:30:26 | Proposed Changes to PostgreSQL |