Index number argument
Fix in test results
This commit is contained in:
parent
b8a12a8cec
commit
06ed215c37
@ -18,10 +18,10 @@
|
||||
|
||||
/* Read first record with the current key */
|
||||
|
||||
int heap_rfirst(HP_INFO *info, byte *record)
|
||||
int heap_rfirst(HP_INFO *info, byte *record, int inx)
|
||||
{
|
||||
HP_SHARE *share = info->s;
|
||||
HP_KEYDEF *keyinfo = share->keydef + info->lastinx;
|
||||
HP_KEYDEF *keyinfo = share->keydef + inx;
|
||||
|
||||
DBUG_ENTER("heap_rfirst");
|
||||
if (keyinfo->algorithm == HA_KEY_ALG_BTREE)
|
||||
|
@ -19,15 +19,12 @@
|
||||
/* Read first record with the current key */
|
||||
|
||||
|
||||
int heap_rlast(HP_INFO *info, byte *record)
|
||||
int heap_rlast(HP_INFO *info, byte *record, int inx)
|
||||
{
|
||||
HP_SHARE *share = info->s;
|
||||
HP_KEYDEF *keyinfo;
|
||||
HP_SHARE *share= info->s;
|
||||
HP_KEYDEF *keyinfo= share->keydef + inx;
|
||||
|
||||
DBUG_ENTER("heap_rlast");
|
||||
if (info->lastinx < 0)
|
||||
DBUG_RETURN(my_errno = HA_ERR_WRONG_INDEX);
|
||||
keyinfo = share->keydef + info->lastinx;
|
||||
if (keyinfo->algorithm == HA_KEY_ALG_BTREE)
|
||||
{
|
||||
byte *pos;
|
||||
|
@ -306,7 +306,7 @@ int main(int argc, char *argv[])
|
||||
if (!silent)
|
||||
printf("- Read last key - delete - prev - prev - opt_delete - prev -> first\n");
|
||||
|
||||
if (heap_rlast(file,record3)) goto err;
|
||||
if (heap_rlast(file,record3,0)) goto err;
|
||||
if (heap_delete(file,record3)) goto err;
|
||||
key_check-=atoi(record3);
|
||||
key1[atoi(record+keyinfo[0].seg[0].start)]--;
|
||||
@ -513,7 +513,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
ant=0;
|
||||
for (error=heap_rlast(file,record) ;
|
||||
for (error=heap_rlast(file,record,0) ;
|
||||
! error ;
|
||||
error=heap_rprev(file,record))
|
||||
{
|
||||
|
@ -161,8 +161,8 @@ extern int heap_panic(enum ha_panic_function flag);
|
||||
extern int heap_rsame(HP_INFO *info,byte *record,int inx);
|
||||
extern int heap_rnext(HP_INFO *info,byte *record);
|
||||
extern int heap_rprev(HP_INFO *info,byte *record);
|
||||
extern int heap_rfirst(HP_INFO *info,byte *record);
|
||||
extern int heap_rlast(HP_INFO *info,byte *record);
|
||||
extern int heap_rfirst(HP_INFO *info,byte *record,int inx);
|
||||
extern int heap_rlast(HP_INFO *info,byte *record,int inx);
|
||||
extern void heap_clear(HP_INFO *info);
|
||||
|
||||
ha_rows hp_rb_records_in_range(HP_INFO *info, int inx, const byte *start_key,
|
||||
|
@ -124,11 +124,11 @@ create table t1 (id int unsigned not null, primary key using BTREE (id)) type=H
|
||||
insert into t1 values(1);
|
||||
select max(id) from t1;
|
||||
max(id)
|
||||
NULL
|
||||
1
|
||||
insert into t1 values(2);
|
||||
select max(id) from t1;
|
||||
max(id)
|
||||
NULL
|
||||
2
|
||||
replace into t1 values(1);
|
||||
drop table t1;
|
||||
create table t1 (n int) type=heap;
|
||||
|
@ -189,7 +189,7 @@ int ha_heap::index_prev(byte * buf)
|
||||
int ha_heap::index_first(byte * buf)
|
||||
{
|
||||
statistic_increment(ha_read_first_count,&LOCK_status);
|
||||
int error=heap_rfirst(file, buf);
|
||||
int error=heap_rfirst(file, buf, active_index);
|
||||
table->status=error ? STATUS_NOT_FOUND: 0;
|
||||
return error;
|
||||
}
|
||||
@ -197,7 +197,7 @@ int ha_heap::index_first(byte * buf)
|
||||
int ha_heap::index_last(byte * buf)
|
||||
{
|
||||
statistic_increment(ha_read_last_count,&LOCK_status);
|
||||
int error=heap_rlast(file, buf);
|
||||
int error=heap_rlast(file, buf, active_index);
|
||||
table->status=error ? STATUS_NOT_FOUND: 0;
|
||||
return error;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user