39.3. �洢������

Table of Contents
SPI_palloc — ���ϲ�ִ��������������ڴ�
SPI_repalloc — ���ϲ�ִ�������������·����ڴ�
SPI_pfree — ���ϲ�ִ�����������ͷ��ڴ�
SPI_copytuple — ���ϲ�ִ���߻���������һ���еĿ���
SPI_returntuple — ׼����һ��Ԫ�鵱�� Datum ����
SPI_modifytuple — ͨ���滻һ�������е�ѡ�����ֶδ���һ��
SPI_freetuple — �ͷ����ϲ�ִ���߻���������һ��
SPI_freetuptable — �ͷ�һ���� SPI_execute �������Ƶĺ����������м�
SPI_freeplan — �ͷ�һ��ǰ�汣��Ĺ滮

PostgreSQL ���洢�������з���洢���� ���ṩ�������ط�����ģ����Ų�ͬ�������ڵ�����ڴ���һ������Ĺ������� ɾ��һ���������ͷ����������ڲ�������ڴ档 ��ˣ�����û��Ҫ���ٶ����Ķ����Ա����ڴ�й©������ֻҪ���������Ļ����� palloc ����صĺ�����"��ǰ"�Ļ����з����ڴ档

SPI_connect ����һ���µĴ洢���������ҽ�����Ϊ��ǰ�Ļ����� SPI_finish�ָ�ǰһ���ڴ滷������ɾ�� SPI_connect �����Ļ����� ��Щ����ȷ������Ĺ����з������ʱ�ڴ��ڹ��̽�β��ʱ�򶼱����գ������ڴ�й©��

�����������Ĺ�����Ҫ����һ���ѷ�����ڴ���󣨱���һ���������õ��������ͣ��� ��ô��Ͳ����� palloc ���䷵�صĶ��� �����Dz��������Ѿ��� SPI �����ϵ�ʱ���������ͼ��ô���� ��ô�ö����� SPI_finish ��ʱ���ͷţ� �����Ĺ��̾Ͳ��ܿɿ��ع�����!

Ҫ���������⣬ʹ�� SPI_palloc ������ķ��ض��� SPI_palloc ��"�ϲ�ִ���߻���"�з���ռ䣬Ҳ���ǵ��� SPI_connect ʱ��ĵ�ǰ�����ڴ滷�����û����Ǵ���Ĺ��̷�����ֵ����ȷ������

�����û�����ӵ� SPI ��ʱ���������SPI_palloc ����Ϊ�ͼ򵥵� palloc һ���� ��һ�����̺� SPI ����������֮ǰ����ǰ���ڴ滷�����ϲ�ִ���߻�����������иù���ʹ�� palloc ���� SPI ���ߺ�������Ŀռ䶼������������з���ġ�

�ڵ��� SPI_connect ֮�󣬵�ǰ�����Ǹù���˽�еģ� �� SPI_connect �����Ļ����� ����ͨ�� palloc/repalloc ���� SPI ���ߺ��������� SPI_copytuple�� SPI_returntuple�� SPI_modifytuple�� �� SPI_palloc�� ������ڴ涼������������з���ġ� ���һ�������� SPI �������Ͽ���ͨ�� SPI_finish������ô��ǰ�����ָ�Ϊ�ϲ�ִ���������� ���������ڸù��̵��ڴ滷���з�����ڴ涼�ͷŵ����Ҳ����ٴ�ʹ�ã�

�����ڱ����������ĺ����������������ӵĺ�δ���ӵĹ�����ʹ�á� ��δ���ӵĹ����У����ǵ���Ϊ���²��ԭʼ��˺�����palloc �ȣ���ͬ��