Find all geometric data columns in PostgreSQL database

Date and time in PostgreSQL are represented by following data types: point, line, lseg, box, path, polygon, circle.

The query below lists all columns with geometric data types.

Query

select col.table_schema,
       col.table_name,
       col.ordinal_position as column_id,
       col.column_name,
       col.udt_name
from information_schema.columns col
join information_schema.tables tab on tab.table_schema = col.table_schema
                                   and tab.table_name = col.table_name
                                   and tab.table_type = 'BASE TABLE'
join pg_type typ on col.udt_name = typ.typname
where col.table_schema not in ('information_schema', 'pg_catalog')
      and typ.typcategory = 'G'
order by col.table_schema,
         col.table_name,
         col.ordinal_position;

Columns

  • table_schema - name of the schema
  • table_name - name of the table
  • column_id - column position in table
  • column_name - name of the column
  • udt_name - type of data

Rows

  • One row represents one column with a geometric data type
  • Scope of rows: all columns containing geometric data types in the schema
  • Ordered by table schema name and table name and column position in table

Sample results