summaryrefslogtreecommitdiff
path: root/sql/opt_range.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/opt_range.h')
-rw-r--r--sql/opt_range.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/opt_range.h b/sql/opt_range.h
index f3ccd4d8311..22ddce91e96 100644
--- a/sql/opt_range.h
+++ b/sql/opt_range.h
@@ -1264,6 +1264,8 @@ public:
This is used by an optimization in filesort.
*/
virtual void add_used_key_part_to_set()=0;
+
+ virtual bool are_mini_transactions_applicable() const= 0;
};
@@ -1361,6 +1363,8 @@ public:
QUICK_SELECT_I *make_reverse(uint used_key_parts_arg);
virtual void add_used_key_part_to_set();
+ bool are_mini_transactions_applicable() const override
+ { return !in_ror_merged_scan && !mrr_flags; }
private:
/* Default copy ctor used by QUICK_SELECT_DESC */
@@ -1398,7 +1402,6 @@ private:
};
-
class QUICK_RANGE_SELECT_GEOM: public QUICK_RANGE_SELECT
{
public:
@@ -1531,6 +1534,7 @@ public:
READ_RECORD read_record;
virtual void add_used_key_part_to_set();
+ bool are_mini_transactions_applicable() const override { return false; }
};
@@ -1642,6 +1646,8 @@ public:
return valid;
}
+ bool are_mini_transactions_applicable() const override { return false; }
+
/*
Merged quick select that uses Clustered PK, if there is one. This quick
select is not used for row retrieval, it is used for row retrieval.
@@ -1710,6 +1716,8 @@ public:
return valid;
}
+ bool are_mini_transactions_applicable() const override { return false; }
+
QUEUE queue; /* Priority queue for merge operation */
MEM_ROOT alloc; /* Memory pool for this and merged quick selects data. */
@@ -1836,6 +1844,7 @@ public:
bool is_agg_distinct() { return have_agg_distinct; }
bool loose_scan_is_scanning() { return is_index_scan; }
Explain_quick_select *get_explain(MEM_ROOT *alloc);
+ bool are_mini_transactions_applicable() const override { return true; }
};