On 5 Feb 2019, at 18:08, Vladislav Shpilevoy <v.shpilevoy@tarantool.org> 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.