���� ��� tree ���������� ��� ����: entree (enumerated tree) & bitree (bit tree). ��������������� ���� entreequery & bitreequery. tree - ���, �������������� ���� ������. ������������ ����� ���� �������� �� �����. ���� ����������� ������� � ������ ����. ����� �������, ������ '3.4' �������� 4-�� ������� 3-��� ������� �����. ��������� � ������ ������ ���������� � 1. ������������ ���������� ����� - 65535 ��� entree, ��� bitree - ������������ ��� ����������, ��������� �������� - 8,16,32(�� ���������),64. ��� �������� ����������� � ������� ������� ������ ������. treequery - ���, �������������� ����� ���� ������. ���������� �� tree ����������� �������� ����������� � ������. ��������, ������ '1.2|3' �������� 2-�� ��� 3-�� ������� 1-�� ������� �����, � '1.*.4|5' - 4-�� ��� 5-�� ������� ������������� ������� 1-�� ������� �����. ������ � ���, ����������� ���� ������� ������������� � �����, �������� ���������. ���� ��� �� ����������, ����� ��� ������� ���: '1.2|3.0' � '1.*.4|5.0' ��������������. �������� ��� ����� tree ���������� ��������� ��������: <,>,<=,>=,= � <>. ��� �� �������� �������� � �������: tree <* treequery treequery >* tree ��������� ��� �������� ���������� TRUE, ���� ���� tree ������������� ����� treequery. �������� tree @> tree ���������� TRUE, ����� �������� �������� ������� ������� ��� ����� ���, �������������� �������� tree <@ tree ���������� TRUE, ������ �������� �������� ������� ������ ��� ����� ��� ( ������� �������, ���� ����� - ������� �������). ������� entree_level(entree) � bitree_level(bitree) ���������� ������� ����. entree_next(entree), bitree_next(bitree) ���������� ��������� ��������� ����. ������ �������������: �������� ���� - select entree_next(tid) from dmoz where tid <* '1.2.3.*.0' order by tid desc limit 1; ������� ��� tree ������������ ��� ���� ��������: B-Tree - �������� �������� <,>,<=,>= � =. ��������� ���� ������������ � ������ �������� Btree - ���������� �������, Merge-join � �� GiST - �������� �������� <,>,<=,>=,=,*>,<*,@> � <@ ������� tree ��� ��������� ���� tree ���������� ��������: tree[] => tree tree <= tree[] tree[] <* treequery treequery *> tree[] ������ ��� �������� ���������� true, ���� � ������� ���� ������, ������ ������� �������� ��������, ���������� ���������� true, ���� � ������� ���� ������, ��������������� ��������� �����. ��� �������� ����� ���� �������� ����� ���������� GiST-�������. ��������� 1 ������� select * from treetbl where treefld >= '1.1' and treefld < '1.2'; select * from treetbl where treefld <* '1.1'; select id from dmoz where id <@ '1.1'; ������������ � ���������� ���� �������� ���� 1.1. 2 ������� � GiST � ��������� ��� ���������, ��� � B-Tree, �� �� �������� ������� GiST �������� �������� � 1.5 ���� B-Tree. �������: create table dmoz ( nodename text, -- �������� ���� nodepath text, -- ���� � ���� intid int, -- ���������� ������������� id entree ); �������� ���� ����� ���� select * from dmoz where id <* '1.2.3.*.0'; �������� ���� ����������� ���� select * from dmoz where id <* '1.2.3' and id != '1.2.3'; �������� ���� ����� ���� � ��������� ���� �� ����������� select *, ( select count(*)-1 from dmoz as d where d.id <* entree2query(dmoz.id) ) as descentcount from dmoz where id <* '1.2.3.*.0';