aboutsummaryrefslogtreecommitdiff
path: root/src/tclsqlite.c
diff options
context:
space:
mode:
authordanielk1977 <danielk1977@noemail.net>2005-01-25 04:27:54 +0000
committerdanielk1977 <danielk1977@noemail.net>2005-01-25 04:27:54 +0000
commit9636c4e102faefacb28423c310f4a46dbcbddcc9 (patch)
tree915a805b38aea0cb32222914c99205d5a560577f /src/tclsqlite.c
parent86c4948198f9dd057a63a62193730ed3a8d468b5 (diff)
downloadsqlite-9636c4e102faefacb28423c310f4a46dbcbddcc9.tar.gz
sqlite-9636c4e102faefacb28423c310f4a46dbcbddcc9.zip
Prevent collation sequences and user functions from being deleted or changed while SQL statements are executing. (CVS 2275)
FossilOrigin-Name: cabab62bc10568d435806a7059fad7274f0dd4c8
Diffstat (limited to 'src/tclsqlite.c')
-rw-r--r--src/tclsqlite.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/tclsqlite.c b/src/tclsqlite.c
index dc05eab0a..a5ef6106c 100644
--- a/src/tclsqlite.c
+++ b/src/tclsqlite.c
@@ -11,7 +11,7 @@
*************************************************************************
** A TCL Interface to SQLite
**
-** $Id: tclsqlite.c,v 1.117 2005/01/24 10:25:59 danielk1977 Exp $
+** $Id: tclsqlite.c,v 1.118 2005/01/25 04:27:55 danielk1977 Exp $
*/
#ifndef NO_TCL /* Omit this whole file if TCL is unavailable */
@@ -696,6 +696,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
strcpy(pCollate->zScript, zScript);
if( sqlite3_create_collation(pDb->db, zName, SQLITE_UTF8,
pCollate, tclSqlCollate) ){
+ Tcl_SetResult(interp, (char *)sqlite3_errmsg(pDb->db), TCL_VOLATILE);
return TCL_ERROR;
}
break;
@@ -1128,7 +1129,8 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
rc = sqlite3_create_function(pDb->db, zName, -1, SQLITE_UTF8,
pFunc, tclSqlFunc, 0, 0);
if( rc!=SQLITE_OK ){
- rc = TCL_ERROR;
+ rc = TCL_ERROR;
+ Tcl_SetResult(interp, (char *)sqlite3_errmsg(pDb->db), TCL_VOLATILE);
}else{
/* Must flush any cached statements */
flushStmtCache( pDb );