summaryrefslogtreecommitdiffstats
path: root/sql/sp_head.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 13:22:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 13:22:53 +0000
commit347c164c35eddab388009470e6848cb361ac93f8 (patch)
tree2c0c44eac690f510bb0a35b2a13b36d606b77b6b /sql/sp_head.h
parentReleasing progress-linux version 1:10.11.7-4~progress7.99u1. (diff)
downloadmariadb-347c164c35eddab388009470e6848cb361ac93f8.tar.xz
mariadb-347c164c35eddab388009470e6848cb361ac93f8.zip
Merging upstream version 1:10.11.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sql/sp_head.h')
-rw-r--r--sql/sp_head.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/sql/sp_head.h b/sql/sp_head.h
index da4e5763..b418ef25 100644
--- a/sql/sp_head.h
+++ b/sql/sp_head.h
@@ -1138,7 +1138,7 @@ public:
sp_instr(uint ip, sp_pcontext *ctx)
:Query_arena(0, STMT_INITIALIZED_FOR_SP), marked(0), m_ip(ip), m_ctx(ctx)
#ifdef PROTECT_STATEMENT_MEMROOT
- , m_has_been_run(false)
+ , m_has_been_run(NON_RUN)
#endif
{}
@@ -1233,21 +1233,29 @@ public:
#ifdef PROTECT_STATEMENT_MEMROOT
bool has_been_run() const
{
- return m_has_been_run;
+ return m_has_been_run == RUN;
+ }
+
+ void mark_as_qc_used()
+ {
+ m_has_been_run= QC;
}
void mark_as_run()
{
- m_has_been_run= true;
+ if (m_has_been_run == QC)
+ m_has_been_run= NON_RUN; // answer was from WC => not really executed
+ else
+ m_has_been_run= RUN;
}
void mark_as_not_run()
{
- m_has_been_run= false;
+ m_has_been_run= NON_RUN;
}
private:
- bool m_has_been_run;
+ enum {NON_RUN, QC, RUN} m_has_been_run;
#endif
}; // class sp_instr : public Sql_alloc