diff options
author | drh <drh@noemail.net> | 2015-04-21 17:17:47 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-04-21 17:17:47 +0000 |
commit | 1cb50c880e02a469bbb3cb02112e89ba3a5c6857 (patch) | |
tree | 34d5ec64b5437efd03ec2f670e0d77179082404c /src/select.c | |
parent | dfb5e1cbc629287038ed72d7498aacf812c7a437 (diff) | |
download | sqlite-1cb50c880e02a469bbb3cb02112e89ba3a5c6857.tar.gz sqlite-1cb50c880e02a469bbb3cb02112e89ba3a5c6857.zip |
Alternative fix for the double-initialization of type and collating sequence
problem that leaves the estimated table size intact.
FossilOrigin-Name: 623ddbdbf48d26dac58c593bcb9e7b184334ddfc
Diffstat (limited to 'src/select.c')
-rw-r--r-- | src/select.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/select.c b/src/select.c index 20d39440c..7797804c1 100644 --- a/src/select.c +++ b/src/select.c @@ -1700,14 +1700,14 @@ static void selectAddColumnTypeAndCollation( a = pSelect->pEList->a; for(i=0, pCol=pTab->aCol; i<pTab->nCol; i++, pCol++){ p = a[i].pExpr; - if( pCol->zType ) break; - if( pCol->zColl ) break; - pCol->zType = sqlite3DbStrDup(db, columnType(&sNC, p,0,0,0, &pCol->szEst)); + if( pCol->zType==0 ){ + pCol->zType = sqlite3DbStrDup(db, columnType(&sNC, p,0,0,0, &pCol->szEst)); + } szAll += pCol->szEst; pCol->affinity = sqlite3ExprAffinity(p); if( pCol->affinity==0 ) pCol->affinity = SQLITE_AFF_NONE; pColl = sqlite3ExprCollSeq(pParse, p); - if( pColl ){ + if( pColl && pCol->zColl==0 ){ pCol->zColl = sqlite3DbStrDup(db, pColl->zName); } } |