aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2013-08-02 14:18:18 +0000
committerdrh <drh@noemail.net>2013-08-02 14:18:18 +0000
commit1e7d43c97718ba62d2afe9caeac65bbfa6b056e5 (patch)
treef941d10a1fd0c97cd6f6db6ee4a299f700f6c234 /src/resolve.c
parent3bf0ac17095ac5e8a34b5918c7c675f3ce77e717 (diff)
downloadsqlite-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.c19
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;
+ }
}
}
}