You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-05 16:15:50 +03:00
libc++ crashes fixes
This commit is contained in:
@@ -21,7 +21,7 @@ local get_build_command(command) = "bash /mdb/" + builddir + "/storage/columnsto
|
||||
|
||||
local clang(version) = [get_build_command("install_clang_deb.sh " + version),
|
||||
get_build_command("update-clang-version.sh " + version + " 100"),
|
||||
get_build_command("install_libc++.sh " + version),
|
||||
get_build_command("install_libc++.sh" + version),
|
||||
"export CC=/usr/bin/clang",
|
||||
"export CXX=/usr/bin/clang++"
|
||||
];
|
||||
@@ -38,7 +38,7 @@ local customEnvCommands(envkey, builddir) =
|
||||
local customBootstrapParamsForExisitingPipelines(envkey) =
|
||||
# errorprone if we pass --custom-cmake-flags twice, the last one will win
|
||||
local customBootstrapMap = {
|
||||
"ubuntu:24.04": "--custom-cmake-flags '-DCOLUMNSTORE_ASAN_FOR_UNITTESTS=YES'",
|
||||
#"ubuntu:24.04": "--custom-cmake-flags '-DCOLUMNSTORE_ASAN_FOR_UNITTESTS=YES'",
|
||||
};
|
||||
(if (std.objectHas(customBootstrapMap, envkey))
|
||||
then customBootstrapMap[envkey] else "");
|
||||
@@ -635,29 +635,30 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
|
||||
};
|
||||
|
||||
|
||||
local AllPipelines = [
|
||||
Pipeline(b, p, e, a, s)
|
||||
for b in std.objectFields(platforms)
|
||||
for p in platforms[b]
|
||||
for s in servers[b]
|
||||
for e in events
|
||||
for a in archs
|
||||
] +
|
||||
[
|
||||
Pipeline(any_branch, p, "custom", a, server)
|
||||
for p in platforms[current_branch]
|
||||
for server in servers[current_branch]
|
||||
for a in archs
|
||||
] +
|
||||
[
|
||||
Pipeline(b, platform, triggeringEvent, a, server, "", buildenv)
|
||||
for a in ["amd64"]
|
||||
for b in std.objectFields(platforms)
|
||||
for platform in ["ubuntu:24.04"]
|
||||
for buildenv in std.objectFields(customEnvCommandsMap)
|
||||
for triggeringEvent in events
|
||||
for server in servers[current_branch]
|
||||
] +
|
||||
local AllPipelines =
|
||||
// [
|
||||
// Pipeline(b, p, e, a, s)
|
||||
// for b in std.objectFields(platforms)
|
||||
// for p in platforms[b]
|
||||
// for s in servers[b]
|
||||
// for e in events
|
||||
// for a in archs
|
||||
// ] +
|
||||
// [
|
||||
// Pipeline(any_branch, p, "custom", a, server)
|
||||
// for p in platforms[current_branch]
|
||||
// for server in servers[current_branch]
|
||||
// for a in archs
|
||||
// ] +
|
||||
// [
|
||||
// Pipeline(b, platform, triggeringEvent, a, server, "", buildenv)
|
||||
// for a in ["amd64"]
|
||||
// for b in std.objectFields(platforms)
|
||||
// for platform in ["ubuntu:24.04"]
|
||||
// for buildenv in std.objectFields(customEnvCommandsMap)
|
||||
// for triggeringEvent in events
|
||||
// for server in servers[current_branch]
|
||||
// ] +
|
||||
// last argument is to ignore mtr and regression failures
|
||||
[
|
||||
Pipeline(b, platform, triggeringEvent, a, server, flag, envcommand, ["regression", "mtr"])
|
||||
@@ -668,26 +669,26 @@ local AllPipelines = [
|
||||
for envcommand in ["clang-20"]
|
||||
for triggeringEvent in events
|
||||
for server in servers[current_branch]
|
||||
] +
|
||||
// last argument is to ignore mtr and regression failures
|
||||
[
|
||||
Pipeline(b, platform, triggeringEvent, a, server, flag, "", ["regression", "mtr"])
|
||||
for a in ["amd64"]
|
||||
for b in std.objectFields(platforms)
|
||||
for platform in ["ubuntu:24.04"]
|
||||
for flag in ["ASan", "UBSan"]
|
||||
for triggeringEvent in events
|
||||
for server in servers[current_branch]
|
||||
] +
|
||||
[
|
||||
Pipeline(b, platform, triggeringEvent, a, server, flag, "")
|
||||
for a in ["amd64"]
|
||||
for b in std.objectFields(platforms)
|
||||
for platform in ["rockylinux:8"]
|
||||
for flag in ["gcc-toolset"]
|
||||
for triggeringEvent in events
|
||||
for server in servers[current_branch]
|
||||
];
|
||||
// // last argument is to ignore mtr and regression failures
|
||||
// [
|
||||
// Pipeline(b, platform, triggeringEvent, a, server, flag, "", ["regression", "mtr"])
|
||||
// for a in ["amd64"]
|
||||
// for b in std.objectFields(platforms)
|
||||
// for platform in ["ubuntu:24.04"]
|
||||
// for flag in ["ASan", "UBSan"]
|
||||
// for triggeringEvent in events
|
||||
// for server in servers[current_branch]
|
||||
// ] +
|
||||
// [
|
||||
// Pipeline(b, platform, triggeringEvent, a, server, flag, "")
|
||||
// for a in ["amd64"]
|
||||
// for b in std.objectFields(platforms)
|
||||
// for platform in ["rockylinux:8"]
|
||||
// for flag in ["gcc-toolset"]
|
||||
// for triggeringEvent in events
|
||||
// for server in servers[current_branch]
|
||||
// ];
|
||||
|
||||
local FinalPipeline(branch, event) = {
|
||||
kind: "pipeline",
|
||||
|
@@ -24,7 +24,7 @@
|
||||
namespace execplan
|
||||
{
|
||||
|
||||
#define debug_rewrites false
|
||||
#define debug_rewrites true
|
||||
|
||||
execplan::OpType oppositeOperator(execplan::OpType op);
|
||||
|
||||
@@ -34,7 +34,7 @@ struct NodeSemanticComparator
|
||||
};
|
||||
|
||||
// Walk the tree and find out common conjuctions
|
||||
template<bool stableSort = false>
|
||||
template <bool stableSort = false>
|
||||
execplan::ParseTree* extractCommonLeafConjunctionsToRoot(execplan::ParseTree* tree);
|
||||
bool checkFiltersLimit(execplan::ParseTree* tree, uint64_t limit);
|
||||
} // namespace execplan
|
||||
|
@@ -6103,7 +6103,7 @@ int processWhere(SELECT_LEX& select_lex, gp_walk_info& gwi, SCSEP& csep, const s
|
||||
string rewriteEnabled = cf->getConfig("Rewrites", "CommonLeafConjunctionsToTop");
|
||||
if (filters && rewriteEnabled != "OFF")
|
||||
{
|
||||
filters = extractCommonLeafConjunctionsToRoot(filters);
|
||||
filters = extractCommonLeafConjunctionsToRoot<true>(filters);
|
||||
}
|
||||
|
||||
uint64_t limit = get_max_allowed_in_values(gwi.thd);
|
||||
@@ -6306,7 +6306,8 @@ void extractColumnStatistics(Item_field* ifp, gp_walk_info& gwi)
|
||||
auto* histogram = dynamic_cast<Histogram_json_hb*>(ifp->field->read_stats->histogram);
|
||||
if (histogram)
|
||||
{
|
||||
SchemaAndTableName tableName = {ifp->field->table->s->db.str, ifp->field->table->s->table_name.str};
|
||||
SchemaAndTableName tableName = {ifp->field->table->s->db.str,
|
||||
ifp->field->table->s->table_name.str};
|
||||
gwi.tableStatisticsMap[tableName][ifp->field->field_name.str] = *histogram;
|
||||
}
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ bool treeEqual(execplan::ParseTree* fst, execplan::ParseTree* snd, int depth = 0
|
||||
(treeEqual(fst->left(), snd->right(), depth + 1) && treeEqual(fst->right(), snd->left(), depth + 1));
|
||||
}
|
||||
|
||||
#define REWRITE_TREE_TEST_DEBUG false
|
||||
#define REWRITE_TREE_TEST_DEBUG true
|
||||
|
||||
void printTree([[maybe_unused]] const std::string& queryName, [[maybe_unused]] execplan::ParseTree* tree,
|
||||
[[maybe_unused]] const std::string& treeName)
|
||||
|
@@ -254,12 +254,13 @@ bool WEDataLoader::setupCpimport() // fork the cpimport
|
||||
}
|
||||
|
||||
Cmds.push_back(0); // null terminate
|
||||
// updatePrgmPath(Cmds);
|
||||
// updatePrgmPath(Cmds);
|
||||
|
||||
// NOTE: for debugging
|
||||
// // NOTE: for debugging
|
||||
int aSize = Cmds.size();
|
||||
|
||||
for (int aIdx = 0; aIdx < aSize; ++aIdx)
|
||||
// Do not address last terminating 0
|
||||
for (int aIdx = 0; aIdx < aSize - 1; ++aIdx)
|
||||
{
|
||||
cout << "Args " << Cmds[aIdx] << endl;
|
||||
}
|
||||
|
Reference in New Issue
Block a user