You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-641 Refactor initial extent elimination support.
This commit also adds support in TupleHashJoinStep::forwardCPData, although we currently do not support wide decimals as join keys. Row estimation to determine large-side of the join is also updated.
This commit is contained in:
committed by
Roman Nozdrin
parent
ca53b6348a
commit
d3bc68b02f
@ -30,6 +30,8 @@
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
using int128_t = __int128;
|
||||
|
||||
namespace utils
|
||||
{
|
||||
/** @brief class Hasher
|
||||
@ -346,6 +348,25 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// TODO a copy of these classes also exists in primitiveprocessor.h; consolidate
|
||||
class Hash128
|
||||
{
|
||||
public:
|
||||
inline size_t operator()(const int128_t i) const
|
||||
{
|
||||
return *reinterpret_cast<const uint64_t*>(&i);
|
||||
}
|
||||
};
|
||||
|
||||
class Equal128
|
||||
{
|
||||
public:
|
||||
inline bool operator()(const int128_t f1, const int128_t f2) const
|
||||
{
|
||||
return f1 == f2;
|
||||
}
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** @brief class TupleHasher
|
||||
*
|
||||
|
@ -32,6 +32,9 @@ namespace utils
|
||||
const uint8_t MAXLENGTH16BYTES = 42;
|
||||
const uint8_t MAXLENGTH8BYTES = 23;
|
||||
|
||||
const int128_t minInt128 = int128_t(0x8000000000000000LL) << 64;
|
||||
const int128_t maxInt128 = (int128_t(0x7FFFFFFFFFFFFFFFLL) << 64) + 0xFFFFFFFFFFFFFFFFLL;
|
||||
|
||||
inline bool isWideDecimalNullValue(const int128_t& val)
|
||||
{
|
||||
const uint64_t* ptr = reinterpret_cast<const uint64_t*>(&val);
|
||||
|
Reference in New Issue
Block a user