Skip to content

Commit 53b218f

Browse files
authored
Cleanup: get rid of req_null (#8798)
1 parent 37975a2 commit 53b218f

35 files changed

+397
-622
lines changed

src/common/classes/TriState.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,14 @@ namespace Firebird {
3434
class TriState
3535
{
3636
public:
37-
TriState() noexcept;
38-
explicit TriState(bool input) noexcept;
37+
static constexpr TriState empty() noexcept
38+
{
39+
return TriState();
40+
}
41+
42+
public:
43+
constexpr TriState() noexcept;
44+
explicit constexpr TriState(bool input) noexcept;
3945

4046
bool operator ==(const TriState& o) const noexcept
4147
{
@@ -62,13 +68,13 @@ class TriState
6268
};
6369

6470
// The var is left uninitialized.
65-
inline TriState::TriState() noexcept
71+
inline constexpr TriState::TriState() noexcept
6672
: m_init(false), m_val(false)
6773
{
6874
}
6975

7076
// The var is initialized to the explicit value.
71-
inline TriState::TriState(bool input) noexcept
77+
inline constexpr TriState::TriState(bool input) noexcept
7278
: m_init(true), m_val(input)
7379
{
7480
}

src/dsql/AggNodes.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ bool AggNode::aggPass(thread_db* tdbb, Request* request) const
388388
if (arg)
389389
{
390390
desc = EVL_expr(tdbb, request, arg);
391-
if (request->req_flags & req_null)
391+
if (!desc)
392392
return false;
393393

394394
if (distinct)
@@ -597,7 +597,7 @@ void AnyValueAggNode::aggPass(thread_db* tdbb, Request* request, dsc* desc) cons
597597
{
598598
const auto argValue = EVL_expr(tdbb, request, arg);
599599

600-
if (!(request->req_flags & req_null))
600+
if (!argValue)
601601
EVL_make_value(tdbb, argValue, impure);
602602
}
603603

@@ -1037,7 +1037,7 @@ void ListAggNode::aggPass(thread_db* tdbb, Request* request, dsc* desc) const
10371037
{
10381038
const dsc* const delimiterDesc = EVL_expr(tdbb, request, delimiter);
10391039

1040-
if (request->req_flags & req_null)
1040+
if (!delimiterDesc)
10411041
{
10421042
// Mark the result as NULL.
10431043
impure->vlu_desc.dsc_dtype = 0;
@@ -2031,11 +2031,11 @@ bool CorrAggNode::aggPass(thread_db* tdbb, Request* request) const
20312031
dsc* desc2 = NULL;
20322032

20332033
desc = EVL_expr(tdbb, request, arg);
2034-
if (request->req_flags & req_null)
2034+
if (!desc)
20352035
return false;
20362036

20372037
desc2 = EVL_expr(tdbb, request, arg2);
2038-
if (request->req_flags & req_null)
2038+
if (!desc2)
20392039
return false;
20402040

20412041
++impure->vlux_count;
@@ -2307,11 +2307,11 @@ bool RegrAggNode::aggPass(thread_db* tdbb, Request* request) const
23072307
dsc* desc2 = NULL;
23082308

23092309
desc = EVL_expr(tdbb, request, arg);
2310-
if (request->req_flags & req_null)
2310+
if (!desc)
23112311
return false;
23122312

23132313
desc2 = EVL_expr(tdbb, request, arg2);
2314-
if (request->req_flags & req_null)
2314+
if (!desc2)
23152315
return false;
23162316

23172317
++impure->vlux_count;
@@ -2559,12 +2559,10 @@ void RegrCountAggNode::aggInit(thread_db* tdbb, Request* request) const
25592559

25602560
bool RegrCountAggNode::aggPass(thread_db* tdbb, Request* request) const
25612561
{
2562-
EVL_expr(tdbb, request, arg);
2563-
if (request->req_flags & req_null)
2562+
if (!EVL_expr(tdbb, request, arg))
25642563
return false;
25652564

2566-
EVL_expr(tdbb, request, arg2);
2567-
if (request->req_flags & req_null)
2565+
if (!EVL_expr(tdbb, request, arg2))
25682566
return false;
25692567

25702568
impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);

0 commit comments

Comments
 (0)