Search Postgresql Archives

Pointers in custom types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm writing a custom type in C that needs to manage two byte arrays (among other things). I have attempted to implement this using something similar to the following struct (along with corresponding input and output functions):

typedef struct example {

   bytea* first;
   bytea* second;

} example;

This doesn't seem to work as I was hoping, as I get a segmentation fault upon attempting to insert into a table column of this type (although a cast will work fine).

What is the correct way to manage multiple byte arrays within a datatype? Are pointers not usable within a base-type, because of the way Postgres persists them? I guess that the above fails because postgres looks at the size of the struct and simply persists that amount of memory (or VARSIZE if the datatype is a varlena). Is this correct, or should the above work in theory, and there must be a problem in other parts of my implementation? I'm a novice with this stuff, so this is probably a stupid question.

If pointers are a no-go, then the only other way I can think of is to maintain one large byte array and an extra index which describes how long the first array is, allowing the second array to be stored directly afterwards.

Many thanks for any help,
Will.


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux