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 */
|
/* 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_SHARE *share = info->s;
|
||||||
HP_KEYDEF *keyinfo = share->keydef + info->lastinx;
|
HP_KEYDEF *keyinfo = share->keydef + inx;
|
||||||
|
|
||||||
DBUG_ENTER("heap_rfirst");
|
DBUG_ENTER("heap_rfirst");
|
||||||
if (keyinfo->algorithm == HA_KEY_ALG_BTREE)
|
if (keyinfo->algorithm == HA_KEY_ALG_BTREE)
|
||||||
|
@ -19,15 +19,12 @@
|
|||||||
/* Read first record with the current key */
|
/* 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_SHARE *share= info->s;
|
||||||
HP_KEYDEF *keyinfo;
|
HP_KEYDEF *keyinfo= share->keydef + inx;
|
||||||
|
|
||||||
DBUG_ENTER("heap_rlast");
|
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)
|
if (keyinfo->algorithm == HA_KEY_ALG_BTREE)
|
||||||
{
|
{
|
||||||
byte *pos;
|
byte *pos;
|
||||||
|
@ -306,7 +306,7 @@ int main(int argc, char *argv[])
|
|||||||
if (!silent)
|
if (!silent)
|
||||||
printf("- Read last key - delete - prev - prev - opt_delete - prev -> first\n");
|
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;
|
if (heap_delete(file,record3)) goto err;
|
||||||
key_check-=atoi(record3);
|
key_check-=atoi(record3);
|
||||||
key1[atoi(record+keyinfo[0].seg[0].start)]--;
|
key1[atoi(record+keyinfo[0].seg[0].start)]--;
|
||||||
@ -513,7 +513,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
ant=0;
|
ant=0;
|
||||||
for (error=heap_rlast(file,record) ;
|
for (error=heap_rlast(file,record,0) ;
|
||||||
! error ;
|
! error ;
|
||||||
error=heap_rprev(file,record))
|
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_rsame(HP_INFO *info,byte *record,int inx);
|
||||||
extern int heap_rnext(HP_INFO *info,byte *record);
|
extern int heap_rnext(HP_INFO *info,byte *record);
|
||||||
extern int heap_rprev(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_rfirst(HP_INFO *info,byte *record,int inx);
|
||||||
extern int heap_rlast(HP_INFO *info,byte *record);
|
extern int heap_rlast(HP_INFO *info,byte *record,int inx);
|
||||||
extern void heap_clear(HP_INFO *info);
|
extern void heap_clear(HP_INFO *info);
|
||||||
|
|
||||||
ha_rows hp_rb_records_in_range(HP_INFO *info, int inx, const byte *start_key,
|
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);
|
insert into t1 values(1);
|
||||||
select max(id) from t1;
|
select max(id) from t1;
|
||||||
max(id)
|
max(id)
|
||||||
NULL
|
1
|
||||||
insert into t1 values(2);
|
insert into t1 values(2);
|
||||||
select max(id) from t1;
|
select max(id) from t1;
|
||||||
max(id)
|
max(id)
|
||||||
NULL
|
2
|
||||||
replace into t1 values(1);
|
replace into t1 values(1);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (n int) type=heap;
|
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)
|
int ha_heap::index_first(byte * buf)
|
||||||
{
|
{
|
||||||
statistic_increment(ha_read_first_count,&LOCK_status);
|
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;
|
table->status=error ? STATUS_NOT_FOUND: 0;
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
@ -197,7 +197,7 @@ int ha_heap::index_first(byte * buf)
|
|||||||
int ha_heap::index_last(byte * buf)
|
int ha_heap::index_last(byte * buf)
|
||||||
{
|
{
|
||||||
statistic_increment(ha_read_last_count,&LOCK_status);
|
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;
|
table->status=error ? STATUS_NOT_FOUND: 0;
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user