agora inbox for postgres@postgres.berkeley.edu
help / color / mirror / Atom feedFrom: Bruce Taneja. <aataneja@cs.mtu.edu>
To: postgres@postgres.Berkeley.EDU
Cc: Bruce Taneja. <aataneja@cs.mtu.edu>
Subject: variable size data types..
Date: Tue, 7 Jun 1994 02:03:54 -0400 (EDT)
Message-ID: <9406070603.AA06822@cs.mtu.edu> (raw)
Howdy Paul & folks,
Dunno if this is a more of a C question than a postgres question
but since it concerns postgres's variable user defined (array)
data types, here goes:
example:
typedef struct {
int size; /* size of this mem glob */
int n_points; /* number of points struct nested */
POINT points[1];/* the first one*/
int n_circles; /* the number of circles */
CIRCLE circles[1]; /* the 1st one*/
} CIRCLES_N_POINTS;
Next step is to parse my append statement and decide how much space
I require to palloc, once I have determined that and palloced that
space, I start putting the points in : points[0], points[1], points[2]
.. and similarly parsed circles data in circles[0], circles[1], ...
Understandably, the space for these "arrays" is being sliced out of
the palloced glob of memory ..
Now what is the guarantee that C does not write my circles "array"
data over my points "array" data ???
The way I see it , C can distinctly identify the CIRCLES_N_POINTS struct
but not the contiguous space following the struct, so both times when
we start to write in locations points[1] and circles[1], the same space
lying right after the struct is going to be used overwriting the previous
data .. or am I (happily) mistaken?..
and, if I am (sadly) right, then what is the solution to having two complex
variable sized arrays in your defined variable size complex data type?
Perhaps the C gurus or postgres gurus would like to educate the dumb
old me ..
thanx for help in advance!
Bruce!
==============================================================================
To add/remove yourself to/from the POSTGRES mailing list: send mail with
the subject line ADD or DEL to "postgres-request@postgres.Berkeley.EDU"
If this fails, send mail to "post_questions@postgres.Berkeley.EDU" and
a human will deal with it. DO NOT post to the "postgres" mailing list.
==============================================================================
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: postgres@postgres.berkeley.edu
Cc: aataneja@cs.mtu.edu
Subject: Re: variable size data types..
In-Reply-To: <9406070603.AA06822@cs.mtu.edu>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox