Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru
Руководство по PostGIS. Глава 6. Справочник PostGIS. 6.2. Расширения PostGIS
Назад Вперед

6.2. Расширения PostGIS

6.2.1. Функции управления

DropGeometryTable([<schema_name>], <table_name>)

Удаляет таблицу и все связанные с ней геометрические столбцы. Замечание: если установленный pgsql поддерживает схемы, используется current_schema(), когда схема не предоставлена.

UpdateGeometrySRID([<schema_name>], <table_name>, <column_name>, <srid>)

Обновляет SRID всех фич в геометрическом столбце, обновляет констрайнты и ссылки в этом столбце. Замечание: если установленный pgsql поддерживает схемы, используется current_schema(), когда схема не предоставлена.

update_geometry_stats([<table_name>, <column_name>])

Обновляет статистику пространственных таблиц для использования планировщиком запросов. Кроме того, вам понадобится "VACUUM ANALYZE [table_name] [column_name]" завершения процесса сбора статистики. Замечание: начиная с PostgreSQL 8.0 сбор статистики автоматически выполняется при запуске "VACUUM ANALYZE".

postgis_version()

Возвращает версию PostGIS и опции, с которыми он был скомпилирован.

Замечание

До версии 1.1.0 это была процедурная функция и, поэтому, возможно, возвращает неправильную информацию (в случае неполного апгрейда базы данных).

postgis_lib_version()

Возвращает номер версии библиотеки PostGIS.

Присутствует с 0.9.0

postgis_lib_build_date()

Возвращает дату сборки библиотеки PostGIS.

Присутствует с 1.0.0RC1

postgis_script_build_date()

Возвращает дату создания скриптов PostGIS.

Присутствует с 1.0.0RC1.

postgis_scripts_installed()

Возвращает версию скриптов PostGIS, инсталлированных в базе данных.

Замечание

Если вывод этой функции не совпадает с выводом postgis_scripts_released(), то, вероятно, вы не выполнили должным образом апгрейд существующей базы. Смотрите подробности в разделе Апгрейд.

Присутствует с 0.9.0.

postgis_scripts_released()

Возвращает номер версии скрипта lwpostgis.sql, предоставленного с инсталляцией библиотеки PostGIS.

Замечание

Начиная с версии 1.1.0 эта функция возвращает то же значение, что и postgis_lib_version(). Оставлена для обратной совместимости.

Присутствует с 0.9.0.

postgis_geos_version()

Возвращает номер версии библиотеки GEOS, или NULL, если поддержка GEOS не включена.

Присутствует с 0.9.0

postgis_jts_version()

Возвращает номер версии библиотеки JTS, или NULL, если поддержка JTS не включена.

Присутствует с 1.1.0

postgis_proj_version()

Возвращает номер версии библиотеки PROJ4, или NULL, если поддержка PROJ4 не включена.

Присутствует с 0.9.0

postgis_uses_stats()

Возвращает true, если включено использование STATS, и false в противном случае.

Присутствует с 0.9.0

postgis_full_version()

Сообщает полную версию PostGIS и информацию о конфигурации сборки.

Присутствует с 0.9.0

6.2.2. Операторы

A &< B

Оператор "&<" возвращает true, если поверхность A частично совпадает или находится слева от поверхности B.

A &> B

Оператор "&>" возвращает true, если поверхность A частично совпадает или находится справа от поверхности B.

A << B

Опрератор "<<" возвращает true, если поверхность A находится строго слева от поверхности B.

A >> B

Опрератор ">>" возвращает true, если поверхность A находится строго справа от поверхности B.

A &<| B

Оператор "&<|" возвращает true, если поверхность A частично совпадает или находится ниже поверхности B.

A |&> B

Оператор "|&>" возвращает true, если поверхность A частично совпадает или находится выше поверхности B.

A <<| B

Опрератор "<<|" возвращает true, если поверхность A находится строго ниже поверхности B.

A |>> B

Опрератор "|>>" возвращает true, если поверхность A находится строго выше поверхности B.

