Ensure sqlite3ErrorMsg() is used to report errors during compilation,
sqlite3Error() during execution. Also remove unused param from sqlite3VdbeReset() and Finalize(). (CVS 1647) FossilOrigin-Name: 7a33daef5b49b1f2d89f27e0063372fe4f1702c8
This commit is contained in:
parent
00e279d9f7
commit
9e6db7d70f
20
manifest
20
manifest
@ -1,5 +1,5 @@
|
|||||||
C Update\ssqlite3_column_decltype()\sto\sreturn\sNULL\sas\sthe\sdeclartion\stype\sfor\nan\sexpression\sthat\sis\snot\sa\scolumn\sreference.\s(CVS\s1646)
|
C Ensure\ssqlite3ErrorMsg()\sis\sused\sto\sreport\serrors\sduring\scompilation,\nsqlite3Error()\sduring\sexecution.\sAlso\sremove\sunused\sparam\sfrom\nsqlite3VdbeReset()\sand\sFinalize().\s(CVS\s1647)
|
||||||
D 2004-06-21T07:36:32
|
D 2004-06-21T08:18:52
|
||||||
F Makefile.in d69d53c543518c1572ee0a8e8723d7e00bdb2266
|
F Makefile.in d69d53c543518c1572ee0a8e8723d7e00bdb2266
|
||||||
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
|
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
|
||||||
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
||||||
@ -38,7 +38,7 @@ F src/hash.c 440c2f8cb373ee1b4e13a0988489c7cd95d55b6f
|
|||||||
F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb
|
F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb
|
||||||
F src/insert.c d99ffe87e1e1397f4233afcd06841d52d6b17b18
|
F src/insert.c d99ffe87e1e1397f4233afcd06841d52d6b17b18
|
||||||
F src/legacy.c ad23746f15f67e34577621b1875f639c94839e1f
|
F src/legacy.c ad23746f15f67e34577621b1875f639c94839e1f
|
||||||
F src/main.c b4cd665e7e0af8f47b523e116e3356d0ebf6cef0
|
F src/main.c 5bf387a22ff6e17c8e60d2fbb940e98a78f5d501
|
||||||
F src/md5.c 7ae1c39044b95de2f62e066f47bb1deb880a1070
|
F src/md5.c 7ae1c39044b95de2f62e066f47bb1deb880a1070
|
||||||
F src/os.h 1cb5f0293a30288451fe3c0c73815cf208212ed1
|
F src/os.h 1cb5f0293a30288451fe3c0c73815cf208212ed1
|
||||||
F src/os_common.h ba1b7306e16e2091718f2c48db0fe6c1d7a31bb8
|
F src/os_common.h ba1b7306e16e2091718f2c48db0fe6c1d7a31bb8
|
||||||
@ -51,7 +51,7 @@ F src/os_win.h 004eec47b1780fcaf07420ddc2072294b698d48c
|
|||||||
F src/pager.c d627c5e46084b0c757a16cec2c17adcc8046f8ee
|
F src/pager.c d627c5e46084b0c757a16cec2c17adcc8046f8ee
|
||||||
F src/pager.h bc58d32a9dee464f7268fb68652c130a4216e438
|
F src/pager.h bc58d32a9dee464f7268fb68652c130a4216e438
|
||||||
F src/parse.y 097438674976355a10cf177bd97326c548820b86
|
F src/parse.y 097438674976355a10cf177bd97326c548820b86
|
||||||
F src/pragma.c 318a60581e8420f16e877e62b1dfabbb23c96177
|
F src/pragma.c 7d75803f3e28dd769b1b013f4395030e3dfdec43
|
||||||
F src/printf.c 823b6a5cbedb6971a9e62f5d83204fe9b0be7c1b
|
F src/printf.c 823b6a5cbedb6971a9e62f5d83204fe9b0be7c1b
|
||||||
F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
|
F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
|
||||||
F src/select.c 7305795965f7702c6d95fc023dee138b40e90d41
|
F src/select.c 7305795965f7702c6d95fc023dee138b40e90d41
|
||||||
@ -69,13 +69,13 @@ F src/tokenize.c 900374b6b37f04748bcd48c2d29a41c251542935
|
|||||||
F src/trigger.c 65fa572487f945d3d11ab451f232b430a370bae3
|
F src/trigger.c 65fa572487f945d3d11ab451f232b430a370bae3
|
||||||
F src/update.c b66b1896c9da54678ba3eff2bf0b4d291a95986a
|
F src/update.c b66b1896c9da54678ba3eff2bf0b4d291a95986a
|
||||||
F src/utf.c 3a2596013e4b9582d075ca742de7f067ff7dee95
|
F src/utf.c 3a2596013e4b9582d075ca742de7f067ff7dee95
|
||||||
F src/util.c 1b3743413e11cae51a899dc03fa9b829a3a1f160
|
F src/util.c e31e35d3d76cab7a02045095064897eca49cbce3
|
||||||
F src/vacuum.c fcb930215a3f6c50087300782555f61ad11dd80c
|
F src/vacuum.c fcb930215a3f6c50087300782555f61ad11dd80c
|
||||||
F src/vdbe.c d8e533a537997ddfdf224cc802abaf3aa4448c69
|
F src/vdbe.c d8e533a537997ddfdf224cc802abaf3aa4448c69
|
||||||
F src/vdbe.h 05edb8ec5c038e4ea22827350ee75fb20f0dfddf
|
F src/vdbe.h 2d87155e31e84bb00cdc48cc1ce6987a3a484250
|
||||||
F src/vdbeInt.h 4d56da610923efa8d4c9db89dff17cb721e69a9b
|
F src/vdbeInt.h 4d56da610923efa8d4c9db89dff17cb721e69a9b
|
||||||
F src/vdbeapi.c 8a9421341e09b506a934132c9015f26362ae8c0e
|
F src/vdbeapi.c 8a9421341e09b506a934132c9015f26362ae8c0e
|
||||||
F src/vdbeaux.c fa9f0b179a7df3ce3ef42178ec67ace1c9a68e75
|
F src/vdbeaux.c 4e0d90a74e315194449e42e097d04028b521887b
|
||||||
F src/vdbemem.c 9359c53386e070fea9f5403cab0c6f0cfe36496b
|
F src/vdbemem.c 9359c53386e070fea9f5403cab0c6f0cfe36496b
|
||||||
F src/where.c 6507074d8ce3f78e7a4cd33f667f11e62020553e
|
F src/where.c 6507074d8ce3f78e7a4cd33f667f11e62020553e
|
||||||
F test/all.test 569a92a8ee88f5300c057cc4a8f50fbbc69a3242
|
F test/all.test 569a92a8ee88f5300c057cc4a8f50fbbc69a3242
|
||||||
@ -225,7 +225,7 @@ F www/tclsqlite.tcl 19191cf2a1010eaeff74c51d83fd5f5a4d899075
|
|||||||
F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9
|
F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9
|
||||||
F www/version3.tcl af528563442e3039928f9018327a18157e53a44f
|
F www/version3.tcl af528563442e3039928f9018327a18157e53a44f
|
||||||
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
|
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
|
||||||
P ae2f4a0943854fedbbb6fab1dc3aaf972722ed95
|
P ee9dffd986621490af7bd45c7fe070bb7da8c357
|
||||||
R 7299ca512e8450a2353e9ae1a8b64125
|
R 728404e0c220e38b5c2b0297db2e65c7
|
||||||
U danielk1977
|
U danielk1977
|
||||||
Z 6cdb9c41aeb5eb406e77c151d7110ee7
|
Z b421bbf3c1e7b9c043b8dcb0de5ecf25
|
||||||
|
@ -1 +1 @@
|
|||||||
ee9dffd986621490af7bd45c7fe070bb7da8c357
|
7a33daef5b49b1f2d89f27e0063372fe4f1702c8
|
@ -14,7 +14,7 @@
|
|||||||
** other files are for internal use by SQLite and should not be
|
** other files are for internal use by SQLite and should not be
|
||||||
** accessed by users of the library.
|
** accessed by users of the library.
|
||||||
**
|
**
|
||||||
** $Id: main.c,v 1.231 2004/06/21 06:50:28 danielk1977 Exp $
|
** $Id: main.c,v 1.232 2004/06/21 08:18:52 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
@ -1210,7 +1210,7 @@ int sqlite3_open16(
|
|||||||
** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
|
** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
|
||||||
*/
|
*/
|
||||||
int sqlite3_finalize(sqlite3_stmt *pStmt){
|
int sqlite3_finalize(sqlite3_stmt *pStmt){
|
||||||
return sqlite3VdbeFinalize((Vdbe*)pStmt, 0);
|
return sqlite3VdbeFinalize((Vdbe*)pStmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1222,7 +1222,7 @@ int sqlite3_finalize(sqlite3_stmt *pStmt){
|
|||||||
** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
|
** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
|
||||||
*/
|
*/
|
||||||
int sqlite3_reset(sqlite3_stmt *pStmt){
|
int sqlite3_reset(sqlite3_stmt *pStmt){
|
||||||
int rc = sqlite3VdbeReset((Vdbe*)pStmt, 0);
|
int rc = sqlite3VdbeReset((Vdbe*)pStmt);
|
||||||
sqlite3VdbeMakeReady((Vdbe*)pStmt, -1, 0);
|
sqlite3VdbeMakeReady((Vdbe*)pStmt, -1, 0);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
*************************************************************************
|
*************************************************************************
|
||||||
** This file contains code used to implement the PRAGMA command.
|
** This file contains code used to implement the PRAGMA command.
|
||||||
**
|
**
|
||||||
** $Id: pragma.c,v 1.50 2004/06/19 15:22:56 drh Exp $
|
** $Id: pragma.c,v 1.51 2004/06/21 08:18:53 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@ -808,8 +808,7 @@ void sqlite3Pragma(Parse *pParse, Token *pLeft, Token *pRight, int minusFlag){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( !pEnc->zName ){
|
if( !pEnc->zName ){
|
||||||
sqlite3Error(pParse->db, SQLITE_ERROR,
|
sqlite3ErrorMsg(pParse, "Unsupported encoding: %s", zRight);
|
||||||
"Unsupported encoding: %s", zRight);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
** This file contains functions for allocating memory, comparing
|
** This file contains functions for allocating memory, comparing
|
||||||
** strings, and stuff like that.
|
** strings, and stuff like that.
|
||||||
**
|
**
|
||||||
** $Id: util.c,v 1.105 2004/06/19 03:33:57 danielk1977 Exp $
|
** $Id: util.c,v 1.106 2004/06/21 08:18:55 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@ -477,6 +477,13 @@ void sqlite3Error(sqlite *db, int err_code, const char *zFormat, ...){
|
|||||||
** %d Insert an integer
|
** %d Insert an integer
|
||||||
** %T Insert a token
|
** %T Insert a token
|
||||||
** %S Insert the first element of a SrcList
|
** %S Insert the first element of a SrcList
|
||||||
|
**
|
||||||
|
** This function should be used to report any error that occurs whilst
|
||||||
|
** compiling an SQL statement (i.e. within sqlite3_prepare()). The
|
||||||
|
** last thing the sqlite3_prepare() function does is copy the error
|
||||||
|
** stored by this function into the database handle using sqlite3Error().
|
||||||
|
** Function sqlite3Error() should be used during statement execution
|
||||||
|
** (sqlite3_step() etc.).
|
||||||
*/
|
*/
|
||||||
void sqlite3ErrorMsg(Parse *pParse, const char *zFormat, ...){
|
void sqlite3ErrorMsg(Parse *pParse, const char *zFormat, ...){
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
** or VDBE. The VDBE implements an abstract machine that runs a
|
** or VDBE. The VDBE implements an abstract machine that runs a
|
||||||
** simple program to access and modify the underlying database.
|
** simple program to access and modify the underlying database.
|
||||||
**
|
**
|
||||||
** $Id: vdbe.h,v 1.87 2004/06/21 06:50:29 danielk1977 Exp $
|
** $Id: vdbe.h,v 1.88 2004/06/21 08:18:59 danielk1977 Exp $
|
||||||
*/
|
*/
|
||||||
#ifndef _SQLITE_VDBE_H_
|
#ifndef _SQLITE_VDBE_H_
|
||||||
#define _SQLITE_VDBE_H_
|
#define _SQLITE_VDBE_H_
|
||||||
@ -114,12 +114,12 @@ VdbeOp *sqlite3VdbeGetOp(Vdbe*, int);
|
|||||||
int sqlite3VdbeMakeLabel(Vdbe*);
|
int sqlite3VdbeMakeLabel(Vdbe*);
|
||||||
void sqlite3VdbeDelete(Vdbe*);
|
void sqlite3VdbeDelete(Vdbe*);
|
||||||
void sqlite3VdbeMakeReady(Vdbe*,int,int);
|
void sqlite3VdbeMakeReady(Vdbe*,int,int);
|
||||||
int sqlite3VdbeFinalize(Vdbe*,char**);
|
int sqlite3VdbeFinalize(Vdbe*);
|
||||||
void sqlite3VdbeResolveLabel(Vdbe*, int);
|
void sqlite3VdbeResolveLabel(Vdbe*, int);
|
||||||
int sqlite3VdbeCurrentAddr(Vdbe*);
|
int sqlite3VdbeCurrentAddr(Vdbe*);
|
||||||
void sqlite3VdbeTrace(Vdbe*,FILE*);
|
void sqlite3VdbeTrace(Vdbe*,FILE*);
|
||||||
void sqlite3VdbeCompressSpace(Vdbe*,int);
|
void sqlite3VdbeCompressSpace(Vdbe*,int);
|
||||||
int sqlite3VdbeReset(Vdbe*,char **);
|
int sqlite3VdbeReset(Vdbe*);
|
||||||
int sqliteVdbeSetVariables(Vdbe*,int,const char**);
|
int sqliteVdbeSetVariables(Vdbe*,int,const char**);
|
||||||
void sqlite3VdbeSetNumCols(Vdbe*,int);
|
void sqlite3VdbeSetNumCols(Vdbe*,int);
|
||||||
int sqlite3VdbeSetColName(Vdbe*, int, const char *, int);
|
int sqlite3VdbeSetColName(Vdbe*, int, const char *, int);
|
||||||
|
@ -1163,27 +1163,20 @@ static void checkActiveVdbeCnt(sqlite *db){
|
|||||||
** After this routine is run, the VDBE should be ready to be executed
|
** After this routine is run, the VDBE should be ready to be executed
|
||||||
** again.
|
** again.
|
||||||
*/
|
*/
|
||||||
int sqlite3VdbeReset(Vdbe *p, char **pzErrMsg){
|
int sqlite3VdbeReset(Vdbe *p){
|
||||||
sqlite *db = p->db;
|
sqlite *db = p->db;
|
||||||
int i;
|
int i;
|
||||||
int (*xFunc)(Btree *pBt) = 0; /* Function to call on each btree backend */
|
int (*xFunc)(Btree *pBt) = 0; /* Function to call on each btree backend */
|
||||||
|
|
||||||
if( p->magic!=VDBE_MAGIC_RUN && p->magic!=VDBE_MAGIC_HALT ){
|
if( p->magic!=VDBE_MAGIC_RUN && p->magic!=VDBE_MAGIC_HALT ){
|
||||||
sqlite3SetString(pzErrMsg, sqlite3ErrStr(SQLITE_MISUSE), (char*)0);
|
|
||||||
sqlite3Error(p->db, SQLITE_MISUSE, 0 ,0);
|
sqlite3Error(p->db, SQLITE_MISUSE, 0 ,0);
|
||||||
db->activeVdbeCnt--;
|
|
||||||
return SQLITE_MISUSE;
|
return SQLITE_MISUSE;
|
||||||
}
|
}
|
||||||
if( p->zErrMsg ){
|
if( p->zErrMsg ){
|
||||||
sqlite3Error(p->db, p->rc, "%s", p->zErrMsg, 0);
|
sqlite3Error(p->db, p->rc, "%s", p->zErrMsg, 0);
|
||||||
if( pzErrMsg && *pzErrMsg==0 ){
|
sqliteFree(p->zErrMsg);
|
||||||
*pzErrMsg = p->zErrMsg;
|
|
||||||
}else{
|
|
||||||
sqliteFree(p->zErrMsg);
|
|
||||||
}
|
|
||||||
p->zErrMsg = 0;
|
p->zErrMsg = 0;
|
||||||
}else if( p->rc ){
|
}else if( p->rc ){
|
||||||
sqlite3SetString(pzErrMsg, sqlite3ErrStr(p->rc), (char*)0);
|
|
||||||
sqlite3Error(p->db, p->rc, 0);
|
sqlite3Error(p->db, p->rc, 0);
|
||||||
}else{
|
}else{
|
||||||
sqlite3Error(p->db, SQLITE_OK, 0);
|
sqlite3Error(p->db, SQLITE_OK, 0);
|
||||||
@ -1299,19 +1292,18 @@ int sqlite3VdbeReset(Vdbe *p, char **pzErrMsg){
|
|||||||
** Clean up and delete a VDBE after execution. Return an integer which is
|
** Clean up and delete a VDBE after execution. Return an integer which is
|
||||||
** the result code. Write any error message text into *pzErrMsg.
|
** the result code. Write any error message text into *pzErrMsg.
|
||||||
*/
|
*/
|
||||||
int sqlite3VdbeFinalize(Vdbe *p, char **pzErrMsg){
|
int sqlite3VdbeFinalize(Vdbe *p){
|
||||||
int rc;
|
int rc;
|
||||||
sqlite *db;
|
sqlite *db;
|
||||||
|
|
||||||
if( p->magic!=VDBE_MAGIC_RUN && p->magic!=VDBE_MAGIC_HALT ){
|
if( p->magic!=VDBE_MAGIC_RUN && p->magic!=VDBE_MAGIC_HALT ){
|
||||||
sqlite3SetString(pzErrMsg, sqlite3ErrStr(SQLITE_MISUSE), (char*)0);
|
|
||||||
if( p->magic==VDBE_MAGIC_INIT ){
|
if( p->magic==VDBE_MAGIC_INIT ){
|
||||||
sqlite3Error(p->db, SQLITE_MISUSE, 0);
|
sqlite3Error(p->db, SQLITE_MISUSE, 0);
|
||||||
}
|
}
|
||||||
return SQLITE_MISUSE;
|
return SQLITE_MISUSE;
|
||||||
}
|
}
|
||||||
db = p->db;
|
db = p->db;
|
||||||
rc = sqlite3VdbeReset(p, pzErrMsg);
|
rc = sqlite3VdbeReset(p);
|
||||||
sqlite3VdbeDelete(p);
|
sqlite3VdbeDelete(p);
|
||||||
if( rc==SQLITE_SCHEMA ){
|
if( rc==SQLITE_SCHEMA ){
|
||||||
sqlite3ResetInternalSchema(db, 0);
|
sqlite3ResetInternalSchema(db, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user