[tarantool-patches] Re: [PATCH v1 11/21] sql: remove SQL_SCHEMA errcode
n.pettik
korablev at tarantool.org
Sat May 25 19:18:45 MSK 2019
> diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c
> index 2083d27..61081fb 100644
> --- a/src/box/sql/prepare.c
> +++ b/src/box/sql/prepare.c
> @@ -190,56 +190,15 @@ sqlLockAndPrepare(sql * db, /* Database handle. */
> sql_stmt ** ppStmt, /* OUT: A pointer to the prepared statement */
> const char **pzTail) /* OUT: End of parsed string */
> {
> - int rc;
Why not completely replace with sqlPrepare?
> -
> *ppStmt = 0;
> assert(zSql != NULL && db != NULL);
> - rc = sqlPrepare(db, zSql, nBytes, saveSqlFlag, pOld, ppStmt,
> - pzTail);
> - if (rc == SQL_SCHEMA) {
> - sql_finalize(*ppStmt);
> - rc = sqlPrepare(db, zSql, nBytes, saveSqlFlag, pOld, ppStmt,
> - pzTail);
> - }
> - assert(rc == 0 || *ppStmt == 0);
> - return rc;
> -}
> -
> -/*
> - * Rerun the compilation of a statement after a schema change.
> - */
> -int
> -sqlReprepare(Vdbe * p)
> -{
> - int rc;
> - sql_stmt *pNew;
> - const char *zSql;
> - sql *db;
> -
> - zSql = sql_sql((sql_stmt *) p);
> - assert(zSql != 0); /* Reprepare only called for prepare_v2() statements */
> - db = sqlVdbeDb(p);
> - rc = sqlLockAndPrepare(db, zSql, -1, 0, p, &pNew, 0);
> - if (rc) {
> - if (rc == SQL_NOMEM) {
> - sqlOomFault(db);
> - }
> - assert(pNew == 0);
> - return rc;
> - } else {
> - assert(pNew != 0);
> - }
> - sqlVdbeSwap((Vdbe *) pNew, p);
> - sqlTransferBindings(pNew, (sql_stmt *) p);
> - sqlVdbeResetStepResult((Vdbe *) pNew);
> - sqlVdbeFinalize((Vdbe *) pNew);
> - return 0;
> + return sqlPrepare(db, zSql, nBytes, saveSqlFlag, pOld, ppStmt, pzTail);
> }
This routine may turn out to be useful when we add
working prepared statements.
More information about the Tarantool-patches
mailing list