A ~= B

Оператор "~=" - это оператор "то же самое". Он проверяет, являются ли обе части геометрически эквивалентными. Так, если A и B совпдают "вершина-в-вершину", то оператор вернет true.

A @ B

Оператор "@" возвращает true, если поерхность A полностью содержит поверхность B.

A ~ B

Оператор "~" возвращает true, если поерхность A полностью содержится в поверхности B.

A && B

Оператор "&&" является оператором "частичного перекрытия" ("overlaps"). Если поверхность A частично перекрывается поверхностью B, то оператор вернет true.

6.2.3. Функции измерения

ST_area2d(geometry)

Возвращает площадь геометрии, являющейся полигоном или мультиполигоном.

ST_distance_sphere(point, point)

Возвращает линейное расстояние в метрах между двумя точками (широта/долгота). Вычисляет для сферической поверхности с радиусом 6370986 метров (Земля). Работает быстрее, чем distance_spheroid(), но менее точно. Выполняется только для точек.

ST_distance_spheroid(point, point, spheroid)

Возвращает линейное расстояние в метрах между двумя точками (широта/долгота) на заданном сфероиде. Смотрите определение сфероида, данное для length_spheroid(). В настоящее время выполняется только для точек.

ST_length2d(geometry)

Возвращает 2-мерную длину (2-dimensional length) геометрии, если она является ломаной или мульти-ломаной.

ST_length3d(geometry)

Возвращает 3-мерную длину (3-dimensional length) геометрии, если она является ломаной или мульти-ломаной.

ST_length_spheroid(geometry,spheroid)

Вычисляет длину геометрии на эллипсоиде. Может быть полезна, если координатами геометрии являются широта/долгота и длина желательна без репроекции. Эллипсоид является особым типом базы данных и может быть сконструирован следующим способом:

SPHEROID[<NAME>,<SEMI-MAJOR
AXIS>,<INVERSE FLATTENING>]

Например:

SPHEROID["GRS_1980",6378137,298.257222101]

Пример вычисления должен быть похож на это:

SELECT length_spheroid( geometry_column,
'SPHEROID["GRS_1980",6378137,298.257222101]' )
FROM geometry_table;

ST_length3d_spheroid(geometry,spheroid)

Вычисляет длину геометрии на эллипсоиде с учетом возвышенности. Это аналогично length_spheroid, но учитывает вертикальные координаты (выраженные в тех же единицах, что и оси сфероида), и используется для расчета дополнительного расстояния, которое добавляется вертикальным перемещением.

ST_distance(geometry, geometry)

Возвращает наименьшее расстояние между двумя геометриями.

ST_max_distance(linestring,linestring)

Возвращает наибольшее расстояние между двумя линиями (line strings).

ST_perimeter(geometry)

Возвращает 2-мерный периметр геометрии, если она является полиноном или мульти-полигоном.

ST_perimeter2d(geometry)

Возвращает 2-мерный периметр геометрии, если она является полиноном или мульти-полигоном.

ST_perimeter3d(geometry)

Возвращает 3-мерный периметр геометрии, если она является полиноном или мульти-полигоном.

ST_azimuth(geometry, geometry)

Возвращает азимут сегмента, определенного данными точечными геометриями, или NULL, если обе точки совпадают. Возвращает значение в радианах.

Присутствует с 1.1.0

6.2.4. Геометрический вывод

ST_AsBinary(geometry,{'NDR'|'XDR'})

Возвращает геометрию в "известном-бинарном" ("well-known-binary") формате OGC, как набор байтов с использованием шиффрования нижнего (NDR) и верхнего (XDR) порядка байтов. Это используется в бинарном курсоре для вывода данных из базы без преобразования их к строковому представлению.

ST_AsEWKT(geometry)

Возвращает геометрию в формате EWKT (как текст).

ST_AsEWKB(geometry, {'NDR'|'XDR'})

Возвращает геометрию в формате EWKB, как набор байтов с использованием шиффрования нижнего (NDR) и верхнего (XDR) порядка байтов.

