aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2006-03-29 00:24:06 +0000
committerdrh <drh@noemail.net>2006-03-29 00:24:06 +0000
commite4df0e7497570d25af9c16ec9e8e90560eb0debc (patch)
tree591c2ac0f086aea84852ed0801bec9b9b0b2d57d /src
parent27436af790273ce50212fd67473f03b0c99bb63b (diff)
downloadsqlite-e4df0e7497570d25af9c16ec9e8e90560eb0debc.tar.gz
sqlite-e4df0e7497570d25af9c16ec9e8e90560eb0debc.zip
Properly record the names of triggers even if the name is quoted.
Ticket #1737. (CVS 3158) FossilOrigin-Name: 4ba280ddd66d5cbf617263d6300b7582f65d47a9
Diffstat (limited to 'src')
-rw-r--r--src/trigger.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/trigger.c b/src/trigger.c
index 72f7a7204..d670e527c 100644
--- a/src/trigger.c
+++ b/src/trigger.c
@@ -110,7 +110,7 @@ void sqlite3BeginTrigger(
if( !zName || SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){
goto trigger_cleanup;
}
- if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash), zName,pName->n+1) ){
+ if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash), zName,strlen(zName)) ){
sqlite3ErrorMsg(pParse, "trigger %T already exists", pName);
goto trigger_cleanup;
}
@@ -257,7 +257,7 @@ void sqlite3FinishTrigger(
Table *pTab;
Trigger *pDel;
pDel = sqlite3HashInsert(&db->aDb[iDb].pSchema->trigHash,
- pTrig->name, strlen(pTrig->name)+1, pTrig);
+ pTrig->name, strlen(pTrig->name), pTrig);
if( pDel ){
assert( sqlite3MallocFailed() && pDel==pTrig );
goto triggerfinish_cleanup;
@@ -455,7 +455,7 @@ void sqlite3DropTrigger(Parse *pParse, SrcList *pName){
for(i=OMIT_TEMPDB; i<db->nDb; i++){
int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
if( zDb && sqlite3StrICmp(db->aDb[j].zName, zDb) ) continue;
- pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName, nName+1);
+ pTrigger = sqlite3HashFind(&(db->aDb[j].pSchema->trigHash), zName, nName);
if( pTrigger ) break;
}
if( !pTrigger ){
@@ -538,7 +538,8 @@ void sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger){
void sqlite3UnlinkAndDeleteTrigger(sqlite3 *db, int iDb, const char *zName){
Trigger *pTrigger;
int nName = strlen(zName);
- pTrigger = sqlite3HashInsert(&(db->aDb[iDb].pSchema->trigHash), zName, nName+1, 0);
+ pTrigger = sqlite3HashInsert(&(db->aDb[iDb].pSchema->trigHash),
+ zName, nName, 0);
if( pTrigger ){
Table *pTable = tableOfTrigger(pTrigger);
assert( pTable!=0 );