diff options
author | Olivier Bertrand <bertrandop@gmail.com> | 2017-05-11 21:57:21 +0200 |
---|---|---|
committer | Olivier Bertrand <bertrandop@gmail.com> | 2017-05-11 21:57:21 +0200 |
commit | 1c88b9a8d3200bdf554ece09316cacf2146877ee (patch) | |
tree | 9e19a4dcc5079412870b83bf7473b0cb8bf1670f /storage/connect/filamvct.cpp | |
parent | 531698e0da307943dff5ee6830a241d6829345cd (diff) | |
download | mariadb-git-1c88b9a8d3200bdf554ece09316cacf2146877ee.tar.gz |
Fix wrong value of JSON column
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
Diffstat (limited to 'storage/connect/filamvct.cpp')
-rwxr-xr-x | storage/connect/filamvct.cpp | 98 |
1 files changed, 27 insertions, 71 deletions
diff --git a/storage/connect/filamvct.cpp b/storage/connect/filamvct.cpp index 8e5c31d6b49..9b4ef43eb8b 100755 --- a/storage/connect/filamvct.cpp +++ b/storage/connect/filamvct.cpp @@ -143,9 +143,9 @@ int VCTFAM::GetFileLength(PGLOBAL g) { if (Split) { // Get the total file length - char filename[_MAX_PATH]; - char *savfile = To_File; - int i, len = 0; + char filename[_MAX_PATH]; + PCSZ savfile = To_File; + int i, len = 0; // Initialize the array of file structures if (!Colfn) { @@ -313,8 +313,8 @@ int VCTFAM::Cardinality(PGLOBAL g) // and Last must be set from the file cardinality. // Only happens when called by sub classes. char filename[_MAX_PATH]; - PSZ savfn = To_File; - int len, clen, card = -1; + PCSZ savfn = To_File; + int len, clen, card = -1; PCOLDEF cdp = Tdbp->GetDef()->GetCols(); if (!Colfn) { @@ -368,7 +368,7 @@ int VCTFAM::GetRowID(void) /***********************************************************************/ /* VCT Create an empty file for Vector formatted tables. */ /***********************************************************************/ -bool VCTFAM::MakeEmptyFile(PGLOBAL g, char *fn) +bool VCTFAM::MakeEmptyFile(PGLOBAL g, PCSZ fn) { // Vector formatted file: this will create an empty file of the // required length if it does not exists yet. @@ -559,7 +559,7 @@ bool VCTFAM::AllocateBuffer(PGLOBAL g) /* Do initial action when inserting. */ /***********************************************************************/ bool VCTFAM::InitInsert(PGLOBAL g) - { +{ bool rc = false; // We come here in MODE_INSERT only @@ -575,26 +575,11 @@ bool VCTFAM::InitInsert(PGLOBAL g) CurBlk = Block - 1; CurNum = Last; -#if defined(USE_TRY) try { -#else // !USE_TRY - // Prepare error return - if (g->jump_level == MAX_JUMP) { - strcpy(g->Message, MSG(TOO_MANY_JUMPS)); - return true; - } // endif - - if ((rc = setjmp(g->jumper[++g->jump_level])) != 0) { - g->jump_level--; - return true; - } // endif -#endif // !USE_TRY - - // Last block must be updated by new values - for (; cp; cp = (PVCTCOL)cp->Next) - cp->ReadBlock(g); + // Last block must be updated by new values + for (; cp; cp = (PVCTCOL)cp->Next) + cp->ReadBlock(g); -#if defined(USE_TRY) } catch (int n) { if (trace) htrc("Exception %d: %s\n", n, g->Message); @@ -603,9 +588,7 @@ bool VCTFAM::InitInsert(PGLOBAL g) strcpy(g->Message, msg); rc = true; } // end catch -#else // !USE_TRY - g->jump_level--; -#endif // !USE_TRY + } // endif Last if (!rc) @@ -897,8 +880,9 @@ int VCTFAM::DeleteRecords(PGLOBAL g, int irc) /***********************************************************************/ bool VCTFAM::OpenTempFile(PGLOBAL g) { - char *opmode, tempname[_MAX_PATH]; - bool rc = false; + PCSZ opmode; + char tempname[_MAX_PATH]; + bool rc = false; /*********************************************************************/ /* Open the temporary file, Spos is at the beginning of file. */ @@ -1126,11 +1110,7 @@ void VCTFAM::CloseTableFile(PGLOBAL g, bool abort) } else if (AddBlock) { // Last block was not written rc = ResetTableSize(g, CurBlk, Nrec); -#if defined(USE_TRY) throw 44; -#else // !USE_TRY - longjmp(g->jumper[g->jump_level], 44); -#endif // !USE_TRY } // endif } else if (mode == MODE_UPDATE) { @@ -1550,7 +1530,7 @@ bool VCMFAM::AllocateBuffer(PGLOBAL g) /* Do initial action when inserting. */ /***********************************************************************/ bool VCMFAM::InitInsert(PGLOBAL g) - { +{ bool rc = false; volatile PVCTCOL cp = (PVCTCOL)Tdbp->GetColumns(); @@ -1565,27 +1545,12 @@ bool VCMFAM::InitInsert(PGLOBAL g) CurNum = Last; } // endif Last -#if defined(USE_TRY) try { -#else // !USE_TRY - // Prepare error return - if (g->jump_level == MAX_JUMP) { - strcpy(g->Message, MSG(TOO_MANY_JUMPS)); - return true; - } // endif - - if ((rc = setjmp(g->jumper[++g->jump_level])) != 0) { - g->jump_level--; - return true; - } // endif -#endif // !USE_TRY - - // Initialize the column block pointer - for (; cp; cp = (PVCTCOL)cp->Next) - cp->ReadBlock(g); - -#if defined(USE_TRY) - } catch (int n) { + // Initialize the column block pointer + for (; cp; cp = (PVCTCOL)cp->Next) + cp->ReadBlock(g); + + } catch (int n) { if (trace) htrc("Exception %d: %s\n", n, g->Message); rc = true; @@ -1593,11 +1558,9 @@ bool VCMFAM::InitInsert(PGLOBAL g) strcpy(g->Message, msg); rc = true; } // end catch -#else // !USE_TRY - g->jump_level--; -#endif // !USE_TRY + return rc; - } // end of InitInsert +} // end of InitInsert /***********************************************************************/ /* Data Base write routine for VMP access method. */ @@ -2036,7 +1999,7 @@ bool VECFAM::OpenTableFile(PGLOBAL g) /***********************************************************************/ /* Open the file corresponding to one column. */ /***********************************************************************/ -bool VECFAM::OpenColumnFile(PGLOBAL g, char *opmode, int i) +bool VECFAM::OpenColumnFile(PGLOBAL g, PCSZ opmode, int i) { char filename[_MAX_PATH]; PDBUSER dup = PlgGetUser(g); @@ -2541,11 +2504,7 @@ void VECFAM::CloseTableFile(PGLOBAL g, bool abort) if (wrc != RC_FX) rc = ResetTableSize(g, Block, Last); else -#if defined(USE_TRY) throw 44; -#else // !USE_TRY - longjmp(g->jumper[g->jump_level], 44); -#endif // !USE_TRY } else if (mode == MODE_UPDATE) { if (UseTemp && !InitUpdate && !Abort) { @@ -3185,7 +3144,8 @@ bool BGVFAM::BigWrite(PGLOBAL g, HANDLE h, void *inbuf, int req) htrc("after write req=%d brc=%d nbw=%d\n", req, brc, nbw); if (!brc || nbw != len) { - char buf[256], *fn = (h == Hfile) ? To_File : "Tempfile"; + char buf[256]; + PCSZ fn = (h == Hfile) ? To_File : "Tempfile"; if (brc) strcpy(buf, MSG(BAD_BYTE_NUM)); @@ -3361,7 +3321,7 @@ bool BGVFAM::SetBlockInfo(PGLOBAL g) /***********************************************************************/ /* VEC Create an empty file for new Vector formatted tables. */ /***********************************************************************/ -bool BGVFAM::MakeEmptyFile(PGLOBAL g, char *fn) +bool BGVFAM::MakeEmptyFile(PGLOBAL g, PCSZ fn) { // Vector formatted file this will create an empty file of the // required length if it does not exists yet. @@ -3371,7 +3331,7 @@ bool BGVFAM::MakeEmptyFile(PGLOBAL g, char *fn) PlugSetPath(filename, fn, Tdbp->GetPath()); #if defined(__WIN__) - char *p; + PCSZ p; DWORD rc; bool brc; LARGE_INTEGER of; @@ -4206,11 +4166,7 @@ void BGVFAM::CloseTableFile(PGLOBAL g, bool abort) } else if (AddBlock) { // Last block was not written rc = ResetTableSize(g, CurBlk, Nrec); -#if defined(USE_TRY) throw 44; -#else // !USE_TRY - longjmp(g->jumper[g->jump_level], 44); -#endif // !USE_TRY } // endif } else if (mode == MODE_UPDATE) { |