ST_AsHEXEWKB(geometry, {'NDR'|'XDR'})

Возвращает геометрию в формате HEXEWKB, как текст с использованием шиффрования нижнего (NDR) и верхнего (XDR) порядка байтов.

ST_AsSVG(geometry, [rel], [precision])

Возвращает геометрию как путь к данным SVG. При использовании 1 в качестве второго аргумента, путь к данным выдается в терминах относительного движения. По умолчанию (это есть 0) выдается абсолютный путь. Третий аргумент может быть использован для сокращения максимума числа десятичных цифр в выводе (по умолчанию - 15). Точечные геометрии будут выданы как cx/cy, когда аргумент 'rel' равен 0, и как x/y, когда 'rel' равен 1.

ST_AsGML([version], geometry, [precision])

Возвращает геометрию, как элемент GML. Параметр version, если указан, должен быть либо 2, либо 3. Если параметр version не указан, то используется умолчальное значение - 2. Третий аргумент может быть использован для ограничения максимума числа значащих цифр в выводе (по умолчанию - 15).

ST_AsKML(geometry, [precision])

Возвращает геометрию как элемент KML. Второй аргумент может быть использован для ограничения максимума числа значащих цифр в выводе (по умолчанию - 15).

6.2.5. Геометрические конструкторы

ST_GeomFromEWKT(text)

Создает геометрию из EWKT.

ST_GeomFromEWKB(bytea)

Создает геометрию из EWKB.

ST_MakePoint(<x>, <y>, [<z>], [<m>])

Создает точку 2d-, 3dz- или 4d-геометрии.

ST_MakePointM(<x>, <y>, <m>)

Создает точку 3dm-геометрии.

ST_MakeBox2D(<LL>, <UR>)

Создает BOX2D, определенный с помощью данных точечных геометрий.

ST_MakeBox3D(<LLB>, <URT>)

Создает BOX2D, определенный с помощью данных точечных геометрий.

ST_MakeLine(geometry set)

Создает ломаную из множества точечных геометрий. При агрегровании вы можете использовать вложенный SELECT для упорядочения точек после их получения.

ST_MakeLine(geometry, geometry)

Создает Linestring с помощью двух данных точечных геометрий.

ST_LineFromMultiPoint(multipoint)

Создает Linestring с помощью геометрии MultiPoint.

ST_MakePolygon(linestring, [linestring[]])

Создает полигон, сформированный с помощью данного остова и массива дыр. Вы можете создать геометрический массив с помощью Accum. Вводимые геометрии должны быть замкнутыми ломаными (смотрите IsClosed и GeometryType).

ST_BuildArea(geometry)

Создает плоскую геометрию, сформированную с помощью линий, составляющих заданную геометрию. Возвращаемый тип может быть полигоном или мультиполигоном в зависимости от ввода. Если вводимые линии не образуют полигона, возвращается NULL.

Смотрите также BdPolyFromText и BdMPolyFromText - враперы этой функции со стандартным интерфейсом OGC.

Поддерживается с 1.1.0. Требует GEOS >= 2.1.0.

ST_Polygonize(geometry set)

Агрегация. Создает GeometryCollection, содержащий возможные полигоны, сформированные из составных линий указанного множества геометрий.

Поддерживается с 1.0.0RC1. Требует >= 2.1.0.

ST_Collect(geometry set)

Функция возвращает GEOMETRYCOLLECTION или объект MULTI для множества геометрий. Функция collect() является "агрегирующей" в терминологии PostgreSQL. Это означает, что она оперирует списком данных, наподобие того, как это делают функции sum() и mean(). Например, "SELECT COLLECT(GEOM) FROM GEOMTABLE GROUP BY ATTRCOLUMN" вернет отдельный GEOMETRYCOLLECTION для каждого уникального значения ATTRCOLUMN.

ST_Collect(geometry, geometry)

Эта функция возращает геометрию, которая является коллекцией двух введенных геометрий. Вывод будет иметь тип MULTI* или GEOMETRYCOLLECTION.

