Below is the list of changes that have just been committed into a local
6.0 repository of psergey. When psergey does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-11-16 19:39:21+03:00, sergefp@stripped +3 -0
Temporary fix: make "read before update" optimization work with changes
in MRR interface. This code will need to be removed when this is merged
together with WL#2771 Batched Key Access
sql/ha_ndbcluster.cc@stripped, 2007-11-16 19:39:12+03:00, sergefp@stripped +3 -2
Temporary fix: make "read before update" optimization work with changes
in MRR interface. This code will need to be removed when this is merged
together with WL#2771 Batched Key Access
sql/handler.h@stripped, 2007-11-16 19:39:12+03:00, sergefp@stripped +1 -0
Temporary fix: make "read before update" optimization work with changes
in MRR interface. This code will need to be removed when this is merged
together with WL#2771 Batched Key Access
sql/opt_range.cc@stripped, 2007-11-16 19:39:12+03:00, sergefp@stripped +5 -0
Temporary fix: make "read before update" optimization work with changes
in MRR interface. This code will need to be removed when this is merged
together with WL#2771 Batched Key Access
diff -Nrup a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
--- a/sql/ha_ndbcluster.cc 2007-11-13 23:31:09 +03:00
+++ b/sql/ha_ndbcluster.cc 2007-11-16 19:39:12 +03:00
@@ -11032,10 +11032,11 @@ int ha_ndbcluster::multi_range_read_next
{
DBUG_PRINT("info", ("using read before write removal optimisation"));
KEY* key_info= table->key_info + active_index;
- key_restore(table->record[0], (uchar*)multi_range_curr->start_key.key,
+ key_restore(table->record[0],
+ mrr_get_lookup_key(mrr_iter, first_running_range),
key_info, key_info->key_length);
table->status= 0;
- multi_range_curr++;
+ //multi_range_curr++;
DBUG_RETURN(0);
}
else if (mrr_persistent_flag_storage(mrr_iter, first_running_range) &
UNIQUE_RANGE)
diff -Nrup a/sql/handler.h b/sql/handler.h
--- a/sql/handler.h 2007-11-12 16:20:22 +03:00
+++ b/sql/handler.h 2007-11-16 19:39:12 +03:00
@@ -1007,6 +1007,7 @@ typedef struct st_range_seq_if
} RANGE_SEQ_IF;
uint16 &mrr_persistent_flag_storage(range_seq_t seq, uint idx);
+uchar *mrr_get_lookup_key(range_seq_t seq, uint idx);
char* &mrr_get_ptr_by_idx(range_seq_t seq, uint idx);
class COST_VECT
diff -Nrup a/sql/opt_range.cc b/sql/opt_range.cc
--- a/sql/opt_range.cc 2007-10-25 11:39:53 +04:00
+++ b/sql/opt_range.cc 2007-11-16 19:39:12 +03:00
@@ -8401,6 +8401,11 @@ uint16 &mrr_persistent_flag_storage(rang
return ctx->first[idx]->flag;
}
+uchar *mrr_get_lookup_key(range_seq_t seq, uint idx)
+{
+ QUICK_RANGE_SEQ_CTX *ctx= (QUICK_RANGE_SEQ_CTX*)seq;
+ return ctx->first[idx]->min_key;
+}
/*
MRR range sequence interface: array<QUICK_RANGE> impl: utility func for NDB
| Thread |
|---|
| • bk commit into 6.0 tree (sergefp:1.2661) WL#2771 | Sergey Petrunia | 16 Nov |