user defined data types - help

From: Sathish Vadhiyar <vss(at)cs(dot)utk(dot)edu>
To: <pgsql-general(at)postgresql(dot)org>
Subject: user defined data types - help
Date: 2002-09-13 15:39:23
Message-ID: Pine.GSO.4.33.0209131123430.29371-100000@bluegrass.cs.utk.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


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).

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Darren Ferguson 2002-09-13 15:47:59 Re: Data type Numeric
Previous Message Jan Wieck 2002-09-13 15:19:11 Re: [SQL] Latitude / Longitude