ST_Dump(geometry)

Это есть функция возвращающая-множество (SRF - set-returning function). Она возвращает набор строк geometry_dump, сформированных в виде геометрии (geom) и массива целых чисел (path). Если введенная геометрия имеет простой тип (POINT, LINESTRING, POLYGON), будет возвращена единственная запись с пустым массивом "path" и введеной геометрией в качестве "geom". Если введенная геометрия является коллекцией или MULTI, то будет возвращено по записи на каждую компоненту коллекции, а "path" будет указывать позицию компоненты внутри коллекции.

Поддерживается с PostGIS 1.0.0RC1. Требует PostgreSQL 7.3 или более высокой версии.

ST_DumpRings(geometry)

Это есть функция возвращающая-множество (SRF - set-returning function). Она возвращает набор строк geometry_dump, сформированных в виде геометрии (geom) и массива целых чисел (path). Поле "path" является индексом полигонального круга, содержащим единственный элемент: 0 для остова, номер дырки для дырок. Поле "geom" содержит соответствующий круг, как полигон.

Поддерживается с PostGIS 1.1.3. Требует PostgreSQL 7.3 или более высокой версии.

6.2.6. Геометрические редакторы

ST_AddBBOX(geometry)

Добавляет к геометрии ограничивающий контейнер. Это приведет к ускорению запросов, основанных на ограничивающих контейнерах, но увеличивает размер геометрий.

ST_DropBBOX(geometry)

Удаляет из кэша поверхность геометрии. Это уменьшает размер геометрии, но замедляет запросы, использующие поверхности.

ST_AddPoint(linestring, point, [<position>])

Добавляет точку в ломаную после точки <pos> (нумерация начинается с 0). Третим параметром можно пренебречь или установить в -1, что одно и то-же.

ST_RemovePoint(linestring, offset)

Удаляет точку ломаной. Offset является 0-основанием.

Поддерживается с 1.1.0.

ST_SetPoint(linestring, N, point)

Заменяет точку N ломаной на заданную точку. Нумерация начинается с 0.

Поддерживается с 1.1.0.

ST_Force_collection(geometry)

Конвертирует геометрию в GEOMETRYCOLLECTION. Может быть использована для упрощения представления WKB.

ST_Force_2d(geometry)

Насильно приводит геометрию в "2-мерный режим", так чтобы весь вывод был представлен только в координатах X и Y. Это может быть полезно для OGC-совместимого вывода (поскольку OGC определяет только 2-D геометрии).

ST_Force_3dz(geometry), ST_Force_3d(geometry)

Насильно переводят геометрии в режим XYZ.

ST_Force_3dm(geometry)

Насильно переводит геометрии в режим XYM.

ST_Force_4d(geometry)

Насильно переводит геометрии в режим XYZM.

ST_Multi(geometry)

Возвращает геометрию как геометрию MULTI*. Если данная геометрия уже является MULTI*, она будет возвращена неизменившейся.

ST_Transform(geometry,integer)

Возвращает новую геометрии, все координаты которой трансформированы соответственно SRID, указанному как целочисленный параметр. Назначенный SRID должен существовать в таблице SPATIAL_REF_SYS.

ST_Affine(geometry, float8, float8, float8, float8, float8, float8, float8, float8, float8, float8, float8, float8)

Применяет 3d аффиную трансформацию к геометрии. Вызов

Affine(geom, a, b, c, d, e, f, g, h, i, xoff, yoff, zoff)

представляет матрицу трансформации

/ a  b  c  xoff \
| d  e  f  yoff |
| g  h  i  zoff |
\ 0  0  0     1 /

и вершины будут трансформированы следующим образом:

x' = a*x + b*y + c*z + xoff
y' = d*x + e*y + f*z + yoff
z' = g*x + h*y + i*z + zoff

Все нижеперичисленные функции трансформации/масштабирования являются частными афинными трансформациями.

Поддерживается с 1.1.2.

ST_Affine(geometry, float8, float8, float8, float8, float8, float8)

