mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
1c88b9a8d3
When null and the column is NOT NULL the value was not reset. modified: storage/connect/tabjson.cpp Fix converting bstr_t string to set error message modified: storage/connect/domdoc.cpp Fix MDEV-12768: -Wformat-overflow compile warnings modified: storage/connect/global.h modified: storage/connect/jsonudf.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/tabvct.cpp Typo (in external_lock) modified: storage/connect/ha_connect.cc Remove some warnings modified: storage/connect/odbconn.cpp modified: storage/connect/tabmysql.cpp Add MEM_RESERVE flag to virtualAlloc modified: storage/connect/plgdbutl.cpp Fix MDEV-12573: Accept=1 may show incorrect value for NULL column in CONNECT TBL modified: storage/connect/tabutil.cpp Fix wrong setting of key size when greater than 2G modified: storage/connect/xindex.cpp Fixing MDEV-12149: compile errors on Windows with /Zc:strictStrings Introduce typedef PCSZ and replace PSZ by it where it matters All done on CONNECT but compile still fails because of an included system file modified: storage/connect/array.cpp modified: storage/connect/catalog.h modified: storage/connect/colblk.cpp modified: storage/connect/colblk.h modified: storage/connect/connect.cc modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamdbf.cpp modified: storage/connect/filamdbf.h modified: storage/connect/filamfix.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamtxt.h modified: storage/connect/filamvct.cpp modified: storage/connect/filamvct.h modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/jdbccat.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h modified: storage/connect/libdoc.cpp modified: storage/connect/macutil.cpp modified: storage/connect/myconn.cpp modified: storage/connect/myutil.cpp modified: storage/connect/myutil.h modified: storage/connect/odbccat.h modified: storage/connect/odbconn.cpp modified: storage/connect/odbconn.h modified: storage/connect/os.h modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/plugutil.cpp modified: storage/connect/preparse.h modified: storage/connect/reldef.cpp modified: storage/connect/reldef.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabext.cpp modified: storage/connect/tabext.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfix.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h modified: storage/connect/table.cpp modified: storage/connect/tabmac.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmul.h modified: storage/connect/tabmysql.cpp modified: storage/connect/tabmysql.h modified: storage/connect/tabodbc.cpp modified: storage/connect/tabodbc.h modified: storage/connect/tabpivot.cpp modified: storage/connect/tabpivot.h modified: storage/connect/tabsys.cpp modified: storage/connect/tabsys.h modified: storage/connect/tabutil.cpp modified: storage/connect/tabutil.h modified: storage/connect/tabvir.cpp modified: storage/connect/tabvir.h modified: storage/connect/tabwmi.cpp modified: storage/connect/tabwmi.h modified: storage/connect/tabxml.cpp modified: storage/connect/tabxml.h modified: storage/connect/tabzip.cpp modified: storage/connect/tabzip.h modified: storage/connect/valblk.cpp modified: storage/connect/valblk.h modified: storage/connect/value.cpp modified: storage/connect/value.h modified: storage/connect/xindex.cpp modified: storage/connect/xobject.cpp modified: storage/connect/xobject.h modified: storage/connect/xtable.h Fix MDEV-12603 Insert replaces values in ZIP file modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h Fix MDEV-12686 Handle null in json Fix MDEV-12688 Insert does not handle type TINYINT modified: storage/connect/json.cpp modified: storage/connect/tabjson.cpp Fix MDEV-12653 Cannot add index for ZIP CONNECT table modified: storage/connect/filamzip.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/tabdos.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/xindex.cpp
146 lines
5.3 KiB
C++
146 lines
5.3 KiB
C++
/******************************************************************/
|
|
/* Declaration of XML document processing using MS DOM */
|
|
/* Author: Olivier Bertrand 2007 - 2012 */
|
|
/******************************************************************/
|
|
#include "plgxml.h"
|
|
|
|
typedef class DOMDOC *PDOMDOC;
|
|
typedef class DOMNODE *PDOMNODE;
|
|
typedef class DOMATTR *PDOMATTR;
|
|
typedef class DOMNODELIST *PDOMLIST;
|
|
|
|
/******************************************************************/
|
|
/* XML block. Must have the same layout than FBLOCK up to Type. */
|
|
/******************************************************************/
|
|
typedef struct _xblock { /* Loaded XML file block */
|
|
struct _xblock *Next;
|
|
LPCSTR Fname; /* Point on file name */
|
|
size_t Length; /* Used to tell if read mode */
|
|
short Count; /* Nb of times file is used */
|
|
short Type; /* TYPE_FB_XML */
|
|
int Retcode; /* Return code from Load */
|
|
MSXML2::IXMLDOMDocumentPtr Docp;/* Document interface pointer */
|
|
} XBLOCK, *PXBLOCK;
|
|
|
|
/******************************************************************/
|
|
/* Declaration of DOM document. */
|
|
/******************************************************************/
|
|
class DOMDOC : public XMLDOCUMENT {
|
|
friend class DOMNODE;
|
|
public:
|
|
// Constructor
|
|
DOMDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp);
|
|
|
|
// Properties
|
|
virtual short GetDocType(void) {return TYPE_FB_XML;}
|
|
virtual void *GetDocPtr(void) {return Docp;}
|
|
virtual void SetNofree(bool b) {} // Only libxml2
|
|
|
|
// Methods
|
|
virtual bool Initialize(PGLOBAL g, PCSZ entry, bool zipped);
|
|
virtual bool ParseFile(PGLOBAL g, char *fn);
|
|
virtual bool NewDoc(PGLOBAL g, PCSZ ver);
|
|
virtual void AddComment(PGLOBAL g, char *com);
|
|
virtual PXNODE GetRoot(PGLOBAL g);
|
|
virtual PXNODE NewRoot(PGLOBAL g, char *name);
|
|
virtual PXNODE NewPnode(PGLOBAL g, char *name);
|
|
virtual PXATTR NewPattr(PGLOBAL g);
|
|
virtual PXLIST NewPlist(PGLOBAL g);
|
|
virtual int DumpDoc(PGLOBAL g, char *ofn);
|
|
virtual void CloseDoc(PGLOBAL g, PFBLOCK xp);
|
|
virtual PFBLOCK LinkXblock(PGLOBAL g, MODE m, int rc, char *fn);
|
|
|
|
protected:
|
|
// Members
|
|
MSXML2::IXMLDOMDocumentPtr Docp;
|
|
MSXML2::IXMLDOMNodeListPtr Nlist;
|
|
HRESULT Hr;
|
|
}; // end of class DOMDOC
|
|
|
|
/******************************************************************/
|
|
/* Declaration of DOM XML node. */
|
|
/******************************************************************/
|
|
class DOMNODE : public XMLNODE {
|
|
friend class DOMDOC;
|
|
friend class DOMNODELIST;
|
|
public:
|
|
// Properties
|
|
virtual char *GetName(PGLOBAL g);
|
|
virtual int GetType(void) {return Nodep->nodeType;}
|
|
virtual PXNODE GetNext(PGLOBAL g);
|
|
virtual PXNODE GetChild(PGLOBAL g);
|
|
|
|
// Methods
|
|
virtual RCODE GetContent(PGLOBAL g, char *buf, int len);
|
|
virtual bool SetContent(PGLOBAL g, char *txtp, int len);
|
|
virtual PXNODE Clone(PGLOBAL g, PXNODE np);
|
|
virtual PXLIST GetChildElements(PGLOBAL g, char *xp, PXLIST lp);
|
|
virtual PXLIST SelectNodes(PGLOBAL g, char *xp, PXLIST lp);
|
|
virtual PXNODE SelectSingleNode(PGLOBAL g, char *xp, PXNODE np);
|
|
virtual PXATTR GetAttribute(PGLOBAL g, char *name, PXATTR ap);
|
|
virtual PXNODE AddChildNode(PGLOBAL g, PCSZ name, PXNODE np);
|
|
virtual PXATTR AddProperty(PGLOBAL g, char *name, PXATTR ap);
|
|
virtual void AddText(PGLOBAL g, PCSZ txtp);
|
|
virtual void DeleteChild(PGLOBAL g, PXNODE dnp);
|
|
|
|
protected:
|
|
// Constructor
|
|
DOMNODE(PXDOC dp, MSXML2::IXMLDOMNodePtr np);
|
|
|
|
// Members
|
|
MSXML2::IXMLDOMDocumentPtr Docp;
|
|
MSXML2::IXMLDOMNodePtr Nodep;
|
|
char Name[64];
|
|
WCHAR *Ws;
|
|
int Len;
|
|
bool Zip;
|
|
}; // end of class DOMNODE
|
|
|
|
/******************************************************************/
|
|
/* Declaration of DOM XML node list. */
|
|
/******************************************************************/
|
|
class DOMNODELIST : public XMLNODELIST {
|
|
friend class DOMDOC;
|
|
friend class DOMNODE;
|
|
public:
|
|
// Methods
|
|
virtual int GetLength(void) {return Listp->length;}
|
|
virtual PXNODE GetItem(PGLOBAL g, int n, PXNODE np);
|
|
virtual bool DropItem(PGLOBAL g, int n);
|
|
|
|
protected:
|
|
// Constructor
|
|
DOMNODELIST(PXDOC dp, MSXML2::IXMLDOMNodeListPtr lp);
|
|
|
|
// Members
|
|
MSXML2::IXMLDOMNodeListPtr Listp;
|
|
}; // end of class DOMNODELIST
|
|
|
|
/******************************************************************/
|
|
/* Declaration of DOM XML attribute. */
|
|
/******************************************************************/
|
|
class DOMATTR : public XMLATTRIBUTE {
|
|
friend class DOMDOC;
|
|
friend class DOMNODE;
|
|
public:
|
|
// Properties
|
|
virtual char *GetName(PGLOBAL g);
|
|
virtual PXATTR GetNext(PGLOBAL);
|
|
|
|
// Methods
|
|
virtual RCODE GetText(PGLOBAL g, char *bufp, int len);
|
|
virtual bool SetText(PGLOBAL g, char *txtp, int len);
|
|
|
|
protected:
|
|
// Constructor
|
|
DOMATTR(PXDOC dp, MSXML2::IXMLDOMAttributePtr ap,
|
|
MSXML2::IXMLDOMNamedNodeMapPtr nmp = NULL);
|
|
|
|
// Members
|
|
MSXML2::IXMLDOMAttributePtr Atrp;
|
|
MSXML2::IXMLDOMNamedNodeMapPtr Nmp;
|
|
char Name[64];
|
|
WCHAR *Ws;
|
|
int Len;
|
|
long K;
|
|
}; // end of class DOMATTR
|