aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2003-03-31 02:12:46 +0000
committerdrh <drh@noemail.net>2003-03-31 02:12:46 +0000
commitda93d238c2067a1951b8043c3c30355947fd6da9 (patch)
tree29057f4a84763deb95565d3e8bd2622614c85c15 /src/expr.c
parent1c2d84148a6bb2f8d231debd65bc09e948abf029 (diff)
downloadsqlite-da93d238c2067a1951b8043c3c30355947fd6da9.tar.gz
sqlite-da93d238c2067a1951b8043c3c30355947fd6da9.zip
Add the sqliteErrorMsg() function and use it to generate error message
text during parsing and code generation. This simplifies the code somewhat and makes it easier to handle names with a database prefix. (CVS 891) FossilOrigin-Name: 1d3fc977211abdc7ba3fd51d661863e8ce5aef69
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/src/expr.c b/src/expr.c
index 576ae2db8..caa6de11a 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
-** $Id: expr.c,v 1.90 2003/03/27 12:51:25 drh Exp $
+** $Id: expr.c,v 1.91 2003/03/31 02:12:47 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -477,14 +477,10 @@ int sqliteExprResolveIds(
}
sqliteFree(z);
if( cnt==0 && pExpr->token.z[0]!='"' ){
- sqliteSetNString(&pParse->zErrMsg, "no such column: ", -1,
- pExpr->token.z, pExpr->token.n, 0);
- pParse->nErr++;
+ sqliteErrorMsg(pParse, "no such column: %T", &pExpr->token);
return 1;
}else if( cnt>1 ){
- sqliteSetNString(&pParse->zErrMsg, "ambiguous column name: ", -1,
- pExpr->token.z, pExpr->token.n, 0);
- pParse->nErr++;
+ sqliteErrorMsg(pParse, "ambiguous column name: %T", &pExpr->token);
return 1;
}
if( pExpr->op==TK_COLUMN ){
@@ -600,16 +596,12 @@ int sqliteExprResolveIds(
sqliteFree(zLeft);
sqliteFree(zRight);
if( cnt==0 ){
- sqliteSetNString(&pParse->zErrMsg, "no such column: ", -1,
- pLeft->token.z, pLeft->token.n, ".", 1,
- pRight->token.z, pRight->token.n, 0);
- pParse->nErr++;
+ sqliteErrorMsg(pParse, "no such column: %T.%T",
+ &pLeft->token, &pRight->token);
return 1;
}else if( cnt>1 ){
- sqliteSetNString(&pParse->zErrMsg, "ambiguous column name: ", -1,
- pLeft->token.z, pLeft->token.n, ".", 1,
- pRight->token.z, pRight->token.n, 0);
- pParse->nErr++;
+ sqliteErrorMsg(pParse, "ambiguous column name: %T.%T",
+ &pLeft->token, &pRight->token);
return 1;
}
sqliteExprDelete(pExpr->pLeft);
@@ -647,9 +639,8 @@ int sqliteExprResolveIds(
for(i=0; i<pExpr->pList->nExpr; i++){
Expr *pE2 = pExpr->pList->a[i].pExpr;
if( !sqliteExprIsConstant(pE2) ){
- sqliteSetString(&pParse->zErrMsg,
- "right-hand side of IN operator must be constant", 0);
- pParse->nErr++;
+ sqliteErrorMsg(pParse,
+ "right-hand side of IN operator must be constant");
return 1;
}
if( sqliteExprCheck(pParse, pE2, 0, 0) ){
@@ -1219,8 +1210,8 @@ void sqliteExprCode(Parse *pParse, Expr *pExpr){
}
case TK_RAISE: {
if( !pParse->trigStack ){
- sqliteSetNString(&pParse->zErrMsg,
- "RAISE() may only be used within a trigger-program", -1, 0);
+ sqliteErrorMsg(pParse,
+ "RAISE() may only be used within a trigger-program");
pParse->nErr++;
return;
}