¾�ΥС�������ʸ�� �� 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

48.2. ����ǥå������������᥽�åɴؿ�

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

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

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

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��ɬ�פȤ���ͣ��ξ����Ǥ��� �ܺ٤���48.5�򻲾Ȥ��Ƥ��������� ����ǥå������������줿��硢TRUE���֤���ޤ��� ��������ʤ��ä���硢FALSE���֤���ޤ��� ��FALSE�Ȥ�����̤ϥ��顼����ɽ����ΤǤϤ���ޤ��󤬡�����ǥå������������᥽�åɤ�NULL���Ф��륤��ǥå�������䤹����ˤ���Ѥ���ޤ�����

IndexBulkDeleteResult *
ambulkdelete (Relation indexRelation,
              IndexBulkDeleteCallback callback,
              void *callback_state);

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

IndexBulkDeleteResult *
amvacuumcleanup (Relation indexRelation,
                 IndexVacuumCleanupInfo *info,
                 IndexBulkDeleteResult *stats);

VACUUM���ʰ��ʾ��ambulkdelete �ƤӽФ��˸��������Ԥ��ޤ��� ����ǥå������������᥽�åɤϤ��δؿ����󶡤���ɬ�פϤ���ޤ���ʤ��ξ�硢pg_am��ι��ܤϥ����Ǥʤ���Фʤ�ޤ���ˡ� �󶡤��줿��硢�̾盧��϶��Υ���ǥå����ڡ����β���ʤɰ�������Τ���˻��Ѥ���ޤ��� info�ϡ����׾�������ѤΥ�å�������٥�ʤɡ��ɲ�Ū�ʰ������󶡤��ޤ��� �ޤ���stats�ϡ�ľ����ambulkdelete�ƤӽФ����֤�����ΤǤ��� amvacuumcleanup�ϡ���λ�������ˡ����ι�¤�Τ��֤����������ѹ������ꤹ���ǽ��������ޤ��� �ޤޤ�����׾��󤬡�VERBOSE�դ���VACUUM����𤵤�ޤ���

�����ʤ��饤��ǥå�������Ū�ϡ��褯��������������󥭡��ȸƤФ�롢����ǥå�����ǽ��WHERE�������������ץ�Υ������򥵥ݡ��Ȥ��뤳�ȤǤ��� ����ǥå����������Υ��ޥ�ƥ��å����ϡ������48.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��Ʊ������ǥå������������ǻ��Ѥ��뤳�ȤϤǤ��ޤ��� ��48.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);

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

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

����ǥå����������Υ����Ȥ���ꤷ�ޤ��� ���δؿ��ϸ�Ҥ���48.6�Ǿܤ�����������Ƥ��ޤ���

�������Τ���ˡ� Ǥ�դΥ���ǥå������������᥽�åɴؿ���pg_proc���ܤϡ����Τʰ����ο��򼨤��ʤ���Фʤ�ޤ��� �������������Ϥ��٤�internal���Ȥ���������ޤ��� �ʰ����ΤۤȤ�ɤ�SQL�Ǥ�̤�Τη�����Ĥ��ᡢ�桼�������������ؿ���ľ�ܸƤӽФ����Ȥ��ɤ����Ȥ�������ͳ�Ǥ����� ����ͤη��ϡ�void��internal��boolean�Τ����줫��Ŭ�ڤ��������ޤ���