/*! \file lib/vector/Vlib/rewind_pg.c \brief Vector library - rewind data (PostGIS layers) Higher level functions for reading/writing/manipulating vectors. (C) 2011-2012 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 */ #include #include #include "local_proto.h" #ifdef HAVE_POSTGRES #include "pg_local_proto.h" #endif /*! \brief Rewind vector map (PostGIS layer) to cause reads to start at beginning (level 1) \param Map pointer to Map_info structure \return 0 on success \return -1 on error */ int V1_rewind_pg(struct Map_info *Map) { G_debug(2, "V1_rewind_pg(): name = %s", Map->name); #ifdef HAVE_POSTGRES struct Format_info_pg *pg_info; pg_info = &(Map->fInfo.pg); /* reset reading */ pg_info->next_line = 0; /* reset cache */ if (pg_info->cache.ctype != CACHE_MAP) { pg_info->cache.lines_num = 0; pg_info->cache.fid = -1; } pg_info->cache.lines_next = 0; /* close DB cursor if necessary */ return Vect__close_cursor_pg(pg_info); #else G_fatal_error(_("GRASS is not compiled with PostgreSQL support")); return -1; #endif } /*! \brief Rewind vector map (PostGIS layer) to cause reads to start at beginning on topological level (level 2) \param Map pointer to Map_info structure \return 0 on success \return -1 on error */ int V2_rewind_pg(struct Map_info *Map) { G_debug(2, "V2_rewind_pg(): name = %s", Map->name); #ifdef HAVE_POSTGRES /* reset reading */ Map->next_line = 1; V1_rewind_pg(Map); return 0; #else G_fatal_error(_("GRASS is not compiled with PostgreSQL support")); return -1; #endif }