1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

MCOL-671 Fix TEXT/BLOB single row SELECT WHERE

pDictionaryScan won't work for BLOB/TEXT since it requires searching the
data file and rebuilding the token from matches. The tokens can't be
rebuild correctly due the bits in the token used for block counts. This
patch forces the use of pDictionaryStep instead for WHERE conditions.

In addition this patch adds support for TEXT/BLOB in various parts of
the job step processing. This fixes things like error 202 during an
UPDATE with a join condition on TEXT/BLOB columns.
This commit is contained in:
Andrew Hutchings
2017-04-21 11:21:59 +01:00
parent dce4b11437
commit 6128293ad3
18 changed files with 82 additions and 19 deletions

View File

@ -1072,6 +1072,7 @@ boost::any
case CalpontSystemCatalog::CHAR:
case CalpontSystemCatalog::VARCHAR:
case CalpontSystemCatalog::TEXT:
{
//check data length
if ( data.length() > (unsigned int)colType.colWidth )
@ -1122,7 +1123,6 @@ boost::any
break;
case CalpontSystemCatalog::BLOB:
case CalpontSystemCatalog::TEXT:
case CalpontSystemCatalog::CLOB:
value = data;
break;
@ -1263,6 +1263,7 @@ boost::any
}
break;
case CalpontSystemCatalog::VARCHAR:
case CalpontSystemCatalog::TEXT:
{
std::string charnull;
if (colType.colWidth == 1 )
@ -1291,6 +1292,7 @@ boost::any
}
break;
case CalpontSystemCatalog::VARBINARY:
case CalpontSystemCatalog::BLOB:
{
WriteEngine::Token nullToken;
value = nullToken;