MySQL Lists are EOL. Please join:

List:Internals« Previous MessageNext Message »
From:Sergey Petrunia Date:September 30 2005 10:20am
Subject:bk commit into 5.0 tree (sergefp:1.2028) BUG#13081
View as plain text  
Below is the list of changes that have just been committed into a local
5.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
  1.2028 05/09/30 14:20:15 sergefp@stripped +3 -0
  BUG#13081: Disable ROR-index_merge for NDB tables (by adding a 
  HA_KEY_SCAN_NOT_ROR index flag) as NDB index scans are not guaranteed to be ROR 
  scans. 

  sql/opt_range.cc
    1.190 05/09/30 14:20:11 sergefp@stripped +2 -0
    BUG#13081: Disable ROR-index_merge for NDB tables (by adding a 
    HA_KEY_SCAN_NOT_ROR index flag) as NDB index scans are not guaranteed to be ROR 
    scans. 

  sql/handler.h
    1.155 05/09/30 14:20:11 sergefp@stripped +7 -0
    BUG#13081: Disable ROR-index_merge for NDB tables (by adding a 
    HA_KEY_SCAN_NOT_ROR index flag) as NDB index scans are not guaranteed to be ROR 
    scans. 

  sql/ha_ndbcluster.cc
    1.210 05/09/30 14:20:10 sergefp@stripped +2 -1
    BUG#13081: Disable ROR-index_merge for NDB tables (by adding a 
    HA_KEY_SCAN_NOT_ROR index flag) as NDB index scans are not guaranteed to be ROR 
    scans. 

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	sergefp
# Host:	newbox.mylan
# Root:	/home/psergey/mysql-5.0-sept30-test

--- 1.154/sql/handler.h	2005-09-23 03:58:04 +04:00
+++ 1.155/sql/handler.h	2005-09-30 14:20:11 +04:00
@@ -98,6 +98,13 @@
 #define HA_ONLY_WHOLE_INDEX	16	/* Can't use part key searches */
 #define HA_KEYREAD_ONLY         64	/* Support HA_EXTRA_KEYREAD */
 
+/*
+  Index scan will not return records in rowid order. Not guaranteed to be
+  set for unordered (e.g. HASH) indexes.
+*/
+#define HA_KEY_SCAN_NOT_ROR     128 
+
+
 /* operations for disable/enable indexes */
 #define HA_KEY_SWITCH_NONUNIQ      0
 #define HA_KEY_SWITCH_ALL          1

--- 1.189/sql/opt_range.cc	2005-09-21 21:36:11 +04:00
+++ 1.190/sql/opt_range.cc	2005-09-30 14:20:11 +04:00
@@ -5117,6 +5117,8 @@
     if (cpk_scan)
       param->is_ror_scan= TRUE;
   }
+  if (param->table->file->index_flags(key, 0, TRUE) & HA_KEY_SCAN_NOT_ROR)
+    param->is_ror_scan= FALSE;
   DBUG_PRINT("exit", ("Records: %lu", (ulong) records));
   DBUG_RETURN(records);
 }

--- 1.209/sql/ha_ndbcluster.cc	2005-09-28 13:34:49 +04:00
+++ 1.210/sql/ha_ndbcluster.cc	2005-09-30 14:20:10 +04:00
@@ -1209,7 +1209,8 @@
   DBUG_ENTER("ha_ndbcluster::index_flags");
   DBUG_PRINT("info", ("idx_no: %d", idx_no));
   DBUG_ASSERT(get_index_type_from_table(idx_no) < index_flags_size);
-  DBUG_RETURN(index_type_flags[get_index_type_from_table(idx_no)]);
+  DBUG_RETURN(index_type_flags[get_index_type_from_table(idx_no)] | 
+              HA_KEY_SCAN_NOT_ROR);
 }
 
 static void shrink_varchar(Field* field, const byte* & ptr, char* buf)
Thread
bk commit into 5.0 tree (sergefp:1.2028) BUG#13081Sergey Petrunia30 Sep