You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
Reformat all code to coding standard
This commit is contained in:
@ -35,7 +35,7 @@ using namespace std;
|
||||
using namespace execplan;
|
||||
namespace
|
||||
{
|
||||
const char DATE_TIME_FORMAT[] = "%04d-%02d-%02d %02d:%02d:%02d";
|
||||
const char DATE_TIME_FORMAT[] = "%04d-%02d-%02d %02d:%02d:%02d";
|
||||
|
||||
/*******************************************************************************
|
||||
* DESCRIPTION:
|
||||
@ -55,9 +55,11 @@ int _doDir(char* pBuffer, int blen, unsigned int val)
|
||||
if (!pBuffer)
|
||||
{
|
||||
rc = -1;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = snprintf(pBuffer, blen, "%03u.dir", val);
|
||||
pBuffer[blen-1] = (char)0;
|
||||
pBuffer[blen - 1] = (char)0;
|
||||
}
|
||||
|
||||
return rc;
|
||||
@ -81,9 +83,11 @@ int _doFile(char* pBuffer, int blen, unsigned char val)
|
||||
if (!pBuffer)
|
||||
{
|
||||
rc = -1;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
rc = snprintf(pBuffer, blen, "FILE%03d.cdf", val);
|
||||
pBuffer[blen-1] = (char)0;
|
||||
pBuffer[blen - 1] = (char)0;
|
||||
}
|
||||
|
||||
return rc;
|
||||
@ -124,21 +128,21 @@ struct Convertor::dmFilePathArgs_t
|
||||
* time string
|
||||
******************************************************************************/
|
||||
/* static */
|
||||
const std::string Convertor::getTimeStr()
|
||||
const std::string Convertor::getTimeStr()
|
||||
{
|
||||
char buf[sizeof(DATE_TIME_FORMAT)+10] = {0};
|
||||
char buf[sizeof(DATE_TIME_FORMAT) + 10] = {0};
|
||||
time_t curTime = time(NULL);
|
||||
struct tm pTime;
|
||||
localtime_r(&curTime, &pTime);
|
||||
localtime_r(&curTime, &pTime);
|
||||
string timeStr;
|
||||
|
||||
snprintf(buf, sizeof(buf), DATE_TIME_FORMAT, pTime.tm_year + 1900,
|
||||
pTime.tm_mon + 1, pTime.tm_mday,
|
||||
pTime.tm_hour, pTime.tm_min, pTime.tm_sec);
|
||||
pTime.tm_mon + 1, pTime.tm_mday,
|
||||
pTime.tm_hour, pTime.tm_min, pTime.tm_sec);
|
||||
|
||||
timeStr = buf;
|
||||
|
||||
return timeStr;
|
||||
return timeStr;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@ -187,6 +191,7 @@ long long Convertor::convertDecimalString(
|
||||
|
||||
// Determine the number of digits before and after the decimal point
|
||||
char* posDecPt = (char*)memchr(field, '.', fieldLength);
|
||||
|
||||
if (posDecPt)
|
||||
{
|
||||
nDigitsBeforeDecPt = posDecPt - field;
|
||||
@ -197,8 +202,9 @@ long long Convertor::convertDecimalString(
|
||||
if (nDigitsAfterDecPt > scale)
|
||||
{
|
||||
char roundOffDigit = *(posDecPt + 1 + scale);
|
||||
|
||||
if ( (roundOffDigit > '4') &&
|
||||
(roundOffDigit <='9') ) // round up
|
||||
(roundOffDigit <= '9') ) // round up
|
||||
{
|
||||
roundUp = 1;
|
||||
|
||||
@ -207,12 +213,13 @@ long long Convertor::convertDecimalString(
|
||||
// end up parsing "-0.00", which yields 0; meaning we lose the
|
||||
// sign. So better (though maybe slower) to look for any lead-
|
||||
// ing negative sign in the input string.
|
||||
for (int k=0; k<fieldLength; k++)
|
||||
for (int k = 0; k < fieldLength; k++)
|
||||
{
|
||||
if (!isspace(field[k]))
|
||||
{
|
||||
if (field[k] == '-')
|
||||
roundUp = -1;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -225,12 +232,13 @@ long long Convertor::convertDecimalString(
|
||||
nDigitsAfterDecPt = 0;
|
||||
}
|
||||
|
||||
// Strip out the decimal point by stringing together
|
||||
// the digits before and after the decimal point.
|
||||
char* data = (char*)alloca(nDigitsBeforeDecPt + scale + 1);
|
||||
memcpy(data, field, nDigitsBeforeDecPt);
|
||||
if (nDigitsAfterDecPt)
|
||||
{
|
||||
// Strip out the decimal point by stringing together
|
||||
// the digits before and after the decimal point.
|
||||
char* data = (char*)alloca(nDigitsBeforeDecPt + scale + 1);
|
||||
memcpy(data, field, nDigitsBeforeDecPt);
|
||||
|
||||
if (nDigitsAfterDecPt)
|
||||
{
|
||||
if (scale > nDigitsAfterDecPt)
|
||||
memcpy(data + nDigitsBeforeDecPt,
|
||||
field + nDigitsBeforeDecPt + 1,
|
||||
@ -278,10 +286,10 @@ long long Convertor::convertDecimalString(
|
||||
******************************************************************************/
|
||||
/* static */
|
||||
int Convertor::oid2FileName(FID fid,
|
||||
char* fullFileName,
|
||||
char dbDirName[][MAX_DB_DIR_NAME_SIZE],
|
||||
uint32_t partition,
|
||||
uint16_t segment)
|
||||
char* fullFileName,
|
||||
char dbDirName[][MAX_DB_DIR_NAME_SIZE],
|
||||
uint32_t partition,
|
||||
uint16_t segment)
|
||||
{
|
||||
dmFilePathArgs_t args;
|
||||
int rc;
|
||||
@ -315,10 +323,10 @@ int Convertor::oid2FileName(FID fid,
|
||||
args.FNrc = 0;
|
||||
|
||||
RETURN_ON_WE_ERROR(
|
||||
(rc = dmOid2FPath(fid, partition, segment, &args)),
|
||||
ERR_DM_CONVERT_OID);
|
||||
(rc = dmOid2FPath(fid, partition, segment, &args)),
|
||||
ERR_DM_CONVERT_OID);
|
||||
sprintf(fullFileName, "%s/%s/%s/%s/%s/%s", args.pDirA,
|
||||
args.pDirB, args.pDirC, args.pDirD, args.pDirE, args.pFName);
|
||||
args.pDirB, args.pDirC, args.pDirD, args.pDirE, args.pFName);
|
||||
|
||||
strcpy(dbDirName[0], args.pDirA);
|
||||
strcpy(dbDirName[1], args.pDirB);
|
||||
@ -347,16 +355,20 @@ void Convertor::mapErrnoToString(int errNum, std::string& errString)
|
||||
char errnoMsgBuf[1024];
|
||||
#if STRERROR_R_CHAR_P
|
||||
char* errnoMsg = strerror_r(errNum, errnoMsgBuf, sizeof(errnoMsgBuf));
|
||||
|
||||
if (errnoMsg)
|
||||
errString = errnoMsg;
|
||||
else
|
||||
errString.clear();
|
||||
|
||||
#else
|
||||
int errnoMsg = strerror_r(errNum, errnoMsgBuf, sizeof(errnoMsgBuf));
|
||||
|
||||
if (errnoMsg == 0)
|
||||
errString = errnoMsgBuf;
|
||||
else
|
||||
errString.clear();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -371,7 +383,7 @@ void Convertor::mapErrnoToString(int errNum, std::string& errString)
|
||||
******************************************************************************/
|
||||
/* static */
|
||||
void Convertor::convertColType(CalpontSystemCatalog::ColDataType dataType,
|
||||
ColType& internalType, bool isToken)
|
||||
ColType& internalType, bool isToken)
|
||||
{
|
||||
if (isToken)
|
||||
{
|
||||
@ -379,53 +391,63 @@ void Convertor::convertColType(CalpontSystemCatalog::ColDataType dataType,
|
||||
return;
|
||||
}
|
||||
|
||||
switch(dataType) {
|
||||
switch (dataType)
|
||||
{
|
||||
// Map BIT and TINYINT to WR_BYTE
|
||||
case CalpontSystemCatalog::BIT :
|
||||
case CalpontSystemCatalog::TINYINT :
|
||||
internalType = WriteEngine::WR_BYTE; break;
|
||||
internalType = WriteEngine::WR_BYTE;
|
||||
break;
|
||||
|
||||
// Map SMALLINT to WR_SHORT
|
||||
case CalpontSystemCatalog::SMALLINT :
|
||||
internalType = WriteEngine::WR_SHORT; break;
|
||||
internalType = WriteEngine::WR_SHORT;
|
||||
break;
|
||||
|
||||
// Map MEDINT, INT, and DATE to WR_INT
|
||||
case CalpontSystemCatalog::MEDINT :
|
||||
case CalpontSystemCatalog::INT :
|
||||
case CalpontSystemCatalog::DATE :
|
||||
internalType = WriteEngine::WR_INT; break;
|
||||
internalType = WriteEngine::WR_INT;
|
||||
break;
|
||||
|
||||
// Map FLOAT and UFLOAT to WR_FLOAT
|
||||
case CalpontSystemCatalog::FLOAT :
|
||||
case CalpontSystemCatalog::UFLOAT:
|
||||
internalType = WriteEngine::WR_FLOAT; break;
|
||||
internalType = WriteEngine::WR_FLOAT;
|
||||
break;
|
||||
|
||||
// Map BIGINT and DATETIME to WR_LONGLONG
|
||||
case CalpontSystemCatalog::BIGINT :
|
||||
case CalpontSystemCatalog::DATETIME :
|
||||
internalType = WriteEngine::WR_LONGLONG; break;
|
||||
internalType = WriteEngine::WR_LONGLONG;
|
||||
break;
|
||||
|
||||
// Map DOUBLE and UDOUBLE to WR_DOUBLE
|
||||
case CalpontSystemCatalog::DOUBLE :
|
||||
case CalpontSystemCatalog::UDOUBLE:
|
||||
internalType = WriteEngine::WR_DOUBLE; break;
|
||||
internalType = WriteEngine::WR_DOUBLE;
|
||||
break;
|
||||
|
||||
// Map BLOB to WR_BLOB
|
||||
case CalpontSystemCatalog::BLOB :
|
||||
internalType = WriteEngine::WR_BLOB; break;
|
||||
internalType = WriteEngine::WR_BLOB;
|
||||
break;
|
||||
|
||||
// Map TEXT to WR_TEXT
|
||||
case CalpontSystemCatalog::TEXT :
|
||||
internalType = WriteEngine::WR_TEXT; break;
|
||||
internalType = WriteEngine::WR_TEXT;
|
||||
break;
|
||||
|
||||
// Map VARBINARY to WR_VARBINARY
|
||||
case CalpontSystemCatalog::VARBINARY:
|
||||
internalType = WriteEngine::WR_VARBINARY; break;
|
||||
internalType = WriteEngine::WR_VARBINARY;
|
||||
break;
|
||||
|
||||
// Map DECIMAL to applicable WR_CHAR
|
||||
// We can't map them to their proper int size, since in this version
|
||||
// of convertColType(), we don't know what that is. Hopefully
|
||||
// this is never used for DECIMAL.
|
||||
// this is never used for DECIMAL.
|
||||
case CalpontSystemCatalog::DECIMAL :
|
||||
case CalpontSystemCatalog::UDECIMAL:
|
||||
|
||||
@ -433,27 +455,33 @@ void Convertor::convertColType(CalpontSystemCatalog::ColDataType dataType,
|
||||
case CalpontSystemCatalog::CHAR :
|
||||
case CalpontSystemCatalog::VARCHAR :
|
||||
case CalpontSystemCatalog::CLOB :
|
||||
internalType = WriteEngine::WR_CHAR; break;
|
||||
internalType = WriteEngine::WR_CHAR;
|
||||
break;
|
||||
|
||||
// Map UTINYINT to WR_UBYTE
|
||||
case CalpontSystemCatalog::UTINYINT:
|
||||
internalType = WriteEngine::WR_UBYTE; break;
|
||||
internalType = WriteEngine::WR_UBYTE;
|
||||
break;
|
||||
|
||||
// Map USMALLINT to WR_USHORT
|
||||
case CalpontSystemCatalog::USMALLINT:
|
||||
internalType = WriteEngine::WR_USHORT; break;
|
||||
internalType = WriteEngine::WR_USHORT;
|
||||
break;
|
||||
|
||||
// Map UMEDINT and UINT to WR_UINT
|
||||
case CalpontSystemCatalog::UMEDINT:
|
||||
case CalpontSystemCatalog::UINT:
|
||||
internalType = WriteEngine::WR_UINT; break;
|
||||
internalType = WriteEngine::WR_UINT;
|
||||
break;
|
||||
|
||||
// Map UBIGINT to WR_ULONGLONG
|
||||
case CalpontSystemCatalog::UBIGINT:
|
||||
internalType = WriteEngine::WR_ULONGLONG; break;
|
||||
internalType = WriteEngine::WR_ULONGLONG;
|
||||
break;
|
||||
|
||||
default:
|
||||
internalType = WriteEngine::WR_CHAR; break;
|
||||
internalType = WriteEngine::WR_CHAR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -468,69 +496,84 @@ void Convertor::convertColType(CalpontSystemCatalog::ColDataType dataType,
|
||||
* none
|
||||
******************************************************************************/
|
||||
/* static */
|
||||
void Convertor::convertWEColType(ColType internalType,
|
||||
CalpontSystemCatalog::ColDataType& dataType)
|
||||
void Convertor::convertWEColType(ColType internalType,
|
||||
CalpontSystemCatalog::ColDataType& dataType)
|
||||
{
|
||||
switch(internalType)
|
||||
switch (internalType)
|
||||
{
|
||||
// Map BIT and TINYINT to WR_BYTE
|
||||
case WriteEngine::WR_BYTE :
|
||||
dataType = CalpontSystemCatalog::TINYINT; break;
|
||||
dataType = CalpontSystemCatalog::TINYINT;
|
||||
break;
|
||||
|
||||
// Map SMALLINT to WR_SHORT
|
||||
case WriteEngine::WR_SHORT :
|
||||
dataType = CalpontSystemCatalog::SMALLINT; break;
|
||||
dataType = CalpontSystemCatalog::SMALLINT;
|
||||
break;
|
||||
|
||||
// Map MEDINT, INT, and DATE to WR_INT
|
||||
case WriteEngine::WR_INT :
|
||||
dataType = CalpontSystemCatalog::INT; break;
|
||||
dataType = CalpontSystemCatalog::INT;
|
||||
break;
|
||||
|
||||
// Map FLOAT and UFLOAT to WR_FLOAT
|
||||
case WriteEngine::WR_FLOAT:
|
||||
dataType = CalpontSystemCatalog::FLOAT; break;
|
||||
dataType = CalpontSystemCatalog::FLOAT;
|
||||
break;
|
||||
|
||||
// Map BIGINT and DATETIME to WR_LONGLONG
|
||||
case WriteEngine::WR_LONGLONG :
|
||||
dataType = CalpontSystemCatalog::BIGINT; break;
|
||||
dataType = CalpontSystemCatalog::BIGINT;
|
||||
break;
|
||||
|
||||
// Map DOUBLE and UDOUBLE to WR_DOUBLE
|
||||
case WriteEngine::WR_DOUBLE :
|
||||
dataType = CalpontSystemCatalog::DOUBLE; break;
|
||||
dataType = CalpontSystemCatalog::DOUBLE;
|
||||
break;
|
||||
|
||||
// Map BLOB to WR_BLOB
|
||||
case WriteEngine::WR_BLOB :
|
||||
dataType = CalpontSystemCatalog::BLOB; break;
|
||||
dataType = CalpontSystemCatalog::BLOB;
|
||||
break;
|
||||
|
||||
// Map TEXT to WR_TEXT
|
||||
case WriteEngine::WR_TEXT :
|
||||
dataType = CalpontSystemCatalog::TEXT; break;
|
||||
dataType = CalpontSystemCatalog::TEXT;
|
||||
break;
|
||||
|
||||
// Map VARBINARY to WR_VARBINARY
|
||||
case WriteEngine::WR_VARBINARY:
|
||||
dataType = CalpontSystemCatalog::VARBINARY; break;
|
||||
dataType = CalpontSystemCatalog::VARBINARY;
|
||||
break;
|
||||
|
||||
// Map CHAR, VARCHAR, and CLOB to WR_CHAR
|
||||
case WriteEngine::WR_CHAR :
|
||||
dataType = CalpontSystemCatalog::CHAR; break;
|
||||
dataType = CalpontSystemCatalog::CHAR;
|
||||
break;
|
||||
|
||||
// Map UTINYINT to WR_UBYTE
|
||||
case WriteEngine::WR_UBYTE:
|
||||
dataType = CalpontSystemCatalog::UTINYINT; break;
|
||||
dataType = CalpontSystemCatalog::UTINYINT;
|
||||
break;
|
||||
|
||||
// Map USMALLINT to WR_USHORT
|
||||
case WriteEngine::WR_USHORT:
|
||||
dataType = CalpontSystemCatalog::USMALLINT; break;
|
||||
dataType = CalpontSystemCatalog::USMALLINT;
|
||||
break;
|
||||
|
||||
// Map UMEDINT and UINT to WR_UINT
|
||||
case WriteEngine::WR_UINT:
|
||||
dataType = CalpontSystemCatalog::UINT; break;
|
||||
dataType = CalpontSystemCatalog::UINT;
|
||||
break;
|
||||
|
||||
// Map UBIGINT to WR_ULONGLONG
|
||||
case WriteEngine::WR_ULONGLONG:
|
||||
dataType = CalpontSystemCatalog::UBIGINT; break;
|
||||
dataType = CalpontSystemCatalog::UBIGINT;
|
||||
break;
|
||||
|
||||
default:
|
||||
dataType = CalpontSystemCatalog::CHAR; break;
|
||||
dataType = CalpontSystemCatalog::CHAR;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -547,7 +590,7 @@ void Convertor::convertWEColType(ColType internalType,
|
||||
void Convertor::convertColType(ColStruct* curStruct)
|
||||
{
|
||||
CalpontSystemCatalog::ColDataType dataType // This will be updated later,
|
||||
= CalpontSystemCatalog::CHAR; // CHAR used only for initialization.
|
||||
= CalpontSystemCatalog::CHAR; // CHAR used only for initialization.
|
||||
ColType* internalType = NULL;
|
||||
bool bTokenFlag = false;
|
||||
int* width = NULL;
|
||||
@ -557,36 +600,43 @@ void Convertor::convertColType(ColStruct* curStruct)
|
||||
bTokenFlag = curStruct->tokenFlag;
|
||||
width = &(curStruct->colWidth);
|
||||
|
||||
switch(dataType) {
|
||||
switch (dataType)
|
||||
{
|
||||
// Map BIT and TINYINT to WR_BYTE
|
||||
case CalpontSystemCatalog::BIT :
|
||||
case CalpontSystemCatalog::TINYINT :
|
||||
*internalType = WriteEngine::WR_BYTE; break;
|
||||
*internalType = WriteEngine::WR_BYTE;
|
||||
break;
|
||||
|
||||
// Map SMALLINT to WR_SHORT
|
||||
case CalpontSystemCatalog::SMALLINT :
|
||||
*internalType = WriteEngine::WR_SHORT; break;
|
||||
*internalType = WriteEngine::WR_SHORT;
|
||||
break;
|
||||
|
||||
// Map MEDINT, INT, and DATE to WR_INT
|
||||
case CalpontSystemCatalog::MEDINT :
|
||||
case CalpontSystemCatalog::INT :
|
||||
case CalpontSystemCatalog::DATE :
|
||||
*internalType = WriteEngine::WR_INT; break;
|
||||
*internalType = WriteEngine::WR_INT;
|
||||
break;
|
||||
|
||||
// Map FLOAT and UFLOAT to WR_FLOAT
|
||||
case CalpontSystemCatalog::FLOAT :
|
||||
case CalpontSystemCatalog::UFLOAT :
|
||||
*internalType = WriteEngine::WR_FLOAT; break;
|
||||
*internalType = WriteEngine::WR_FLOAT;
|
||||
break;
|
||||
|
||||
// Map BIGINT and DATETIME to WR_LONGLONG
|
||||
case CalpontSystemCatalog::BIGINT :
|
||||
case CalpontSystemCatalog::DATETIME :
|
||||
*internalType = WriteEngine::WR_LONGLONG; break;
|
||||
*internalType = WriteEngine::WR_LONGLONG;
|
||||
break;
|
||||
|
||||
// Map DOUBLE and UDOUBLE to WR_DOUBLE
|
||||
case CalpontSystemCatalog::DOUBLE :
|
||||
case CalpontSystemCatalog::UDOUBLE :
|
||||
*internalType = WriteEngine::WR_DOUBLE; break;
|
||||
*internalType = WriteEngine::WR_DOUBLE;
|
||||
break;
|
||||
|
||||
// Map DECIMAL to applicable integer type
|
||||
case CalpontSystemCatalog::DECIMAL :
|
||||
@ -594,51 +644,72 @@ void Convertor::convertColType(ColStruct* curStruct)
|
||||
{
|
||||
switch (*width)
|
||||
{
|
||||
case 1 : *internalType = WriteEngine::WR_BYTE; break;
|
||||
case 2 : *internalType = WriteEngine::WR_SHORT; break;
|
||||
case 4 : *internalType = WriteEngine::WR_INT; break;
|
||||
default: *internalType = WriteEngine::WR_LONGLONG; break;
|
||||
case 1 :
|
||||
*internalType = WriteEngine::WR_BYTE;
|
||||
break;
|
||||
|
||||
case 2 :
|
||||
*internalType = WriteEngine::WR_SHORT;
|
||||
break;
|
||||
|
||||
case 4 :
|
||||
*internalType = WriteEngine::WR_INT;
|
||||
break;
|
||||
|
||||
default:
|
||||
*internalType = WriteEngine::WR_LONGLONG;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
// Map BLOB to WR_BLOB
|
||||
case CalpontSystemCatalog::BLOB :
|
||||
*internalType = WriteEngine::WR_BLOB; break;
|
||||
*internalType = WriteEngine::WR_BLOB;
|
||||
break;
|
||||
|
||||
// Map TEXT to WR_TEXT
|
||||
case CalpontSystemCatalog::TEXT :
|
||||
*internalType = WriteEngine::WR_TEXT; break;
|
||||
*internalType = WriteEngine::WR_TEXT;
|
||||
break;
|
||||
|
||||
// Map VARBINARY to WR_VARBINARY
|
||||
case CalpontSystemCatalog::VARBINARY:
|
||||
*internalType = WriteEngine::WR_VARBINARY; break;
|
||||
*internalType = WriteEngine::WR_VARBINARY;
|
||||
break;
|
||||
|
||||
// Map CHAR, VARCHAR, and CLOB to WR_CHAR
|
||||
case CalpontSystemCatalog::CHAR :
|
||||
case CalpontSystemCatalog::VARCHAR :
|
||||
case CalpontSystemCatalog::CLOB :
|
||||
*internalType = WriteEngine::WR_CHAR; break;
|
||||
*internalType = WriteEngine::WR_CHAR;
|
||||
break;
|
||||
|
||||
// Map UTINYINT to WR_UBYTE
|
||||
case CalpontSystemCatalog::UTINYINT:
|
||||
*internalType = WriteEngine::WR_UBYTE; break;
|
||||
*internalType = WriteEngine::WR_UBYTE;
|
||||
break;
|
||||
|
||||
// Map USMALLINT to WR_USHORT
|
||||
case CalpontSystemCatalog::USMALLINT:
|
||||
*internalType = WriteEngine::WR_USHORT; break;
|
||||
*internalType = WriteEngine::WR_USHORT;
|
||||
break;
|
||||
|
||||
// Map UMEDINT and UINT to WR_UINT
|
||||
case CalpontSystemCatalog::UMEDINT:
|
||||
case CalpontSystemCatalog::UINT:
|
||||
*internalType = WriteEngine::WR_UINT; break;
|
||||
*internalType = WriteEngine::WR_UINT;
|
||||
break;
|
||||
|
||||
// Map UBIGINT to WR_ULONGLONG
|
||||
case CalpontSystemCatalog::UBIGINT:
|
||||
*internalType = WriteEngine::WR_ULONGLONG; break;
|
||||
*internalType = WriteEngine::WR_ULONGLONG;
|
||||
break;
|
||||
|
||||
default:
|
||||
*internalType = WriteEngine::WR_CHAR; break;
|
||||
*internalType = WriteEngine::WR_CHAR;
|
||||
break;
|
||||
}
|
||||
|
||||
if (bTokenFlag) // token overwrite any other types
|
||||
@ -669,27 +740,40 @@ int Convertor::getCorrectRowWidth(CalpontSystemCatalog::ColDataType dataType, in
|
||||
{
|
||||
int offset, newWidth = 4;
|
||||
|
||||
switch(dataType) {
|
||||
case CalpontSystemCatalog::TINYINT:
|
||||
case CalpontSystemCatalog::UTINYINT:
|
||||
newWidth = 1; break;
|
||||
case CalpontSystemCatalog::SMALLINT:
|
||||
case CalpontSystemCatalog::USMALLINT:
|
||||
newWidth = 2; break;
|
||||
switch (dataType)
|
||||
{
|
||||
case CalpontSystemCatalog::TINYINT:
|
||||
case CalpontSystemCatalog::UTINYINT:
|
||||
newWidth = 1;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::SMALLINT:
|
||||
case CalpontSystemCatalog::USMALLINT:
|
||||
newWidth = 2;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::MEDINT:
|
||||
case CalpontSystemCatalog::INT:
|
||||
case CalpontSystemCatalog::UMEDINT:
|
||||
case CalpontSystemCatalog::UINT:
|
||||
newWidth = 4; break;
|
||||
newWidth = 4;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::BIGINT:
|
||||
case CalpontSystemCatalog::UBIGINT:
|
||||
newWidth = 8; break;
|
||||
newWidth = 8;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::FLOAT:
|
||||
case CalpontSystemCatalog::UFLOAT:
|
||||
newWidth = 4; break;
|
||||
newWidth = 4;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::DOUBLE:
|
||||
case CalpontSystemCatalog::UDOUBLE:
|
||||
newWidth = 8; break;
|
||||
newWidth = 8;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::DECIMAL:
|
||||
case CalpontSystemCatalog::UDECIMAL:
|
||||
if (width == 1)
|
||||
@ -700,24 +784,31 @@ int Convertor::getCorrectRowWidth(CalpontSystemCatalog::ColDataType dataType, in
|
||||
newWidth = 4;
|
||||
else
|
||||
newWidth = 8;
|
||||
|
||||
break;
|
||||
case CalpontSystemCatalog::DATE:
|
||||
newWidth = 4; break;
|
||||
|
||||
case CalpontSystemCatalog::DATE:
|
||||
newWidth = 4;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::DATETIME:
|
||||
newWidth = 8; break;
|
||||
newWidth = 8;
|
||||
break;
|
||||
|
||||
case CalpontSystemCatalog::CHAR:
|
||||
case CalpontSystemCatalog::VARCHAR:
|
||||
case CalpontSystemCatalog::VARBINARY: // treat same as varchar for now
|
||||
default:
|
||||
offset = (dataType == CalpontSystemCatalog::VARCHAR)? -1 : 0;
|
||||
offset = (dataType == CalpontSystemCatalog::VARCHAR) ? -1 : 0;
|
||||
newWidth = 1;
|
||||
|
||||
if (width == (2 + offset))
|
||||
newWidth = 2;
|
||||
else if (width >= (3 + offset) && width <= (4 + offset))
|
||||
newWidth = 4;
|
||||
else if (width >= (5 + offset))
|
||||
newWidth = 8;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -766,67 +857,67 @@ int Convertor::getCorrectRowWidth(CalpontSystemCatalog::ColDataType dataType, in
|
||||
******************************************************************************/
|
||||
/*static*/
|
||||
int Convertor::dmOid2FPath(uint32_t oid, uint32_t partition, uint32_t segment,
|
||||
dmFilePathArgs_t* pArgs)
|
||||
dmFilePathArgs_t* pArgs)
|
||||
{
|
||||
pArgs->Arc = _doDir(
|
||||
pArgs->pDirA,
|
||||
pArgs->ALen,
|
||||
(unsigned int)oid>>24);
|
||||
pArgs->pDirA,
|
||||
pArgs->ALen,
|
||||
(unsigned int)oid >> 24);
|
||||
|
||||
pArgs->Brc = _doDir(
|
||||
pArgs->pDirB,
|
||||
pArgs->BLen,
|
||||
(unsigned int)(oid&0x00ff0000)>>16);
|
||||
pArgs->pDirB,
|
||||
pArgs->BLen,
|
||||
(unsigned int)(oid & 0x00ff0000) >> 16);
|
||||
|
||||
pArgs->Crc = _doDir(
|
||||
pArgs->pDirC,
|
||||
pArgs->CLen,
|
||||
(unsigned int)(oid&0x0000ff00)>>8);
|
||||
pArgs->pDirC,
|
||||
pArgs->CLen,
|
||||
(unsigned int)(oid & 0x0000ff00) >> 8);
|
||||
|
||||
// include partition and seg num in the file path if they are present
|
||||
if (pArgs->DLen > 0)
|
||||
{
|
||||
pArgs->Drc = _doDir(
|
||||
pArgs->pDirD,
|
||||
pArgs->DLen,
|
||||
(unsigned int)(oid&0x000000ff));
|
||||
pArgs->pDirD,
|
||||
pArgs->DLen,
|
||||
(unsigned int)(oid & 0x000000ff));
|
||||
|
||||
pArgs->Erc = _doDir(
|
||||
pArgs->pDirE,
|
||||
pArgs->ELen,
|
||||
partition);
|
||||
pArgs->pDirE,
|
||||
pArgs->ELen,
|
||||
partition);
|
||||
|
||||
pArgs->FNrc = _doFile(
|
||||
pArgs->pFName,
|
||||
pArgs->FNLen,
|
||||
segment);
|
||||
pArgs->pFName,
|
||||
pArgs->FNLen,
|
||||
segment);
|
||||
|
||||
if ( (pArgs->Drc < 0) ||
|
||||
(pArgs->Erc < 0) )
|
||||
(pArgs->Erc < 0) )
|
||||
return -1;
|
||||
|
||||
if ( (pArgs->Drc >= pArgs->ALen) ||
|
||||
(pArgs->Erc >= pArgs->ALen) )
|
||||
(pArgs->Erc >= pArgs->ALen) )
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
pArgs->FNrc = _doFile(
|
||||
pArgs->pFName,
|
||||
pArgs->FNLen,
|
||||
(unsigned int)(oid&0x000000ff));
|
||||
pArgs->pFName,
|
||||
pArgs->FNLen,
|
||||
(unsigned int)(oid & 0x000000ff));
|
||||
}
|
||||
|
||||
if ( (pArgs->Arc < 0) ||
|
||||
(pArgs->Brc < 0) ||
|
||||
(pArgs->Crc < 0) ||
|
||||
(pArgs->FNrc < 0) )
|
||||
(pArgs->Brc < 0) ||
|
||||
(pArgs->Crc < 0) ||
|
||||
(pArgs->FNrc < 0) )
|
||||
return -1;
|
||||
|
||||
if ( (pArgs->Arc >= pArgs->ALen) ||
|
||||
(pArgs->Brc >= pArgs->BLen) ||
|
||||
(pArgs->Crc >= pArgs->CLen) ||
|
||||
(pArgs->FNrc >= pArgs->FNLen) )
|
||||
(pArgs->Brc >= pArgs->BLen) ||
|
||||
(pArgs->Crc >= pArgs->CLen) ||
|
||||
(pArgs->FNrc >= pArgs->FNLen) )
|
||||
return -1;
|
||||
else
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user