From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 98EE92E6AA for ; Mon, 10 Jun 2019 09:57:04 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id upHT3jouL2Rl for ; Mon, 10 Jun 2019 09:57:04 -0400 (EDT) Received: from smtp48.i.mail.ru (smtp48.i.mail.ru [94.100.177.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 1A7302E676 for ; Mon, 10 Jun 2019 09:57:04 -0400 (EDT) From: imeevma@tarantool.org Subject: [tarantool-patches] [PATCH v1 22/28] sql: remove SQL_TARANTOOL_ERROR errcode Date: Mon, 10 Jun 2019 16:57:01 +0300 Message-Id: <9fcacc8720790db1d118c0879a721382c41c0a83.1560174553.git.imeevma@gmail.com> In-Reply-To: References: Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: v.shpilevoy@tarantool.org Cc: tarantool-patches@freelists.org Removing this error code is part of getting rid of the SQL error system. --- src/box/sql.c | 72 +++++++++++++++++++-------------------------- src/box/sql/build.c | 6 ++-- src/box/sql/expr.c | 5 ++-- src/box/sql/fk_constraint.c | 4 +-- src/box/sql/insert.c | 7 ++--- src/box/sql/main.c | 6 ++-- src/box/sql/prepare.c | 4 +-- src/box/sql/select.c | 16 +++++----- src/box/sql/sqlInt.h | 6 ++-- src/box/sql/tarantoolInt.h | 4 +-- src/box/sql/vdbe.c | 29 +++++++----------- src/box/sql/vdbeapi.c | 10 +++---- src/box/sql/vdbeaux.c | 8 ++--- src/box/sql/vdbemem.c | 4 +-- src/box/sql/where.c | 2 +- 15 files changed, 79 insertions(+), 104 deletions(-) diff --git a/src/box/sql.c b/src/box/sql.c index 51f7b77..d8c7d91 100644 --- a/src/box/sql.c +++ b/src/box/sql.c @@ -172,7 +172,7 @@ const void *tarantoolsqlPayloadFetch(BtCursor *pCur, u32 *pAmt) int tarantoolsqlFirst(BtCursor *pCur, int *pRes) { if (key_alloc(pCur, sizeof(nil_key)) != 0) - return SQL_TARANTOOL_ERROR; + return -1; memcpy(pCur->key, nil_key, sizeof(nil_key)); pCur->iter_type = ITER_GE; return cursor_seek(pCur, pRes); @@ -182,7 +182,7 @@ int tarantoolsqlFirst(BtCursor *pCur, int *pRes) int tarantoolsqlLast(BtCursor *pCur, int *pRes) { if (key_alloc(pCur, sizeof(nil_key)) != 0) - return SQL_TARANTOOL_ERROR; + return -1; memcpy(pCur->key, nil_key, sizeof(nil_key)); pCur->iter_type = ITER_LE; return cursor_seek(pCur, pRes); @@ -230,9 +230,9 @@ int tarantoolsqlMovetoUnpacked(BtCursor *pCur, UnpackedRecord *pIdxKey, sql_vdbe_mem_encode_tuple(pIdxKey->aMem, pIdxKey->nField, &tuple_size, region); if (tuple == NULL) - return SQL_TARANTOOL_ERROR; + return -1; if (key_alloc(pCur, tuple_size) != 0) - return SQL_TARANTOOL_ERROR; + return -1; memcpy(pCur->key, tuple, tuple_size); region_truncate(region, used); @@ -382,9 +382,7 @@ int tarantoolsqlEphemeralInsert(struct space *space, const char *tuple, { assert(space != NULL); mp_tuple_assert(tuple, tuple_end); - if (space_ephemeral_replace(space, tuple, tuple_end) != 0) - return SQL_TARANTOOL_ERROR; - return 0; + return space_ephemeral_replace(space, tuple, tuple_end); } /* Simply delete ephemeral space by calling space_delete(). */ @@ -409,8 +407,7 @@ insertOrReplace(struct space *space, const char *tuple, const char *tuple_end, request.space_id = space->def->id; request.type = type; mp_tuple_assert(request.tuple, request.tuple_end); - int rc = box_process_rw(&request, space, NULL); - return rc == 0 ? 0 : SQL_TARANTOOL_ERROR; + return box_process_rw(&request, space, NULL); } int tarantoolsqlInsert(struct space *space, const char *tuple, @@ -431,7 +428,7 @@ int tarantoolsqlReplace(struct space *space, const char *tuple, * * @param pCur Cursor pointing to ephemeral space. * - * @retval 0 on success, SQL_TARANTOOL_ERROR otherwise. + * @retval 0 on success, -1 otherwise. */ int tarantoolsqlEphemeralDelete(BtCursor *pCur) { @@ -445,12 +442,12 @@ int tarantoolsqlEphemeralDelete(BtCursor *pCur) pCur->iter->index->def->key_def, MULTIKEY_NONE, &key_size); if (key == NULL) - return SQL_TARANTOOL_ERROR; + return -1; int rc = space_ephemeral_delete(pCur->space, key); if (rc != 0) { diag_log(); - return SQL_TARANTOOL_ERROR; + return -1; } return 0; } @@ -465,17 +462,14 @@ int tarantoolsqlDelete(BtCursor *pCur, u8 flags) char *key; uint32_t key_size; - int rc; key = tuple_extract_key(pCur->last_tuple, pCur->iter->index->def->key_def, MULTIKEY_NONE, &key_size); if (key == NULL) - return SQL_TARANTOOL_ERROR; - rc = sql_delete_by_key(pCur->space, pCur->index->def->iid, key, - key_size); - - return rc == 0 ? 0 : SQL_TARANTOOL_ERROR; + return -1; + return sql_delete_by_key(pCur->space, pCur->index->def->iid, key, + key_size); } int @@ -491,9 +485,7 @@ sql_delete_by_key(struct space *space, uint32_t iid, char *key, request.space_id = space->def->id; request.index_id = iid; assert(space_index(space, iid)->def->opts.is_unique); - int rc = box_process_rw(&request, space, &unused); - - return rc == 0 ? 0 : SQL_TARANTOOL_ERROR; + return box_process_rw(&request, space, &unused); } /* @@ -503,7 +495,7 @@ sql_delete_by_key(struct space *space, uint32_t iid, char *key, * * @param pCur Cursor pointing to ephemeral space. * - * @retval 0 on success, SQL_TARANTOOL_ERROR otherwise. + * @retval 0 on success, -1 otherwise. */ int tarantoolsqlEphemeralClearTable(BtCursor *pCur) { @@ -515,7 +507,7 @@ int tarantoolsqlEphemeralClearTable(BtCursor *pCur) 0 /* part_count */); if (it == NULL) { pCur->eState = CURSOR_INVALID; - return SQL_TARANTOOL_ERROR; + return -1; } struct tuple *tuple; @@ -527,7 +519,7 @@ int tarantoolsqlEphemeralClearTable(BtCursor *pCur) MULTIKEY_NONE, &key_size); if (space_ephemeral_delete(pCur->space, key) != 0) { iterator_delete(it); - return SQL_TARANTOOL_ERROR; + return -1; } } iterator_delete(it); @@ -554,7 +546,7 @@ int tarantoolsqlClearTable(struct space *space, uint32_t *tuple_count) struct index *pk = space_index(space, 0 /* PK */); struct iterator *iter = index_create_iterator(pk, ITER_ALL, nil_key, 0); if (iter == NULL) - return SQL_TARANTOOL_ERROR; + return -1; while (iterator_next(iter, &tuple) == 0 && tuple != NULL) { request.key = tuple_extract_key(tuple, pk->def->key_def, MULTIKEY_NONE, &key_size); @@ -562,7 +554,7 @@ int tarantoolsqlClearTable(struct space *space, uint32_t *tuple_count) rc = box_process_rw(&request, space, &unused); if (rc != 0) { iterator_delete(iter); - return SQL_TARANTOOL_ERROR; + return -1; } (*tuple_count)++; } @@ -607,8 +599,11 @@ int tarantoolsqlRenameTrigger(const char *trig_name, assert(mp_typeof(*field) == MP_MAP); mp_decode_map(&field); const char *sql_str = mp_decode_str(&field, &key_len); - if (sqlStrNICmp(sql_str, "sql", 3) != 0) - goto rename_fail; + if (sqlStrNICmp(sql_str, "sql", 3) != 0) { + diag_set(ClientError, ER_SQL_EXECUTE, "can't modify name of "\ + "space created not via SQL facilities"); + return -1; + } uint32_t trigger_stmt_len; const char *trigger_stmt_old = mp_decode_str(&field, &trigger_stmt_len); char *trigger_stmt = (char*)region_alloc(&fiber()->gc, @@ -644,11 +639,6 @@ int tarantoolsqlRenameTrigger(const char *trig_name, trigger_stmt_new_len); return box_replace(BOX_TRIGGER_ID, new_tuple, new_tuple_end, NULL); - -rename_fail: - diag_set(ClientError, ER_SQL_EXECUTE, "can't modify name of space " - "created not via SQL facilities"); - return -1; } int @@ -676,9 +666,7 @@ sql_rename_table(uint32_t space_id, const char *new_name) pos = mp_encode_str(pos, "=", 1); pos = mp_encode_uint(pos, BOX_SPACE_FIELD_NAME); pos = mp_encode_str(pos, new_name, name_len); - if (box_update(BOX_SPACE_ID, 0, raw, ops, ops, pos, 0, NULL) != 0) - return -1; - return 0; + return box_update(BOX_SPACE_ID, 0, raw, ops, ops, pos, 0, NULL); } int @@ -848,7 +836,7 @@ key_alloc(BtCursor *cur, size_t key_size) * @param key Start of buffer containing key. * @param key_end End of buffer containing key. * - * @retval 0 on success, SQL_TARANTOOL_ERROR otherwise. + * @retval 0 on success, -1 otherwise. */ static int cursor_seek(BtCursor *pCur, int *pRes) @@ -862,13 +850,13 @@ cursor_seek(BtCursor *pCur, int *pRes) uint32_t part_count = mp_decode_array(&key); if (key_validate(pCur->index->def, pCur->iter_type, key, part_count)) { diag_log(); - return SQL_TARANTOOL_ERROR; + return -1; } struct space *space = pCur->space; struct txn *txn = NULL; if (space->def->id != 0 && txn_begin_ro_stmt(space, &txn) != 0) - return SQL_TARANTOOL_ERROR; + return -1; struct iterator *it = index_create_iterator(pCur->index, pCur->iter_type, key, part_count); @@ -876,7 +864,7 @@ cursor_seek(BtCursor *pCur, int *pRes) if (txn != NULL) txn_rollback_stmt(); pCur->eState = CURSOR_INVALID; - return SQL_TARANTOOL_ERROR; + return -1; } if (txn != NULL) txn_commit_ro_stmt(txn); @@ -894,7 +882,7 @@ cursor_seek(BtCursor *pCur, int *pRes) * @param pCur Cursor which contains space and tuple. * @param[out] pRes Flag which is 0 if reached end of space, 1 otherwise. * - * @retval 0 on success, SQL_TARANTOOL_ERROR otherwise. + * @retval 0 on success, -1 otherwise. */ static int cursor_advance(BtCursor *pCur, int *pRes) @@ -903,7 +891,7 @@ cursor_advance(BtCursor *pCur, int *pRes) struct tuple *tuple; if (iterator_next(pCur->iter, &tuple) != 0) - return SQL_TARANTOOL_ERROR; + return -1; if (pCur->last_tuple) box_tuple_unref(pCur->last_tuple); if (tuple) { diff --git a/src/box/sql/build.c b/src/box/sql/build.c index b6cec65..38a6cae 100644 --- a/src/box/sql/build.c +++ b/src/box/sql/build.c @@ -141,7 +141,7 @@ sql_finish_coding(struct Parse *parse_context) sqlVdbeChangeP2(v, record->insertion_opcode, v->nOp); } - sqlVdbeAddOp1(v, OP_Halt, SQL_TARANTOOL_ERROR); + sqlVdbeAddOp1(v, OP_Halt, -1); VdbeComment((v, "Exit with an error if CREATE statement fails")); } @@ -3286,8 +3286,8 @@ vdbe_emit_halt_with_presence_test(struct Parse *parser, int space_id, if (no_error) { sqlVdbeAddOp0(v, OP_Halt); } else { - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, 0, - tarantool_error_code, error, P4_DYNAMIC); + sqlVdbeAddOp4(v, OP_Halt, -1, 0, tarantool_error_code, error, + P4_DYNAMIC); } sqlVdbeAddOp1(v, OP_Close, cursor); return 0; diff --git a/src/box/sql/expr.c b/src/box/sql/expr.c index 054c516..2395c64 100644 --- a/src/box/sql/expr.c +++ b/src/box/sql/expr.c @@ -4394,9 +4394,8 @@ sqlExprCodeTarget(Parse * pParse, Expr * pExpr, int target) const char *err = tt_sprintf(tnt_errcode_desc(ER_SQL_EXECUTE), pExpr->u.zToken); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, - pExpr->on_conflict_action, ER_SQL_EXECUTE, - err, 0); + sqlVdbeAddOp4(v, OP_Halt, -1, pExpr->on_conflict_action, + ER_SQL_EXECUTE, err, 0); } break; } diff --git a/src/box/sql/fk_constraint.c b/src/box/sql/fk_constraint.c index 6cb41f8..06c863a 100644 --- a/src/box/sql/fk_constraint.c +++ b/src/box/sql/fk_constraint.c @@ -287,8 +287,8 @@ fk_constraint_lookup_parent(struct Parse *parse_context, struct space *parent, assert(incr_count == 1); const char *err = tt_sprintf(tnt_errcode_desc(ER_SQL_EXECUTE), "FOREIGN KEY constraint failed"); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, 0, - ER_SQL_EXECUTE, err, P4_STATIC); + sqlVdbeAddOp4(v, OP_Halt, -1, 0, ER_SQL_EXECUTE, err, + P4_STATIC); } else { sqlVdbeAddOp2(v, OP_FkCounter, fk_def->is_deferred, incr_count); diff --git a/src/box/sql/insert.c b/src/box/sql/insert.c index 3309753..43931c0 100644 --- a/src/box/sql/insert.c +++ b/src/box/sql/insert.c @@ -812,7 +812,7 @@ vdbe_emit_ck_constraint(struct Parse *parser, struct Expr *expr, sqlExprIfTrue(parser, expr, check_is_passed, SQL_JUMPIFNULL); const char *fmt = tnt_errcode_desc(ER_CK_CONSTRAINT_FAILED); const char *error_msg = tt_sprintf(fmt, ck_constraint_name, expr_str); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, ON_CONFLICT_ACTION_ABORT, + sqlVdbeAddOp4(v, OP_Halt, -1, ON_CONFLICT_ACTION_ABORT, 0, sqlDbStrDup(parser->db, error_msg), P4_DYNAMIC); sqlVdbeChangeP5(v, ER_CK_CONSTRAINT_FAILED); VdbeNoopComment((v, "END: ck constraint %s test", ck_constraint_name)); @@ -865,9 +865,8 @@ vdbe_emit_constraint_checks(struct Parse *parse_context, struct space *space, "failed: %s.%s", def->name, def->fields[i].name)); addr = sqlVdbeAddOp1(v, OP_NotNull, new_tuple_reg + i); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, - on_conflict_nullable, ER_SQL_EXECUTE, - err, P4_STATIC); + sqlVdbeAddOp4(v, OP_Halt, -1, on_conflict_nullable, + ER_SQL_EXECUTE, err, P4_STATIC); sqlVdbeJumpHere(v, addr); break; case ON_CONFLICT_ACTION_IGNORE: diff --git a/src/box/sql/main.c b/src/box/sql/main.c index e6d3a3d..76d464f 100644 --- a/src/box/sql/main.c +++ b/src/box/sql/main.c @@ -258,7 +258,7 @@ sqlCreateFunc(sql * db, (255 < (sqlStrlen30(zFunctionName)))) { diag_set(ClientError, ER_CREATE_FUNCTION, zFunctionName, "wrong function definition"); - return SQL_TARANTOOL_ERROR; + return -1; } assert(SQL_FUNC_CONSTANT == SQL_DETERMINISTIC); @@ -276,7 +276,7 @@ sqlCreateFunc(sql * db, diag_set(ClientError, ER_CREATE_FUNCTION, zFunctionName, "unable to create function due to active "\ "statements"); - return SQL_TARANTOOL_ERROR; + return -1; } else { sqlExpirePreparedStatements(db); } @@ -285,7 +285,7 @@ sqlCreateFunc(sql * db, p = sqlFindFunction(db, zFunctionName, nArg, 1); assert(p || db->mallocFailed); if (p == NULL) - return SQL_TARANTOOL_ERROR; + return -1; /* If an older version of the function with a configured destructor is * being replaced invoke the destructor function here. diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c index 4f072f1..0aa744f 100644 --- a/src/box/sql/prepare.c +++ b/src/box/sql/prepare.c @@ -83,7 +83,7 @@ sqlPrepare(sql * db, /* Database handle. */ if (nBytes > mxLen) { diag_set(ClientError, ER_SQL_PARSER_LIMIT, "SQL command length", nBytes, mxLen); - rc = SQL_TARANTOOL_ERROR; + rc = -1; goto end_prepare; } zSqlCopy = sqlDbStrNDup(db, zSql, nBytes); @@ -105,7 +105,7 @@ sqlPrepare(sql * db, /* Database handle. */ *pzTail = sParse.zTail; } if (sParse.is_aborted) - rc = SQL_TARANTOOL_ERROR; + rc = -1; if (rc == 0 && sParse.pVdbe && sParse.explain) { static const char *const azColName[] = { diff --git a/src/box/sql/select.c b/src/box/sql/select.c index 2ecad78..a92fa8a 100644 --- a/src/box/sql/select.c +++ b/src/box/sql/select.c @@ -2105,8 +2105,8 @@ computeLimitRegisters(Parse * pParse, Select * p, int iBreak) "Only positive integers are "\ "allowed in the LIMIT clause"); sqlVdbeResolveLabel(v, halt_label); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, 0, - ER_SQL_EXECUTE, err, P4_STATIC); + sqlVdbeAddOp4(v, OP_Halt, -1, 0, ER_SQL_EXECUTE, err, + P4_STATIC); sqlVdbeResolveLabel(v, positive_limit_label); VdbeCoverage(v); @@ -2137,9 +2137,8 @@ computeLimitRegisters(Parse * pParse, Select * p, int iBreak) err = tt_sprintf(err, "Expression subquery "\ "could be limited only "\ "with 1"); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, - 0, ER_SQL_EXECUTE, err, - P4_STATIC); + sqlVdbeAddOp4(v, OP_Halt, -1, 0, ER_SQL_EXECUTE, + err, P4_STATIC); sqlVdbeResolveLabel(v, no_err); sqlReleaseTempReg(pParse, r1); @@ -2164,8 +2163,8 @@ computeLimitRegisters(Parse * pParse, Select * p, int iBreak) "Only positive integers are allowed "\ "in the OFFSET clause"); sqlVdbeResolveLabel(v, offset_error_label); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, 0, - ER_SQL_EXECUTE, err, P4_STATIC); + sqlVdbeAddOp4(v, OP_Halt, -1, 0, ER_SQL_EXECUTE, err, + P4_STATIC); sqlVdbeResolveLabel(v, positive_offset_label); sqlReleaseTempReg(pParse, r1); @@ -5436,8 +5435,7 @@ vdbe_code_raise_on_multiple_rows(struct Parse *parser, int limit_reg, int end_ma const char *error = tt_sprintf(tnt_errcode_desc(ER_SQL_EXECUTE), "Expression subquery returned more "\ "than 1 row"); - sqlVdbeAddOp4(v, OP_Halt, SQL_TARANTOOL_ERROR, 0, ER_SQL_EXECUTE, error, - P4_STATIC); + sqlVdbeAddOp4(v, OP_Halt, -1, 0, ER_SQL_EXECUTE, error, P4_STATIC); sqlReleaseTempReg(parser, r1); } diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h index cff8ef5..d5a1a9a 100644 --- a/src/box/sql/sqlInt.h +++ b/src/box/sql/sqlInt.h @@ -356,12 +356,10 @@ struct sql_vfs { #define SQL_LIMIT_WORKER_THREADS 10 enum sql_ret_code { - /** Abort due to constraint violation. */ - SQL_TARANTOOL_ERROR = 4, /** sql_step() has another row ready. */ - SQL_ROW, + SQL_ROW = 1, /** sql_step() has finished executing. */ - SQL_DONE, + SQL_DONE = 2, }; void * diff --git a/src/box/sql/tarantoolInt.h b/src/box/sql/tarantoolInt.h index 71073ad..e166045 100644 --- a/src/box/sql/tarantoolInt.h +++ b/src/box/sql/tarantoolInt.h @@ -35,7 +35,7 @@ int tarantoolsqlDelete(BtCursor * pCur, u8 flags); * @param key Key of record to be deleted. * @param key_size Size of key. * - * @retval 0 on success, SQL_TARANTOOL_ERROR otherwise. + * @retval 0 on success, -1 otherwise. */ int sql_delete_by_key(struct space *space, uint32_t iid, char *key, @@ -82,7 +82,7 @@ sql_ephemeral_space_create(uint32_t filed_count, struct sql_key_info *key_info); * @param tuple Tuple to be inserted. * @param tuple_end End of tuple to be inserted. * - * @retval 0 on success, SQL_TARANTOOL_ERROR otherwise. + * @retval 0 on success, -1 otherwise. */ int tarantoolsqlEphemeralInsert(struct space *space, const char *tuple, const char *tuple_end); diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c index c592518..68edbc0 100644 --- a/src/box/sql/vdbe.c +++ b/src/box/sql/vdbe.c @@ -682,7 +682,7 @@ vdbe_field_ref_fetch(struct vdbe_field_ref *field_ref, uint32_t fieldno, uint32_t dummy; data = field_ref->data + slots[fieldno]; if (vdbe_decode_msgpack_into_mem(data, dest_mem, &dummy) != 0) - return SQL_TARANTOOL_ERROR; + return -1; /* * MsgPack map, array or extension (unsupported in sql). @@ -703,7 +703,7 @@ vdbe_field_ref_fetch(struct vdbe_field_ref *field_ref, uint32_t fieldno, int len = dest_mem->n; if (dest_mem->szMalloc < len + 1) { if (sqlVdbeMemGrow(dest_mem, len + 1, 1) != 0) - return SQL_TARANTOOL_ERROR; + return -1; } else { dest_mem->z = memcpy(dest_mem->zMalloc, dest_mem->z, len); @@ -1018,8 +1018,8 @@ case OP_Yield: { /* in1, jump */ * * If P4 is not null then it is an error message string. * - * If P1 is SQL_TARANTOOL_ERROR then P3 is a ClientError code and - * P4 is error message to set. + * If P1 is -1 then P3 is a ClientError code and P4 is error + * message to set. * * There is an implied "Halt 0 0 0" instruction inserted at the * very end of every program. So a jump past the last instruction @@ -1056,14 +1056,12 @@ case OP_Halt: { p->errorAction = (u8)pOp->p2; p->pc = pcx; if (p->rc) { - assert(p->rc == SQL_TARANTOOL_ERROR); if (pOp->p4.z != NULL) box_error_set(__FILE__, __LINE__, pOp->p3, pOp->p4.z); assert(! diag_is_empty(diag_get())); } - rc = sqlVdbeHalt(p); - assert(rc == 0 || rc == -1); - rc = p->rc ? SQL_TARANTOOL_ERROR : SQL_DONE; + sqlVdbeHalt(p); + rc = p->rc ? -1 : SQL_DONE; goto vdbe_return; } @@ -3604,7 +3602,6 @@ case OP_Found: { /* jump, in3 */ rc = sqlCursorMovetoUnpacked(pC->uc.pCursor, pIdxKey, &res); if (pFree != NULL) sqlDbFree(db, pFree); - assert(rc == 0 || rc == SQL_TARANTOOL_ERROR); if (rc != 0) goto abort_due_to_error; pC->seekResult = res; @@ -4274,7 +4271,6 @@ case OP_IdxInsert: { } else if (pOp->p5 & OPFLAG_OE_ROLLBACK) { p->errorAction = ON_CONFLICT_ACTION_ROLLBACK; } - assert(rc == 0 || rc == SQL_TARANTOOL_ERROR); if (rc != 0) goto abort_due_to_error; break; @@ -4352,9 +4348,8 @@ case OP_Update: { } assert(rc == 0); - if (box_update(space->def->id, 0, key_mem->z, key_mem->z + key_mem->n, - ops, ops + ops_size, 0, NULL) != 0) - rc = SQL_TARANTOOL_ERROR; + rc = box_update(space->def->id, 0, key_mem->z, key_mem->z + key_mem->n, + ops, ops + ops_size, 0, NULL); if (pOp->p5 & OPFLAG_OE_IGNORE) { /* @@ -4373,7 +4368,6 @@ case OP_Update: { } else if (pOp->p5 & OPFLAG_OE_ROLLBACK) { p->errorAction = ON_CONFLICT_ACTION_ROLLBACK; } - assert(rc == 0 || rc == SQL_TARANTOOL_ERROR); if (rc != 0) goto abort_due_to_error; break; @@ -5159,7 +5153,7 @@ case OP_Init: { /* jump */ */ if (p->pFrame == NULL && sql_vdbe_prepare(p) != 0) { sqlDbFree(db, p); - rc = SQL_TARANTOOL_ERROR; + rc = -1; break; } @@ -5264,7 +5258,7 @@ default: { /* This is really OP_Noop and OP_Explain */ * an error of some kind. */ abort_due_to_error: - rc = SQL_TARANTOOL_ERROR; + rc = -1; p->rc = rc; /* This is the only way out of this procedure. */ @@ -5274,8 +5268,7 @@ vdbe_return: assert(rc!=0 || nExtraDelete==0 || sql_strlike_ci("DELETE%", p->zSql, 0) != 0 ); - assert(rc == 0 || rc == SQL_TARANTOOL_ERROR || - rc == SQL_ROW || rc == SQL_DONE); + assert(rc == 0 || rc == -1 || rc == SQL_ROW || rc == SQL_DONE); return rc; /* Jump to here if a string or blob larger than SQL_MAX_LENGTH diff --git a/src/box/sql/vdbeapi.c b/src/box/sql/vdbeapi.c index 336dc3b..268aff6 100644 --- a/src/box/sql/vdbeapi.c +++ b/src/box/sql/vdbeapi.c @@ -297,7 +297,7 @@ invokeValueDestructor(const void *p, /* Value to destroy */ "big"); pCtx->is_aborted = true; } - return SQL_TARANTOOL_ERROR; + return -1; } void @@ -394,7 +394,7 @@ sql_result_zeroblob64(sql_context * pCtx, u64 n) if (n > (u64) pOut->db->aLimit[SQL_LIMIT_LENGTH]) { diag_set(ClientError, ER_SQL_EXECUTE, "string or blob is too "\ "big"); - return SQL_TARANTOOL_ERROR; + return -1; } sqlVdbeMemSetZeroBlob(pCtx->pOut, (int)n); return 0; @@ -427,8 +427,8 @@ sqlStep(Vdbe * p) } if (p->pc <= 0 && p->expired) { - p->rc = SQL_TARANTOOL_ERROR; - return SQL_TARANTOOL_ERROR; + p->rc = -1; + return -1; } if (p->pc < 0) { @@ -1134,7 +1134,7 @@ sql_bind_zeroblob64(sql_stmt * pStmt, int i, sql_uint64 n) if (n > (u64) p->db->aLimit[SQL_LIMIT_LENGTH]) { diag_set(ClientError, ER_SQL_EXECUTE, "string or blob is too "\ "big"); - rc = SQL_TARANTOOL_ERROR; + rc = -1; } else { assert((n & 0x7FFFFFFF) == n); rc = sql_bind_zeroblob(pStmt, i, n); diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c index 8e2ca35..d4ba3a3 100644 --- a/src/box/sql/vdbeaux.c +++ b/src/box/sql/vdbeaux.c @@ -2079,7 +2079,7 @@ sqlVdbeCloseStatement(Vdbe * p, int eOp) * violations, return -1. Otherwise, 0. * * If there are outstanding FK violations and this function returns - * SQL_TARANTOOL_ERROR and set an error. + * -1 and set an error. */ int sqlVdbeCheckFk(Vdbe * p, int deferred) @@ -2088,11 +2088,11 @@ sqlVdbeCheckFk(Vdbe * p, int deferred) if ((deferred && txn != NULL && txn->psql_txn != NULL && txn->psql_txn->fk_deferred_count > 0) || (!deferred && p->nFkConstraint > 0)) { - p->rc = SQL_TARANTOOL_ERROR; + p->rc = -1; p->errorAction = ON_CONFLICT_ACTION_ABORT; diag_set(ClientError, ER_SQL_EXECUTE, "FOREIGN KEY constraint "\ "failed"); - return SQL_TARANTOOL_ERROR; + return -1; } return 0; } @@ -2210,7 +2210,7 @@ sqlVdbeHalt(Vdbe * p) */ rc = (in_txn() == NULL || txn_commit(in_txn()) == 0) ? - 0 : SQL_TARANTOOL_ERROR; + 0 : -1; closeCursorsAndFree(p); } if (rc != 0) { diff --git a/src/box/sql/vdbemem.c b/src/box/sql/vdbemem.c index da63193..c3db534 100644 --- a/src/box/sql/vdbemem.c +++ b/src/box/sql/vdbemem.c @@ -995,7 +995,7 @@ sqlVdbeMemSetStr(Mem * pMem, /* Memory cell to set to string value */ if (nByte > iLimit) { diag_set(ClientError, ER_SQL_EXECUTE, "string or blob "\ "is too big"); - return SQL_TARANTOOL_ERROR; + return -1; } testcase(nAlloc == 0); testcase(nAlloc == 31); @@ -1021,7 +1021,7 @@ sqlVdbeMemSetStr(Mem * pMem, /* Memory cell to set to string value */ if (nByte > iLimit) { diag_set(ClientError, ER_SQL_EXECUTE, "string or blob is too "\ "big"); - return SQL_TARANTOOL_ERROR; + return -1; } return 0; diff --git a/src/box/sql/where.c b/src/box/sql/where.c index 9739268..d2bfbfc 100644 --- a/src/box/sql/where.c +++ b/src/box/sql/where.c @@ -2779,7 +2779,7 @@ whereLoopAddBtree(WhereLoopBuilder * pBuilder, /* WHERE clause information */ if (key_def == NULL) { tnt_error: pWInfo->pParse->is_aborted = true; - return SQL_TARANTOOL_ERROR; + return -1; } struct index_opts opts; -- 2.7.4