Commit ea44ccb0 authored by unknown's avatar unknown
Browse files

Fix for BUG33649: Post-review fixes


sql/sql_class.h:
  Fix for BUG33649: Post-review fixes: added RNEXT_SAME
sql/sql_handler.cc:
  Fix for BUG33649: Post-review fixes: added RNEXT_SAME
parent cdf7471c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ class Load_log_event;
class Slave_log_event;

enum enum_enable_or_disable { LEAVE_AS_IS, ENABLE, DISABLE };
enum enum_ha_read_modes { RFIRST, RNEXT, RPREV, RLAST, RKEY };
enum enum_ha_read_modes { RFIRST, RNEXT, RPREV, RLAST, RKEY, RNEXT_SAME };
enum enum_duplicates { DUP_ERROR, DUP_REPLACE, DUP_IGNORE };
enum enum_log_type { LOG_CLOSED, LOG_TO_BE_OPENED, LOG_NORMAL, LOG_NEW, LOG_BIN};
enum enum_delay_key_write { DELAY_KEY_WRITE_NONE, DELAY_KEY_WRITE_ON,
+33 −35
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ int mysql_ha_closeall(THD *thd, TABLE_LIST *tables)
}

static enum enum_ha_read_modes rkey_to_rnext[]=
    { RKEY, RNEXT, RPREV, RNEXT, RPREV, RNEXT, RPREV };
    { RNEXT_SAME, RNEXT, RPREV, RNEXT, RPREV, RNEXT, RPREV };


int mysql_ha_read(THD *thd, TABLE_LIST *tables,
@@ -152,9 +152,10 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
  MYSQL_LOCK *lock=mysql_lock_tables(thd,&tables->table,1);
  HANDLER_TABLES_HACK(thd);
  
  byte *key= NULL;
  byte *key;
  uint key_len;
  LINT_INIT(key_len); /* protected by key key variable */
  LINT_INIT(key); 
  LINT_INIT(key_len); 
  if (!lock)
     goto err0; // mysql_lock_tables() printed error message already

@@ -187,14 +188,12 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
      DBUG_ASSERT(keyname != 0);
      err=table->file->index_prev(table->record[0]);
      break;
    case RKEY:
    {
      if (key)
      {
    case RNEXT_SAME:
      /* Continue scan on "(keypart1,keypart2,...)=(c1, c2, ...)  */
      DBUG_ASSERT(keyname != 0);
      err= table->file->index_next_same(table->record[0], key, key_len);
      }
      else
      break;
    case RKEY:
    {
      DBUG_ASSERT(keyname != 0);
      KEY *keyinfo=table->key_info+keyno;
@@ -228,7 +227,6 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
      err=table->file->index_read(table->record[0],
                                  key,key_len,ha_rkey_mode);
      mode=rkey_to_rnext[(int)ha_rkey_mode];
      }
      break;
    }
    default: