[Tarantool-patches] [PATCH] sql: fix off-by-one error in QP

Alexander Turenko alexander.turenko at tarantool.org
Mon Dec 30 01:20:08 MSK 2019


On Thu, Oct 24, 2019 at 11:13:47AM +0300, Nikita Pettik wrote:
> On 23 Oct 23:12, Vladislav Shpilevoy wrote:
> > Hi! Thanks for the patch! LGTM.
> 
> Pushed to master.

8fac697 is 2.2.0-543-g8fac69721, so current 2.2 branch possibly affected
by the issue. Shouldn't this commit be cherry picked to 2.2?

>  
> > On 21/10/2019 18:45, Nikita Pettik wrote:
> > > In scope of 8fac697 it was fixed misbehavior while passing floating
> > > point values to integer iterator. Unfortunately, that patch introduced
> > > off-by-one error. Number of constraints (equalities and inequalities)
> > > can not be greater than number of key parts (obviously, each constraint
> > > can be tested against at most one index part). Inequality constraint can
> > > involve only field representing last key part. To get it number of
> > > constraints was used as index. However, since array is 0-based, the last
> > > key part should be calculated as parts[eq_numb - 1]. Before this patch
> > > it was parts[eq_numb].
> > > 
> > > Closes #4558
> > > ---
> > > Branch: https://github.com/tarantool/tarantool/commits/np/gh-4558-off-by-one-qp-fix
> > > Issue: https://github.com/tarantool/tarantool/issues/4558
> > > 
> > >  src/box/sql/wherecode.c | 18 ++++++++++++++----
> > >  1 file changed, 14 insertions(+), 4 deletions(-)
> > > 


More information about the Tarantool-patches mailing list