The latest set of XML changes (I think latest, at least fairly recent)
broke the win32vc build with asserts enabled. The line:
        Assert(fully_escaped || !escape_period);

>From what I can tell, this is because the Assert() puts code (the do {}
loop) *before* the declaration of StringInfoData buf, which is not
permitted.

Attached patch seems to fix this. Can someone confirm this is correct
before I put it in?

//Magnus

Index: src/backend/utils/adt/xml.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/utils/adt/xml.c,v
retrieving revision 1.27
diff -c -r1.27 xml.c
*** src/backend/utils/adt/xml.c 11 Feb 2007 22:18:15 -0000      1.27
--- src/backend/utils/adt/xml.c 13 Feb 2007 15:27:02 -0000
***************
*** 1324,1335 ****
         * SQL/XML doesn't make use of this case anywhere, so it's
         * probably a mistake.
         */
-       Assert(fully_escaped || !escape_period);
  
  #ifdef USE_LIBXML
        StringInfoData buf;
        char *p;
  
        initStringInfo(&buf);
  
        for (p = ident; *p; p += pg_mblen(p))
--- 1324,1336 ----
         * SQL/XML doesn't make use of this case anywhere, so it's
         * probably a mistake.
         */
  
  #ifdef USE_LIBXML
        StringInfoData buf;
        char *p;
  
+       Assert(fully_escaped || !escape_period);
+ 
        initStringInfo(&buf);
  
        for (p = ident; *p; p += pg_mblen(p))
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to