summaryrefslogtreecommitdiff
path: root/storage/connect/tabxml.h
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2016-12-23 14:23:46 +0100
committerOlivier Bertrand <bertrandop@gmail.com>2016-12-23 14:23:46 +0100
commit5c0c623577c7d1fe183bb8903d26eaf52a89b88b (patch)
tree34541e487d14ebad413edb47049e967890e34f1e /storage/connect/tabxml.h
parentb3d2ac3492c50ffab716e626d745727162a28343 (diff)
downloadmariadb-git-5c0c623577c7d1fe183bb8903d26eaf52a89b88b.tar.gz
Fix some XML table type bugs:
- in DOMNODELIST::DropItem if (Listp == NULL || Listp->length <= n) return true; is wrong, should be: if (Listp == NULL || Listp->length < n) return true; - Crash in discovery with libxml2 in XMLColumns because: if (!tdp->Usedom) // nl was destroyed vp->nl = vp->pn->GetChildElements(g); is executed with vp->pn uninitialized. Fixed by adding: vp->pn = node; line 264. -In discovery with libxml2 some columns are not found. Because list was not recovered properly, nodes being modified and not reallocated. Fixed lines 214 and 277. modified: storage/connect/domdoc.cpp modified: storage/connect/tabxml.cpp Add support for zipped table files modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamap.cpp modified: storage/connect/filamap.h modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc modified: storage/connect/libdoc.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabxml.cpp
Diffstat (limited to 'storage/connect/tabxml.h')
-rw-r--r--storage/connect/tabxml.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/storage/connect/tabxml.h b/storage/connect/tabxml.h
index 7ba3166881d..6c586d79dec 100644
--- a/storage/connect/tabxml.h
+++ b/storage/connect/tabxml.h
@@ -1,7 +1,7 @@
/*************** Tabxml H Declares Source Code File (.H) ***************/
-/* Name: TABXML.H Version 1.6 */
+/* Name: TABXML.H Version 1.7 */
/* */
-/* (C) Copyright to the author Olivier BERTRAND 2007-2015 */
+/* (C) Copyright to the author Olivier BERTRAND 2007-2016 */
/* */
/* This file contains the XML table classes declares. */
/***********************************************************************/
@@ -42,12 +42,15 @@ class DllExport XMLDEF : public TABDEF { /* Logical table description */
char *DefNs; /* Dummy name of default namespace */
char *Attrib; /* Table node attributes */
char *Hdattr; /* Header node attributes */
- int Coltype; /* Default column type */
+ char *Entry; /* Zip entry name or pattern */
+ int Coltype; /* Default column type */
int Limit; /* Limit of multiple values */
int Header; /* n first rows are header rows */
bool Xpand; /* Put multiple tags in several rows */
bool Usedom; /* True: DOM, False: libxml2 */
- }; // end of XMLDEF
+ bool Zipped; /* True: Zipped XML file(s) */
+ bool Mulentries; /* True: multiple entries in zip file*/
+}; // end of XMLDEF
#if defined(INCLUDE_TDBXML)
/***********************************************************************/
@@ -122,7 +125,9 @@ class DllExport TDBXML : public TDBASE {
bool Bufdone; // True when column buffers allocated
bool Nodedone; // True when column nodes allocated
bool Void; // True if the file does not exist
- char *Xfile; // The XML file
+ bool Zipped; // True if Zipped XML file(s)
+ bool Mulentries; // True if multiple entries in zip file
+ char *Xfile; // The XML file
char *Enc; // New XML table file encoding
char *Tabname; // Name of Table node
char *Rowname; // Name of first level nodes
@@ -133,7 +138,8 @@ class DllExport TDBXML : public TDBASE {
char *DefNs; // Dummy name of default namespace
char *Attrib; // Table node attribut(s)
char *Hdattr; // Header node attribut(s)
- int Coltype; // Default column type
+ char *Entry; // Zip entry name or pattern
+ int Coltype; // Default column type
int Limit; // Limit of multiple values
int Header; // n first rows are header rows
int Multiple; // If multiple files