greenplumn IDatumInt8 代码
文件路径:/src/backend/gporca/libnaucrates/include/naucrates/base/IDatumInt8.h
/---------------------------------------------------------------------------
/ Greenplum Database
/ Copyright (C) 2012 EMC Corp.
/
/ @filename:
/ IDatumInt8.h
/
/ @doc:
/ Base abstract class for int8 representation
/---------------------------------------------------------------------------
#ifndef GPNAUCRATES_IDatumInt8_H
#define GPNAUCRATES_IDatumInt8_H
#include "gpos/base.h"
#include "naucrates/base/IDatum.h"
namespace gpnaucrates
{
/---------------------------------------------------------------------------
/ @class:
/ IDatumInt8
/
/ @doc:
/ Base abstract class for int8 representation
/
/---------------------------------------------------------------------------
class IDatumInt8 : public IDatum
{
private:
public:
IDatumInt8(const IDatumInt8 &) = delete;
/ ctor
IDatumInt8() = default;
/ dtor
~IDatumInt8() override = default;
/ accessor for datum type
IMDType::ETypeInfo
GetDatumType() override
{
return IMDType::EtiInt8;
}
/ accessor of integer value
virtual LINT Value() const = 0;
/ can datum be mapped to a double
BOOL
IsDatumMappableToDouble() const override
{
return true;
}
/ map to double for stats computation
CDouble
GetDoubleMapping() const override
{
return CDouble(Value());
}
/ can datum be mapped to LINT
BOOL
IsDatumMappableToLINT() const override
{
return true;
}
/ map to LINT for statistics computation
LINT
GetLINTMapping() const override
{
return Value();
}
/ byte array representation of datum
const BYTE *
GetByteArrayValue() const override
{
GPOS_ASSERT(!"Invalid invocation of MakeCopyOfValue");
return nullptr;
}
/ does the datum need to be padded before statistical derivation
BOOL
NeedsPadding() const override
{
return false;
}
/ return the padded datum
IDatum *
MakePaddedDatum(CMemoryPool *, / mp,
ULONG / col_len
) const override
{
GPOS_ASSERT(!"Invalid invocation of MakePaddedDatum");
return nullptr;
}
/ does datum support like predicate
BOOL
SupportsLikePredicate() const override
{
return false;
}
/ return the default scale factor of like predicate
CDouble
GetLikePredicateScaleFactor() const override
{
GPOS_ASSERT(!"Invalid invocation of DLikeSelectivity");
return false;
}
}; / class IDatumInt8
} / namespace gpnaucrates
#endif / !GPNAUCRATES_IDatumInt8_H
/ EOF
相关信息
相关文章
greenplumn CDatumGenericGPDB 源码