Skip to content

Instantly share code, notes, and snippets.

SEL_TREE(
PRIMARY:SEL_ARG(weight=20), key1:SEL_ARG(weight=20),
imerges={
IMERGE(
SEL_TREE(
PRIMARY:SEL_ARG(weight=16), key1:SEL_ARG(weight=16),
imerges={
IMERGE(
SEL_TREE(PRIMARY:SEL_ARG(weight=12), key1:SEL_ARG(weight=12),
SEL_TREE(
PRIMARY:SEL_ARG(weight=11), t10_IX2:SEL_ARG(weight=12),
imerges={
IMERGE(
SEL_TREE(PRIMARY:SEL_ARG(weight=10), t10_IX2:SEL_ARG(weight=11),
imerges={
IMERGE(
SEL_TREE(PRIMARY:SEL_ARG(weight=9), t10_IX2:SEL_ARG(weight=10),
imerges={
diff -u '--exclude=.*' sql/item.cc sql/item.cc
--- sql/item.cc 2024-07-10 15:21:32.686440163 +0300
+++ sql/item.cc 2024-07-10 15:25:11.262066814 +0300
@@ -2176,6 +2176,16 @@
bool Item_name_const::fix_fields(THD *thd, Item **ref)
{
+
+ if (value_item->fix_fields_if_needed(thd, &value_item) ||
+ name_item->fix_fields_if_needed(thd, &name_item) ||
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index 52fcbf96018..00dede9bc7d 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -5029,7 +5029,7 @@ subselect_hash_sj_engine::choose_partial_match_strategy(
strategy= PARTIAL_MATCH_SCAN;
else
item->get_IN_subquery()->get_materialization_tracker()->
- set_partial_match_buffer_size(pm_buff_size);
+ report_partial_match_buffer_size(pm_buff_size);
{
"query_optimization": {
"r_total_time_ms": 0.171497634
},
"query_block": {
"select_id": 1,
"cost": 0.28237866,
"r_loops": 1,
"r_total_time_ms": 1.246360326,
"nested_loop": [
diff --git a/mysql-test/main/_b1.opt b/mysql-test/main/_b1.opt
new file mode 100644
index 00000000000..a5bb9a93636
--- /dev/null
+++ b/mysql-test/main/_b1.opt
@@ -0,0 +1 @@
+--innodb_buffer_pool_dump_at_shutdown=off --innodb_buffer_pool_load_at_startup=off --innodb-stats-persistent=1 --innodb-stats-auto-recalc=off
diff --git a/mysql-test/main/_b1.test b/mysql-test/main/_b1.test
new file mode 100644
index 00000000000..fbbb564721d
# Time: 240319 11:13:38
# User@Host: root[root] @ localhost []
# Thread_id: 3 Schema: test QC_hit: No
# Query_time: 0.358257 Lock_time: 0.000121 Rows_sent: 1 Rows_examined: 18501
# Rows_affected: 0 Bytes_sent: 66
# Pages_accessed: 20020 Pages_read: 0 Pages_updated: 0 Old_rows_read: 0
# Pages_read_time: 0.0000 Engine_time: 338.2396
# Full_scan: Yes Full_join: No Tmp_table: No Tmp_table_on_disk: No
# Filesort: No Filesort_on_disk: No Merge_passes: 0 Priority_queue: No
#
diff --git a/sql/field.h b/sql/field.h
index d5c1b049ff1..b766665e002 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1636,9 +1636,12 @@ class Field: public Value_source
{ return max_length;}
virtual bool is_packable() const { return false; }
- uint offset(const uchar *record) const
+ uint offset() const
diff --git a/sql/field.h b/sql/field.h
index 7f1c243a180..d5c1b049ff1 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1526,7 +1526,7 @@ class Field: public Value_source
ptr=ptr_arg; null_ptr=null_ptr_arg; null_bit=null_bit_arg;
}
inline void move_field(uchar *ptr_arg) { ptr=ptr_arg; }
- inline uchar *record_ptr() // record[0] or wherever the field was moved to
+ inline uchar *record_ptr() const // record[0] or wherever the field was moved to
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index e41f1b08c5a..09b6067be4f 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -93,6 +93,7 @@ static const char *ha_par_ext= PAR_EXT;
table->record[0] during index condition evaluation (if present).
*/
using IndexOperationFunc= std::function<int(uchar* read_buf)>;
+#if 0
static int index_reader(TABLE* table,