You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-11-03 17:13:17 +03:00
Merge pull request #148 from mariadb-corporation/MCOL-664
MCOL-664 Add function support for TEXT
This commit is contained in:
@@ -325,8 +325,7 @@ void ExpressionStep::populateColumnInfo(ReturnedColumn* rc, JobInfo& jobInfo)
|
|||||||
{
|
{
|
||||||
// As of bug3695, make sure varbinary is not used in function expression.
|
// As of bug3695, make sure varbinary is not used in function expression.
|
||||||
if ((rc->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
if ((rc->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
||||||
rc->resultType().colDataType == CalpontSystemCatalog::BLOB ||
|
rc->resultType().colDataType == CalpontSystemCatalog::BLOB) && !fVarBinOK)
|
||||||
rc->resultType().colDataType == CalpontSystemCatalog::TEXT) && !fVarBinOK)
|
|
||||||
throw runtime_error("VARBINARY/BLOB in filter or function is not supported.");
|
throw runtime_error("VARBINARY/BLOB in filter or function is not supported.");
|
||||||
|
|
||||||
SimpleColumn* sc = dynamic_cast<SimpleColumn*>(rc);
|
SimpleColumn* sc = dynamic_cast<SimpleColumn*>(rc);
|
||||||
@@ -347,8 +346,7 @@ void ExpressionStep::populateColumnInfo(SimpleColumn* sc, JobInfo& jobInfo)
|
|||||||
{
|
{
|
||||||
// As of bug3695, make sure varbinary is not used in function expression.
|
// As of bug3695, make sure varbinary is not used in function expression.
|
||||||
if ((sc->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
if ((sc->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
||||||
sc->resultType().colDataType == CalpontSystemCatalog::BLOB ||
|
sc->resultType().colDataType == CalpontSystemCatalog::BLOB) && !fVarBinOK)
|
||||||
sc->resultType().colDataType == CalpontSystemCatalog::TEXT) && !fVarBinOK)
|
|
||||||
throw runtime_error ("VARBINARY/BLOB in filter or function is not supported.");
|
throw runtime_error ("VARBINARY/BLOB in filter or function is not supported.");
|
||||||
|
|
||||||
CalpontSystemCatalog::OID tblOid = joblist::tableOid(sc, jobInfo.csc);
|
CalpontSystemCatalog::OID tblOid = joblist::tableOid(sc, jobInfo.csc);
|
||||||
@@ -414,8 +412,7 @@ void ExpressionStep::populateColumnInfo(WindowFunctionColumn* wc, JobInfo& jobIn
|
|||||||
{
|
{
|
||||||
// As of bug3695, make sure varbinary is not used in function expression.
|
// As of bug3695, make sure varbinary is not used in function expression.
|
||||||
if ((wc->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
if ((wc->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
||||||
wc->resultType().colDataType == CalpontSystemCatalog::BLOB ||
|
wc->resultType().colDataType == CalpontSystemCatalog::BLOB) && !fVarBinOK)
|
||||||
wc->resultType().colDataType == CalpontSystemCatalog::TEXT) && !fVarBinOK)
|
|
||||||
throw runtime_error("VARBINARY/BLOB in filter or function is not supported.");
|
throw runtime_error("VARBINARY/BLOB in filter or function is not supported.");
|
||||||
|
|
||||||
// This is for window function in IN/EXISTS sub-query.
|
// This is for window function in IN/EXISTS sub-query.
|
||||||
@@ -441,8 +438,7 @@ void ExpressionStep::populateColumnInfo(AggregateColumn* ac, JobInfo& jobInfo)
|
|||||||
{
|
{
|
||||||
// As of bug3695, make sure varbinary is not used in function expression.
|
// As of bug3695, make sure varbinary is not used in function expression.
|
||||||
if ((ac->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
if ((ac->resultType().colDataType == CalpontSystemCatalog::VARBINARY ||
|
||||||
ac->resultType().colDataType == CalpontSystemCatalog::BLOB ||
|
ac->resultType().colDataType == CalpontSystemCatalog::BLOB) && !fVarBinOK)
|
||||||
ac->resultType().colDataType == CalpontSystemCatalog::TEXT) && !fVarBinOK)
|
|
||||||
throw runtime_error("VARBINARY/BLOB in filter or function is not supported.");
|
throw runtime_error("VARBINARY/BLOB in filter or function is not supported.");
|
||||||
|
|
||||||
// This is for aggregate function in IN/EXISTS sub-query.
|
// This is for aggregate function in IN/EXISTS sub-query.
|
||||||
|
|||||||
@@ -174,6 +174,7 @@ namespace
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& val = pm[0]->data()->getStrVal(row, isNull);
|
const string& val = pm[0]->data()->getStrVal(row, isNull);
|
||||||
if (notBetween)
|
if (notBetween)
|
||||||
@@ -215,6 +216,7 @@ CalpontSystemCatalog::ColType Func_between::operationType( FunctionParm& fp, Cal
|
|||||||
ct = op.operationType();
|
ct = op.operationType();
|
||||||
|
|
||||||
if ((fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
if ((fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
||||||
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::TEXT &&
|
||||||
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR) ||
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR) ||
|
||||||
ct.colDataType == CalpontSystemCatalog::DATE ||
|
ct.colDataType == CalpontSystemCatalog::DATE ||
|
||||||
ct.colDataType == CalpontSystemCatalog::DATETIME)
|
ct.colDataType == CalpontSystemCatalog::DATETIME)
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ int64_t Func_bitand::getIntVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
int64_t value = parm[i]->data()->getIntVal(row, isNull);
|
int64_t value = parm[i]->data()->getIntVal(row, isNull);
|
||||||
if (isNull)
|
if (isNull)
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ bool getUIntValFromParm(
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
value = parm->data()->getIntVal(row, isNull);
|
value = parm->data()->getIntVal(row, isNull);
|
||||||
if (isNull)
|
if (isNull)
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ inline uint64_t simple_case_cmp(Row& row,
|
|||||||
}
|
}
|
||||||
|
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
const string& ev = parm[n]->data()->getStrVal(row, isNull);
|
const string& ev = parm[n]->data()->getStrVal(row, isNull);
|
||||||
@@ -252,6 +253,7 @@ CalpontSystemCatalog::ColType caseOperationType(FunctionParm& fp,
|
|||||||
{
|
{
|
||||||
// the case expression
|
// the case expression
|
||||||
if (fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
if (fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
||||||
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::TEXT &&
|
||||||
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR)
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR)
|
||||||
{
|
{
|
||||||
PredicateOperator op;
|
PredicateOperator op;
|
||||||
@@ -267,6 +269,7 @@ CalpontSystemCatalog::ColType caseOperationType(FunctionParm& fp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
if (fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
||||||
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::TEXT &&
|
||||||
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR)
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR)
|
||||||
{
|
{
|
||||||
// this is not a string column
|
// this is not a string column
|
||||||
@@ -280,6 +283,7 @@ CalpontSystemCatalog::ColType caseOperationType(FunctionParm& fp,
|
|||||||
|
|
||||||
// If any parm is of string type, the result type should be string. (same as if)
|
// If any parm is of string type, the result type should be string. (same as if)
|
||||||
else if (rct.colDataType != CalpontSystemCatalog::CHAR &&
|
else if (rct.colDataType != CalpontSystemCatalog::CHAR &&
|
||||||
|
rct.colDataType != CalpontSystemCatalog::TEXT &&
|
||||||
rct.colDataType != CalpontSystemCatalog::VARCHAR)
|
rct.colDataType != CalpontSystemCatalog::VARCHAR)
|
||||||
{
|
{
|
||||||
op.setOpType(rct, fp[i]->data()->resultType());
|
op.setOpType(rct, fp[i]->data()->resultType());
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ int64_t Func_cast_signed::getIntVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (isNull)
|
if (isNull)
|
||||||
@@ -243,6 +244,7 @@ uint64_t Func_cast_unsigned::getUintVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (isNull)
|
if (isNull)
|
||||||
@@ -358,6 +360,7 @@ string Func_cast_char::getStrVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (isNull)
|
if (isNull)
|
||||||
@@ -519,6 +522,7 @@ int32_t Func_cast_date::getDateIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDate(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDate(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
@@ -588,6 +592,7 @@ int64_t Func_cast_date::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
@@ -716,6 +721,7 @@ int64_t Func_cast_datetime::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
@@ -893,6 +899,7 @@ IDB_Decimal Func_cast_decimal::getDecimalVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& strValue = parm[0]->data()->getStrVal(row, isNull);
|
const string& strValue = parm[0]->data()->getStrVal(row, isNull);
|
||||||
const char* str = strValue.c_str();
|
const char* str = strValue.c_str();
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ int64_t Func_ceil::getIntVal(Row& row,
|
|||||||
|
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
@@ -197,6 +198,7 @@ uint64_t Func_ceil::getUintVal(Row& row,
|
|||||||
|
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
@@ -247,7 +249,8 @@ double Func_ceil::getDoubleVal(Row& row,
|
|||||||
ret = ceil(parm[0]->data()->getDoubleVal(row, isNull));
|
ret = ceil(parm[0]->data()->getDoubleVal(row, isNull));
|
||||||
}
|
}
|
||||||
else if (op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
else if (op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::CHAR)
|
op_ct.colDataType == CalpontSystemCatalog::CHAR ||
|
||||||
|
op_ct.colDataType == CalpontSystemCatalog::TEXT)
|
||||||
{
|
{
|
||||||
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
@@ -280,7 +283,8 @@ string Func_ceil::getStrVal(Row& row,
|
|||||||
op_ct.colDataType == CalpontSystemCatalog::FLOAT ||
|
op_ct.colDataType == CalpontSystemCatalog::FLOAT ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::UFLOAT ||
|
op_ct.colDataType == CalpontSystemCatalog::UFLOAT ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::CHAR)
|
op_ct.colDataType == CalpontSystemCatalog::CHAR ||
|
||||||
|
op_ct.colDataType == CalpontSystemCatalog::TEXT)
|
||||||
{
|
{
|
||||||
snprintf(tmp, 511, "%f", getDoubleVal(row, parm, isNull, op_ct));
|
snprintf(tmp, 511, "%f", getDoubleVal(row, parm, isNull, op_ct));
|
||||||
|
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ string Func_char::getStrVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DOUBLE:
|
case execplan::CalpontSystemCatalog::DOUBLE:
|
||||||
case execplan::CalpontSystemCatalog::UDOUBLE:
|
case execplan::CalpontSystemCatalog::UDOUBLE:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ int64_t Func_char_length::getIntVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR
|
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ int64_t Func_date::getIntVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -661,6 +661,7 @@ int64_t Func_date_add::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
break;
|
break;
|
||||||
@@ -693,6 +694,7 @@ int64_t Func_date_add::getIntVal(rowgroup::Row& row,
|
|||||||
ConstantColumn* constCol = dynamic_cast<ConstantColumn*>(parm[3]->data());
|
ConstantColumn* constCol = dynamic_cast<ConstantColumn*>(parm[3]->data());
|
||||||
execplan::CalpontSystemCatalog::ColType ct3 = parm[3]->data()->resultType();
|
execplan::CalpontSystemCatalog::ColType ct3 = parm[3]->data()->resultType();
|
||||||
if ((ct3.colDataType == execplan::CalpontSystemCatalog::CHAR ||
|
if ((ct3.colDataType == execplan::CalpontSystemCatalog::CHAR ||
|
||||||
|
ct3.colDataType == execplan::CalpontSystemCatalog::TEXT ||
|
||||||
ct3.colDataType == execplan::CalpontSystemCatalog::VARCHAR) &&
|
ct3.colDataType == execplan::CalpontSystemCatalog::VARCHAR) &&
|
||||||
constCol != NULL && constCol->constval().compare("SUB") == 0)
|
constCol != NULL && constCol->constval().compare("SUB") == 0)
|
||||||
funcType = OP_SUB;
|
funcType = OP_SUB;
|
||||||
|
|||||||
@@ -238,6 +238,7 @@ string Func_date_format::getStrVal(rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ int64_t Func_day::getIntVal(rowgroup::Row& row,
|
|||||||
val = parm[0]->data()->getIntVal(row, isNull);
|
val = parm[0]->data()->getIntVal(row, isNull);
|
||||||
return (uint32_t)((val >> 38) & 0x3f);
|
return (uint32_t)((val >> 38) & 0x3f);
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ int64_t Func_dayname::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ int64_t Func_dayofweek::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ int64_t Func_dayofyear::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ string Func_elt::getStrVal(rowgroup::Row& row,
|
|||||||
case CalpontSystemCatalog::DOUBLE:
|
case CalpontSystemCatalog::DOUBLE:
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
||||||
|
|||||||
@@ -118,6 +118,7 @@ int64_t Func_extract::getIntVal(rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& val = parm[0]->data()->getStrVal(row, isNull);
|
const string& val = parm[0]->data()->getStrVal(row, isNull);
|
||||||
time = dataconvert::DataConvert::stringToDatetime(val);
|
time = dataconvert::DataConvert::stringToDatetime(val);
|
||||||
|
|||||||
@@ -118,6 +118,7 @@ int64_t Func_floor::getIntVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
@@ -200,6 +201,7 @@ uint64_t Func_floor::getUintVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
@@ -252,7 +254,8 @@ double Func_floor::getDoubleVal(Row& row,
|
|||||||
ret = floor(parm[0]->data()->getDoubleVal(row, isNull));
|
ret = floor(parm[0]->data()->getDoubleVal(row, isNull));
|
||||||
}
|
}
|
||||||
else if (op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
else if (op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::CHAR)
|
op_ct.colDataType == CalpontSystemCatalog::CHAR ||
|
||||||
|
op_ct.colDataType == CalpontSystemCatalog::TEXT)
|
||||||
{
|
{
|
||||||
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
const string& str = parm[0]->data()->getStrVal(row, isNull);
|
||||||
if (!isNull)
|
if (!isNull)
|
||||||
@@ -278,7 +281,8 @@ string Func_floor::getStrVal(Row& row,
|
|||||||
op_ct.colDataType == CalpontSystemCatalog::FLOAT ||
|
op_ct.colDataType == CalpontSystemCatalog::FLOAT ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::UFLOAT ||
|
op_ct.colDataType == CalpontSystemCatalog::UFLOAT ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
op_ct.colDataType == CalpontSystemCatalog::VARCHAR ||
|
||||||
op_ct.colDataType == CalpontSystemCatalog::CHAR)
|
op_ct.colDataType == CalpontSystemCatalog::CHAR ||
|
||||||
|
op_ct.colDataType == CalpontSystemCatalog::TEXT)
|
||||||
{
|
{
|
||||||
snprintf(tmp, 511, "%f", getDoubleVal(row, parm, isNull, op_ct));
|
snprintf(tmp, 511, "%f", getDoubleVal(row, parm, isNull, op_ct));
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ string Func_hex::getStrVal(rowgroup::Row& row,
|
|||||||
switch (parm[0]->data()->resultType().colDataType)
|
switch (parm[0]->data()->resultType().colDataType)
|
||||||
{
|
{
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
case CalpontSystemCatalog::DATETIME:
|
case CalpontSystemCatalog::DATETIME:
|
||||||
case CalpontSystemCatalog::DATE:
|
case CalpontSystemCatalog::DATE:
|
||||||
@@ -97,7 +98,6 @@ string Func_hex::getStrVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case CalpontSystemCatalog::VARBINARY:
|
case CalpontSystemCatalog::VARBINARY:
|
||||||
case CalpontSystemCatalog::BLOB:
|
case CalpontSystemCatalog::BLOB:
|
||||||
case CalpontSystemCatalog::TEXT:
|
|
||||||
{
|
{
|
||||||
const string& arg = parm[0]->data()->getStrVal(row, isNull);
|
const string& arg = parm[0]->data()->getStrVal(row, isNull);
|
||||||
uint64_t hexLen = arg.size() * 2;
|
uint64_t hexLen = arg.size() * 2;
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ int64_t Func_hour::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ bool boolVal(SPTP& parm, Row& row, bool& isNull)
|
|||||||
switch (parm->data()->resultType().colDataType)
|
switch (parm->data()->resultType().colDataType)
|
||||||
{
|
{
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
ret = (atoi((char*)(parm->data()->getStrVal().c_str())) != 0);
|
ret = (atoi((char*)(parm->data()->getStrVal().c_str())) != 0);
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
@@ -95,7 +96,9 @@ CalpontSystemCatalog::ColType Func_if::operationType(FunctionParm& fp, CalpontSy
|
|||||||
// If any parm is of string type, the result type should be string.
|
// If any parm is of string type, the result type should be string.
|
||||||
if (fp[1]->data()->resultType().colDataType == CalpontSystemCatalog::CHAR ||
|
if (fp[1]->data()->resultType().colDataType == CalpontSystemCatalog::CHAR ||
|
||||||
fp[1]->data()->resultType().colDataType == CalpontSystemCatalog::VARCHAR ||
|
fp[1]->data()->resultType().colDataType == CalpontSystemCatalog::VARCHAR ||
|
||||||
|
fp[1]->data()->resultType().colDataType == CalpontSystemCatalog::TEXT ||
|
||||||
fp[2]->data()->resultType().colDataType == CalpontSystemCatalog::CHAR ||
|
fp[2]->data()->resultType().colDataType == CalpontSystemCatalog::CHAR ||
|
||||||
|
fp[2]->data()->resultType().colDataType == CalpontSystemCatalog::TEXT ||
|
||||||
fp[2]->data()->resultType().colDataType == CalpontSystemCatalog::VARCHAR)
|
fp[2]->data()->resultType().colDataType == CalpontSystemCatalog::VARCHAR)
|
||||||
{
|
{
|
||||||
CalpontSystemCatalog::ColType ct;
|
CalpontSystemCatalog::ColType ct;
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ namespace
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& val = pm[0]->data()->getStrVal(row, isNull);
|
const string& val = pm[0]->data()->getStrVal(row, isNull);
|
||||||
if (isNull)
|
if (isNull)
|
||||||
@@ -211,7 +212,8 @@ CalpontSystemCatalog::ColType Func_in::operationType( FunctionParm& fp, CalpontS
|
|||||||
{
|
{
|
||||||
//op.setOpType(op.operationType(), fp[i]->data()->resultType());
|
//op.setOpType(op.operationType(), fp[i]->data()->resultType());
|
||||||
if (fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
if (fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::CHAR &&
|
||||||
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR)
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::VARCHAR &&
|
||||||
|
fp[i]->data()->resultType().colDataType != CalpontSystemCatalog::TEXT)
|
||||||
{
|
{
|
||||||
allString = false;
|
allString = false;
|
||||||
op.setOpType(ct, fp[i]->data()->resultType());
|
op.setOpType(ct, fp[i]->data()->resultType());
|
||||||
@@ -222,6 +224,8 @@ CalpontSystemCatalog::ColType Func_in::operationType( FunctionParm& fp, CalpontS
|
|||||||
if ((fp[i]->data()->resultType().colDataType == CalpontSystemCatalog::CHAR &&
|
if ((fp[i]->data()->resultType().colDataType == CalpontSystemCatalog::CHAR &&
|
||||||
fp[i]->data()->resultType().colWidth > 8) ||
|
fp[i]->data()->resultType().colWidth > 8) ||
|
||||||
(fp[i]->data()->resultType().colDataType == CalpontSystemCatalog::VARCHAR &&
|
(fp[i]->data()->resultType().colDataType == CalpontSystemCatalog::VARCHAR &&
|
||||||
|
fp[i]->data()->resultType().colWidth >= 8) ||
|
||||||
|
(fp[i]->data()->resultType().colDataType == CalpontSystemCatalog::TEXT &&
|
||||||
fp[i]->data()->resultType().colWidth >= 8))
|
fp[i]->data()->resultType().colWidth >= 8))
|
||||||
allNonToken = false;
|
allNonToken = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ bool Func_isnull::getBoolVal(Row& row,
|
|||||||
parm[0]->data()->getDecimalVal(row, isNull);
|
parm[0]->data()->getDecimalVal(row, isNull);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
parm[0]->data()->getStrVal(row, isNull);
|
parm[0]->data()->getStrVal(row, isNull);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ int64_t Func_last_day::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -49,8 +49,7 @@ int64_t Func_length::getIntVal(rowgroup::Row& row,
|
|||||||
CalpontSystemCatalog::ColType&)
|
CalpontSystemCatalog::ColType&)
|
||||||
{
|
{
|
||||||
if ((fp[0]->data()->resultType().colDataType == CalpontSystemCatalog::VARBINARY) ||
|
if ((fp[0]->data()->resultType().colDataType == CalpontSystemCatalog::VARBINARY) ||
|
||||||
(fp[0]->data()->resultType().colDataType == CalpontSystemCatalog::BLOB) ||
|
(fp[0]->data()->resultType().colDataType == CalpontSystemCatalog::BLOB))
|
||||||
(fp[0]->data()->resultType().colDataType == CalpontSystemCatalog::TEXT))
|
|
||||||
return fp[0]->data()->getStrVal(row, isNull).length();
|
return fp[0]->data()->getStrVal(row, isNull).length();
|
||||||
|
|
||||||
return strlen(fp[0]->data()->getStrVal(row, isNull).c_str());
|
return strlen(fp[0]->data()->getStrVal(row, isNull).c_str());
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ uint64_t makedate(rowgroup::Row& row,
|
|||||||
case CalpontSystemCatalog::DOUBLE:
|
case CalpontSystemCatalog::DOUBLE:
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
||||||
@@ -102,6 +103,7 @@ uint64_t makedate(rowgroup::Row& row,
|
|||||||
case CalpontSystemCatalog::DOUBLE:
|
case CalpontSystemCatalog::DOUBLE:
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
dayofyear = parm[1]->data()->getStrVal(row, isNull);
|
dayofyear = parm[1]->data()->getStrVal(row, isNull);
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
|||||||
case CalpontSystemCatalog::DOUBLE:
|
case CalpontSystemCatalog::DOUBLE:
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
||||||
@@ -96,6 +97,7 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
|||||||
case CalpontSystemCatalog::DOUBLE:
|
case CalpontSystemCatalog::DOUBLE:
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
double value = parm[1]->data()->getDoubleVal(row, isNull);
|
double value = parm[1]->data()->getDoubleVal(row, isNull);
|
||||||
@@ -135,6 +137,7 @@ string Func_maketime::getStrVal(rowgroup::Row& row,
|
|||||||
case CalpontSystemCatalog::DOUBLE:
|
case CalpontSystemCatalog::DOUBLE:
|
||||||
case CalpontSystemCatalog::FLOAT:
|
case CalpontSystemCatalog::FLOAT:
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
double value = parm[2]->data()->getDoubleVal(row, isNull);
|
double value = parm[2]->data()->getDoubleVal(row, isNull);
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ double Func_acos::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UBIGINT:
|
case execplan::CalpontSystemCatalog::UBIGINT:
|
||||||
@@ -189,6 +190,7 @@ double Func_asin::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
@@ -275,6 +277,7 @@ double Func_atan::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
@@ -396,6 +399,7 @@ double Func_cos::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
@@ -481,6 +485,7 @@ double Func_cot::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
@@ -674,6 +679,7 @@ double Func_log::getDoubleVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
isNull = true;
|
isNull = true;
|
||||||
return doubleNullVal();
|
return doubleNullVal();
|
||||||
@@ -763,6 +769,7 @@ double Func_log2::getDoubleVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
isNull = true;
|
isNull = true;
|
||||||
return doubleNullVal();
|
return doubleNullVal();
|
||||||
@@ -852,6 +859,7 @@ double Func_log10::getDoubleVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
isNull = true;
|
isNull = true;
|
||||||
return doubleNullVal();
|
return doubleNullVal();
|
||||||
@@ -895,6 +903,7 @@ double Func_sin::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UBIGINT:
|
case execplan::CalpontSystemCatalog::UBIGINT:
|
||||||
@@ -980,6 +989,7 @@ double Func_sqrt::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UBIGINT:
|
case execplan::CalpontSystemCatalog::UBIGINT:
|
||||||
@@ -1065,6 +1075,7 @@ double Func_tan::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UBIGINT:
|
case execplan::CalpontSystemCatalog::UBIGINT:
|
||||||
@@ -1166,6 +1177,7 @@ string Func_format::getStrVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
double rawValue = parm[0]->data()->getDoubleVal(row, isNull);
|
double rawValue = parm[0]->data()->getDoubleVal(row, isNull);
|
||||||
|
|
||||||
@@ -1355,6 +1367,7 @@ double Func_radians::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
@@ -1440,6 +1453,7 @@ double Func_degrees::getDoubleVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ int64_t Func_microsecond::getIntVal(rowgroup::Row& row,
|
|||||||
microSecond = (uint32_t)((val & 0xfffff));
|
microSecond = (uint32_t)((val & 0xfffff));
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ int64_t Func_minute::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ double Func_mod::getDoubleVal(Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
double value = parm[0]->data()->getDoubleVal(row, isNull);
|
||||||
mod = fmod(value,div);
|
mod = fmod(value,div);
|
||||||
@@ -203,6 +204,7 @@ int64_t Func_mod::getIntVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::TINYINT:
|
case execplan::CalpontSystemCatalog::TINYINT:
|
||||||
case execplan::CalpontSystemCatalog::SMALLINT:
|
case execplan::CalpontSystemCatalog::SMALLINT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
int64_t value = parm[0]->data()->getIntVal(row, isNull);
|
int64_t value = parm[0]->data()->getIntVal(row, isNull);
|
||||||
@@ -290,6 +292,7 @@ uint64_t Func_mod::getUIntVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::TINYINT:
|
case execplan::CalpontSystemCatalog::TINYINT:
|
||||||
case execplan::CalpontSystemCatalog::SMALLINT:
|
case execplan::CalpontSystemCatalog::SMALLINT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
int64_t value = parm[0]->data()->getIntVal(row, isNull);
|
int64_t value = parm[0]->data()->getIntVal(row, isNull);
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ int64_t Func_month::getIntVal(rowgroup::Row& row,
|
|||||||
val = parm[0]->data()->getIntVal(row, isNull);
|
val = parm[0]->data()->getIntVal(row, isNull);
|
||||||
return (unsigned)((val >> 44) & 0xf);
|
return (unsigned)((val >> 44) & 0xf);
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ int64_t Func_monthname::getIntVal(rowgroup::Row& row,
|
|||||||
val = parm[0]->data()->getIntVal(row, isNull);
|
val = parm[0]->data()->getIntVal(row, isNull);
|
||||||
return (unsigned)((val >> 44) & 0xf);
|
return (unsigned)((val >> 44) & 0xf);
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ int64_t Func_nullif::getIntVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
exp2 = parm[1]->data()->getIntVal(row, isNull);
|
exp2 = parm[1]->data()->getIntVal(row, isNull);
|
||||||
if (isNull) {
|
if (isNull) {
|
||||||
@@ -177,6 +178,7 @@ uint64_t Func_nullif::getUintVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UDECIMAL:
|
case execplan::CalpontSystemCatalog::UDECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
int64_t iexp2 = parm[1]->data()->getIntVal(row, isNull);
|
int64_t iexp2 = parm[1]->data()->getIntVal(row, isNull);
|
||||||
if (isNull || iexp2 < 0) {
|
if (isNull || iexp2 < 0) {
|
||||||
@@ -290,6 +292,7 @@ int32_t Func_nullif::getDateIntVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
exp2 = parm[1]->data()->getIntVal(row, isNull);
|
exp2 = parm[1]->data()->getIntVal(row, isNull);
|
||||||
if (isNull) {
|
if (isNull) {
|
||||||
@@ -352,6 +355,7 @@ int64_t Func_nullif::getDatetimeIntVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
exp2 = parm[1]->data()->getIntVal(row, isNull);
|
exp2 = parm[1]->data()->getIntVal(row, isNull);
|
||||||
if (isNull) {
|
if (isNull) {
|
||||||
@@ -415,6 +419,7 @@ double Func_nullif::getDoubleVal(rowgroup::Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::DECIMAL:
|
case execplan::CalpontSystemCatalog::DECIMAL:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
exp2 = parm[1]->data()->getDoubleVal(row, isNull);
|
exp2 = parm[1]->data()->getDoubleVal(row, isNull);
|
||||||
if (isNull) {
|
if (isNull) {
|
||||||
@@ -491,6 +496,7 @@ execplan::IDB_Decimal Func_nullif::getDecimalVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
int64_t value = parm[1]->data()->getIntVal(row, isNull);
|
int64_t value = parm[1]->data()->getIntVal(row, isNull);
|
||||||
if (isNull) {
|
if (isNull) {
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ int64_t Func_period_diff::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
period1 = atoi(parm[0]->data()->getStrVal(row, isNull).c_str());
|
period1 = atoi(parm[0]->data()->getStrVal(row, isNull).c_str());
|
||||||
break;
|
break;
|
||||||
@@ -129,6 +130,7 @@ int64_t Func_period_diff::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
period2 = atoi(parm[1]->data()->getStrVal(row, isNull).c_str());
|
period2 = atoi(parm[1]->data()->getStrVal(row, isNull).c_str());
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ int64_t Func_quarter::getIntVal(rowgroup::Row& row,
|
|||||||
month = (val >> 44) & 0xf;
|
month = (val >> 44) & 0xf;
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ namespace
|
|||||||
case execplan::CalpontSystemCatalog::USMALLINT:
|
case execplan::CalpontSystemCatalog::USMALLINT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
case execplan::CalpontSystemCatalog::DOUBLE:
|
case execplan::CalpontSystemCatalog::DOUBLE:
|
||||||
case execplan::CalpontSystemCatalog::UDOUBLE:
|
case execplan::CalpontSystemCatalog::UDOUBLE:
|
||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
@@ -129,6 +130,7 @@ namespace
|
|||||||
case execplan::CalpontSystemCatalog::FLOAT:
|
case execplan::CalpontSystemCatalog::FLOAT:
|
||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
pattern = pm[1]->data()->getStrVal(row, isNull);
|
pattern = pm[1]->data()->getStrVal(row, isNull);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -283,6 +283,7 @@ IDB_Decimal Func_round::getDecimalVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
int64_t s = 0;
|
int64_t s = 0;
|
||||||
double p = 1;
|
double p = 1;
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ string Func_sec_to_time::getStrVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = parm[0]->data()->getIntVal(row, isNull);
|
val = parm[0]->data()->getIntVal(row, isNull);
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ int64_t Func_second::getIntVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ dataconvert::DateTime getDateTime (rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
const string& valref = parm[0]->data()->getStrVal(row, isNull);
|
const string& valref = parm[0]->data()->getStrVal(row, isNull);
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ string Func_time::getStrVal(rowgroup::Row& row,
|
|||||||
}
|
}
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ string Func_time_format::getStrVal(rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ int64_t Func_time_to_sec::getIntVal(rowgroup::Row& row,
|
|||||||
sec = (uint32_t)((val >> 20) & 0x3f);
|
sec = (uint32_t)((val >> 20) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
{
|
{
|
||||||
std::string strVal = parm[0]->data()->getStrVal(row, isNull);
|
std::string strVal = parm[0]->data()->getStrVal(row, isNull);
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ string Func_timediff::getStrVal(rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
val1 = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull), &isDate1);
|
val1 = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull), &isDate1);
|
||||||
break;
|
break;
|
||||||
case execplan::CalpontSystemCatalog::BIGINT:
|
case execplan::CalpontSystemCatalog::BIGINT:
|
||||||
@@ -151,6 +152,7 @@ string Func_timediff::getStrVal(rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
val2 = dataconvert::DataConvert::stringToDatetime(parm[1]->data()->getStrVal(row, isNull), &isDate2);
|
val2 = dataconvert::DataConvert::stringToDatetime(parm[1]->data()->getStrVal(row, isNull), &isDate2);
|
||||||
break;
|
break;
|
||||||
case execplan::CalpontSystemCatalog::BIGINT:
|
case execplan::CalpontSystemCatalog::BIGINT:
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ int64_t Func_to_days::getIntVal(rowgroup::Row& row,
|
|||||||
|
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
case execplan::CalpontSystemCatalog::VARCHAR: // including CHAR'
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
const string& value = parm[0]->data()->getStrVal(row, isNull);
|
||||||
int64_t val = 0;
|
int64_t val = 0;
|
||||||
|
|||||||
@@ -264,6 +264,7 @@ IDB_Decimal Func_truncate::getDecimalVal(Row& row,
|
|||||||
case execplan::CalpontSystemCatalog::UFLOAT:
|
case execplan::CalpontSystemCatalog::UFLOAT:
|
||||||
case execplan::CalpontSystemCatalog::VARCHAR:
|
case execplan::CalpontSystemCatalog::VARCHAR:
|
||||||
case execplan::CalpontSystemCatalog::CHAR:
|
case execplan::CalpontSystemCatalog::CHAR:
|
||||||
|
case execplan::CalpontSystemCatalog::TEXT:
|
||||||
{
|
{
|
||||||
int64_t s = 0;
|
int64_t s = 0;
|
||||||
double p = 1;
|
double p = 1;
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ int64_t Func_unix_timestamp::getIntVal(rowgroup::Row& row,
|
|||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ int64_t Func_week::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ int64_t Func_weekday::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ int64_t Func_year::getIntVal(rowgroup::Row& row,
|
|||||||
val = parm[0]->data()->getIntVal(row, isNull);
|
val = parm[0]->data()->getIntVal(row, isNull);
|
||||||
return (unsigned)((val >> 48) & 0xffff);
|
return (unsigned)((val >> 48) & 0xffff);
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ int64_t Func_yearweek::getIntVal(rowgroup::Row& row,
|
|||||||
day = (uint32_t)((val >> 38) & 0x3f);
|
day = (uint32_t)((val >> 38) & 0x3f);
|
||||||
break;
|
break;
|
||||||
case CalpontSystemCatalog::CHAR:
|
case CalpontSystemCatalog::CHAR:
|
||||||
|
case CalpontSystemCatalog::TEXT:
|
||||||
case CalpontSystemCatalog::VARCHAR:
|
case CalpontSystemCatalog::VARCHAR:
|
||||||
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
val = dataconvert::DataConvert::stringToDatetime(parm[0]->data()->getStrVal(row, isNull));
|
||||||
if (val == -1)
|
if (val == -1)
|
||||||
|
|||||||
Reference in New Issue
Block a user