Re: [QUESTIONS] using composite types
От | Brian Grossman |
---|---|
Тема | Re: [QUESTIONS] using composite types |
Дата | |
Msg-id | 19980315235015.15495.qmail@lindy.softhome.net обсуждение исходный текст |
Ответ на | Re: [QUESTIONS] using composite types (Peter T Mount <postgresdev@maidast.demon.co.uk>) |
Список | pgsql-hackers |
> On Fri, 13 Mar 1998, Thomas G. Lockhart wrote: > > > > How can I use composite types? > > > If I create two tables like this: > > > create table A ( a int, b int); > > > create table D ( a A, b int); > > > I would expect to be able to > > > insert into D (a.a, a.b, b) values (1,2,3); > > > and > > > select a.a, a.b, b from D; > > > That doesn't work, at least not with postgresql 6.3. Is that the way > > > it's supposed to work? What is the proper way to do it? > > I've just tried it here, and it seems that the value to insert into D is > the OID of a row in table A. > > > I'm not sure if this is supported. The old tutorial does not have an > > example exactly like this (at least that I could find), but it seems > > like it _should_ work, and the backend accepts the syntax. > > > > What you want to do can probably be accomplished with inheritance, but > > that only seems to work if you have unique names for more of your > > fields: > > > > create table A ( a int, b int); > > create table D ( c int) inherits (A); > > > But, if you try > > > > create table D ( b int) inherits (A); > > > > then the new column in D gets lost without warning! > This would give a table based on the parent table, but I think he was > trying to use table D to refer to values in table A _as_ a type. Yes, I am trying to use A as a type. I was hoping there was some syntax sugar that I was missing; the C-like struct traversal syntax would have been nice, but oh well. I see how an oid could work, but the idea was to make my life as a programmer easier. I'll just prepend the A_ to a and b in A and inherit, so I can "select A_a, A_b, b from D". I got lucky and all my prefixed names fit in under the 32 character name limit. Thanks, Brian
В списке pgsql-hackers по дате отправления: