user defined data types - help - Mailing list pgsql-general

From Sathish Vadhiyar
Subject user defined data types - help
Date
Msg-id Pine.GSO.4.33.0209131123430.29371-100000@bluegrass.cs.utk.edu
Whole thread Raw
Responses Re: user defined data types - help  (Martijn van Oosterhout <kleptog@svana.org>)
List 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).


pgsql-general by date:

Previous
From: Jan Wieck
Date:
Subject: Re: [SQL] Latitude / Longitude
Next
From: Darren Ferguson
Date:
Subject: Re: Data type Numeric