From: Mergen Imeev via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: kyukhin@tarantool.org Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH v2 6/6] sql: remove unused MEM cast functions Date: Fri, 6 Aug 2021 09:42:48 +0300 [thread overview] Message-ID: <af074790b3ecd2157d7e72a7a822f205dcda10b6.1628231991.git.imeevma@gmail.com> (raw) In-Reply-To: <cover.1628231991.git.imeevma@gmail.com> This patch removes functions that become unused due to changes of implicit and explicit cast rules. Closes #4470 --- src/box/sql/mem.c | 82 ----------------------------------------- src/box/sql/mem.h | 6 --- src/box/sql/vdbe.h | 2 +- src/box/sql/vdbeaux.c | 6 +-- src/box/sql/whereexpr.c | 4 +- 5 files changed, 4 insertions(+), 96 deletions(-) diff --git a/src/box/sql/mem.c b/src/box/sql/mem.c index e654cac41..d1ef92a86 100644 --- a/src/box/sql/mem.c +++ b/src/box/sql/mem.c @@ -1293,88 +1293,6 @@ mem_cast_implicit(struct Mem *mem, enum field_type type) return -1; } -int -mem_cast_implicit_old(struct Mem *mem, enum field_type type) -{ - if (mem->type == MEM_TYPE_NULL) - return 0; - switch (type) { - case FIELD_TYPE_UNSIGNED: - if (mem->type == MEM_TYPE_UINT) - return 0; - if (mem->type == MEM_TYPE_DOUBLE) - return double_to_uint_precise(mem); - if (mem->type == MEM_TYPE_STR) - return str_to_uint(mem); - return -1; - case FIELD_TYPE_STRING: - if ((mem->type & (MEM_TYPE_STR | MEM_TYPE_BIN)) != 0) - return 0; - if ((mem->type & (MEM_TYPE_INT | MEM_TYPE_UINT)) != 0) - return int_to_str0(mem); - if (mem->type == MEM_TYPE_DOUBLE) - return double_to_str0(mem); - if (mem->type == MEM_TYPE_UUID) - return uuid_to_str0(mem); - return -1; - case FIELD_TYPE_DOUBLE: - if (mem->type == MEM_TYPE_DOUBLE) - return 0; - if ((mem->type & (MEM_TYPE_INT | MEM_TYPE_UINT)) != 0) - return int_to_double(mem); - if (mem->type == MEM_TYPE_STR) - return bin_to_str(mem); - return -1; - case FIELD_TYPE_INTEGER: - if ((mem->type & (MEM_TYPE_INT | MEM_TYPE_UINT)) != 0) - return 0; - if (mem->type == MEM_TYPE_STR) - return str_to_int(mem); - if (mem->type == MEM_TYPE_DOUBLE) - return double_to_int_precise(mem); - return -1; - case FIELD_TYPE_BOOLEAN: - if (mem->type == MEM_TYPE_BOOL) - return 0; - return -1; - case FIELD_TYPE_VARBINARY: - if (mem->type == MEM_TYPE_BIN) - return 0; - if (mem->type == MEM_TYPE_UUID) - return uuid_to_bin(mem); - return -1; - case FIELD_TYPE_NUMBER: - if (mem_is_num(mem)) - return 0; - if (mem->type == MEM_TYPE_STR) - return mem_to_number(mem); - return -1; - case FIELD_TYPE_MAP: - if (mem->type == MEM_TYPE_MAP) - return 0; - return -1; - case FIELD_TYPE_ARRAY: - if (mem->type == MEM_TYPE_ARRAY) - return 0; - return -1; - case FIELD_TYPE_SCALAR: - if ((mem->type & (MEM_TYPE_MAP | MEM_TYPE_ARRAY)) != 0) - return -1; - return 0; - case FIELD_TYPE_UUID: - if (mem->type == MEM_TYPE_UUID) - return 0; - if (mem->type == MEM_TYPE_STR) - return str_to_uuid(mem); - if (mem->type == MEM_TYPE_BIN) - return bin_to_uuid(mem); - return -1; - default: - break; - } - return -1; -} - int mem_cast_implicit_number(struct Mem *mem, enum field_type type) { diff --git a/src/box/sql/mem.h b/src/box/sql/mem.h index 4f61cbab0..9681fc736 100644 --- a/src/box/sql/mem.h +++ b/src/box/sql/mem.h @@ -740,12 +740,6 @@ mem_cast_explicit(struct Mem *mem, enum field_type type); int mem_cast_implicit(struct Mem *mem, enum field_type type); -/** - * Convert the given MEM to given type according to legacy implicit cast rules. - */ -int -mem_cast_implicit_old(struct Mem *mem, enum field_type type); - /** * Cast MEM with numeric value to given numeric type. Doesn't fail. The return * value is < 0 if the original value is less than the result, > 0 if the diff --git a/src/box/sql/vdbe.h b/src/box/sql/vdbe.h index 118f1cd83..be112c72d 100644 --- a/src/box/sql/vdbe.h +++ b/src/box/sql/vdbe.h @@ -266,7 +266,7 @@ sql *sqlVdbeDb(Vdbe *); void sqlVdbeSetSql(Vdbe *, const char *z, int n); void sqlVdbeSwap(Vdbe *, Vdbe *); VdbeOp *sqlVdbeTakeOpArray(Vdbe *, int *, int *); -sql_value *sqlVdbeGetBoundValue(Vdbe *, int, u8); +sql_value *sqlVdbeGetBoundValue(Vdbe *, int); char *sqlVdbeExpandSql(Vdbe *, const char *); /** diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c index 4a1fdb637..61be7b489 100644 --- a/src/box/sql/vdbeaux.c +++ b/src/box/sql/vdbeaux.c @@ -2323,17 +2323,15 @@ sqlVdbeDb(Vdbe * v) * The returned value must be freed by the caller using sqlValueFree(). */ sql_value * -sqlVdbeGetBoundValue(Vdbe * v, int iVar, u8 aff) +sqlVdbeGetBoundValue(struct Vdbe *v, int iVar) { assert(iVar > 0); if (v) { Mem *pMem = &v->aVar[iVar - 1]; if (!mem_is_null(pMem)) { sql_value *pRet = sqlValueNew(v->db); - if (pRet) { + if (pRet != NULL) mem_copy(pRet, pMem); - mem_cast_implicit_old(pRet, aff); - } return pRet; } } diff --git a/src/box/sql/whereexpr.c b/src/box/sql/whereexpr.c index fe7329ea8..6849f13ec 100644 --- a/src/box/sql/whereexpr.c +++ b/src/box/sql/whereexpr.c @@ -309,9 +309,7 @@ like_optimization_is_valid(Parse *pParse, Expr *pExpr, Expr **ppPrefix, if (op == TK_VARIABLE) { Vdbe *pReprepare = pParse->pReprepare; int iCol = pRight->iColumn; - pVal = - sqlVdbeGetBoundValue(pReprepare, iCol, - FIELD_TYPE_SCALAR); + pVal = sqlVdbeGetBoundValue(pReprepare, iCol); if (pVal != NULL && mem_is_str(pVal)) { if (mem_as_str0(pVal) == NULL) return -1; -- 2.25.1
next prev parent reply other threads:[~2021-08-06 6:45 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-06 6:42 [Tarantool-patches] [PATCH v2 0/6] Rework implicit cast Mergen Imeev via Tarantool-patches 2021-08-06 6:42 ` [Tarantool-patches] [PATCH v2 1/6] sql: rework implicit cast fo assignment Mergen Imeev via Tarantool-patches 2021-08-06 6:42 ` [Tarantool-patches] [PATCH v2 2/6] sql: remove implicit cast from comparison opcodes Mergen Imeev via Tarantool-patches 2021-08-06 6:42 ` [Tarantool-patches] [PATCH v2 3/6] sql: rework OP_Seek* opcodes Mergen Imeev via Tarantool-patches 2021-08-06 6:42 ` [Tarantool-patches] [PATCH v2 4/6] sql: remove unnecessary calls of OP_ApplyType Mergen Imeev via Tarantool-patches 2021-08-06 6:42 ` [Tarantool-patches] [PATCH v2 5/6] sql: remove implicit cast from OP_MakeRecord Mergen Imeev via Tarantool-patches 2021-08-06 6:42 ` Mergen Imeev via Tarantool-patches [this message] 2021-08-06 12:19 ` [Tarantool-patches] [PATCH v2 6/6] sql: remove unused MEM cast functions Vitaliia Ioffe via Tarantool-patches 2021-08-06 7:04 ` [Tarantool-patches] [PATCH v2 0/6] Rework implicit cast Kirill Yukhin via Tarantool-patches
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=af074790b3ecd2157d7e72a7a822f205dcda10b6.1628231991.git.imeevma@gmail.com \ --to=tarantool-patches@dev.tarantool.org \ --cc=imeevma@tarantool.org \ --cc=kyukhin@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 6/6] sql: remove unused MEM cast functions' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox