Don't try to verify the schema of transient table (such as generated inside
a WITH clause) when generating code for "IN table" operators.
FossilOrigin-Name: 860aa936634a60d68e3954fc408a96a9260394e0
diff --git a/src/expr.c b/src/expr.c
index 4da9d62..fca03a8 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1581,9 +1581,11 @@
iCol = (i16)pExpr->iColumn;
/* Code an OP_VerifyCookie and OP_TableLock for <table>. */
- iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
- sqlite3CodeVerifySchema(pParse, iDb);
- sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName);
+ if( pTab->pSchema ){
+ iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
+ sqlite3CodeVerifySchema(pParse, iDb);
+ sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName);
+ }
/* This function is only called from two places. In both cases the vdbe
** has already been allocated. So assume sqlite3GetVdbe() is always