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

MCOL-4899 MCS now applies a correct collation running IN for character data types

This commit is contained in:
Roman Nozdrin
2021-12-30 13:44:53 +00:00
committed by Roman Nozdrin
parent b3ab3fb514
commit 05897948e4
5 changed files with 136 additions and 35 deletions

View File

@ -159,7 +159,7 @@ SimpleColumn::SimpleColumn(const string& token, const uint32_t sessionID):
SimpleColumn::SimpleColumn(const string& schemaName,
const string& tableName,
const string& columnName,
const uint32_t sessionID,
const uint32_t sessionID,
const int lower_case_table_names) :
ReturnedColumn(sessionID),
fSchemaName (schemaName),
@ -263,23 +263,32 @@ ostream& operator<<(ostream& output, const SimpleColumn& rhs)
const string SimpleColumn::toString() const
{
static const char delim = '/';
ostringstream output;
output << "SimpleColumn " << data() << endl;
output << " s/t/c/v/o/ct/TA/CA/RA/#/card/join/source/engine/colPos: " << schemaName() << '/'
<< tableName() << '/'
<< columnName() << '/'
<< viewName() << '/'
<< oid() << '/'
<< colDataTypeToString(fResultType.colDataType) << '/'
<< tableAlias() << '/'
<< alias() << '/'
<< returnAll() << '/'
<< sequence() << '/'
<< cardinality() << '/'
<< joinInfo() << '/'
<< colSource() << '/'
<< (isColumnStore() ? "ColumnStore" : "ForeignEngine") << '/'
<< colPosition() << endl;
// collations in both result and operations type are the same and
// set in the plugin code.
datatypes::Charset cs(fResultType.charsetNumber);
output << " s/t/c/v/o/ct/TA/CA/RA/#/card/join/source/engine/colPos/cs/coll: "
<< schemaName() << delim
<< tableName() << delim
<< columnName() << delim
<< viewName() << delim
<< oid() << delim
<< colDataTypeToString(fResultType.colDataType) << delim
<< tableAlias() << delim
<< alias() << delim
<< returnAll() << delim
<< sequence() << delim
<< cardinality() << delim
<< joinInfo() << delim
<< colSource() << delim
<< (isColumnStore() ? "ColumnStore" : "ForeignEngine") << delim
<< colPosition() << delim
<< cs.getCharset().cs_name.str << delim
<< cs.getCharset().coll_name.str << delim
<< endl;
return output.str();
}

View File

@ -76,6 +76,7 @@ void DictStepJL::createCommand(ByteStream& bs) const
bs << (uint8_t) DICT_STEP;
bs << BOP;
bs << (uint8_t)compressionType;
bs << charsetNumber;
bs << filterCount;
bs << (uint8_t) hasEqFilter;
@ -89,7 +90,6 @@ void DictStepJL::createCommand(ByteStream& bs) const
}
else
bs << filterString;
bs << charsetNumber;
CommandJL::createCommand(bs);
}