The attempt is to change from multipolygon to polygon (shapefile) using:
ogrinfo tmpem122.shp -sql "alter table tmpem122 alter column OGR_GEOMETRY type geometry(polygon, 4326) using st_geometryn(geometry,1)"
I get this error message:
ERROR 1: alter table tmpem122 alter column OGR_GEOMETRY type geometry(polygon, 4326) using st_geometryn(geometry,1) failed, no such field as `OGR_GEOMETRY'.
but according to ogrinfo -sql "select * from tmpem122" tmpem122.shp, the geometry column is OGR_GEOMETRY (or _ogr_geometry_):
Layer name: tmpem122
Geometry: Polygon
Feature Count: 17
Extent: ...
...
...
Geometry Column = _ogr_geometry_
gid: String (10.0)
...
What would it be wrong? Please find the file sample here for your testing: https://file.io/U4XnvYSb69lp
PostgreSQL / PostGIS
Inside PostgreSQL this is the correct syntax to change the data type of a geometry column and fill it with the first geometry of a collection using
ST_GeometryN:Demo:
db<>fiddleogrinfo
Since you're only interested in modifying the existing geometry, you just need to modify the geometry instead of the column data type:
-dialect sqlitethe geometry column is namedgeometry.