Skip to content

Commit

Permalink
- Fix MDEV-9844, MDEV-10179, MDEV-14214
Browse files Browse the repository at this point in the history
 This is done by removing the tbl table type THREAD option
 that causes a multiple of sporadic bugs.
 This may be temporary depending on whether a real fix is found.
  modified:   storage/connect/mysql-test/connect/disabled.def
  modified:   storage/connect/tabtbl.cpp
  modified:   storage/connect/tabtbl.h
  • Loading branch information
Buggynours committed Jan 3, 2018
1 parent b6563d7 commit fc2d794
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 30 deletions.
1 change: 1 addition & 0 deletions storage/connect/mysql-test/connect/disabled.def
Expand Up @@ -19,3 +19,4 @@ json_java_3 : Need MongoDB running and its Java Driver installed
mongo_c : Need MongoDB running and its C Driver installed
mongo_java_2 : Need MongoDB running and its Java Driver installed
mongo_java_3 : Need MongoDB running and its Java Driver installed
tbl_thread : Bug MDEV-9844,10179,14214 03/01/2018 OB Option THREAD removed
20 changes: 12 additions & 8 deletions storage/connect/tabtbl.cpp
@@ -1,12 +1,9 @@
/************* TabTbl C++ Program Source Code File (.CPP) **************/
/* PROGRAM NAME: TABTBL */
/* ------------- */
/* Version 1.8 */
/* Version 1.9 */
/* */
/* COPYRIGHT: */
/* ---------- */
/* (C) Copyright to PlugDB Software Development 2008-2017 */
/* Author: Olivier BERTRAND */
/* Author: Olivier BERTRAND 2008-2018 */
/* */
/* WHAT THIS PROGRAM DOES: */
/* ----------------------- */
Expand Down Expand Up @@ -168,9 +165,14 @@ PTDB TBLDEF::GetTable(PGLOBAL g, MODE)
{
if (Catfunc == FNC_COL)
return new(g) TDBTBC(this);
else if (Thread)
return new(g) TDBTBM(this);
else
else if (Thread) {
#if defined(DEVELOPMENT)
return new(g) TDBTBM(this);
#else
strcpy(g->Message, "Option THREAD is no more supported");
return NULL;
#endif // DEVELOPMENT
} else
return new(g) TDBTBL(this);

} // end of GetTable
Expand Down Expand Up @@ -560,6 +562,7 @@ void TBTBLK::ReadColumn(PGLOBAL)

} // end of ReadColumn

#if defined(DEVELOPMENT)
/* ------------------------- Class TDBTBM ---------------------------- */

/***********************************************************************/
Expand Down Expand Up @@ -865,5 +868,6 @@ int TDBTBM::ReadNextRemote(PGLOBAL g)

return RC_OK;
} // end of ReadNextRemote
#endif // DEVELOPMENT

/* ------------------------------------------------------------------- */
50 changes: 28 additions & 22 deletions storage/connect/tabtbl.h
Expand Up @@ -11,29 +11,8 @@

typedef class TBLDEF *PTBLDEF;
typedef class TDBTBL *PTDBTBL;
typedef class TDBTBM *PTDBTBM;
typedef class MYSQLC *PMYC;

/***********************************************************************/
/* Defines the structures used for distributed TBM tables. */
/***********************************************************************/
typedef struct _TBMtable *PTBMT;

typedef struct _TBMtable {
PTBMT Next; // Points to next data table struct
PTABLE Tap; // Points to the sub table
PGLOBAL G; // Needed in thread routine
bool Complete; // TRUE when all results are read
bool Ready; // TRUE when results are there
int Rows; // Total number of rows read so far
int ProgCur; // Current pos
int ProgMax; // Max pos
int Rc; // Return code
THD *Thd;
pthread_attr_t attr; // ???
pthread_t Tid; // CheckOpen thread ID
} TBMT;

/***********************************************************************/
/* TBL table. */
/***********************************************************************/
Expand Down Expand Up @@ -123,7 +102,33 @@ class TBTBLK : public TIDBLK {

protected:
// Must not have additional members
}; // end of class TBTBLK
}; // end of class TBTBLK

#if defined(DEVELOPMENT)
/***********************************************************************/
/* This table type is buggy and removed until a fix is found. */
/***********************************************************************/
typedef class TDBTBM *PTDBTBM;

/***********************************************************************/
/* Defines the structures used for distributed TBM tables. */
/***********************************************************************/
typedef struct _TBMtable *PTBMT;

typedef struct _TBMtable {
PTBMT Next; // Points to next data table struct
PTABLE Tap; // Points to the sub table
PGLOBAL G; // Needed in thread routine
bool Complete; // TRUE when all results are read
bool Ready; // TRUE when results are there
int Rows; // Total number of rows read so far
int ProgCur; // Current pos
int ProgMax; // Max pos
int Rc; // Return code
THD *Thd;
pthread_attr_t attr; // ???
pthread_t Tid; // CheckOpen thread ID
} TBMT;

/***********************************************************************/
/* This is the TBM Access Method class declaration. */
Expand Down Expand Up @@ -160,3 +165,4 @@ class DllExport TDBTBM : public TDBTBL {
}; // end of class TDBTBM

pthread_handler_t ThreadOpen(void *p);
#endif // DEVELOPMENT

0 comments on commit fc2d794

Please sign in to comment.