[Tarantool-patches] [PATCH v1 18/21] sql: remove unused code
imeevma at tarantool.org
imeevma at tarantool.org
Fri Oct 8 20:32:05 MSK 2021
Some of the code is no longer used after changes in the SQL built-in
functions. This patch removes part of the unused code.
Needed for #4145
---
src/box/bind.c | 5 +-
src/box/sql/mem.c | 11 --
src/box/sql/mem.h | 71 -------------
src/box/sql/sqlInt.h | 53 +---------
src/box/sql/vdbeapi.c | 238 +++---------------------------------------
5 files changed, 19 insertions(+), 359 deletions(-)
diff --git a/src/box/bind.c b/src/box/bind.c
index 58fff0b98..e75e36283 100644
--- a/src/box/bind.c
+++ b/src/box/bind.c
@@ -185,12 +185,11 @@ sql_bind_column(struct sql_stmt *stmt, const struct sql_bind *p,
* there is no need to copy the packet and we can
* use SQL_STATIC.
*/
- return sql_bind_text64(stmt, pos, p->s, p->bytes, SQL_STATIC);
+ return sql_bind_str_static(stmt, pos, p->s, p->bytes);
case MP_NIL:
return sql_bind_null(stmt, pos);
case MP_BIN:
- return sql_bind_blob64(stmt, pos, (const void *) p->s, p->bytes,
- SQL_STATIC);
+ return sql_bind_bin_static(stmt, pos, p->s, p->bytes);
case MP_EXT:
assert(p->ext_type == MP_UUID || p->ext_type == MP_DECIMAL);
if (p->ext_type == MP_UUID)
diff --git a/src/box/sql/mem.c b/src/box/sql/mem.c
index fe32a7ad7..895003580 100644
--- a/src/box/sql/mem.c
+++ b/src/box/sql/mem.c
@@ -2633,17 +2633,6 @@ mem_mp_type(const struct Mem *mem)
return MP_NIL;
}
-/* EVIDENCE-OF: R-12793-43283 Every value in sql has one of five
- * fundamental datatypes: 64-bit signed integer 64-bit IEEE floating
- * point number string BLOB NULL
- */
-enum mp_type
-sql_value_type(sql_value *pVal)
-{
- struct Mem *mem = (struct Mem *) pVal;
- return mem_mp_type(mem);
-}
-
#ifdef SQL_DEBUG
/*
* Check invariants on a Mem object.
diff --git a/src/box/sql/mem.h b/src/box/sql/mem.h
index 7f7382961..1d995726f 100644
--- a/src/box/sql/mem.h
+++ b/src/box/sql/mem.h
@@ -351,54 +351,6 @@ mem_set_str0_dynamic(struct Mem *mem, char *value);
void
mem_set_str0_allocated(struct Mem *mem, char *value);
-static inline void
-mem_set_strl_ephemeral(struct Mem *mem, char *value, int len_hint)
-{
- if (len_hint < 0)
- mem_set_str0_ephemeral(mem, value);
- else
- mem_set_str_ephemeral(mem, value, len_hint);
-}
-
-static inline void
-mem_set_strl_static(struct Mem *mem, char *value, int len_hint)
-{
- if (len_hint < 0)
- mem_set_str0_static(mem, value);
- else
- mem_set_str_static(mem, value, len_hint);
-}
-
-static inline void
-mem_set_strl_dynamic(struct Mem *mem, char *value, int len_hint)
-{
- if (len_hint < 0)
- mem_set_str0_dynamic(mem, value);
- else
- mem_set_str_dynamic(mem, value, len_hint);
-}
-
-static inline void
-mem_set_strl_allocated(struct Mem *mem, char *value, int len_hint)
-{
- if (len_hint < 0)
- mem_set_str0_allocated(mem, value);
- else
- mem_set_str_allocated(mem, value, len_hint);
-}
-
-static inline void
-mem_set_strl(struct Mem *mem, char *value, int len_hint,
- void (*custom_free)(void *))
-{
- if (custom_free == SQL_STATIC)
- return mem_set_strl_static(mem, value, len_hint);
- if (custom_free == SQL_DYNAMIC)
- return mem_set_strl_allocated(mem, value, len_hint);
- if (custom_free != SQL_TRANSIENT)
- return mem_set_strl_dynamic(mem, value, len_hint);
-}
-
/** Copy string to a newly allocated memory. The MEM type becomes STRING. */
int
mem_copy_str(struct Mem *mem, const char *value, uint32_t len);
@@ -410,14 +362,6 @@ mem_copy_str(struct Mem *mem, const char *value, uint32_t len);
int
mem_copy_str0(struct Mem *mem, const char *value);
-static inline int
-mem_copy_strl(struct Mem *mem, const char *value, int len_hint)
-{
- if (len_hint < 0)
- return mem_copy_str0(mem, value);
- return mem_copy_str(mem, value, len_hint);
-}
-
/**
* Clear MEM and set it to VARBINARY. The binary value belongs to another
* object.
@@ -446,18 +390,6 @@ mem_set_bin_dynamic(struct Mem *mem, char *value, uint32_t size);
void
mem_set_bin_allocated(struct Mem *mem, char *value, uint32_t size);
-static inline void
-mem_set_binl(struct Mem *mem, char *value, uint32_t size,
- void (*custom_free)(void *))
-{
- if (custom_free == SQL_STATIC)
- return mem_set_bin_static(mem, value, size);
- if (custom_free == SQL_DYNAMIC)
- return mem_set_bin_allocated(mem, value, size);
- if (custom_free != SQL_TRANSIENT)
- return mem_set_bin_dynamic(mem, value, size);
-}
-
/**
* Copy binary value to a newly allocated memory. The MEM type becomes
* VARBINARY.
@@ -905,9 +837,6 @@ mem_type_to_str(const struct Mem *p);
enum mp_type
mem_mp_type(const struct Mem *mem);
-enum mp_type
-sql_value_type(struct Mem *);
-
#ifdef SQL_DEBUG
int sqlVdbeCheckMemInvariants(struct Mem *);
void sqlVdbeMemPrettyPrint(Mem * pMem, char *zBuf);
diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
index 72f349944..9ccbe4ea3 100644
--- a/src/box/sql/sqlInt.h
+++ b/src/box/sql/sqlInt.h
@@ -355,45 +355,6 @@ sql_stricmp(const char *, const char *);
int
sql_strnicmp(const char *, const char *, int);
-sql *
-sql_context_db_handle(sql_context *);
-
-
-void
-sql_result_blob(sql_context *, const void *,
- int, void (*)(void *));
-
-void
-sql_result_blob64(sql_context *, const void *,
- sql_uint64, void (*)(void *));
-
-void
-sql_result_double(sql_context *, double);
-
-void
-sql_result_uint(sql_context *ctx, uint64_t u_val);
-
-void
-sql_result_int(sql_context *ctx, int64_t val);
-
-void
-sql_result_bool(struct sql_context *ctx, bool value);
-
-void
-sql_result_null(sql_context *);
-
-void
-sql_result_text(sql_context *, const char *,
- int, void (*)(void *));
-
-void
-sql_result_text64(sql_context *, const char *,
- sql_uint64, void (*)(void *));
-
-void
-sql_result_value(sql_context *,
- sql_value *);
-
char *
sql_mprintf(const char *, ...);
char *
@@ -567,14 +528,6 @@ sql_vfs_register(sql_vfs *, int makeDflt);
void
sql_unbind(struct sql_stmt *stmt);
-int
-sql_bind_blob(sql_stmt *, int, const void *,
- int n, void (*)(void *));
-
-int
-sql_bind_blob64(sql_stmt *, int, const void *,
- sql_uint64, void (*)(void *));
-
int
sql_bind_double(sql_stmt *, int, double);
@@ -602,8 +555,10 @@ int
sql_bind_null(sql_stmt *, int);
int
-sql_bind_text64(sql_stmt *, int, const char *,
- sql_uint64, void (*)(void *));
+sql_bind_str_static(sql_stmt *stmt, int i, const char *str, uint32_t len);
+
+int
+sql_bind_bin_static(sql_stmt *stmt, int i, const char *str, uint32_t size);
int
sql_bind_uuid(struct sql_stmt *stmt, int i, const struct tt_uuid *uuid);
diff --git a/src/box/sql/vdbeapi.c b/src/box/sql/vdbeapi.c
index 8f7e28ffb..59d01da88 100644
--- a/src/box/sql/vdbeapi.c
+++ b/src/box/sql/vdbeapi.c
@@ -107,135 +107,6 @@ sql_metadata_is_full()
return current_session()->sql_flags & SQL_FullMetadata;
}
-/**************************** sql_result_ ******************************
- * The following routines are used by user-defined functions to specify
- * the function result.
- *
- * The setStrOrError() function sets the result as a string or blob but
- * if the string or blob is too large, it then sets the error code.
- *
- * The invokeValueDestructor(P,X) routine invokes destructor function X()
- * on value P is not going to be used and need to be destroyed.
- */
-static void
-setResultStrOrError(sql_context * pCtx, /* Function context */
- const char *z, /* String pointer */
- int n, /* Bytes in string, or negative */
- void (*xDel) (void *) /* Destructor function */
- )
-{
- if (xDel != SQL_TRANSIENT)
- return mem_set_strl(pCtx->pOut, (char *)z, n, xDel);
- if (mem_copy_strl(pCtx->pOut, z, n) != 0)
- pCtx->is_aborted = true;
-}
-
-static int
-invokeValueDestructor(const void *p, /* Value to destroy */
- void (*xDel) (void *), /* The destructor */
- sql_context *pCtx /* Set an error if no NULL */
- )
-{
- assert(xDel != SQL_DYNAMIC);
- if (xDel == 0) {
- /* noop */
- } else if (xDel == SQL_TRANSIENT) {
- /* noop */
- } else {
- xDel((void *)p);
- }
- if (pCtx) {
- diag_set(ClientError, ER_SQL_EXECUTE, "string or binary string"\
- "is too big");
- pCtx->is_aborted = true;
- }
- return -1;
-}
-
-void
-sql_result_blob(sql_context * pCtx,
- const void *z, int n, void (*xDel) (void *)
- )
-{
- assert(n >= 0);
- if (xDel != SQL_TRANSIENT)
- mem_set_binl(pCtx->pOut, (char *)z, n, xDel);
- else if (mem_copy_bin(pCtx->pOut, z, n) != 0)
- pCtx->is_aborted = true;
-}
-
-void
-sql_result_blob64(sql_context * pCtx,
- const void *z, sql_uint64 n, void (*xDel) (void *)
- )
-{
- assert(xDel != SQL_DYNAMIC);
- if (n > 0x7fffffff) {
- (void)invokeValueDestructor(z, xDel, pCtx);
- } else {
- setResultStrOrError(pCtx, z, (int)n, xDel);
- }
-}
-
-void
-sql_result_double(sql_context * pCtx, double rVal)
-{
- mem_set_double(pCtx->pOut, rVal);
-}
-
-void
-sql_result_uint(sql_context *ctx, uint64_t u_val)
-{
- mem_set_uint(ctx->pOut, u_val);
-}
-
-void
-sql_result_int(sql_context *ctx, int64_t val)
-{
- mem_set_int(ctx->pOut, val, val < 0);
-}
-
-void
-sql_result_bool(struct sql_context *ctx, bool value)
-{
- mem_set_bool(ctx->pOut, value);
-}
-
-void
-sql_result_null(sql_context * pCtx)
-{
- mem_set_null(pCtx->pOut);
-}
-
-void
-sql_result_text(sql_context * pCtx,
- const char *z, int n, void (*xDel) (void *)
- )
-{
- setResultStrOrError(pCtx, z, n, xDel);
-}
-
-void
-sql_result_text64(sql_context * pCtx,
- const char *z,
- sql_uint64 n,
- void (*xDel) (void *))
-{
- assert(xDel != SQL_DYNAMIC);
- if (n > 0x7fffffff) {
- (void)invokeValueDestructor(z, xDel, pCtx);
- } else {
- setResultStrOrError(pCtx, z, (int)n, xDel);
- }
-}
-
-void
-sql_result_value(sql_context * pCtx, sql_value * pValue)
-{
- if (mem_copy(pCtx->pOut, pValue) != 0)
- pCtx->is_aborted = true;
-}
-
/*
* Execute the statement pStmt, either until a row of data is ready, the
* statement is completely executed or an error occurs.
@@ -313,23 +184,6 @@ sql_step(sql_stmt * pStmt)
return sqlStep(v);
}
-/*
- * Extract the user data from a sql_context structure and return a
- * pointer to it.
- *
- * IMPLEMENTATION-OF: R-46798-50301 The sql_context_db_handle() interface
- * returns a copy of the pointer to the database connection (the 1st
- * parameter) of the sql_create_function() and
- * sql_create_function16() routines that originally registered the
- * application defined function.
- */
-sql *
-sql_context_db_handle(sql_context * p)
-{
- assert(p && p->pOut);
- return p->pOut->db;
-}
-
/*
* Return the number of columns in the result set for the statement pStmt.
*/
@@ -579,73 +433,6 @@ sql_unbind(struct sql_stmt *stmt)
}
}
-/*
- * Bind a text or BLOB value.
- */
-static int
-bindText(sql_stmt * pStmt, /* The statement to bind against */
- int i, /* Index of the parameter to bind */
- const void *zData, /* Pointer to the data to be bound */
- int nData, /* Number of bytes of data to be bound */
- void (*xDel) (void *) /* Destructor for the data */
- )
-{
- Vdbe *p = (Vdbe *) pStmt;
- Mem *pVar;
- if (vdbeUnbind(p, i) != 0) {
- if (xDel != SQL_STATIC && xDel != SQL_TRANSIENT)
- xDel((void *)zData);
- return -1;
- }
- if (zData == NULL)
- return 0;
- pVar = &p->aVar[i - 1];
- if (xDel != SQL_TRANSIENT)
- mem_set_strl(pVar, (char *)zData, nData, xDel);
- else if (mem_copy_strl(pVar, zData, nData) != 0)
- return -1;
- return sql_bind_type(p, i, "text");
-}
-
-/*
- * Bind a blob value to an SQL statement variable.
- */
-int
-sql_bind_blob(sql_stmt * pStmt,
- int i, const void *zData, int nData, void (*xDel) (void *)
- )
-{
- struct Vdbe *p = (Vdbe *) pStmt;
- if (vdbeUnbind(p, i) != 0) {
- if (xDel != SQL_STATIC && xDel != SQL_TRANSIENT)
- xDel((void *)zData);
- return -1;
- }
- if (zData == NULL)
- return 0;
- struct Mem *var = &p->aVar[i - 1];
- if (xDel != SQL_TRANSIENT)
- mem_set_binl(var, (char *)zData, nData, xDel);
- else if (mem_copy_bin(var, zData, nData) != 0)
- return -1;
- return sql_bind_type(p, i, "varbinary");
-}
-
-int
-sql_bind_blob64(sql_stmt * pStmt,
- int i,
- const void *zData,
- sql_uint64 nData, void (*xDel) (void *)
- )
-{
- assert(xDel != SQL_DYNAMIC);
- if (nData > 0x7fffffff) {
- return invokeValueDestructor(zData, xDel, 0);
- } else {
- return sql_bind_blob(pStmt, i, zData, (int)nData, xDel);
- }
-}
-
int
sql_bind_double(sql_stmt * pStmt, int i, double rValue)
{
@@ -719,18 +506,19 @@ sql_bind_ptr(struct sql_stmt *stmt, int i, void *ptr)
}
int
-sql_bind_text64(sql_stmt * pStmt,
- int i,
- const char *zData,
- sql_uint64 nData,
- void (*xDel) (void *))
-{
- assert(xDel != SQL_DYNAMIC);
- if (nData > 0x7fffffff) {
- return invokeValueDestructor(zData, xDel, 0);
- } else {
- return bindText(pStmt, i, zData, (int)nData, xDel);
- }
+sql_bind_str_static(sql_stmt *stmt, int i, const char *str, uint32_t len)
+{
+ struct Vdbe *vdbe = (struct Vdbe *)stmt;
+ mem_set_str_static(&vdbe->aVar[i - 1], (char *)str, len);
+ return sql_bind_type(vdbe, i, "text");
+}
+
+int
+sql_bind_bin_static(sql_stmt *stmt, int i, const char *str, uint32_t size)
+{
+ struct Vdbe *vdbe = (struct Vdbe *)stmt;
+ mem_set_bin_static(&vdbe->aVar[i - 1], (char *)str, size);
+ return sql_bind_type(vdbe, i, "text");
}
int
--
2.25.1
More information about the Tarantool-patches
mailing list