1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-05 16:15:50 +03:00

MSan added with fixes for libc++

This commit is contained in:
Leonid Fedorov
2025-07-12 00:57:46 +00:00
parent d4d87ad07f
commit 680adce45d
122 changed files with 587 additions and 471 deletions

View File

@@ -27,7 +27,8 @@
#include <stdexcept>
#include <vector>
#include <tr1/unordered_set>
#include <unordered.h>
#include "joblisttypes.h"
#define POSIX_REGEX
@@ -40,7 +41,6 @@
#include <cstddef>
#include <boost/shared_ptr.hpp>
#include "primitivemsg.h"
#include "calpontsystemcatalog.h"
#include "stats.h"
@@ -50,7 +50,7 @@
class PrimTest;
// XXX: turn off dictionary range setting during scan.
//#define XXX_PRIMITIVES_TOKEN_RANGES_XXX
// #define XXX_PRIMITIVES_TOKEN_RANGES_XXX
namespace primitives
{
@@ -121,13 +121,16 @@ class DictEqualityFilter : public std::tr1::unordered_set<std::string, datatypes
: std::tr1::unordered_set<std::string, datatypes::CollationAwareHasher,
datatypes::CollationAwareComparator>(10, datatypes::CollationAwareHasher(cs),
datatypes::CollationAwareComparator(cs))
, charset(cs.getCharset())
{
}
CHARSET_INFO& getCharset() const
{
idbassert(&_M_h1.getCharset() == &_M_eq.getCharset());
return _M_h1.getCharset();
return charset;
}
private:
CHARSET_INFO& charset;
};
// Not the safest way b/c it doesn't cover uint128_t but the type
@@ -493,7 +496,8 @@ T getNullValue(uint8_t type)
case execplan::CalpontSystemCatalog::CHAR:
case execplan::CalpontSystemCatalog::TEXT: return joblist::CHAR8NULL;
// VARCHARs with width >= 8 are stored as dictionaries (used TypeHandlerVarchar::getNullValueForType as a reference)
// VARCHARs with width >= 8 are stored as dictionaries (used TypeHandlerVarchar::getNullValueForType as a
// reference)
case execplan::CalpontSystemCatalog::VARCHAR: return joblist::UBIGINTNULL;
case execplan::CalpontSystemCatalog::UBIGINT: return joblist::UBIGINTNULL;
@@ -581,7 +585,7 @@ boost::shared_ptr<ParsedColumnFilter> _parseColumnFilter(
{
using UT = typename std::conditional<std::is_unsigned<T>::value || datatypes::is_uint128_t<T>::value, T,
typename datatypes::make_unsigned<T>::type>::type;
const uint32_t WIDTH = sizeof(T); // Sizeof of the column to be filtered
const uint32_t WIDTH = sizeof(T); // Sizeof of the column to be filtered
boost::shared_ptr<ParsedColumnFilter> ret; // Place for building the value to return
if (filterCount == 0)
return ret;