Skip to content

Commit

Permalink
sql: remove unused functions
Browse files Browse the repository at this point in the history
After previous patches, some functions and the ApplyType opcode
become unused, so this patch removes them.

Follow-up #4230
  • Loading branch information
ImeevMA committed Jun 25, 2020
1 parent 27be47d commit d87d1ce
Show file tree
Hide file tree
Showing 5 changed files with 0 additions and 116 deletions.
43 changes: 0 additions & 43 deletions src/box/sql/expr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
14 changes: 0 additions & 14 deletions src/box/sql/insert.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
25 changes: 0 additions & 25 deletions src/box/sql/sqlInt.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
29 changes: 0 additions & 29 deletions src/box/sql/vdbe.c
Original file line number Diff line number Diff line change
Expand Up @@ -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])
*
Expand Down
5 changes: 0 additions & 5 deletions src/box/sql/wherecode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit d87d1ce

Please sign in to comment.