greenplumn IDatumOid 代码
文件路径:/src/backend/gporca/libnaucrates/include/naucrates/base/IDatumOid.h
/---------------------------------------------------------------------------
/ Greenplum Database
/ Copyright (C) 2012 EMC Corp.
/
/ @filename:
/ IDatumOid.h
/
/ @doc:
/ Base abstract class for oid representation
/---------------------------------------------------------------------------
#ifndef GPNAUCRATES_IDatumOid_H
#define GPNAUCRATES_IDatumOid_H
#include "gpos/base.h"
#include "naucrates/base/IDatum.h"
namespace gpnaucrates
{
/---------------------------------------------------------------------------
/ @class:
/ IDatumOid
/
/ @doc:
/ Base abstract class for oid representation
/
/---------------------------------------------------------------------------
class IDatumOid : public IDatum
{
private:
public:
IDatumOid(const IDatumOid &) = delete;
/ ctor
IDatumOid() = default;
/ dtor
~IDatumOid() override = default;
/ accessor for datum type
IMDType::ETypeInfo
GetDatumType() override
{
return IMDType::EtiOid;
}
/ accessor of oid value
virtual OID OidValue() 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(GetLINTMapping());
}
/ can datum be mapped to LINT
BOOL
IsDatumMappableToLINT() const override
{
return true;
}
/ map to LINT for statistics computation
LINT
GetLINTMapping() const override
{
return LINT(OidValue());
}
/ 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 IDatumOid
} / namespace gpnaucrates
#endif / !GPNAUCRATES_IDatumOid_H
/ EOF
相关信息
相关文章
greenplumn CDatumGenericGPDB 源码