From: Mergen Imeev via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v1 7/7] sql: remove unused MEM cast functions
Date: Fri, 6 Aug 2021 02:45:08 +0300 [thread overview]
Message-ID: <20210805234508.GF81912@tarantool.org> (raw)
In-Reply-To: <42c5078b-fee5-3e7e-7680-b57597371107@tarantool.org>
Thank you for the review! My answers and new patch below. Also, patch become a
lot less since I decided to not remove "precise" cast functions and
mem_cast_implicit().
On Thu, Aug 05, 2021 at 12:27:41AM +0200, Vladislav Shpilevoy wrote:
> Thanks for the patch!
>
> > diff --git a/src/box/sql/vdbeaux.c b/src/box/sql/vdbeaux.c
> > index 4a1fdb637..fc06e502e 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(Vdbe * v, int iVar)
>
> 1. No need for a whitespace after *.
>
Fixed.
> > {
> > 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)
>
> 2. != NULL.
Fixed.
New patch:
commit a399bca95e72aea615600e3e8c6a15a8c11f2987
Author: Mergen Imeev <imeevma@gmail.com>
Date: Tue Jul 27 23:37:06 2021 +0300
sql: remove unused MEM cast functions
This patch removes functions that become unused due to changes of
implicit and explicit cast rules.
Part of #4470
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;
prev parent reply other threads:[~2021-08-05 23:45 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-28 20:51 [Tarantool-patches] [PATCH v1 0/7] Rework implicit cast Mergen Imeev via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 1/7] sql: rework implicit cast fo assignment Mergen Imeev via Tarantool-patches
2021-07-30 21:55 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-04 22:21 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-05 23:27 ` Mergen Imeev via Tarantool-patches
2021-08-06 0:13 ` Vladislav Shpilevoy via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 2/7] sql: remove implicit cast from comparison opcodes Mergen Imeev via Tarantool-patches
2021-08-04 22:24 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-05 23:33 ` Mergen Imeev via Tarantool-patches
2021-08-06 0:13 ` Vladislav Shpilevoy via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 3/7] sql: rework OP_Seek* opcodes Mergen Imeev via Tarantool-patches
2021-08-04 22:25 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-05 23:40 ` Mergen Imeev via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 4/7] sql: remove unnecessary calls of OP_ApplyType Mergen Imeev via Tarantool-patches
2021-08-04 22:26 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-05 23:41 ` Mergen Imeev via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 5/7] sql: remove implicit cast from OP_MakeRecord Mergen Imeev via Tarantool-patches
2021-08-04 22:27 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-05 23:43 ` Mergen Imeev via Tarantool-patches
2021-08-06 0:13 ` Vladislav Shpilevoy via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 6/7] sql: remove implicit cast from OP_MustBeInt Mergen Imeev via Tarantool-patches
2021-08-05 23:47 ` Mergen Imeev via Tarantool-patches
2021-07-28 20:51 ` [Tarantool-patches] [PATCH v1 7/7] sql: remove unused MEM cast functions Mergen Imeev via Tarantool-patches
2021-08-04 22:27 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-05 23:45 ` Mergen Imeev via Tarantool-patches [this message]
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=20210805234508.GF81912@tarantool.org \
--to=tarantool-patches@dev.tarantool.org \
--cc=imeevma@tarantool.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH v1 7/7] 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