[patches] Re: [PATCH 1/1] index: make index:min/max return a tuple with correct key

Konstantin Osipov kostja at tarantool.org
Wed Mar 7 20:23:34 MSK 2018


* v.shpilevoy at tarantool.org <v.shpilevoy at tarantool.org> [18/03/07 16:46]:

It turns out this patch breaks 2.0, selectB.test.lua in sql-tap
suite. 

Somehow vdbe relies on the old behaviour of max.

Could you please investigate?

> Used EQ/REQ instead of manual LE, GE + cmp().
> 
> 
> diff --git a/src/box/index.cc b/src/box/index.cc
> index 5d1ad3571..1ab0aba58 100644
> --- a/src/box/index.cc
> +++ b/src/box/index.cc
> @@ -38,7 +38,6 @@
>  #include "txn.h"
>  #include "rmean.h"
>  #include "info.h"
> -#include "tuple_compare.h"
>  
>  /* {{{ Utilities. **********************************************/
>  
> @@ -562,14 +561,11 @@ int
>  generic_index_min(struct index *index, const char *key,
>  		  uint32_t part_count, struct tuple **result)
>  {
> -	struct iterator *it = index_create_iterator(index, ITER_GE,
> +	struct iterator *it = index_create_iterator(index, ITER_EQ,
>  						    key, part_count);
>  	if (it == NULL)
>  		return -1;
>  	int rc = iterator_next(it, result);
> -	if (*result != NULL && tuple_compare_with_key(*result, key, part_count,
> -						      index->def->key_def) != 0)
> -		*result = NULL;
>  	iterator_delete(it);
>  	return rc;
>  }
> @@ -578,14 +574,11 @@ int
>  generic_index_max(struct index *index, const char *key,
>  		  uint32_t part_count, struct tuple **result)
>  {
> -	struct iterator *it = index_create_iterator(index, ITER_LE,
> +	struct iterator *it = index_create_iterator(index, ITER_REQ,
>  						    key, part_count);
>  	if (it == NULL)
>  		return -1;
>  	int rc = iterator_next(it, result);
> -	if (*result != NULL && tuple_compare_with_key(*result, key, part_count,
> -						      index->def->key_def) != 0)
> -		*result = NULL;
>  	iterator_delete(it);
>  	return rc;
>  }
> 

-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.org - www.twitter.com/kostja_osipov



More information about the Tarantool-patches mailing list