Re: user defined data types - help - Mailing list pgsql-general
From | Sathish Vadhiyar |
---|---|
Subject | Re: user defined data types - help |
Date | |
Msg-id | Pine.GSO.4.33.0209151031180.8908-100000@bluegrass.cs.utk.edu Whole thread Raw |
In response to | Re: user defined data types - help (Martijn van Oosterhout <kleptog@svana.org>) |
Responses |
Re: user defined data types - help
|
List | pgsql-general |
Because of 2 reaons: 1. My C structure consists of other such fields like 'latency' etc. Here I have shown 'bandwidth' for the ease of explaining. Having tables for each such field will lead to large number of tables and hence will soon get unmanageable. 2. I have a table in which I want to have this structure as one field. Thanks. On Sat, 14 Sep 2002, Martijn van Oosterhout wrote: > Why are you trying to store this all into one value? Why not just create two > tables, one for the names of the machines and one to stores the bandwidths? > > On Fri, Sep 13, 2002 at 11:39:23AM -0400, Sathish Vadhiyar wrote: > > > > Hi. > > > > I have a struct in C in my application program. > > > > typedef struct{ > > int count; > > char** machine_names; > > double* bandwidth; > > } MACHINEINFO; > > > > 'count' is the number of machines. machine_names[i] gives the machine name > > of machine i. 'bandwidth' is a matrix that stores bandwidth information > > between the machines. So bandwidth[i*count+j] gives the bandwidth between > > machines i and j. > > > > Iam trying to define a corresponding structure and define the type to > > store in a postgresql datat base using 'CREATE TYPE'. > > > > I don't want to have a structure like > > > > typedef struct{ > > int32 size; /* for variable length */ > > int4 count; > > char data[1]; > > } PSQLSTRUCT; > > > > and have both the machine_names and bandwidth encoded into string stored > > in 'data'. > > > > What I would like instead is something like a 'polygon' type where I would > > have. > > > > typedef struct{ > > char machine_name[100]; /* Ideally, I don't want to fix the size of a > > single machine as 100. But I will compromise > > for the moment */ > > float8 bandwidth; /* ???? */ > > } SINGLEMACHINE > > > > typedef struct{ > > int32 size; > > int4 count; > > SINGLEMACHINE sm[1]; /* variable number of machines */ > > } PSQLSTRUCT; > > > > This is similar to the POLYGON built in type where the structure polygon > > consists of variable number of POINT structures. > > > > But here is the tricky issue. Unlike the POINT structure that contains > > fileds of fixed lengths, my SINGLEMACHINE structure consists of variable > > length field in 'bandwidth'. > > > > Any ideas regarding how to do this? > > > > > > Thanks. > > > > --------------------------------------------------------------------- > > > > Sathish S. Vadhiyar > > PhD Candidate Research Assistant, Innovative Computing Laboratory > > Computer Science Department > > University of Tennessee > > Knoxville > > > > Ph: (865)946-4558 (H) , (865)974-6323 (O). > > > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 3: if posting/reading through Usenet, please send an appropriate > > subscribe-nomail command to majordomo@postgresql.org so that your > > message can get through to the mailing list cleanly > > -- > Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > > There are 10 kinds of people in the world, those that can do binary > > arithmetic and those that can't. > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > --------------------------------------------------------------------- Sathish S. Vadhiyar PhD Candidate Research Assistant, Innovative Computing Laboratory Computer Science Department University of Tennessee Knoxville Ph: (865)946-4558 (H) , (865)974-6323 (O).
pgsql-general by date: