1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-01 06:46:55 +03:00

Merge pull request #808 from mariadb-corporation/develop-merge-up-20190729

Merge develop-1.2 into develop
This commit is contained in:
Roman Nozdrin
2019-08-13 11:55:22 +03:00
committed by GitHub
36 changed files with 365 additions and 176 deletions

View File

@ -326,7 +326,8 @@ void ArithmeticColumn::serialize(messageqcpp::ByteStream& b) const
ObjectReader::writeParseTree(fExpression, b);
b << fTableAlias;
b << fData;
b << static_cast<const ByteStream::doublebyte>(fAsc);
const ByteStream::doublebyte tmp = fAsc;
b << tmp;
}
void ArithmeticColumn::unserialize(messageqcpp::ByteStream& b)
@ -340,7 +341,9 @@ void ArithmeticColumn::unserialize(messageqcpp::ByteStream& b)
fExpression = ObjectReader::createParseTree(b);
b >> fTableAlias;
b >> fData;
b >> reinterpret_cast< ByteStream::doublebyte&>(fAsc);
ByteStream::doublebyte tmp;
b >> tmp;
fAsc = (tmp);
fSimpleColumnList.clear();
fExpression->walk(getSimpleCols, &fSimpleColumnList);

View File

@ -548,6 +548,10 @@ public:
return fDerivedTbAlias;
}
void derivedTbView(const std::string derivedTbView) { fDerivedTbView = derivedTbView; }
const std::string derivedTbView() const { return fDerivedTbView; }
void limitStart(const uint64_t limitStart)
{
fLimitStart = limitStart;
@ -870,6 +874,7 @@ private:
// for subselect
uint64_t fSubType;
std::string fDerivedTbAlias;
std::string fDerivedTbView;
// for limit
uint64_t fLimitStart;

View File

@ -426,6 +426,16 @@ void FunctionColumn::setDerivedTable()
break;
}
}
// MCOL-3239 Block for func column with both
// derived table column and normal table column.
else if (derivedTableAlias == "")
{
if (sc->tableAlias().length())
{
derivedTableAlias = "";
break;
}
}
}
fDerivedTable = derivedTableAlias;

View File

@ -36,7 +36,6 @@
#endif
#include <cstring>
#include <boost/regex.hpp>
#include <boost/algorithm/string/trim.hpp>
#include "expressionparser.h"
#include "returnedcolumn.h"
@ -486,20 +485,16 @@ inline bool PredicateOperator::getBoolVal(rowgroup::Row& row, bool& isNull, Retu
return !ret;
}
// MCOL-1559
std::string val1 = lop->getStrVal(row, isNull);
if (isNull)
return false;
std::string val2 = rop->getStrVal(row, isNull);
const std::string& val1 = lop->getStrVal(row, isNull);
if (isNull)
return false;
boost::trim_right_if(val1, boost::is_any_of(" "));
boost::trim_right_if(val2, boost::is_any_of(" "));
return strCompare(val1, val2);
}
return strCompare(val1, rop->getStrVal(row, isNull)) && !isNull;
}
//FIXME: ???
case execplan::CalpontSystemCatalog::VARBINARY:

View File

@ -212,9 +212,9 @@ const string SimpleColumn::data() const
if (!fData.empty())
return fData;
else if (!fTableAlias.empty())
return string(fSchemaName + '.' + fTableAlias + '.' + fColumnName);
return string("`" + fSchemaName + "`.`" + fTableAlias + "`.`" + fColumnName + "`");
return string(fSchemaName + '.' + fTableName + '.' + fColumnName);
return string("`" + fSchemaName + "`.`" + fTableName + "`.`" + fColumnName + "`");
}
SimpleColumn& SimpleColumn::operator=(const SimpleColumn& rhs)