[tarantool-patches] Re: [PATCH v1 5/9] sql: make SQL_TARANTOOL_ERROR the only errcode of OP_Halt

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Sun Jun 2 19:35:11 MSK 2019


>   * This routine is invoked once per CTE by the parser while parsing a
> diff --git a/src/box/sql/expr.c b/src/box/sql/expr.c
> index 6ac42d7..a4a2d71 100644
> --- a/src/box/sql/expr.c
> +++ b/src/box/sql/expr.c
> @@ -4386,9 +4386,10 @@ sqlExprCodeTarget(Parse * pParse, Expr * pExpr, int target)
>  					  ON_CONFLICT_ACTION_IGNORE, 0,
>  					  pExpr->u.zToken, 0);
>  		} else {
> -			sqlHaltConstraint(pParse, SQL_CONSTRAINT_TRIGGER,
> -					      pExpr->on_conflict_action,
> -					      pExpr->u.zToken, 0, 0);
> +			sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR,
> +				      pExpr->on_conflict_action, 0,
> +				      pExpr->u.zToken, 0);
> +			sqlVdbeChangeP5(v, ER_SQL_EXECUTE);

Please, remove p5 arg and store error code in p2. Now it can be done
with ease.

>  		}
>  		break;
>  	}




More information about the Tarantool-patches mailing list