Применяет 2d аффиную трансформацию к геометрии. Вызов

Affine(geom, a, b, d, e, xoff, yoff)

представляет матрицу трансформации

/  a  b  0  xoff  \       /  a  b  xoff  \
|  d  e  0  yoff  | rsp.  |  d  e  yoff  |
|  0  0  1     0  |       \  0  0     1  /
\  0  0  0     1  /

и вершины будут трансформированы следующим образом:

x' = a*x + b*y + xoff
y' = d*x + e*y + yoff
z' = z 

Этот метод является частностью 3D-метода, описанного выше.

Поддерживается с 1.1.2.

ST_Translate(geometry, float8, float8, float8)

Переводит геометрию в новое местоположение с помощью числовых параметров смещения. Пример: translate(geom, X, Y, Z).

ST_Scale(geometry, float8, float8, float8)

Масштабирует геометрию в новый размер путем умножения координат на соответствующие параметры. Например: scale(geom, Xfactor, Yfactor, Zfactor).

Поддерживается с 1.1.0.

ST_RotateZ(geometry, float8), ST_RotateX(geometry, float8), ST_RotateY(geometry, float8)

Поворачивает геометрию вокруг оси Z, X или Y на данный угол, заданный в радианах. Согласно правилу правой руки.

Поддерживается с 1.1.2.

ST_TransScale(geometry, float8, float8, float8, float8)

Сначала смещает геометрию с помощью первых двух чисел, а потом масштабирует ее с помощью вторых двух чисел. Работает только с 2D. Вызов transscale(geom, X, Y, XFactor, YFactor) внутренне приводит к вызову affine(geom, XFactor, 0, 0, 0, YFactor, 0, 0, 0, 1, X*XFactor, Y*YFactor, 0).

Поддерживается с 1.1.0.

ST_Reverse(geometry)

Возвращает геометрию с противоположным порядком вершин.

ST_ForceRHR(geometry)

Приводит коллекцию полигонов в соответствие с "правилом правой руки".

ST_Simplify(geometry, tolerance)

Возвращает "упрощенную" версию данной геометрии с помощью алгоритма Дугласа-Пеукера (Douglas-Peuker). На самом деле будет преобразовывать толко (мульти)линии и (мульти)полигоны, но вы можете безбоязненно применять ее к любым типам геометрий. Так как упрощение основано на объект-посредством-объекта (object-by-object), вы можете скормить этой функции GeometryCollection. Заметим, что возвращенная геометрия может не быть простой (смотрите IsSimple).

ST_SnapToGrid(geometry, originX, originY, sizeX, sizeY), ST_SnapToGrid(geometry, sizeX, sizeY), ST_SnapToGrid(geometry, size)

Выхватывает все точки введенной геометрии в грид, описанный координатами начала и размерами ячеек. Удаляет последовательные точки, попадающие в те же ячейки и, в конечном счете, возвращает NULL, если выведенных точек недостаточно, чтобы определить геометрию данного типа. Свернутые геометрии удаляются из коллекции.

Замечание

Возвращаемая геометрия может потерять простоту (смотрите IsSimple).

Замечание

До релиза 1.1.0 эта функция всегда возвращала 2d-геометрию. Начиная с 1.1.0 возвращаемая геометрия будет иметь ту же размерность, что и введеная. Размерности высших порядков остаются нетронутыми. Используйте версию, берущую второй геометрический аргумент, чтобы определить все измерения сетки.

Поддерживается с 1.0.0RC1.

ST_SnapToGrid(geometry, geometry, sizeX, sizeY, sizeZ, sizeM)

Выхватывает все точки введенной геометрии в грид, описанный началом (второй аргумент, должен быть точкой) и размерами ячеек. Если вы не хотите видеть грид, укажите любой размер как 0.

Поддерживается с 1.1.0.

ST_Segmentize(geometry, maxlength)

Возвращает модифицированную геометрию без секторов, длиньше указанного размера. Интерполирующие точки будут иметь значения Z и M (если нужны), установленные в 0. Вычисление размеров производится только в 2d.

