How to manipulate tuples in C functions?

Поиск
Список
Период
Сортировка
От a
Тема How to manipulate tuples in C functions?
Дата
Msg-id tencent_4D3931CA0E0CFAE14D86AA55@qq.com
обсуждение исходный текст
Ответы Re: How to manipulate tuples in C functions?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Hey all:

As far as I know, composite type and rows (trigger functions) are passed between PostgreSQL and C functions as tuple. However, I rarely find things relating on how to manipulate a tuple under C from documentation. 

The only thing I can find from the doc is very simple stuff like 'GetAttributeByName' or 'GetAttributeByNum' to retrieve data, or use a 'BlessTupleDesc' to initialize a 'TupleDesc' variable and 'heap_form_tuple' to return a 'HeapTuple' and return a 'HeapTupleGetDatum(HeapTuple tuple)' to convert to a 'Datum' type.

However not only the illustration of the previous listed functions are not fully described (e.g. return and input of each functions) but also any complex situation are stated. What if I have a composite type inside a composite type? What if I have a array inside a composite type? What if I have a variable length type?

Furthermore, to write a compatible procedures, I would need at least 2 more information: 1, The total number of entry inside a tuple; 2, The total space the tuple took.

So if anyone can tell me how to answer the above question? Or simply give an example of iterator that go through all entries of a tuple? Thank you so much!! 

В списке pgsql-general по дате отправления:

Предыдущее
От: Ben Chobot
Дата:
Сообщение: Re: Renice on Postgresql process
Следующее
От: David Gauthier
Дата:
Сообщение: Run external command as part of an sql statement ?