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