> On 5 Feb 2019, at 18:08, Vladislav Shpilevoy wrote: > > Hi! Thanks for the fixes! > >>>> diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c >>>> index 24d992284..80d2fd0aa 100644 >>>> --- a/src/box/sql/vdbe.c >>>> +++ b/src/box/sql/vdbe.c >>>> @@ -2881,7 +2873,7 @@ case OP_MakeRecord: { >>>> * of the record to data0. >>>> */ >>>> nField = pOp->p1; >>>> - zAffinity = pOp->p4.z; >>>> + enum field_type *types = (enum field_type *)pOp->p4.z; >>> >>> 2. Maybe, it is worth adding enum field_type *types into VdbeOp.p4union >>> and do not cast. Like we did with many other pointers. >> Thanks for suggestion, but I guess it is not necessary now. >> Lets consider this refactoring a bit later. > > Space * and other members of p4union also were not > necessary, but they make it easier to understand what can > be stored in p4, when you look at struct VdbeOp. So please, > apply this: Ok, sorry, I slightly misunderstood your proposal: I forgot that they would have the same layout and we wouldn’t have to refactor sqlite3VdbeChangeP4() with P4_FIELDTYPE and so on. Thanks, applied.