mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
- MDEV-11366 SIGBUS errors in Connect Storage Engine for ArmHF and MIPS.
Fix includes launchpad fix plus more to cover writing BIN tables. modified: storage/connect/tabfix.cpp modified: storage/connect/value.cpp modified: storage/connect/value.h - Typo: Change the name of filamzip to filamgz to prepare future ZIP tables. modified: storage/connect/CMakeLists.txt added: storage/connect/filamgz.cpp added: storage/connect/filamgz.h deleted: storage/connect/filamzip.cpp deleted: storage/connect/filamzip.h modified: storage/connect/plgdbsem.h modified: storage/connect/reldef.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
/************* TabFix C++ Program Source Code File (.CPP) **************/
|
||||
/* PROGRAM NAME: TABFIX */
|
||||
/* ------------- */
|
||||
/* Version 4.9 */
|
||||
/* Version 4.9.1 */
|
||||
/* */
|
||||
/* COPYRIGHT: */
|
||||
/* ---------- */
|
||||
/* (C) Copyright to the author Olivier BERTRAND 1998-2015 */
|
||||
/* (C) Copyright to the author Olivier BERTRAND 1998-2016 */
|
||||
/* */
|
||||
/* WHAT THIS PROGRAM DOES: */
|
||||
/* ----------------------- */
|
||||
@@ -589,9 +589,10 @@ void BINCOL::WriteColumn(PGLOBAL g)
|
||||
switch (Fmt) {
|
||||
case 'X':
|
||||
// Standard not converted values
|
||||
if (Eds && IsTypeChar(Buf_Type))
|
||||
*(longlong *)p = Value->GetBigintValue();
|
||||
else if (Value->GetBinValue(p, Long, Status)) {
|
||||
if (Eds && IsTypeChar(Buf_Type)) {
|
||||
if (Status)
|
||||
Value->GetValueNonAligned<longlong>(p, Value->GetBigintValue());
|
||||
} else if (Value->GetBinValue(p, Long, Status)) {
|
||||
sprintf(g->Message, MSG(BIN_F_TOO_LONG),
|
||||
Name, Value->GetSize(), Long);
|
||||
longjmp(g->jumper[g->jump_level], 31);
|
||||
@@ -605,7 +606,7 @@ void BINCOL::WriteColumn(PGLOBAL g)
|
||||
sprintf(g->Message, MSG(VALUE_TOO_BIG), n, Name);
|
||||
longjmp(g->jumper[g->jump_level], 31);
|
||||
} else if (Status)
|
||||
*(short *)p = (short)n;
|
||||
Value->GetValueNonAligned<short>(p, (short)n);
|
||||
|
||||
break;
|
||||
case 'T': // Tiny integer
|
||||
@@ -625,7 +626,7 @@ void BINCOL::WriteColumn(PGLOBAL g)
|
||||
sprintf(g->Message, MSG(VALUE_TOO_BIG), n, Name);
|
||||
longjmp(g->jumper[g->jump_level], 31);
|
||||
} else if (Status)
|
||||
*(int *)p = Value->GetIntValue();
|
||||
Value->GetValueNonAligned<int>(p, (int)n);
|
||||
|
||||
break;
|
||||
case 'G': // Large (great) integer
|
||||
@@ -636,12 +637,12 @@ void BINCOL::WriteColumn(PGLOBAL g)
|
||||
case 'F': // Float
|
||||
case 'R': // Real
|
||||
if (Status)
|
||||
*(float *)p = (float)Value->GetFloatValue();
|
||||
Value->GetValueNonAligned<float>(p, (float)Value->GetFloatValue());
|
||||
|
||||
break;
|
||||
case 'D': // Double
|
||||
if (Status)
|
||||
*(double *)p = Value->GetFloatValue();
|
||||
Value->GetValueNonAligned<double>(p, Value->GetFloatValue());
|
||||
|
||||
break;
|
||||
case 'C': // Characters
|
||||
|
||||
Reference in New Issue
Block a user