Я пытаюсь найти способ автоматического вызова функции в определенном столбце без фактического вызова ее в операторе 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?
Спасибо