diff options
author | danielk1977 <danielk1977@noemail.net> | 2005-03-09 12:26:50 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2005-03-09 12:26:50 +0000 |
commit | aee18ef8e20e2e40ab21b3f80ef2d8f816a9621e (patch) | |
tree | 95fab4903561fc38823718de37728fa86c29d2eb /src/expr.c | |
parent | 97ba4c94fc4a82382c6e50930edad426c4423739 (diff) | |
download | sqlite-aee18ef8e20e2e40ab21b3f80ef2d8f816a9621e.tar.gz sqlite-aee18ef8e20e2e40ab21b3f80ef2d8f816a9621e.zip |
Support for a future ALTER TABLE command to add columns with default values. (CVS 2367)
FossilOrigin-Name: 9d5abc1ddf6da37563c12d5a0401b89bb4e51c59
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/expr.c b/src/expr.c index f27bed5c2..1723e60c7 100644 --- a/src/expr.c +++ b/src/expr.c @@ -12,7 +12,7 @@ ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** -** $Id: expr.c,v 1.194 2005/02/12 08:59:57 danielk1977 Exp $ +** $Id: expr.c,v 1.195 2005/03/09 12:26:51 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -403,6 +403,7 @@ Expr *sqlite3ExprDup(Expr *p){ pNew->pRight = sqlite3ExprDup(p->pRight); pNew->pList = sqlite3ExprListDup(p->pList); pNew->pSelect = sqlite3SelectDup(p->pSelect); + pNew->pTab = p->pTab; return pNew; } void sqlite3TokenCopy(Token *pTo, Token *pFrom){ @@ -847,6 +848,7 @@ static int lookupName( pExpr->iColumn = j==pTab->iPKey ? -1 : j; pExpr->affinity = pTab->aCol[j].affinity; pExpr->pColl = pTab->aCol[j].pColl; + pExpr->pTab = pTab; break; } } @@ -958,6 +960,9 @@ static int lookupName( if( cnt==1 ){ assert( pNC!=0 ); sqlite3AuthRead(pParse, pExpr, pNC->pSrcList); + if( pMatch && !pMatch->pSelect ){ + pExpr->pTab = pMatch->pTab; + } } return cnt!=1; } @@ -1385,11 +1390,7 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr){ sqlite3VdbeAddOp(v, OP_AggGet, pExpr->iAggCtx, pExpr->iAgg); }else if( pExpr->iColumn>=0 ){ sqlite3VdbeAddOp(v, OP_Column, pExpr->iTable, pExpr->iColumn); -#ifndef NDEBUG - if( pExpr->span.z && pExpr->span.n>0 && pExpr->span.n<100 ){ - VdbeComment((v, "# %T", &pExpr->span)); - } -#endif + sqlite3ColumnDefault(v, pExpr->pTab, pExpr->iColumn); }else{ sqlite3VdbeAddOp(v, OP_Recno, pExpr->iTable, 0); } |