]> granicus.if.org Git - postgis/commitdiff
(#393) shp2pgsql returns "fseek(-xxx) failed on DBF file." for large (>2GB) DBF files
authorPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 30 Jan 2012 02:47:34 +0000 (02:47 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 30 Jan 2012 02:47:34 +0000 (02:47 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8967 b70326c6-7e19-0410-871a-916f4a2858ee

loader/pgsql2shp-core.c
loader/pgsql2shp-core.h
loader/safileio.c
loader/shapefil.h
loader/shp2pgsql-core.h

index d2abacf5595cdce2cd38ce36186c308af0dcfed0..a438dfbdf1f907e4a5f4580f2b53cae3f04e9534 100644 (file)
 
 #include "pgsql2shp-core.h"
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 /* Solaris9 does not provide stdint.h */
 /* #include <stdint.h> */
 #include <inttypes.h>
-#include <sys/types.h> /* for getpid() */
 
 #ifdef HAVE_UNISTD_H /* for getpid() and getopt */
 #include <unistd.h>
 #include <sys/param.h>
 #endif
 
-#include "libpq-fe.h"
-#include "shapefil.h"
-#include "getopt.h"
-
 #include "../liblwgeom/liblwgeom.h" /* for LWGEOM struct and funx */
 #include "../liblwgeom/lwgeom_log.h" /* for LWDEBUG macros */
 
index 8f5dfe7579ae16f1fc7b97b58f4bae0eec8ca20e..bd4f7cef16d14ea0218d8817402e915e980ce3a5 100644 (file)
 #include <ctype.h>
 #include <unistd.h>
 #include <errno.h>
+#include <math.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <iconv.h>
 
+#include "../postgis_config.h"
 #include "libpq-fe.h"
 #include "shapefil.h"
 #include "shpcommon.h"
index f3affe2ea504fb8d559d878544765120dd140dcb..a7d843207283e8bf7941418e6fec58a9b5169a67 100644 (file)
@@ -76,6 +76,18 @@ SHP_CVSID("$Id: safileio.c,v 1.4 2008-01-16 20:05:14 bram Exp $");
 #   endif
 #endif
 
+/* Local prototypes */
+SAFile SADFOpen( const char *pszFilename, const char *pszAccess );
+SAOffset SADFRead( void *p, SAOffset size, SAOffset nmemb, SAFile file );
+SAOffset SADFWrite( void *p, SAOffset size, SAOffset nmemb, SAFile file );
+SAOffset SADFSeek( SAFile file, SAOffset offset, int whence );
+SAOffset SADFTell( SAFile file );
+int SADFFlush( SAFile file );
+int SADFClose( SAFile file );
+int SADRemove( const char *filename );
+void SADError( const char *message );
+
+
 /************************************************************************/
 /*                              SADFOpen()                              */
 /************************************************************************/
@@ -115,7 +127,11 @@ SAOffset SADFWrite( void *p, SAOffset size, SAOffset nmemb, SAFile file )
 SAOffset SADFSeek( SAFile file, SAOffset offset, int whence )
 
 {
+#ifdef HAVE_FSEEKO
+    return (SAOffset) fseeko( (FILE *) file, (off_t) offset, whence );
+#else
     return (SAOffset) fseek( (FILE *) file, (long) offset, whence );
+#endif
 }
 
 /************************************************************************/
@@ -125,7 +141,11 @@ SAOffset SADFSeek( SAFile file, SAOffset offset, int whence )
 SAOffset SADFTell( SAFile file )
 
 {
+#ifdef HAVE_FSEEKO
+    return (SAOffset) ftello( (FILE *) file );
+#else
     return (SAOffset) ftell( (FILE *) file );
+#endif
 }
 
 /************************************************************************/
index b6ca718ed288cbecf9ca1c167c541d494ff53319..80854989b8449706a8d502922bca2793a7467782 100644 (file)
  * try to improve SHPAPI_CALL docs
  */
 
+#define _FILE_OFFSET_BITS 64
 #include <stdio.h>
+#include <sys/types.h>
 
 #ifdef USE_DBMALLOC
 #include <dbmalloc.h>
@@ -240,8 +242,14 @@ static char *cvsid_aw() { return( cvsid_aw() ? ((char *) NULL) : cpl_cvsid ); }
 /* -------------------------------------------------------------------- */
 typedef int *SAFile;
 
-#ifndef SAOffset
-typedef unsigned long SAOffset;
+#ifdef HAVE_SEEKO
+#      ifndef SAOffset
+       typedef off_t SAOffset;
+#      endif
+#else
+#      ifndef SAOffset
+       typedef unsigned long SAOffset;
+#      endif
 #endif
 
 typedef struct {
index 6efc072e4e59fc0a0e6462122f6962df6700677b..8e7dce50aaf8c2a46e6975be617668fb85ce6e57 100644 (file)
@@ -27,7 +27,6 @@
 #include "shpcommon.h"
 #include "getopt.h"
 
-
 #include "../liblwgeom/stringbuffer.h"
 
 #define RCSID "$Id$"