ST_LineMerge(geometry)

Возвращает ломаную(ые), сформированную(ые) посредством соединения линий, составляющих ввод.

Поддерживается с 1.1.0. Требует GEOS >= 2.1.0

6.2.7. Линейные ссылки

ST_line_interpolate_point(linestring, location)

Возвращает точки, интерполирующие линию. Первый аргумент должен иметь тип LINESTRING. Второй аргумент является float8 между 0 и 1, представляющим дробную часть всей 2d-длины местоположения точек.

Смотрите line_locate_point(), чтобы вычислить местоположение линии, самое близкое к точке.

Замечание

Начиная с релиза 1.1.1 эта функция также интерполирует значения M и Z (если предоставлены), тогда как предыдущие релизы устанавливали их в 0.0.

Поддерживается с 0.8.2.

ST_line_substring(linestring, start, end)

Возвращает ломаную - часть первого аргумента, сосотоящая из его звеньев. Второй и третий аргумент должны быть значениями float8 между 0 и 1.

Если 'start' и 'end' имеют одинаковые значения, это эквивалентно line_interpolate_point().

Смотрите line_locate_point() про вычисление линии местоположения, ближайшей к точке.

Замечание

Начиная с релиза 1.1.1 эта функция также интерполирует значения M и Z (если предоставлены), тогда как предыдущие релизы устанавливали их в неопределенное значение.

Поддерживается с 1.1.0.

ST_line_locate_point(LineString, Point)

Возвращается float между 0 и 1, представляющий местонахождение ближайшей к указанной точке вершины ломаной, как отношение к общей длине 2d-линии.

Вы можете использовать полученное местоположение для извлечения точки (line_interpolate_point) или части ломаной (line_substring).

Поддерживается с 1.1.0.

ST_locate_along_measure(geometry, float8)

Возвращает значение производной геометрии, элементы которой соответствуют указанной мере. Полигональные элементы не поддерживаются.

Семантика специфицирована в ISO/IEC CD 13249-3:200x(E) - Текст продолжен на CD редакционного заседания.

Поддерживается с 1.1.0.

ST_locate_between_measures(geometry, float8, float8)

Возвращает производную геометрическую коллекцию с элементами, которые вклучают в себя указанную окружность. Полигональные элементы не поддерживаются.

Семантика определена в ISO/IEC CD 13249-3:200x(E) - Текст продолжен на CD редакционного заседания.

Поддерживается с 1.1.0.

6.2.8. Разное

ST_Summary(geometry)

Возвращает текстовое резюме содержания геометрии.

ST_box2d(geometry)

Возвращает BOX2D, представленный максимальными протяженностями геометрии.

ST_box3d(geometry)

Возвращает BOX3D, представленный максимальными протяженностями геометрии.

ST_extent(geometry set)

Функция extent() является "агрегирующей" функцией в терминологии PostgreSQL. Это означает, что она оперирует набором данных, аналогично тому, как это делают функции sum() и mean(). Например, "SELECT EXTENT(GEOM) FROM GEOMTABLE" возвратит BOX3D с максимальными протяженностями для всего содержимого таблицы. Аналогично, "SELECT EXTENT(GEOM) FROM GEOMTABLE GROUP BY CATEGORY" возвратит по одному результату для каждой категории.

ST_zmflag(geometry)

Возвращает флаг ZM (семантическая размерность - dimension semantic) указанной геометрии, как малое целое (small int). Значения: 0=2d, 1=3dm, 2=3dz, 3=4d.

ST_HasBBOX(geometry)

Возвращает TRUE, если ограничивающий контейнер геометрии является кэшированным. В противном случае - FALSE. Используйте addBBOX() и dropBBOX() для управления кэшированием.

ST_ndims(geometry)

Возвращает число размерностей геометрии, как малое целое (small int). Значения: 2, 3 или 4.

ST_nrings(geometry)

Если геометрия является полигоном или мультиполигоном, возвращает число кругов.

ST_npoints(geometry)

