diff options
author | drh <drh@noemail.net> | 2009-12-29 23:39:04 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2009-12-29 23:39:04 +0000 |
commit | 25e978df922a44f80321072ac65a710d4fbaf8da (patch) | |
tree | 122875f6325fd6b4b9a70a203adc4083e71012f2 /src/resolve.c | |
parent | 8718183ea52fa01ee22e495cd256015cddf69146 (diff) | |
download | sqlite-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.c | 19 |
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 ){ |