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
Merge pull request #808 from mariadb-corporation/develop-merge-up-20190729
Merge develop-1.2 into develop
This commit is contained in:
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user