Thanks for the fixes!
3. I do not see where do you set an appropriate error code (p5).@@ -2145,6 +2145,7 @@ computeLimitRegisters(Parse * pParse, Select * p, int
4. Same.
iBreak)
sqlite3VdbeAddOp4(v, OP_Halt,
SQL_TARANTOOL_ERROR,
0, 0, error, P4_STATIC);
+ sqlite3VdbeChangeP5(v, ER_SQL_EXECUTE);
sqlite3VdbeResolveLabel(v, no_err);
sqlite3ReleaseTempReg(pParse, r1);
@@ -5452,6 +5453,7 @@ vdbe_code_raise_on_multiple_rows(struct Parse *parser, int limit_reg, int end_ma
sqlite3VdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR,
ON_CONFLICT_ACTION_FAIL, 0,
error, P4_STATIC);
+ sqlite3VdbeChangeP5(v, SQL_TARANTOOL_ERROR);