diff options
-rw-r--r-- | storage/connect/tabxml.cpp | 11 | ||||
-rw-r--r-- | storage/connect/tabxml.h | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/storage/connect/tabxml.cpp b/storage/connect/tabxml.cpp index 717090e9c5a..68941c67be8 100644 --- a/storage/connect/tabxml.cpp +++ b/storage/connect/tabxml.cpp @@ -813,12 +813,15 @@ bool TDBXML::Initialize(PGLOBAL g) if (Void) return false; - if (Columns && !Bufdone) { + if (Columns) { // Allocate the buffers that will contain node values for (colp = (PXMLCOL)Columns; colp; colp = (PXMLCOL)colp->GetNext()) - if (!colp->IsSpecial()) // Not a pseudo column - if (colp->AllocBuf(g, Mode == MODE_INSERT)) - return true; + if (!colp->IsSpecial()) { // Not a pseudo column + if (!Bufdone && colp->AllocBuf(g, Mode == MODE_INSERT)) + return true; + + colp->Nx = colp->Sx = -1; + } // endif Special Bufdone = true; } // endif Bufdone diff --git a/storage/connect/tabxml.h b/storage/connect/tabxml.h index fb3913f08ea..42dbb038b47 100644 --- a/storage/connect/tabxml.h +++ b/storage/connect/tabxml.h @@ -157,6 +157,7 @@ class DllExport TDBXML : public TDBASE { /* Class XMLCOL: XDB table access method column descriptor. */ /***********************************************************************/ class XMLCOL : public COLBLK { + friend class TDBXML; public: // Constructors XMLCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PCSZ am = "XML"); |