¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

49.2. ����ǥå������������᥽�åɴؿ�

����ǥå������������᥽�åɤ��󶡤��ʤ���Фʤ�ʤ�������ǥå������ۤ�����ݼ�ؿ���ʲ��˼����ޤ���

IndexBuildResult *
ambuild (Relation heapRelation,
         Relation indexRelation,
         IndexInfo *indexInfo);

����������ǥå������ۤ��ޤ��� ���Υ���ǥå�����졼�����ʪ��Ū�˺�������ޤ��� ����ϡ����������᥽�åɤ�ɬ�פȤ��벿�餫�θ���ǡ����ȡ��ơ��֥���˴�¸�Τ��٤ƤΥ��ץ���б�������ܤ��񤭹��ޤ�ʤ���Фʤ�ޤ��� �̾ambuild�ؿ���IndexBuildHeapScan()��ƤӽФ�����¸�Υ��ץ��ơ��֥뤫�饹����󤷡�����ǥå������������ʤ���Фʤ�ʤ�������׻����ޤ��� ���δؿ��ϡ�����������ǥå����˴ؤ������׾����ޤ�palloc���줿��¤�Τ��֤��ʤ���Фʤ�ޤ���

bool
aminsert (Relation indexRelation,
          Datum *values,
          bool *isnull,
          ItemPointer heap_tid,
          Relation heapRelation,
          bool check_uniqueness);

��¸�Υ���ǥå����˿��������ץ���������ޤ��� values����� isnull���󤬥���ǥå�������륭���ͤ��󶡤����Τǡ�heap_tid������ǥå��������TID�Ǥ��� ���������᥽�åɤ���դʥ���ǥå����򥵥ݡ��Ȥ�����ʤ���pg_am.amcanunique�����ξ��ˡ�check_uniqueness�Ͽ����뤳�Ȥ��Ǥ��ޤ��� ���ξ�硢���������᥽�åɤǤϡ����礹��Ԥ�¸�ߤ��ʤ����Ȥ򸡾ڤ��ʤ���Фʤ�ޤ��� �̾盧��ϡ����������᥽�åɤ�heapRelation��ɬ�פȤ���ͣ��ξ����Ǥ��� �ܺ٤���49.5�򻲾Ȥ��Ƥ��������� ����ǥå������������줿��硢TRUE���֤���ޤ��� ��������ʤ��ä���硢FALSE���֤���ޤ��� ��FALSE�Ȥ�����̤ϥ��顼����ɽ����ΤǤϤ���ޤ��󤬡�����ǥå������������᥽�åɤ�NULL���Ф��륤��ǥå�������䤹����ˤ���Ѥ���ޤ�����

IndexBulkDeleteResult *
ambulkdelete (IndexVacuumInfo *info,
              IndexBulkDeleteResult *stats,
              IndexBulkDeleteCallback callback,
              void *callback_state);

����ǥå������饿�ץ��ʣ���ġˤ������ޤ��� �����"�����"����Ԥ��ޤ���������ǥå������Τ򥹥���󤷡��ƹ��ܤ��Ф��ƺ�����٤����ɤ���������Ԥ��褦�˼�������뤳�Ȥ����ꤵ��Ƥ��ޤ��� �Ϥ����callback�ؿ��ϡ�callback(TID, callback_state) returns bool�Ȥ������ǡ�������TID�Ǽ��̤���륤��ǥå������ܤ������٤����ɤ������ꤹ�뤿��˸ƤӽФ��ʤ���Фʤ�ޤ��� NULL�ޤ���palloc����������αƶ��˴ؤ������׾����ޤ๽¤�Τ��֤��ʤ���Фʤ�ޤ��� amvacuumcleanup���Ϥ��ʤ���Фʤ�ʤ����󤬤ʤ���С�NULL���֤��Ƥ����ꤢ��ޤ���

maintenance_work_mem�����¤ˤ�ꡢ¿���Υ��ץ뤬�����������ambulkdelete��ʣ����ƤӽФ�ɬ�פ����뤫�⤷��ޤ��� stats�����ϡ����Υ���ǥå������Ф�������θƤӽФ���̤Ǥ��� ��VACUUM���ˤ�����ǽ�θƤӽФ��ǤϤ����NULL�Ǥ����� ����ˤ�ꡢAM��������Τ˸٤ä����׾����׻����뤳�Ȥ��Ǥ��ޤ��� ŵ��Ū�ˡ��Ϥ��줿stats��NULL�Ǥʤ���硢ambulkdelete��Ʊ����¤�Τ��ѹ������֤��ޤ���

IndexBulkDeleteResult *
amvacuumcleanup (IndexVacuumInfo *info,
                 IndexBulkDeleteResult *stats);

