You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
MCOL-642 Separate TEXT from BLOB
* TEXT and BLOB now have separate identifiers internally * TEXT columns are identified as such in system catalog * cpimport only requires hex input for BLOB, not TEXT
This commit is contained in:
@ -451,7 +451,8 @@ uint8_t WE_DDLCommandProc::writeCreateSyscolumn(ByteStream& bs, std::string &err
|
||||
if ( (dataType == CalpontSystemCatalog::CHAR && colDefPtr->fType->fLength > 8) ||
|
||||
(dataType == CalpontSystemCatalog::VARCHAR && colDefPtr->fType->fLength > 7) ||
|
||||
(dataType == CalpontSystemCatalog::VARBINARY && colDefPtr->fType->fLength > 7) ||
|
||||
(dataType == CalpontSystemCatalog::BLOB && colDefPtr->fType->fLength > 7) )
|
||||
(dataType == CalpontSystemCatalog::BLOB && colDefPtr->fType->fLength > 7) ||
|
||||
(dataType == CalpontSystemCatalog::TEXT && colDefPtr->fType->fLength > 7) )
|
||||
{
|
||||
hasDict = true;
|
||||
dictOID.compressionType = colDefPtr->fType->fCompressiontype;
|
||||
@ -461,7 +462,8 @@ uint8_t WE_DDLCommandProc::writeCreateSyscolumn(ByteStream& bs, std::string &err
|
||||
|
||||
//@Bug 2534. Take away the limit of 255 and set the limit to 8000.
|
||||
if ((colDefPtr->fType->fLength > 8000) &&
|
||||
(dataType != CalpontSystemCatalog::BLOB))
|
||||
(dataType != CalpontSystemCatalog::BLOB) &&
|
||||
(dataType != CalpontSystemCatalog::TEXT))
|
||||
{
|
||||
ostringstream os;
|
||||
os << "char, varchar and varbinary length may not exceed 8000";
|
||||
@ -469,7 +471,8 @@ uint8_t WE_DDLCommandProc::writeCreateSyscolumn(ByteStream& bs, std::string &err
|
||||
}
|
||||
}
|
||||
else if ((dataType == CalpontSystemCatalog::VARBINARY
|
||||
|| dataType == CalpontSystemCatalog::BLOB)
|
||||
|| dataType == CalpontSystemCatalog::BLOB
|
||||
|| dataType == CalpontSystemCatalog::TEXT)
|
||||
&& colDefPtr->fType->fLength <= 7)
|
||||
{
|
||||
ostringstream os;
|
||||
@ -519,7 +522,8 @@ uint8_t WE_DDLCommandProc::writeCreateSyscolumn(ByteStream& bs, std::string &err
|
||||
if (dataType == CalpontSystemCatalog::CHAR ||
|
||||
dataType == CalpontSystemCatalog::VARCHAR ||
|
||||
dataType == CalpontSystemCatalog::VARBINARY ||
|
||||
dataType == CalpontSystemCatalog::BLOB)
|
||||
dataType == CalpontSystemCatalog::BLOB ||
|
||||
dataType == CalpontSystemCatalog::TEXT)
|
||||
{
|
||||
if (colDefPtr->fType->fLength <= 0)
|
||||
{
|
||||
@ -835,7 +839,8 @@ uint8_t WE_DDLCommandProc::writeSyscolumn(ByteStream& bs, std::string & err)
|
||||
|
||||
//@Bug 2534. Take away the limit of 255 and set the limit to 8000.
|
||||
if ((colDefPtr->fType->fLength > 8000) &&
|
||||
(dataType != CalpontSystemCatalog::BLOB))
|
||||
(dataType != CalpontSystemCatalog::BLOB) &&
|
||||
(dataType != CalpontSystemCatalog::TEXT))
|
||||
{
|
||||
ostringstream os;
|
||||
os << "char, varchar and varbinary length may not exceed 8000";
|
||||
@ -843,7 +848,8 @@ uint8_t WE_DDLCommandProc::writeSyscolumn(ByteStream& bs, std::string & err)
|
||||
}
|
||||
}
|
||||
else if ((dataType == CalpontSystemCatalog::VARBINARY
|
||||
|| dataType == CalpontSystemCatalog::BLOB)
|
||||
|| dataType == CalpontSystemCatalog::BLOB
|
||||
|| dataType == CalpontSystemCatalog::TEXT)
|
||||
&& colDefPtr->fType->fLength <= 7)
|
||||
{
|
||||
ostringstream os;
|
||||
@ -894,7 +900,8 @@ uint8_t WE_DDLCommandProc::writeSyscolumn(ByteStream& bs, std::string & err)
|
||||
if (dataType == CalpontSystemCatalog::CHAR ||
|
||||
dataType == CalpontSystemCatalog::VARCHAR ||
|
||||
dataType == CalpontSystemCatalog::VARBINARY ||
|
||||
dataType == CalpontSystemCatalog::BLOB)
|
||||
dataType == CalpontSystemCatalog::BLOB ||
|
||||
dataType == CalpontSystemCatalog::TEXT)
|
||||
{
|
||||
if (colDefPtr->fType->fLength <= 0)
|
||||
{
|
||||
@ -2253,6 +2260,8 @@ uint8_t WE_DDLCommandProc::updateSyscolumnTablename(ByteStream& bs, std::string
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::BLOB
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::TEXT
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::DECIMAL
|
||||
&& column.colType.precision > 18)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::UDECIMAL
|
||||
@ -3011,6 +3020,8 @@ uint8_t WE_DDLCommandProc::updateSystablesTablename(ByteStream& bs, std::string
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::BLOB
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::TEXT
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::DECIMAL
|
||||
&& column.colType.precision > 18)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::UDECIMAL
|
||||
@ -3893,6 +3904,8 @@ uint8_t WE_DDLCommandProc::updateSyscolumnSetDefault(messageqcpp::ByteStream& bs
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::BLOB
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::TEXT
|
||||
&& column.colType.colWidth > 7)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::DECIMAL
|
||||
&& column.colType.precision > 18)
|
||||
|| (column.colType.colDataType == CalpontSystemCatalog::UDECIMAL
|
||||
@ -4163,6 +4176,8 @@ uint8_t WE_DDLCommandProc::updateSyscolumnRenameColumn(messageqcpp::ByteStream&
|
||||
&& column1.colType.colWidth > 7)
|
||||
|| (column1.colType.colDataType == CalpontSystemCatalog::BLOB
|
||||
&& column1.colType.colWidth > 7)
|
||||
|| (column1.colType.colDataType == CalpontSystemCatalog::TEXT
|
||||
&& column1.colType.colWidth > 7)
|
||||
|| (column1.colType.colDataType == CalpontSystemCatalog::DECIMAL
|
||||
&& column1.colType.precision > 18)
|
||||
|| (column1.colType.colDataType == CalpontSystemCatalog::UDECIMAL
|
||||
@ -4355,6 +4370,8 @@ uint8_t WE_DDLCommandProc::updateSyscolumnRenameColumn(messageqcpp::ByteStream&
|
||||
&& column5.colType.colWidth > 7)
|
||||
|| (column5.colType.colDataType == CalpontSystemCatalog::BLOB
|
||||
&& column5.colType.colWidth > 7)
|
||||
|| (column5.colType.colDataType == CalpontSystemCatalog::TEXT
|
||||
&& column5.colType.colWidth > 7)
|
||||
|| (column5.colType.colDataType == CalpontSystemCatalog::DECIMAL
|
||||
&& column5.colType.precision > 18)
|
||||
|| (column5.colType.colDataType == CalpontSystemCatalog::UDECIMAL
|
||||
|
@ -317,6 +317,7 @@ inline boost::any getNullValueForType(const execplan::CalpontSystemCatalog::ColT
|
||||
}
|
||||
break;
|
||||
case execplan::CalpontSystemCatalog::BLOB:
|
||||
case execplan::CalpontSystemCatalog::TEXT:
|
||||
case execplan::CalpontSystemCatalog::VARBINARY:
|
||||
{
|
||||
std::string charnull;
|
||||
@ -425,6 +426,10 @@ inline int convertDataType(int dataType)
|
||||
calpontDataType = CalpontSystemCatalog::BLOB;
|
||||
break;
|
||||
|
||||
case ddlpackage::DDL_TEXT:
|
||||
calpontDataType = CalpontSystemCatalog::TEXT;
|
||||
break;
|
||||
|
||||
case ddlpackage::DDL_UNSIGNED_TINYINT:
|
||||
calpontDataType = CalpontSystemCatalog::UTINYINT;
|
||||
break;
|
||||
|
@ -2072,6 +2072,7 @@ uint8_t WE_DMLCommandProc::processUpdate(messageqcpp::ByteStream& bs,
|
||||
}
|
||||
case CalpontSystemCatalog::VARBINARY:
|
||||
case CalpontSystemCatalog::BLOB:
|
||||
case CalpontSystemCatalog::TEXT:
|
||||
{
|
||||
value = row.getVarBinaryStringField(fetchColPos);
|
||||
break;
|
||||
@ -2358,6 +2359,7 @@ uint8_t WE_DMLCommandProc::processUpdate(messageqcpp::ByteStream& bs,
|
||||
}
|
||||
case CalpontSystemCatalog::VARBINARY:
|
||||
case CalpontSystemCatalog::BLOB:
|
||||
case CalpontSystemCatalog::TEXT:
|
||||
{
|
||||
value = row.getVarBinaryStringField(fetchColPos);
|
||||
break;
|
||||
|
@ -111,7 +111,8 @@ class WE_DMLCommandProc
|
||||
|| ((colType.colDataType == execplan::CalpontSystemCatalog::DECIMAL) && (colType.precision > 18))
|
||||
|| ((colType.colDataType == execplan::CalpontSystemCatalog::UDECIMAL) && (colType.precision > 18))
|
||||
|| (colType.colDataType == execplan::CalpontSystemCatalog::VARBINARY)
|
||||
|| (colType.colDataType == execplan::CalpontSystemCatalog::BLOB))
|
||||
|| (colType.colDataType == execplan::CalpontSystemCatalog::BLOB)
|
||||
|| (colType.colDataType == execplan::CalpontSystemCatalog::TEXT))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user