aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/alter.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/alter.c b/src/alter.c
index c1a8e2476..e5f1eb315 100644
--- a/src/alter.c
+++ b/src/alter.c
@@ -812,18 +812,19 @@ static void renameWalkWith(Walker *pWalker, Select *pSelect){
assert( pWith->nCte>0 );
assert( (pWith->a[0].pSelect->selFlags & SF_Expanded)==0 );
pCopy = sqlite3WithDup(pParse->db, pWith);
- sqlite3WithPush(pParse, pCopy, 1);
-
- for(i=0; i<pWith->nCte; i++){
- Select *p = pWith->a[i].pSelect;
- NameContext sNC;
- memset(&sNC, 0, sizeof(sNC));
- sNC.pParse = pParse;
- sqlite3SelectPrep(sNC.pParse, p, &sNC);
- sqlite3WalkSelect(pWalker, p);
- sqlite3RenameExprlistUnmap(pParse, pWith->a[i].pCols);
+ if( pCopy ){
+ sqlite3WithPush(pParse, pCopy, 1);
+ for(i=0; i<pWith->nCte; i++){
+ Select *p = pWith->a[i].pSelect;
+ NameContext sNC;
+ memset(&sNC, 0, sizeof(sNC));
+ sNC.pParse = pParse;
+ sqlite3SelectPrep(sNC.pParse, p, &sNC);
+ sqlite3WalkSelect(pWalker, p);
+ sqlite3RenameExprlistUnmap(pParse, pWith->a[i].pCols);
+ }
+ pParse->pWith = pCopy->pOuter;
}
- pParse->pWith = pCopy->pOuter;
}
}