GRASS GIS 7 Programmer's Manual  7.9.dev(2021)-e5379bbd7
open_pg.c File Reference

Vector library - Open PostGIS layer as vector map layer. More...

#include <string.h>
#include <stdlib.h>
#include <grass/vector.h>
#include <grass/dbmi.h>
#include <grass/glocale.h>
#include "local_proto.h"
#include "pg_local_proto.h"
Include dependency graph for open_pg.c:

Go to the source code of this file.

Functions

int V1_open_old_pg (struct Map_info *Map, int update)
 Open vector map - PostGIS feature table on non-topological level. More...
 
int V2_open_old_pg (struct Map_info *Map)
 Open vector map - PostGIS feature table on topological level. More...
 
int V1_open_new_pg (struct Map_info *Map, const char *name, int with_z)
 Prepare PostGIS database for creating new feature table (level 1) More...
 
int Vect__open_topo_pg (struct Map_info *Map, int head_only, int update)
 Read full-topology for PostGIS links. More...
 
int Vect__load_plus_head (struct Map_info *Map)
 Read topo from PostGIS topology schema – header info only. More...
 
int Vect__load_plus_pg (struct Map_info *Map, int head_only)
 Read topo info from PostGIS topology schema. More...
 
int Vect__load_map_nodes_pg (struct Map_info *Map, int geom_only)
 Read nodes from DB. More...
 
int Vect__load_map_lines_pg (struct Map_info *Map)
 Read features from DB. More...
 

Detailed Description

Vector library - Open PostGIS layer as vector map layer.

Higher level functions for reading/writing/manipulating vectors.

(C) 2011-2013 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
Martin Landa <landa.martin gmail.com>

Definition in file open_pg.c.

Function Documentation

◆ V1_open_new_pg()

int V1_open_new_pg ( struct Map_info Map,
const char *  name,
int  with_z 
)

Prepare PostGIS database for creating new feature table (level 1)

New PostGIS table is created when writing features by Vect_wrile_line().

Parameters
[out]Mappointer to Map_info structure
namename of PostGIS feature table to create
with_zWITH_Z for 3D vector data otherwise WITHOUT_Z
Returns
0 success
-1 error

Definition at line 219 of file open_pg.c.

References _, Format_info_pg::conninfo, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_warning(), Format_info::pg, Format_info_pg::res, and Format_info_pg::table_name.

◆ V1_open_old_pg()

int V1_open_old_pg ( struct Map_info Map,
int  update 
)

Open vector map - PostGIS feature table on non-topological level.

Parameters
[in,out]Mappointer to Map_info structure
updateTRUE for write mode, otherwise read-only
Returns
0 success
-1 error

Definition at line 70 of file open_pg.c.

References _, Format_info_pg::conn, Format_info_pg::conninfo, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_warning(), Format_info::pg, and Format_info_pg::table_name.

◆ V2_open_old_pg()

int V2_open_old_pg ( struct Map_info Map)

Open vector map - PostGIS feature table on topological level.

Simple feature access:

  • open feature index file PostGIS Topology:
  • check if topological schema exists
Parameters
[in,out]Mappointer to Map_info structure
Returns
0 success
-1 error

Definition at line 161 of file open_pg.c.

References _, Format_info_pg::conn, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), G_zero(), Map_info::mapset, Map_info::name, Format_info_pg::offset, Format_info::pg, Format_info_pg::res, Format_info_pg::toposchema_id, Format_info_pg::toposchema_name, Vect_get_full_name(), and Vect_open_fidx().

◆ Vect__load_map_lines_pg()

◆ Vect__load_map_nodes_pg()

int Vect__load_map_nodes_pg ( struct Map_info Map,
int  geom_only 
)

◆ Vect__load_plus_head()

int Vect__load_plus_head ( struct Map_info Map)

Read topo from PostGIS topology schema – header info only.

Parameters
[in,out]pluspointer to Plus_head struct
Returns
0 on success
-1 on error

Definition at line 1095 of file open_pg.c.

References _, Format_info_pg::conn, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_warning(), Plus_head::off_t_size, Format_info::pg, Map_info::plus, Format_info_pg::schema_name, Format_info_pg::table_name, Format_info_pg::topogeom_column, and Format_info_pg::toposchema_id.

◆ Vect__load_plus_pg()

int Vect__load_plus_pg ( struct Map_info Map,
int  head_only 
)

Read topo info from PostGIS topology schema.

Parameters
pg_infopointer to Format_info_pg
[in,out]pluspointer to Plus_head struct
head_onlyTRUE to read only header info
Returns
0 on success
-1 on error

Definition at line 1275 of file open_pg.c.

◆ Vect__open_topo_pg()

int Vect__open_topo_pg ( struct Map_info Map,
int  head_only,
int  update 
)

Read full-topology for PostGIS links.

Note: Only 2D topological primitives are currently supported

Parameters
[in,out]Mappointer to Map_info structure
head_onlyTRUE to read only header
updateTRUE to clean GRASS topology in update mode
Returns
0 on success
1 topology layer does not exist
-1 on error

Definition at line 317 of file open_pg.c.

References Map_info::fInfo, Map_info::open, Format_info::pg, Map_info::plus, and VECT_OPEN_CODE.