You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
clang format apply
This commit is contained in:
@ -16,10 +16,10 @@
|
||||
MA 02110-1301, USA. */
|
||||
|
||||
/***********************************************************************
|
||||
* $Id: pseudocolumn.cpp 9576 2013-05-29 21:02:11Z zzhu $
|
||||
*
|
||||
*
|
||||
***********************************************************************/
|
||||
* $Id: pseudocolumn.cpp 9576 2013-05-29 21:02:11Z zzhu $
|
||||
*
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
@ -36,71 +36,52 @@ using namespace messageqcpp;
|
||||
|
||||
namespace execplan
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructors/Destructors
|
||||
*/
|
||||
PseudoColumn::PseudoColumn():
|
||||
SimpleColumn(),
|
||||
fPseudoType (PSEUDO_UNKNOWN)
|
||||
{}
|
||||
|
||||
PseudoColumn::PseudoColumn(const uint32_t pseudoType):
|
||||
SimpleColumn(),
|
||||
fPseudoType(pseudoType)
|
||||
{}
|
||||
|
||||
PseudoColumn::PseudoColumn(const string& token,
|
||||
const uint32_t pseudoType,
|
||||
const uint32_t sessionID):
|
||||
SimpleColumn(token, sessionID),
|
||||
fPseudoType(pseudoType)
|
||||
PseudoColumn::PseudoColumn() : SimpleColumn(), fPseudoType(PSEUDO_UNKNOWN)
|
||||
{
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::PseudoColumn(const string& schemaName,
|
||||
const string& tableName,
|
||||
const string& columnName,
|
||||
const uint32_t pseudoType,
|
||||
const uint32_t sessionID):
|
||||
SimpleColumn(schemaName, tableName, columnName, sessionID),
|
||||
fPseudoType(pseudoType)
|
||||
|
||||
{}
|
||||
|
||||
PseudoColumn::PseudoColumn(const string& schemaName,
|
||||
const string& tableName,
|
||||
const string& columnName,
|
||||
const bool isColumnStore,
|
||||
const uint32_t pseudoType,
|
||||
const uint32_t sessionID):
|
||||
SimpleColumn(schemaName, tableName, columnName, isColumnStore, sessionID),
|
||||
fPseudoType(pseudoType)
|
||||
PseudoColumn::PseudoColumn(const uint32_t pseudoType) : SimpleColumn(), fPseudoType(pseudoType)
|
||||
{
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::PseudoColumn (const SimpleColumn& rhs,
|
||||
const uint32_t pseudoType,
|
||||
const uint32_t sessionID):
|
||||
SimpleColumn(rhs, sessionID),
|
||||
fPseudoType(pseudoType)
|
||||
PseudoColumn::PseudoColumn(const string& token, const uint32_t pseudoType, const uint32_t sessionID)
|
||||
: SimpleColumn(token, sessionID), fPseudoType(pseudoType)
|
||||
{
|
||||
adjustResultType();
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::PseudoColumn(const PseudoColumn& rhs, const uint32_t sessionID):
|
||||
SimpleColumn(rhs, sessionID),
|
||||
fPseudoType (rhs.pseudoType())
|
||||
PseudoColumn::PseudoColumn(const string& schemaName, const string& tableName, const string& columnName,
|
||||
const uint32_t pseudoType, const uint32_t sessionID)
|
||||
: SimpleColumn(schemaName, tableName, columnName, sessionID), fPseudoType(pseudoType)
|
||||
|
||||
{
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::PseudoColumn(const string& schemaName, const string& tableName, const string& columnName,
|
||||
const bool isColumnStore, const uint32_t pseudoType, const uint32_t sessionID)
|
||||
: SimpleColumn(schemaName, tableName, columnName, isColumnStore, sessionID), fPseudoType(pseudoType)
|
||||
{
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::PseudoColumn(const SimpleColumn& rhs, const uint32_t pseudoType, const uint32_t sessionID)
|
||||
: SimpleColumn(rhs, sessionID), fPseudoType(pseudoType)
|
||||
{
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::PseudoColumn(const PseudoColumn& rhs, const uint32_t sessionID)
|
||||
: SimpleColumn(rhs, sessionID), fPseudoType(rhs.pseudoType())
|
||||
{
|
||||
adjustResultType();
|
||||
}
|
||||
|
||||
PseudoColumn::~PseudoColumn()
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Methods
|
||||
@ -108,179 +89,169 @@ PseudoColumn::~PseudoColumn()
|
||||
|
||||
PseudoColumn& PseudoColumn::operator=(const PseudoColumn& rhs)
|
||||
{
|
||||
if (this != &rhs)
|
||||
{
|
||||
fTableName = rhs.tableName();
|
||||
fColumnName = rhs.columnName();
|
||||
fOid = rhs.oid();
|
||||
fSchemaName = rhs.schemaName();
|
||||
fAlias = rhs.alias();
|
||||
fTableAlias = rhs.tableAlias();
|
||||
fAsc = rhs.asc();
|
||||
fIndexName = rhs.indexName();
|
||||
fViewName = rhs.viewName();
|
||||
fData = rhs.data();
|
||||
fSequence = rhs.sequence();
|
||||
fDistinct = rhs.distinct();
|
||||
fisColumnStore = rhs.isColumnStore();
|
||||
fPseudoType = rhs.pseudoType();
|
||||
}
|
||||
if (this != &rhs)
|
||||
{
|
||||
fTableName = rhs.tableName();
|
||||
fColumnName = rhs.columnName();
|
||||
fOid = rhs.oid();
|
||||
fSchemaName = rhs.schemaName();
|
||||
fAlias = rhs.alias();
|
||||
fTableAlias = rhs.tableAlias();
|
||||
fAsc = rhs.asc();
|
||||
fIndexName = rhs.indexName();
|
||||
fViewName = rhs.viewName();
|
||||
fData = rhs.data();
|
||||
fSequence = rhs.sequence();
|
||||
fDistinct = rhs.distinct();
|
||||
fisColumnStore = rhs.isColumnStore();
|
||||
fPseudoType = rhs.pseudoType();
|
||||
}
|
||||
|
||||
return *this;
|
||||
return *this;
|
||||
}
|
||||
|
||||
ostream& operator<<(ostream& output, const PseudoColumn& rhs)
|
||||
{
|
||||
output << rhs.toString();
|
||||
output << rhs.toString();
|
||||
|
||||
return output;
|
||||
return output;
|
||||
}
|
||||
|
||||
const string PseudoColumn::toString() const
|
||||
{
|
||||
ostringstream output;
|
||||
output << "PseudoColumn " << data() << endl;
|
||||
ostringstream output;
|
||||
output << "PseudoColumn " << data() << endl;
|
||||
|
||||
output << "SimpleColumn " << data() << endl;
|
||||
output << " s/t/c/v/o/ct/TA/CA/RA/#/card/join/source/engine: " << schemaName() << '/'
|
||||
<< tableName() << '/'
|
||||
<< columnName() << '/'
|
||||
<< viewName() << '/'
|
||||
<< oid() << '/'
|
||||
<< colDataTypeToString(fResultType.colDataType) << '/'
|
||||
<< tableAlias() << '/'
|
||||
<< alias() << '/'
|
||||
<< returnAll() << '/'
|
||||
<< sequence() << '/'
|
||||
<< cardinality() << '/'
|
||||
<< joinInfo() << '/'
|
||||
<< colSource() << '/'
|
||||
<< (isColumnStore() ? "ColumnStore" : "ForeignEngine") << endl;
|
||||
output << "SimpleColumn " << data() << endl;
|
||||
output << " s/t/c/v/o/ct/TA/CA/RA/#/card/join/source/engine: " << schemaName() << '/' << tableName() << '/'
|
||||
<< columnName() << '/' << viewName() << '/' << oid() << '/'
|
||||
<< colDataTypeToString(fResultType.colDataType) << '/' << tableAlias() << '/' << alias() << '/'
|
||||
<< returnAll() << '/' << sequence() << '/' << cardinality() << '/' << joinInfo() << '/'
|
||||
<< colSource() << '/' << (isColumnStore() ? "ColumnStore" : "ForeignEngine") << endl;
|
||||
|
||||
output << "Pseudotype=" << fPseudoType << endl;
|
||||
return output.str();
|
||||
output << "Pseudotype=" << fPseudoType << endl;
|
||||
return output.str();
|
||||
}
|
||||
|
||||
void PseudoColumn::serialize(messageqcpp::ByteStream& b) const
|
||||
{
|
||||
b << (ObjectReader::id_t) ObjectReader::PSEUDOCOLUMN;
|
||||
SimpleColumn::serialize(b);
|
||||
b << static_cast<ByteStream::quadbyte>(fPseudoType);
|
||||
b << (ObjectReader::id_t)ObjectReader::PSEUDOCOLUMN;
|
||||
SimpleColumn::serialize(b);
|
||||
b << static_cast<ByteStream::quadbyte>(fPseudoType);
|
||||
}
|
||||
|
||||
void PseudoColumn::unserialize(messageqcpp::ByteStream& b)
|
||||
{
|
||||
ObjectReader::checkType(b, ObjectReader::PSEUDOCOLUMN);
|
||||
SimpleColumn::unserialize(b);
|
||||
b >> reinterpret_cast< ByteStream::quadbyte&>(fPseudoType);
|
||||
ObjectReader::checkType(b, ObjectReader::PSEUDOCOLUMN);
|
||||
SimpleColumn::unserialize(b);
|
||||
b >> reinterpret_cast<ByteStream::quadbyte&>(fPseudoType);
|
||||
}
|
||||
|
||||
bool PseudoColumn::operator==(const PseudoColumn& t) const
|
||||
{
|
||||
const SimpleColumn* rc1, *rc2;
|
||||
const SimpleColumn *rc1, *rc2;
|
||||
|
||||
rc1 = static_cast<const SimpleColumn*>(this);
|
||||
rc2 = static_cast<const SimpleColumn*>(&t);
|
||||
rc1 = static_cast<const SimpleColumn*>(this);
|
||||
rc2 = static_cast<const SimpleColumn*>(&t);
|
||||
|
||||
if (*rc1 != *rc2)
|
||||
return false;
|
||||
if (*rc1 != *rc2)
|
||||
return false;
|
||||
|
||||
if (fPseudoType != t.fPseudoType)
|
||||
return false;
|
||||
if (fPseudoType != t.fPseudoType)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PseudoColumn::operator==(const TreeNode* t) const
|
||||
{
|
||||
const PseudoColumn* pc;
|
||||
const PseudoColumn* pc;
|
||||
|
||||
pc = dynamic_cast<const PseudoColumn*>(t);
|
||||
pc = dynamic_cast<const PseudoColumn*>(t);
|
||||
|
||||
if (pc == NULL)
|
||||
return false;
|
||||
if (pc == NULL)
|
||||
return false;
|
||||
|
||||
return *this == *pc;
|
||||
return *this == *pc;
|
||||
}
|
||||
|
||||
bool PseudoColumn::operator!=(const PseudoColumn& t) const
|
||||
{
|
||||
return !(*this == t);
|
||||
return !(*this == t);
|
||||
}
|
||||
|
||||
bool PseudoColumn::operator!=(const TreeNode* t) const
|
||||
{
|
||||
return !(*this == t);
|
||||
return !(*this == t);
|
||||
}
|
||||
|
||||
uint32_t PseudoColumn::pseudoNameToType (string& name)
|
||||
uint32_t PseudoColumn::pseudoNameToType(string& name)
|
||||
{
|
||||
if (boost::iequals(name, "idbpm"))
|
||||
return PSEUDO_PM;
|
||||
if (boost::iequals(name, "idbpm"))
|
||||
return PSEUDO_PM;
|
||||
|
||||
if (boost::iequals(name, "idbdbroot"))
|
||||
return PSEUDO_DBROOT;
|
||||
if (boost::iequals(name, "idbdbroot"))
|
||||
return PSEUDO_DBROOT;
|
||||
|
||||
if (boost::iequals(name, "idbextentrelativerid"))
|
||||
return PSEUDO_EXTENTRELATIVERID;
|
||||
if (boost::iequals(name, "idbextentrelativerid"))
|
||||
return PSEUDO_EXTENTRELATIVERID;
|
||||
|
||||
if (boost::iequals(name, "idbsegment"))
|
||||
return PSEUDO_SEGMENT;
|
||||
if (boost::iequals(name, "idbsegment"))
|
||||
return PSEUDO_SEGMENT;
|
||||
|
||||
if (boost::iequals(name, "idbsegmentdir"))
|
||||
return PSEUDO_SEGMENTDIR;
|
||||
if (boost::iequals(name, "idbsegmentdir"))
|
||||
return PSEUDO_SEGMENTDIR;
|
||||
|
||||
if (boost::iequals(name, "idbextentmin"))
|
||||
return PSEUDO_EXTENTMIN;
|
||||
if (boost::iequals(name, "idbextentmin"))
|
||||
return PSEUDO_EXTENTMIN;
|
||||
|
||||
if (boost::iequals(name, "idbextentmax"))
|
||||
return PSEUDO_EXTENTMAX;
|
||||
if (boost::iequals(name, "idbextentmax"))
|
||||
return PSEUDO_EXTENTMAX;
|
||||
|
||||
if (boost::iequals(name, "idbblockid"))
|
||||
return PSEUDO_BLOCKID;
|
||||
if (boost::iequals(name, "idbblockid"))
|
||||
return PSEUDO_BLOCKID;
|
||||
|
||||
if (boost::iequals(name, "idbextentid"))
|
||||
return PSEUDO_EXTENTID;
|
||||
if (boost::iequals(name, "idbextentid"))
|
||||
return PSEUDO_EXTENTID;
|
||||
|
||||
if (boost::iequals(name, "idbpartition"))
|
||||
return PSEUDO_PARTITION;
|
||||
if (boost::iequals(name, "idbpartition"))
|
||||
return PSEUDO_PARTITION;
|
||||
|
||||
if (boost::iequals(name, "idblocalpm"))
|
||||
return PSEUDO_LOCALPM;
|
||||
if (boost::iequals(name, "idblocalpm"))
|
||||
return PSEUDO_LOCALPM;
|
||||
|
||||
return PSEUDO_UNKNOWN;
|
||||
return PSEUDO_UNKNOWN;
|
||||
}
|
||||
|
||||
void PseudoColumn::adjustResultType()
|
||||
{
|
||||
switch (fPseudoType)
|
||||
switch (fPseudoType)
|
||||
{
|
||||
case PSEUDO_EXTENTRELATIVERID:
|
||||
case PSEUDO_DBROOT:
|
||||
case PSEUDO_PM:
|
||||
case PSEUDO_SEGMENT:
|
||||
case PSEUDO_SEGMENTDIR:
|
||||
case PSEUDO_BLOCKID:
|
||||
case PSEUDO_EXTENTID:
|
||||
{
|
||||
case PSEUDO_EXTENTRELATIVERID:
|
||||
case PSEUDO_DBROOT:
|
||||
case PSEUDO_PM:
|
||||
case PSEUDO_SEGMENT:
|
||||
case PSEUDO_SEGMENTDIR:
|
||||
case PSEUDO_BLOCKID:
|
||||
case PSEUDO_EXTENTID:
|
||||
{
|
||||
fResultType.colDataType = CalpontSystemCatalog::BIGINT;
|
||||
fResultType.colWidth = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
case PSEUDO_PARTITION:
|
||||
{
|
||||
fResultType.colDataType = CalpontSystemCatalog::VARCHAR;
|
||||
fResultType.colWidth = 256;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
// same type of pseudocolumn arg
|
||||
}
|
||||
fResultType.colDataType = CalpontSystemCatalog::BIGINT;
|
||||
fResultType.colWidth = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
case PSEUDO_PARTITION:
|
||||
{
|
||||
fResultType.colDataType = CalpontSystemCatalog::VARCHAR;
|
||||
fResultType.colWidth = 256;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
// same type of pseudocolumn arg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace execplan
|
||||
} // namespace execplan
|
||||
|
Reference in New Issue
Block a user