mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
- FIX assert failure when sorting JSON tables
modified: storage/connect/tabjson.cpp storage/connect/tabjson.h
This commit is contained in:
@@ -117,7 +117,8 @@ TDBJSN::TDBJSN(PJDEF tdp, PTXF txfp) : TDBDOS(tdp, txfp)
|
|||||||
Jmode = tdp->Jmode;
|
Jmode = tdp->Jmode;
|
||||||
Xcol = tdp->Xcol;
|
Xcol = tdp->Xcol;
|
||||||
Fpos = -1;
|
Fpos = -1;
|
||||||
Spos = N = 0;
|
//Spos = 0;
|
||||||
|
N = 0;
|
||||||
Limit = tdp->Limit;
|
Limit = tdp->Limit;
|
||||||
NextSame = 0;
|
NextSame = 0;
|
||||||
SameRow = 0;
|
SameRow = 0;
|
||||||
@@ -134,7 +135,7 @@ TDBJSN::TDBJSN(TDBJSN *tdbp) : TDBDOS(NULL, tdbp)
|
|||||||
Jmode = tdbp->Jmode;
|
Jmode = tdbp->Jmode;
|
||||||
Xcol = tdbp->Xcol;
|
Xcol = tdbp->Xcol;
|
||||||
Fpos = tdbp->Fpos;
|
Fpos = tdbp->Fpos;
|
||||||
Spos = tdbp->Spos;
|
//Spos = tdbp->Spos;
|
||||||
N = tdbp->N;
|
N = tdbp->N;
|
||||||
Limit = tdbp->Limit;
|
Limit = tdbp->Limit;
|
||||||
NextSame = tdbp->NextSame;
|
NextSame = tdbp->NextSame;
|
||||||
@@ -222,7 +223,7 @@ bool TDBJSN::OpenDB(PGLOBAL g)
|
|||||||
/* Table already open replace it at its beginning. */
|
/* Table already open replace it at its beginning. */
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
Fpos= -1;
|
Fpos= -1;
|
||||||
Spos = 0;
|
// Spos = 0;
|
||||||
NextSame = 0;
|
NextSame = 0;
|
||||||
SameRow = 0;
|
SameRow = 0;
|
||||||
} else {
|
} else {
|
||||||
@@ -1299,7 +1300,6 @@ bool TDBJSON::OpenDB(PGLOBAL g)
|
|||||||
/* Table already open replace it at its beginning. */
|
/* Table already open replace it at its beginning. */
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
Fpos= -1;
|
Fpos= -1;
|
||||||
Spos = 0;
|
|
||||||
NextSame = false;
|
NextSame = false;
|
||||||
SameRow = 0;
|
SameRow = 0;
|
||||||
return false;
|
return false;
|
||||||
|
@@ -94,7 +94,7 @@ class TDBJSN : public TDBDOS {
|
|||||||
JMODE Jmode; // MODE_OBJECT by default
|
JMODE Jmode; // MODE_OBJECT by default
|
||||||
char *Xcol; // Name of expandable column
|
char *Xcol; // Name of expandable column
|
||||||
int Fpos; // The current row index
|
int Fpos; // The current row index
|
||||||
int Spos; // DELETE start index
|
//int Spos; // DELETE start index
|
||||||
int N; // The current Rownum
|
int N; // The current Rownum
|
||||||
int Limit; // Limit of multiple values
|
int Limit; // Limit of multiple values
|
||||||
int Pretty; // Depends on file structure
|
int Pretty; // Depends on file structure
|
||||||
@@ -175,6 +175,9 @@ class TDBJSON : public TDBJSN {
|
|||||||
virtual int GetMaxSize(PGLOBAL g);
|
virtual int GetMaxSize(PGLOBAL g);
|
||||||
virtual void ResetSize(void);
|
virtual void ResetSize(void);
|
||||||
virtual int GetRecpos(void) {return Fpos;}
|
virtual int GetRecpos(void) {return Fpos;}
|
||||||
|
virtual int GetProgCur(void) {return N;}
|
||||||
|
virtual bool SetRecpos(PGLOBAL g, int recpos)
|
||||||
|
{Fpos = recpos - 1; return false;}
|
||||||
virtual bool OpenDB(PGLOBAL g);
|
virtual bool OpenDB(PGLOBAL g);
|
||||||
virtual int ReadDB(PGLOBAL g);
|
virtual int ReadDB(PGLOBAL g);
|
||||||
virtual bool PrepareWriting(PGLOBAL g) {return false;}
|
virtual bool PrepareWriting(PGLOBAL g) {return false;}
|
||||||
|
Reference in New Issue
Block a user