> I've updated my VC++ build env with latest CVS, and it no 
> longer builds because of changes to GIST:
> src\backend\access\gist\gistutil.c(237) : error C2057: 
> expected constant expression
> src\backend\access\gist\gistutil.c(237) : error C2466: cannot 
> allocate an array of constant size 0
> src\backend\access\gist\gistutil.c(237) : error C2133: 'storage' :
> unknown size
> The problem appears to come from:
> #define GEVHDRSZ      (offsetof(GistEntryVector, vector[0]))
> Which can't be used in this context. 
> What would be the proper fix for that?

Hmm. Now that I look at it more clearly, it seems Hiroshi has a fix for
this in his submitted patch (that still had a lot of other problems in
the rest of it). I'm not sure if it's the proper fix, but it's there.
Comments on it?

--- src/backend/access/gist/gistutil.c.orig     Thu Jun 22 20:46:55 2006
+++ src/backend/access/gist/gistutil.c  Thu Jun 22 20:47:22 2006
@@ -228,6 +228,12 @@
  * makes union of two key
+#ifdef _MSC_VER
+#undef GEVHDRSZ
+#define GEVHDRSZ        (offsetof(GistEntryVector, vector))
 static void
 gistMakeUnionKey( GISTSTATE *giststate, int attno,
                                        GISTENTRY       *entry1, bool


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not

Reply via email to