> -----Original Message----- > From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general- > owner@xxxxxxxxxxxxxx] On Behalf Of David Johnston > Sent: Wednesday, August 07, 2013 10:35 AM > To: pgsql-general@xxxxxxxxxxxxxx > Subject: Re: Self referencing composite datatype > > Sameer Thakur wrote > > Hello, > > I wanted to create a composite datatype to represent a Node. So it > > would have a few attributes and an array of type Node which is the > > children of this node. > > create type Node as (r integer, s integer, children Node []); But i > > get error type Node[] does not exist. I understand that Node is not > > defined hence the error. > > But how do i get around this problem? > > In theory if you are using 9.1 or later you can first create the node type and > then alter it to include a children attribute with the self-referencing type- > array. > > begin; > > create type node as (r integer, s integer); alter type node add attribute > children node[]; > > end; > > I'm running 9.0 so cannot readily test this at the moment. > > David J. > Under 9.2.2 I'm getting an error: ERROR: composite type node cannot be made a member of itself ********** Error ********** ERROR: composite type node cannot be made a member of itself SQL state: 42P16 Regards, Igor Neyman -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general