Автоматический вызов функции в столбце при выборе или вставке - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь найти способ автоматического вызова функции в определенном столбце без фактического вызова ее в операторе sql.

Я использую PostGIS с типами для различных типов геометрии.Мне нужно вставить и выбрать указанные геометрические столбцы в хорошо известном двоичном формате (WKB), для чего требуется вызвать ST_GeomFromWKB() для вставки WKB и ST_AsBinary() для извлечения данных в том же формате.

Предположим, яиметь определенную таблицу:

CREATE TABLE IF NOT EXISTS geomtest (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    geom geometry(POLYGON, 4326) NOT NULL
);

Я хотел бы определить способ вызова соответствующих функций в столбце geom, при этом ссылаясь на столбец самостоятельно, например, если бы я должен был вызвать:

SELECT * FROM geomtest;

За кулисами я хотел бы позвонить:

SELECT id, name, ST_AsBinary(geom) FROM geomtest;

То же самое для вставок, но вместо этого вызывать ST_GeomFromWKB() за кадром.

Обратите внимание, что типом, возвращаемым по умолчанию, является geometry (в шестнадцатеричном формате), но после вызова ST_AsBinary () типом является bytea.

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

Есть ли решение этой проблемы с помощью sql?

Спасибо

...