Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 62 additions & 49 deletions .drone.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,8 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
],
},

local regression_tests = if (event == "cron") then [
local regression_tests_base = if (true) then [
//if (event == "cron") then [
"test000.sh",
"test001.sh",
"test005.sh",
Expand Down Expand Up @@ -202,6 +203,9 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
"test001.sh",
],


local regression_tests = [regression_tests_base[i] for i in indexes(regression_tests_base) if !std.member(ignoreFailureStepList, regression_tests_base[i])],

local mdb_server_versions = upgrade_test_lists[platformKey][arch],

local indexes(arr) = std.range(0, std.length(arr) - 1),
Expand Down Expand Up @@ -322,7 +326,7 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",
get_build_command("run_mtr.sh") +
" --container-name " + getContainerName("mtr") +
" --distro " + platform +
" --suite-list $${MTR_SUITE_LIST}" +
" --full-mtr" +
" --triggering-event " + event +
if std.endsWith(result, "ASan") then " --run-as-extern" else "",
],
Expand Down Expand Up @@ -663,65 +667,74 @@ local Pipeline(branch, platform, event, arch="amd64", server="10.6-enterprise",


local AllPipelines =
[
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]
] +
[
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
] +
// clang
[
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, "", "", ["regression"])
for a in ["amd64"]
for b in std.objectFields(platforms)
for server in extra_servers[current_branch]
for platform in extra_servers_platforms[current_branch]
for triggeringEvent in events
] +
// [
// 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]
// ] +
// [
// 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
// ] +
// // clang
// [
// 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, "", "", ["regression"])
// for a in ["amd64"]
// for b in std.objectFields(platforms)
// for server in extra_servers[current_branch]
// for platform in extra_servers_platforms[current_branch]
// for triggeringEvent in events
// ] +
// // // last argument is to ignore mtr and regression failures
// [
// Pipeline(b, platform, triggeringEvent, a, server, flag, envcommand, ["regression", "mtr"])
// for a in ["amd64"]
// for b in std.objectFields(platforms)
// for platform in ["ubuntu:24.04"]
// for flag in ["libcpp"]
// for envcommand in ["clang-20"]
// for triggeringEvent in events
// for server in servers[current_branch]
// ] +
[
Pipeline(b, platform, triggeringEvent, a, server, flag, envcommand, ["regression", "mtr"])
Pipeline(b, platform, triggeringEvent, a, server, flag, "")
for a in ["amd64"]
for b in std.objectFields(platforms)
for platform in ["ubuntu:24.04"]
for flag in ["libcpp"]
for envcommand in ["clang-20"]
for flag in ["UBSan"]
for triggeringEvent in events
for server in servers[current_branch]
] +
[
Pipeline(b, platform, triggeringEvent, a, server, flag, "")
Pipeline(b, platform, triggeringEvent, a, server, flag, "", ['test009.sh'])
for a in ["amd64"]
for b in std.objectFields(platforms)
for platform in ["ubuntu:24.04"]
for flag in ["ASan", "UBSan"]
for flag in ["ASan"]
for triggeringEvent in events
for server in servers[current_branch]
] +
Expand Down
3 changes: 2 additions & 1 deletion dbcon/execplan/arithmeticoperator.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,8 @@ class ArithmeticOperator : public Operator

private:
template <typename result_t>
inline result_t execute(result_t op1, result_t op2, bool& isNull);
inline __attribute__((no_sanitize("signed-integer-overflow"))) result_t
execute(result_t op1, result_t op2, bool& isNull);
inline void execute(IDB_Decimal& result, IDB_Decimal op1, IDB_Decimal op2, bool& isNull);
long fTimeZone;
bool fDecimalOverflowCheck;
Expand Down
20 changes: 2 additions & 18 deletions dbcon/mysql/ha_mcs_execplan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6314,24 +6314,8 @@ int processWhere(SELECT_LEX& select_lex, gp_walk_info& gwi, SCSEP& csep, const s
csep->filters(filters);
}

if (!gwi.rcWorkStack.empty())
{
while (!gwi.rcWorkStack.empty())
{
ReturnedColumn* t = gwi.rcWorkStack.top();
delete t;
gwi.rcWorkStack.pop();
}
}
if (!gwi.ptWorkStack.empty())
{
while (!gwi.ptWorkStack.empty())
{
ParseTree* t = gwi.ptWorkStack.top();
delete t;
gwi.ptWorkStack.pop();
}
}
// Clean up any remaining items on work stacks
clearDeleteStacks(gwi);

return 0;
}
Expand Down
1 change: 1 addition & 0 deletions dbcon/mysql/ha_pseudocolumn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,7 @@ execplan::ReturnedColumn* buildPseudoColumn(Item* item, gp_walk_info& gwi, bool&
}
else if (!gwi.rcWorkStack.empty())
{
delete gwi.rcWorkStack.top();
gwi.rcWorkStack.pop();
}

Expand Down
3 changes: 3 additions & 0 deletions dbcon/mysql/ha_window_function.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,10 @@ ReturnedColumn* buildWindowFunctionColumn(Item* item, gp_walk_info& gwi, bool& n
funcParms.push_back(srcp);

if (gwi.clauseType == WHERE && !gwi.rcWorkStack.empty())
{
delete gwi.rcWorkStack.top();
gwi.rcWorkStack.pop();
}
}

// Setup UDAnF functions
Expand Down