From: imeevma@tarantool.org
To: korablev@tarantool.org, tsafin@tarantool.org,
tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH v3 7/8] sql: remove unused functions
Date: Thu, 25 Jun 2020 18:17:48 +0300 [thread overview]
Message-ID: <7036302de87521b8f6bc240f74bae3397ea64d75.1593096639.git.imeevma@gmail.com> (raw)
In-Reply-To: <cover.1593096639.git.imeevma@gmail.com>
After previous patches, some functions and the ApplyType opcode
become unused, so this patch removes them.
Follow-up #4230
---
src/box/sql/expr.c | 43 -----------------------------------------
src/box/sql/insert.c | 14 --------------
src/box/sql/sqlInt.h | 25 ------------------------
src/box/sql/vdbe.c | 29 ---------------------------
src/box/sql/wherecode.c | 5 -----
5 files changed, 116 deletions(-)
diff --git a/src/box/sql/expr.c b/src/box/sql/expr.c
index 745011d35..61ed89830 100644
--- a/src/box/sql/expr.c
+++ b/src/box/sql/expr.c
@@ -137,19 +137,6 @@ sql_expr_type(struct Expr *pExpr)
return pExpr->type;
}
-enum field_type *
-field_type_sequence_dup(struct Parse *parse, enum field_type *types,
- uint32_t len)
-{
- uint32_t sz = (len + 1) * sizeof(enum field_type);
- enum field_type *ret_types = sqlDbMallocRaw(parse->db, sz);
- if (ret_types == NULL)
- return NULL;
- memcpy(ret_types, types, sz);
- ret_types[len] = field_type_MAX;
- return ret_types;
-}
-
/*
* Set the collating sequence for expression pExpr to be the collating
* sequence named by pToken. Return a pointer to a new Expr node that
@@ -2246,36 +2233,6 @@ sqlExprCanBeNull(const Expr * p)
}
}
-bool
-sql_expr_needs_no_type_change(const struct Expr *p, enum field_type type)
-{
- u8 op;
- if (type == FIELD_TYPE_SCALAR)
- return true;
- while (p->op == TK_UPLUS || p->op == TK_UMINUS) {
- p = p->pLeft;
- }
- op = p->op;
- if (op == TK_REGISTER)
- op = p->op2;
- switch (op) {
- case TK_INTEGER:
- return type == FIELD_TYPE_INTEGER;
- case TK_FLOAT:
- return type == FIELD_TYPE_DOUBLE;
- case TK_STRING:
- return type == FIELD_TYPE_STRING;
- case TK_BLOB:
- return type == FIELD_TYPE_VARBINARY;
- case TK_COLUMN:
- /* p cannot be part of a CHECK constraint. */
- assert(p->iTable >= 0);
- return p->iColumn < 0 && sql_type_is_numeric(type);
- default:
- return false;
- }
-}
-
/*
* pX is the RHS of an IN operator. If pX is a SELECT statement
* that can be simplified to a direct table access, then return
diff --git a/src/box/sql/insert.c b/src/box/sql/insert.c
index 8a89f9904..6639ceff0 100644
--- a/src/box/sql/insert.c
+++ b/src/box/sql/insert.c
@@ -41,20 +41,6 @@
#include "box/box.h"
#include "box/schema.h"
-enum field_type *
-sql_index_type_str(struct sql *db, const struct index_def *idx_def)
-{
- uint32_t column_count = idx_def->key_def->part_count;
- uint32_t sz = (column_count + 1) * sizeof(enum field_type);
- enum field_type *types = (enum field_type *) sqlDbMallocRaw(db, sz);
- if (types == NULL)
- return NULL;
- for (uint32_t i = 0; i < column_count; i++)
- types[i] = idx_def->key_def->parts[i].type;
- types[column_count] = field_type_MAX;
- return types;
-}
-
void
sql_emit_table_types(struct Vdbe *v, struct space_def *def, int reg)
{
diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
index f1d0345f9..59c62ebf9 100644
--- a/src/box/sql/sqlInt.h
+++ b/src/box/sql/sqlInt.h
@@ -3238,19 +3238,6 @@ int sqlExprIsTableConstant(Expr *, int);
int sqlExprIsInteger(Expr *, int *);
int sqlExprCanBeNull(const Expr *);
-/**
- * Return TRUE if the given expression is a constant which would
- * be unchanged by OP_ApplyType with the type given in the second
- * argument.
- *
- * This routine is used to determine if the OP_ApplyType operation
- * can be omitted. When in doubt return FALSE. A false negative
- * is harmless. A false positive, however, can result in the wrong
- * answer.
- */
-bool
-sql_expr_needs_no_type_change(const struct Expr *expr, enum field_type type);
-
/**
* This routine generates VDBE code that causes a single row of a
* single table to be deleted. Both the original table entry and
@@ -3875,10 +3862,6 @@ int sqlVarintLen(u64 v);
#define getVarint sqlGetVarint
#define putVarint sqlPutVarint
-/** Return string consisting of fields types of given index. */
-enum field_type *
-sql_index_type_str(struct sql *db, const struct index_def *idx_def);
-
/**
* Code an OP_ApplyType opcode that will force types
* for given range of register starting from @reg.
@@ -3920,14 +3903,6 @@ expr_cmp_mutual_type(struct Expr *pExpr);
enum field_type
sql_expr_type(struct Expr *pExpr);
-/**
- * This function duplicates first @len entries of types array
- * and terminates new array with field_type_MAX member.
- */
-enum field_type *
-field_type_sequence_dup(struct Parse *parse, enum field_type *types,
- uint32_t len);
-
/**
* Convert z to a 64-bit signed or unsigned integer.
* z must be decimal. This routine does *not* accept
diff --git a/src/box/sql/vdbe.c b/src/box/sql/vdbe.c
index f531a2241..cabe5aa9e 100644
--- a/src/box/sql/vdbe.c
+++ b/src/box/sql/vdbe.c
@@ -2857,35 +2857,6 @@ case OP_Fetch: {
break;
}
-/* Opcode: ApplyType P1 P2 * P4 *
- * Synopsis: type(r[P1@P2])
- *
- * Apply types to a range of P2 registers starting with P1.
- *
- * P4 is a string that is P2 characters long. The nth character of the
- * string indicates the column type that should be used for the nth
- * memory cell in the range.
- */
-case OP_ApplyType: {
- enum field_type *types = pOp->p4.types;
- assert(types != NULL);
- assert(types[pOp->p2] == field_type_MAX);
- pIn1 = &aMem[pOp->p1];
- enum field_type type;
- while((type = *(types++)) != field_type_MAX) {
- assert(pIn1 <= &p->aMem[(p->nMem+1 - p->nCursor)]);
- assert(memIsValid(pIn1));
- if (mem_apply_type(pIn1, type) != 0) {
- diag_set(ClientError, ER_SQL_TYPE_MISMATCH,
- sql_value_to_diag_str(pIn1),
- field_type_strs[type]);
- goto abort_due_to_error;
- }
- pIn1++;
- }
- break;
-}
-
/* Opcode: CheckType P1 P2 * P4 *
* Synopsis: type(r[P1@P2])
*
diff --git a/src/box/sql/wherecode.c b/src/box/sql/wherecode.c
index 1d7c76670..2459054ff 100644
--- a/src/box/sql/wherecode.c
+++ b/src/box/sql/wherecode.c
@@ -568,11 +568,6 @@ codeEqualityTerm(Parse * pParse, /* The parsing context */
* key value of the loop. If one or more IN operators appear, then
* this routine allocates an additional nEq memory cells for internal
* use.
- *
- * Before returning, @types is set to point to a buffer containing a
- * copy of the column types array of the index allocated using
- * sqlDbMalloc(). This array is passed to OP_ApplyType to provide
- * correct implicit conversions.
*/
static int
codeAllEqualityTerms(Parse * pParse, /* Parsing context */
--
2.25.1
next prev parent reply other threads:[~2020-06-25 15:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-25 15:17 [Tarantool-patches] [PATCH v3 0/8] Remove implicit cast imeevma
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 1/8] sql: introduce mem_set_double() imeevma
2020-06-28 13:31 ` Nikita Pettik
2020-07-06 14:02 ` Nikita Pettik
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 2/8] sql: change implicit cast for assignment imeevma
2020-06-30 11:50 ` Nikita Pettik
2020-07-05 14:26 ` Mergen Imeev
2020-07-06 21:27 ` Nikita Pettik
2020-07-07 9:29 ` Mergen Imeev
2020-07-07 15:35 ` Nikita Pettik
2020-07-10 10:49 ` Nikita Pettik
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 3/8] sql: remove mem_apply_type() from OP_MakeRecord imeevma
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 4/8] sql: replace ApplyType by CheckType for IN operator imeevma
2020-06-29 12:56 ` Nikita Pettik
2020-07-05 14:28 ` Mergen Imeev
2020-07-06 22:06 ` Nikita Pettik
2020-07-07 11:26 ` Mergen Imeev
2020-07-07 16:29 ` Nikita Pettik
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 5/8] sql: remove mem_apply_type() from OP_MustBeInt imeevma
2020-06-29 13:29 ` Nikita Pettik
2020-07-05 14:29 ` Mergen Imeev
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 6/8] sql: remove implicit cast for comparison imeevma
2020-06-29 23:51 ` Nikita Pettik
2020-07-05 14:47 ` Mergen Imeev
2020-07-06 23:11 ` Nikita Pettik
2020-06-25 15:17 ` imeevma [this message]
2020-06-29 23:52 ` [Tarantool-patches] [PATCH v3 7/8] sql: remove unused functions Nikita Pettik
2020-07-05 14:50 ` Mergen Imeev
2020-06-25 15:17 ` [Tarantool-patches] [PATCH v3 8/8] sql: show value and its type in type mismatch error imeevma
2020-06-30 0:22 ` Nikita Pettik
2020-07-05 15:03 ` Mergen Imeev
2020-07-06 21:44 ` Nikita Pettik
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=7036302de87521b8f6bc240f74bae3397ea64d75.1593096639.git.imeevma@gmail.com \
--to=imeevma@tarantool.org \
--cc=korablev@tarantool.org \
--cc=tarantool-patches@dev.tarantool.org \
--cc=tsafin@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH v3 7/8] sql: remove unused 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