diff options
author | drh <drh@noemail.net> | 2013-08-02 14:18:18 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2013-08-02 14:18:18 +0000 |
commit | 1e7d43c97718ba62d2afe9caeac65bbfa6b056e5 (patch) | |
tree | f941d10a1fd0c97cd6f6db6ee4a299f700f6c234 /src/resolve.c | |
parent | 3bf0ac17095ac5e8a34b5918c7c675f3ce77e717 (diff) | |
download | sqlite-1e7d43c97718ba62d2afe9caeac65bbfa6b056e5.tar.gz sqlite-1e7d43c97718ba62d2afe9caeac65bbfa6b056e5.zip |
Silently ignore database name qualifiers in CHECK constraints and in
partial index WHERE clauses.
FossilOrigin-Name: 2e8c845eb5011a2743dace333aa38383588f2080
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/resolve.c b/src/resolve.c index f288ed930..a194a2655 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -240,11 +240,20 @@ static int lookupName( ** resulting in an appropriate error message toward the end of this routine */ if( zDb ){ - for(i=0; i<db->nDb; i++){ - assert( db->aDb[i].zName ); - if( sqlite3StrICmp(db->aDb[i].zName,zDb)==0 ){ - pSchema = db->aDb[i].pSchema; - break; + testcase( pNC->ncFlags & NC_PartIdx ); + testcase( pNC->ncFlags & NC_IsCheck ); + if( (pNC->ncFlags & (NC_PartIdx|NC_IsCheck))!=0 ){ + /* Silently ignore database qualifiers inside CHECK constraints and partial + ** indices. Do not raise errors because that might break legacy and + ** because it does not hurt anything to just ignore the database name. */ + zDb = 0; + }else{ + for(i=0; i<db->nDb; i++){ + assert( db->aDb[i].zName ); + if( sqlite3StrICmp(db->aDb[i].zName,zDb)==0 ){ + pSchema = db->aDb[i].pSchema; + break; + } } } } |