English

FAQ: What is the GDB_GEOMATTR_DATA column when registering a table or creating a new feature class in a PostgreSQL geodatabase?

Question

What is the GDB_GEOMATTR_DATA column when registering a table or creating a new feature class in a PostgreSQL geodatabase?

Answer

Starting in ArcGIS 10.3.1, a new column is added to feature classes stored in PostgreSQL geodatabases using the PostGIS spatial type.  

The GDB_GEOMATTR_DATA column would only be created in PostGIS feature classes (not ST_Geometry). The column is automatically added by the geodatabase when creating new feature classes in ArcGIS or registering PostGIS spatial tables with the geodatabase. The following statement is returned in a PostgreSQL trace when registering or creating new feature classes:

ALTER TABLE test ADD COLUMN GDB_GEOMATTR_DATA BYTEA NULL

Prior to ArcGIS 10.3.1, curves in a PostgreSQL geometry feature class are stored as densified lines (not curves). The implementation of the GDB_GEOMATTR_DATA column makes the ArcGIS feature classes stored in PostgreSQL geodatabase consistent with Oracle and SQL Server native spatial types, which apply the same concept in a similar fashion.

The type of the column is binary and is generated for any spatial entity type (including points). The purpose of the column is to handle complex geometries that require a separate geometry type. For instance, in a PostGIS linestring spatial table, a curve must be stored as a circular string. This instance of multiple geometry columns in a single table is legal in a PostGIS table. However, since only one spatial type can be present in an ArcGIS feature class, features that contain curves must be handled separately to conform with this single geometry column rule. This means the curve values are written to the GDB_GEOMATTR_DATA automatically, in the background. The user is not responsible for maintaining the data in this column.

Related Information