aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2009-12-29 23:39:04 +0000
committerdrh <drh@noemail.net>2009-12-29 23:39:04 +0000
commit25e978df922a44f80321072ac65a710d4fbaf8da (patch)
tree122875f6325fd6b4b9a70a203adc4083e71012f2 /src/resolve.c
parent8718183ea52fa01ee22e495cd256015cddf69146 (diff)
downloadsqlite-25e978df922a44f80321072ac65a710d4fbaf8da.tar.gz
sqlite-25e978df922a44f80321072ac65a710d4fbaf8da.zip
Within the special new.* and old.* tables of a trigger, recognize all the
original table names even if those names overload the "rowid", "oid", or "_rowid_" special names. Ticket [34d2ae1c6d0]. FossilOrigin-Name: 1a0e5fa9f0ff792c678c99d49960601a0cef925b
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 0a59be7c4..51f7560a1 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -243,19 +243,18 @@ static int lookupName(
int iCol;
pSchema = pTab->pSchema;
cntTab++;
- if( sqlite3IsRowid(zCol) ){
- iCol = -1;
- }else{
- for(iCol=0; iCol<pTab->nCol; iCol++){
- Column *pCol = &pTab->aCol[iCol];
- if( sqlite3StrICmp(pCol->zName, zCol)==0 ){
- if( iCol==pTab->iPKey ){
- iCol = -1;
- }
- break;
+ for(iCol=0; iCol<pTab->nCol; iCol++){
+ Column *pCol = &pTab->aCol[iCol];
+ if( sqlite3StrICmp(pCol->zName, zCol)==0 ){
+ if( iCol==pTab->iPKey ){
+ iCol = -1;
}
+ break;
}
}
+ if( iCol>=pTab->nCol && sqlite3IsRowid(zCol) ){
+ iCol = -1;
+ }
if( iCol<pTab->nCol ){
cnt++;
if( iCol<0 ){