Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vitaliia Ioffe via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: imeevma@tarantool.org
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches]  [PATCH v2 6/6] sql: remove unused MEM cast functions
Date: Fri, 06 Aug 2021 15:19:54 +0300	[thread overview]
Message-ID: <1628252394.61368563@f221.i.mail.ru> (raw)
In-Reply-To: <af074790b3ecd2157d7e72a7a822f205dcda10b6.1628231991.git.imeevma@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5382 bytes --]


Hi team, 
 
QA LGTM
 
 
--
Vitaliia Ioffe
 
  
>Пятница, 6 августа 2021, 9:46 +03:00 от Mergen Imeev via Tarantool-patches <tarantool-patches@dev.tarantool.org>:
> 
>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
 

[-- Attachment #2: Type: text/html, Size: 6506 bytes --]

  reply	other threads:[~2021-08-06 12:19 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 ` [Tarantool-patches] [PATCH v2 6/6] sql: remove unused MEM cast functions Mergen Imeev via Tarantool-patches
2021-08-06 12:19   ` Vitaliia Ioffe via Tarantool-patches [this message]
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=1628252394.61368563@f221.i.mail.ru \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=imeevma@tarantool.org \
    --cc=v.ioffe@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