Skip to content
Permalink
Browse files
- Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP table
  and enable using special column in them.
  modified:   storage/connect/tabzip.cpp
  modified:   storage/connect/tabzip.h
  • Loading branch information
Buggynours committed May 18, 2020
1 parent 674197e commit e316352
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
@@ -23,6 +23,7 @@
#include "filamzip.h"
#include "resource.h" // for IDS_COLUMNS
#include "tabdos.h"
#include "tabmul.h"
#include "tabzip.h"

/* -------------------------- Class ZIPDEF --------------------------- */
@@ -41,7 +42,14 @@ bool ZIPDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff)
/***********************************************************************/
PTDB ZIPDEF::GetTable(PGLOBAL g, MODE m)
{
return new(g) TDBZIP(this);
PTDB tdbp = NULL;

tdbp = new(g) TDBZIP(this);

if (Multiple)
tdbp = new(g) TDBMUL(tdbp);

return tdbp;
} // end of GetTable

/* ------------------------------------------------------------------- */
@@ -108,7 +116,7 @@ int TDBZIP::Cardinality(PGLOBAL g)

Cardinal = (err == UNZ_OK) ? (int)ginfo.number_entry : 0;
} else
Cardinal = 0;
Cardinal = 10; // Dummy for multiple tables

} // endif Cardinal

@@ -187,6 +195,7 @@ int TDBZIP::DeleteDB(PGLOBAL g, int irc)
void TDBZIP::CloseDB(PGLOBAL g)
{
close();
nexterr = UNZ_OK; // For multiple tables
Use = USE_READY; // Just to be clean
} // end of CloseDB

@@ -48,6 +48,8 @@ class DllExport TDBZIP : public TDBASE {

// Implementation
virtual AMT GetAmType(void) {return TYPE_AM_ZIP;}
virtual PCSZ GetFile(PGLOBAL) {return zfn;}
virtual void SetFile(PGLOBAL, PCSZ fn) {zfn = fn;}

// Methods
virtual PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n);

0 comments on commit e316352

Please sign in to comment.