VACUUM����0��ʾ��ambulkdelete�ƤӽФ��˸��������Ԥ��ޤ��� ����ϡ�����ǥå������׾�����֤��ʾ�ν�����Ԥ�ɬ�פϤ���ޤ��� �����������Υ���ǥå����ڡ����β���ʤɤΰ��������Ԥ����Ȥ��Ǥ��ޤ��� stats�ϡ��Ǹ��ambulkdelete�ƤӽФ����֤�����ΤǤ��� �������ɬ�פ����륿�ץ뤬¸�ߤ��ʤ��ä������ambulkdelete���ƤӽФ���ʤ��ä�����NULL�Ȥʤ�ޤ��� ��̤�NULL�Ǥʤ���С�palloc���줿��¤�ΤǤʤ���Фʤ�ޤ��� �ޤޤ�����׾����pg_class�򹹿����뤿��˻��Ѥ��졢�ޤ���VERBOSE�����ꤵ�줿VACUUM�ˤ�ä���𤵤�ޤ��� VACUUM���δ֤˥���ǥå������ޤä����Ѥ��ʤ��ä�����NULL���֤��Ƥ����ꤢ��ޤ��� �������������Ǥʤ�������������׾�����֤��ʤ���Фʤ�ޤ���

void
amcostestimate (PlannerInfo *root,
                IndexOptInfo *index,
                List *indexQuals,
                RelOptInfo *outer_rel,
                Cost *indexStartupCost,
                Cost *indexTotalCost,
                Selectivity *indexSelectivity,
                double *indexCorrelation);

����ǥå����������Υ����Ȥ���ꤷ�ޤ��� ���δؿ��ˤĤ��Ƥϸ�Ҥ���49.6���������ޤ���

bytea *
amoptions (ArrayType *reloptions,
           bool validate);

����ǥå����Ѥ�reloptions�β��Ϥȸ��ڤ�Ԥ��ޤ��� ����ǥå�������NULL��reloptions����¸�ߤ�����ˤΤ߸ƤӽФ���ޤ��� reloptions�ϡ�name=value�����ι��ܤ���ʤ롢text��������Ǥ��� ���δؿ���bytea�����ͤ��������ʤ���Фʤ餺�������ͤϥ���ǥå�����relcache���ܤ�rd_options�ե�����ɤ˥��ԡ�����ޤ��� bytea�����ͤ����Ƥϥ��������᥽�åɤ��ȼ�������Ǥ���褦�˳�������Ƥ��ޤ��� �����������ߡ�ɸ��Υ��������᥽�åɤǤϤ��٤�StdRdOptions��¤�Τ���Ѥ��ޤ��� validate�����ξ�硢���餫�Υ��ץ����ǧ���Ǥ��ʤ��ä�����̵�����ͤ�¸�ߤ�����硢���δؿ���Ŭ�ڤʥ��顼��å���������𤷤ʤ���Фʤ�ޤ��� validate�����ξ�硢̵���ʹ��ܤ�ñ��̵�뤵��ޤ��� ���ɤ߹��ߥ��ץ���󤬴���pg_catalog�˳�Ǽ����Ƥ�����validate�ϵ��Ǥ��� ���������᥽�åɤ����Υ��ץ�����Ѥε�§���ѹ��������ˤΤߡ�̵���ʹ��ܤ����Ф���ޤ��� �����ơ����ξ�硢�Ť����ܤ�̵�뤹�뤳�Ȥ�Ŭ�ڤǤ��� �ǥե���Ȥ�ư���Ԥ碌��������NULL���֤��Ƥ����ꤢ��ޤ��� ��

�����ʤ��饤��ǥå�������Ū�ϡ��褯��������������󥭡��ȸƤФ�롢����ǥå�����ǽ��WHERE�������������ץ�Υ������򥵥ݡ��Ȥ��뤳�ȤǤ��� ����ǥå����������Υ��ޥ�ƥ��å����ϡ������49.3�Ǥ��ܤ����������ޤ��� ����ǥå������������᥽�åɤ��󶡤��ʤ���Фʤ�ʤ���������Ϣ�δؿ���ʲ��˼����ޤ���

IndexScanDesc
ambeginscan (Relation indexRelation,
             int nkeys,
             ScanKey key);

�������������򳫻Ϥ��ޤ��� ��nkeysĹ�Ρ�key����ϡ�����ǥå�����������ѤΥ�����󥭡���ʣ���ġˤ򵭽Ҥ��ޤ��� ��̤ϡ�palloc������¤�ΤǤʤ���Фʤ�ޤ��� ���������ͳ�ˤ�ꡢ����ǥå������������᥽�åɤ�RelationGetIndexScan()�ƤӽФ��ˤ�äƤ��ι�¤�Τ�������ʤ���Фʤ�ޤ����� �ۤȤ�ɤξ�硢ambeginscan���ΤϤ��θƤӽФ���¾�ˤϤۤȤ�ɲ���Ԥ��ޤ��� ����ǥå�����ư�ζ�̣������ʬ�ϡ�amrescan�ˤ���ޤ���

boolean
amgettuple (IndexScanDesc scan,
            ScanDirection direction);

