Предположим, у меня есть таблица, определенная следующим образом:
CREATE TABLE gtest (name varchar, geom geometry);
Чтобы вставить, я могу просто сделать это:
INSERT INTO gtest
VALUES (
'Polygon',
'SRID=4326;POLYGON((0 0,1 0,1 1,0 1,0 0))'
);
Мне не нужно оборачивать WKTстрока в функции ST_GeomFromText()
, потому что PostGIS имеет неявное приведение, которое делает это.Это хорошо объясняется @JGH здесь
С помощью команды Postgres \dC
можно перечислить определенные приведенные типы, в том числе:
List of casts
Source type | Target type | Function | Implicit?
-------------------------+-----------------------------+--------------------+---------------
text | geometry | geometry | yes
geometry | text | text | yes
Я быЯ хотел бы сделать так, чтобы я мог просто сделать SELECT * FROM gtest
и получить результаты столбца геометрии, неявно преобразованные в WKT.В настоящее время он будет просто отображать их как WKB.
Сначала я попытался создать новое приведение следующим образом:
CREATE CAST (geometry AS text) WITH FUNCTION st_astext(geometry) AS IMPLICIT;
Это вернуло ошибку, так как приведение из геометрии к тексту уже существует(как видно из таблицы).
Затем я попытался ALTER EXTENSION postgis DROP CAST (geometry as text);
, а затем DROP CAST (geometry as text);
и смог создать новый актерский состав:
List of casts
Source type | Target type | Function | Implicit?
-------------------------+-----------------------------+--------------------+---------------
geometry | text | st_astext | yes
Это все еще неработать, однако, когда я делаю выбор, я все равно получаю результаты в WKB.
Во-первых, возможно ли это?Я просто что-то делаю не так?Во-вторых, не нарушатся ли какие-либо геометрические функции, добавив это неявное приведение?