Возвращает число точек в геометрии.

ST_isvalid(geometry)

Возвращает true, если геометрия является валидной.

ST_expand(geometry, float)

Эта функция возвращает ограничивающий контейнер, расширяющий ограничивающий контейнер введенной геометрии на число, указанное во втором аргументе. Очень полезно при запросах distance() для добавления к запросу фильтра по индексу.

ST_estimated_extent([schema], table, geocolumn)

Возвращает "оценочную" протяженность данной пространственной таблицы. Оценка берется из статистики геометрических столбцов. Если не определена иная, будет использоваться текущая схема.

В PostgreSQL>=8.0.0 сбор статистики осуществляется с помощью VACUUM ANALYZE, и результат будет составлять около 95% от реального.

В PostgreSQL<8.0.0 сбор статистики осуществляется с помощью update_geometry_stats(), и результат будет точным.

ST_find_srid(varchar,varchar,varchar)

Синтаксис является следующим: find_srid(<ДБ/схема>, <таблица>, <столбец>). Функция возвращает целочисленный SRID указанного столбца, находящийся в таблице GEOMETRY_COLUMNS. Если геометрический столбец не был должным образом создан с помощью функции AddGeometryColumns(), эта функция не будет работать правильно.

ST_mem_size(geometry)

Возвращает размер пространства (в байтах), занимаемое геометрией.

ST_point_inside_circle(geometry, float, float, float)

Синтаксис этой функции: point_inside_circle(<геометрия>, <центр_круга_x>, <центр_круга_y>, <радиус>). Возвращает true, если данная геометрия является точкой и находится внутри круга. В противном случае возвращает false.

ST_xmin(box3d) ymin(box3d) zmin(box3d)

Возвращает запрошенный минимальный ограничивающий ящик.

ST_xmax(box3d) ymax(box3d) zmax(box3d)

Возвращает запрошенный максимальный ограничивающий ящик.

ST_Accum(geometry set)

Агрегат. Строит массив геометрий.

6.2.9. Поддержка долгих транзакций

Этот модуль с ассоциированными функциями pl/pgsql может быть использован для организации поддержки долгих блокировок, описанных в спецификации Сервиса возможностей Web.

Замечание

Пользователи должны использовать сериализуемый уровень транзакции, иначе механизм блокировок может не работать.

EnableLongTransactions()

Включает поддержку долгих транзакций. Эта функция создает необходимые метаданные таблиц; должна быть вызвана перед использованием других функций этого раздела. Повторный вызов безвреден.

Поддерживается с 1.1.3.

DisableLongTransactions()

Отключает поддержку долгих транзакций. Эта функция удаляет метаданные таблиц, поддерживающие долгие транзакции, и удаляет все триггеры, приаттаченные к заблокированным таблицам.

Поддерживается с 1.1.3.

CheckAuth([<schema>], <table>, <rowid_col>)

Проверяет UPDATE-ы и DELETE-ы записей данной таблицы на существование авторизации. Идентифицирует строки с помощью столбца <rowid_col>.

Поддерживается с 1.1.3.

LockRow([<schema>], <table>, <rowid>, <authid>, [<expires>])

Устанавливает блокировку/авторизацию для указанной записи в таблице. <authid> является текстовым значением, <expires> - timestamp, по умолчанию равный now()+1hour. Возвращает 1, если блокировка прошла успешно, и 0 - в противном случае (уже заблокирована другим пользователем).

Поддерживается с 1.1.3.

UnlockRows(<authid>)

Снять все блокировки, проведенные с указанным идентификатором авторизации. Возвращает число всех снятых блокировок.

Поддерживается с 1.1.3.

AddAuth(<authid>)

Добавляет признак авторизации для использования в текущей транзакции.

Поддерживается с 1.1.3.


Назад Выше Вперед
Глава 6. Справочник PostGIS Начало 6.3. Функции SQL-MM
Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2008-04-22 15:03:02

Метки материала: руководство, PostGIS, справочник, функции, EWKB, EWKT, PgSQL, SRID

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.