���ꤵ�줿��������⤫����ꤵ�줿�����ʥ���ǥå�����������ޤ��ϸ����ˤǼ��Υ��ץ����Ф��ޤ��� ���ץ����Ф�������TRUE���֤��ޤ��� ���פ��륿�ץ뤬�ĤäƤ��ʤ�����FALSE���֤��ޤ��� TRUE�ξ�硢���Υ��ץ��TID��scan�˳�Ǽ����ޤ��� "����"�Ȥϡ�ñ�˥���ǥå����˥�����󥭡��˰��פ�����ܤ����ä����Ȥ��̣���Ƥ�������Ǥ��� ���ץ뤬ɬ���ҡ������¸�ߤ��뤳�Ȥ䡢�ƤӽФ����Υ��ʥåץ���åȤλ���̲ᤷ�����Ȥ��̣���ƤϤ��ޤ���

boolean
amgetmulti (IndexScanDesc scan,
            ItemPointer tids,
            int32 max_tids,
            int32 *returned_tids);

���ꤵ�줿������󤫤�ʣ���Υ��ץ����Ф��ޤ��� ���������³���٤����ˤ�TRUE�򡢰��פ��륿�ץ뤬�ĤäƤ��ʤ����ˤ�FALSE���֤��ޤ��� tids�ϡ��ƤӽФ������󶡤���max_tids�Ĥ�ItemPointerData�쥳���ɤ������ؤ������ޤ��� ���θƤӽФ��ϰ��פ������ץ��TID�򤳤��˳�Ǽ���ޤ��� *returned_tids�ϼºݤ��֤����TID�ο������ꤵ��ޤ��� �����max_tids��꾯�ʤ����⤷��ޤ��󡣤ޤ�������ͤ�TRUE�Ǥ��äƤ�0�Ȥʤ뤫�⤷��ޤ��� �ʤ��ε���ˤ�ꡢ���������᥽�åɤϡ��㤨�Хڡ��������ʤɤǥ��������ΨŪ����ߤ��뤳�Ȥ��Ǥ��ޤ����� amgetmulti�����amgettuple��Ʊ������ǥå������������ǻ��Ѥ��뤳�ȤϤǤ��ޤ��� ��49.3�����������̤ꡢamgetmulti����Ѥ�����ˤ�¾�ˤ����¤�����ޤ���

void
amrescan (IndexScanDesc scan,
          ScanKey key);

���ꤵ�줿��������Ƶ�ư���ޤ��� ������󥭡��򿷤������뤳�Ȥ�Ǥ��ޤ��� �ʸŤ������Τޤ޷�³����ˤϡ�key��NULL���Ϥ��ޤ����� �����ο����ѹ����뤳�ȤϤǤ��ʤ����Ȥ����դ��Ƥ��������� �ºݤˤϡ�����Ҿ��롼�׷��ˤ�äƿ������������ץ뤬���򤵤졢Ʊ��������󥭡���¤�Τǿ�������������ͤ�ɬ�פȤ��줿���ˡ����κƵ�ư��ǽ�ϻ��Ѥ���ޤ��� �ƥ����������ǤϤʤ�����ǥå����������ν������ˤ���Ѥ���ޤ��Τǡ����δؿ��Ϥޤ���RelationGetIndexScan()�����ƤӽФ���ޤ���

void
amendscan (IndexScanDesc scan);

����������ߤ����꥽������������ޤ��� scan��¤�μ��Τϲ������٤��ǤϤ���ޤ��� ���������᥽�åɤ�����Ū�˼��줿���å���ԥ�ϲ������ʤ���Фʤ�ޤ���

void
ammarkpos (IndexScanDesc scan);

���ߤΥ��������֤�Ͽ���ޤ��� ���������᥽�åɤ�1�������������1�Ĥε�Ͽ�Ѥߥ������Τߤ򥵥ݡ��Ȥ��ʤ���Фʤ�ޤ���

void
amrestrpos (IndexScanDesc scan);

��äȤ�Ƕ�˵�Ͽ���줿���֤˥��������ᤷ�ޤ���

�������Τ���ˡ�����ǥå������������᥽�åɴؿ���pg_proc���ܤϡ����Τʰ����ο��򼨤��ʤ���Фʤ�ޤ��� �������������Ϥ��٤�internal���Ȥ���������ޤ��� �ʰ����ΤۤȤ�ɤ�SQL�Ǥ�̤�Τη�����Ĥ��ᡢ�桼�������������ؿ���ľ�ܸƤӽФ����Ȥ��ɤ����Ȥ�������ͳ�Ǥ����� ����ͤη��ϡ�void��internal��boolean�Τ����줫��Ŭ�ڤ��������ޤ��� ͣ����㳰��amoptions�Ǥ��� ����ϡ�text[]�����bool����bytea���֤��褦��������������ʤ���Фʤ�ޤ��� ���ε���ˤ�ꡢ���饤����ȥ����ɤ�amoptions��¹Ԥ��ƥ��ץ����������ͭ�����򸡺����뤳�Ȥ��Ǥ��ޤ���