PostgreSQL 9.0.4ʸ�� | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 51章����ǥå�������������åɤΥ��ե�������� | 早送り | 次のページ |
����ǥå�������������åɤ����ʤ���Фʤ�ʤ�������ǥå������ۤ�����ݼ�ؿ���ʲ��˼����ޤ���
IndexBuildResult * ambuild (Relation heapRelation, Relation indexRelation, IndexInfo *indexInfo);
����������ǥå������ۤ��ޤ���
���Υ���ǥå�����졼�����ʪ��Ū�˺�������ޤ���
����ϡ�����������åɤ�ɬ�פȤ��벿�餫�θ���ǡ����ȡ��ơ��֥���˴�¸�Τ��٤ƤΥ��ץ���б�������ܤ����ޤ�ʤ���Фʤ�ޤ���
�̾ambuild
�ؿ���IndexBuildHeapScan()
��ƤӽФ�����¸�Υ��ץ��ơ��֥뤫�饹���������ǥå������������ʤ���Фʤ�ʤ�����������ޤ���
���δؿ��ϡ�����������ǥå����˴ؤ����������ޤ�palloc���줿��¤�Τ��֤��ʤ���Фʤ�ޤ���
bool aminsert (Relation indexRelation, Datum *values, bool *isnull, ItemPointer heap_tid, Relation heapRelation, IndexUniqueCheck checkUnique);
��¸�Υ���ǥå����˿��������ץ���������ޤ��� values�����isnull������ǥå�������륭���ͤ������Τǡ�heap_tid������ǥå��������TID�Ǥ��� ����������åɤ���դʥ���ǥå����ݡ��Ȥ�����ʤ���pg_am.amcanunique�����ξ��ˡ�checkUnique�ϼ¹Ԥ������������μ�����ޤ��� ����ϰ���������ٱ��ǽ���ݤ��ˤ�ä��Ѥ��ޤ��� 項51.5�Ȥ��Ƥ��������� �̾異��������åɤϡ������������Ԥ�����heapRelation�ѥ����Τߤ�ɬ�פȤ��ޤ� (���ץ��ͭ�����ڤ��뤿��˥ҡ���������ʤ���Фʤ�ޤ���)��
checkUnique��UNIQUE_CHECK_PARTIAL�ξ�硢�ؿ����������η���ͤǽ�ʬ�Ǥ��� ���ξ�硢���η�̤Ͽ��������ܤϰ�դǤ��뤳�Ȥ���ǧ���줿���Ȥ������η�̤ϰ�դǤʤ���ǽ�������뤳��(�ٱ�����������ͽ�ꤷ�ʤ���Фʤ�ʤ�����)���̣���ޤ��� ¾�ξ��Ǥϡ�����ε��Ȥ�����̤��侩����ޤ���
�����Υ���ǥå����ǤϤ��٤ƤΥ��ץ��ǥå����դ����ʤ���ǽ��������ޤ���
���ץ뤬����ǥå����դ�����ʤ���硢aminsert
�ϲ���Ԥ鷺�����ʤ���Фʤ�ޤ���
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���֤��Ƥ����ꤢ��ޤ���
�������������Ǥʤ������������������֤��ʤ���Фʤ�ޤ���
PostgreSQL 8.4�λ����ǡ�amvacuumcleanup
��ANALYZE���δ�λ�����ˤ�ƤӽФ���ޤ���
���ξ�硢stats�Ͼ��NULL�ǡ�����ͤϤޤä���̵�뤵��ޤ���
���λ��ݤ�info->analyze_only�����뤳�ȤǼ��̤���ޤ���
����������åɤ����Τ褦�ʸƤӽФ���������������ʳ����⤷�ʤ��褦�ˡ������Ƥ���ϼ�ư�Х��塼�����ץ������ΤߤǤ���褦�ˤ��뤳�Ȥ�侩���ޤ���
void amcostestimate (PlannerInfo *root, IndexOptInfo *index, List *indexQuals, RelOptInfo *outer_rel, Cost *indexStartupCost, Cost *indexTotalCost, Selectivity *indexSelectivity, double *indexCorrelation);
����ǥå����������Υ����Ȥ���ꤷ�ޤ��� ���δؿ��ˤĤ��Ƥϸ�Ҥ�項51.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�������������ץ�Υ������ݡ��Ȥ��뤳�ȤǤ��� ����ǥå����������Υ��ޥ�ƥ��å����ϸ��項51.3�Ǥ��ܤ����������ޤ��� ����ǥå�������������åɤ�"ñ��"����ǥå����������"�ӥåȥޥå�"����ǥå���������ޤ��Ϥ�������������ޤ��� ����ǥå�������������åɤ����ʤ���Фʤ�ʤ����⤷���������ǽ���Τ��륹������Ϣ�δؿ���ʲ��˼����ޤ���
IndexScanDesc ambeginscan (Relation indexRelation, int nkeys, ScanKey key);
�������������Ϥ��ޤ���
��nkeysĹ�Ρ�key����ϥ���ǥå�����������ѤΥ��������ʣ���ġˤҤ��ޤ���
��̤�palloc������¤�ΤǤʤ���Фʤ�ޤ���
���������ͳ�ˤ�ꡢ����ǥå�������������åɤ�RelationGetIndexScan()
�ƤӽФ��ˤ�äƤ��ι�¤�Τ�������ʤ���Фʤ�ޤ�����
�ۤȤ�ɤξ�硢ambeginscan
���ΤϤ��θƤӽФ���¾�ˤϤۤȤ�ɲ���Ԥ��ޤ���
����ǥå�����ư�ζ�̣������ʬ�ϡ�amrescan
�ˤ���ޤ���
boolean amgettuple (IndexScanDesc scan, ScanDirection direction);
���ꤵ�줿��������⤫����ꤵ�줿�����ʥ���ǥå�����������ޤ��ϸ����ˤǼ��Υ��ץ����Ф��ޤ���
���ץ����Ф������Ͽ����֤��ޤ���
���פ��륿�ץ뤬�ĤäƤ��ʤ����ϵ����֤��ޤ���
���ξ�硢���Υ��ץ��TID��scan�˳�Ǽ����ޤ���
"����"�Ȥϡ�ñ�˥���ǥå����˥�������˰��פ�����ܤ����ä����Ȥ��̣���Ƥ�������Ǥ���
���ץ뤬ɬ���ҡ������¸�ߤ��뤳�Ȥ䡢�ƤӽФ����Υ��ʥåץ���åȤλ���̲ᤷ�����Ȥ��̣���ƤϤ��ޤ���
�����ζǤˤϡ�amgettuple
��scan->xs_recheck�����������ꤷ�ʤ���Фʤ�ޤ���
���ΰ�̣�ϡ�����ǥå������ܤ��μ¤˥�������˰��פ��뤳�ȤǤ���
���ΰ�̣�ϡ����줬�Τ��ʤ��ȤǤϤʤ������������ɽ�����줿��郎�ҡ��ץ��ץ����Ф��줿��ǺƸ�������ʤ���Фʤ�ʤ����ȤǤ���
�����к���"��ĵ�"����ǥå����黻�Ҥ�ٱ礷�ޤ���
�Ƹ����ϥ��������Τߤ˳���Ŭ�Ѥ���뤳�Ȥ����դ��Ƥ���������
��ʬ����ǥå����Ҹ�ʤ⤷����Сˤ�amgettuple
�ƤӽФ����Ƿ褷�ƺƸ�������ޤ���
amgettuple
�ؿ��ϡ�����������åɤ�"ñ��"����ǥå����������ݡ��Ȥ���Ȥ��Τ������ɬ�פ�����ޤ���
�����Ǥʤ���С�pg_am�Ԥ�amgettuple�ե�����ɤϥ��������ꤵ��ʤ���Фʤ�ޤ���
int64 amgetbitmap (IndexScanDesc scan, TIDBitmap *tbm);
���ꤵ�줿����������ƤΥ��ץ����Ф����ƤӽФ�¦������TIDBitmap�ˤ������ղä��ޤ�
�ʤĤޤꡢ���˥ӥåȥޥå���ˤ��뽸��ȥ��ץ�ID�ν���Ȥ�OR����ޤ��ˡ�
���Ф��줿���ץ�����֤���ޤ����㤨�Ф����Ĥ���AM�Ͻ�ʣ�Ф��ޤ���Τǡ������ñ�ʤ복���Ǥ��ˡ�
���ץ�ID��ӥåȥޥåפ���������֡�amgetbitmap
������Υ��ץ�ID��ɬ�פʥ��������κƸ��������Ȥ���ǽ�Ǥ���
�����amgettuple
��xs_recheck���ϥѥ�����������Ƥ��ޤ���
���ա����ߤμ����ˤ����Ƥ��ε�ǽ���ϥӥåȥޥåפ��Τ�Τ���ĵճ�Ǽ������Τ˷�ӤĤ��Ƥ��ơ������ƤӽФ�¦�ϥ�����������ʬ����ǥå����ν�����¸�ߤ���Сˤ�Ƹ�����ǽ�ʥ��ץ���Ф��ƺƸ������ޤ���
�Ȥϸ��äƤ����������Ȥϸ¤�ޤ���
amgetmulti
�����amgettuple
��Ʊ������ǥå������������ǻ��Ѥ��뤳�ȤϤǤ��ޤ���
項51.3�����������̤ꡢamgetbitmap
����Ѥ�����ˤ�¾�ˤ����¤�����ޤ���
amgetbitmap
�ؿ��ϥ���������åɤ�"�ӥåȥޥå�"����ǥå����������ݡ��Ȥ��Ƥ�����Τ�ɬ�פǤ���
�����Ǥʤ���С�pg_am�Ԥ����amgetbitmap�ե�����ɤϥ��������ꤵ��ʤ���Фʤ�ޤ���
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
��¹Ԥ��ƥ��ץ����������ͭ���������뤳�Ȥ��Ǥ��ޤ���