Some databases support literals of the various GEO
type, for example in Postgres, you can do:
SELECT POINT '1,1';
And in Postgres it enforces the sub-type at the column level:
SELECT POINT '1,1' UNION ALL SELECT LINE '0,0,1,1';
ERROR: UNION could not convert type line to point
However, some databases allow using various GEO
types in the same column (such as BigQuery, as one example).
GEO
|GEOMETRY
|GEOGRAPHY
keyword itself for literal creation, for example something like SELECT GEO '1,1' FROM tbl
?GEO
column that supports any sub-type within it?The following code seems to do the job.
Having said that, the fact that we can do something doesn't necessarily mean we should do it.
A similar post states:
"Client applications usually deny the work with a single generic geometry type column as well as multiple geometry columns in one table!"
select 'POINT(1 1)'::geography
union all select 'LINESTRING(0 0,1 1)'::geography
geography |
---|
0101000020E6100000000000000000F03F000000000000F03F |
0102000020E61000000200000000000000000000000000000000000000000000000000F03F000000000000F03F |
select 'POINT(1 1)'::geometry
union all select 'LINESTRING(0 0,1 1)'::geometry
geometry |
---|
0101000000000000000000F03F000000000000F03F |
01020000000200000000000000000000000000000000000000000000000000F03F000000000000F03F |