diff options
author | drh <drh@noemail.net> | 2016-02-29 15:53:11 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2016-02-29 15:53:11 +0000 |
commit | 94eaafa9ce6e044b834c56c712d18ba3c1f6d91d (patch) | |
tree | d50a428eee181d33045692ecb3980f7659279f8f /src/select.c | |
parent | 743606c3d3843dcc25be65bcb3cce2e10f8d752c (diff) | |
download | sqlite-94eaafa9ce6e044b834c56c712d18ba3c1f6d91d.tar.gz sqlite-94eaafa9ce6e044b834c56c712d18ba3c1f6d91d.zip |
Reduce the amount of heap required to store many schemas by storing each
column datatype appended to the column name, rather than as a separate
allocation.
FossilOrigin-Name: 842b21162713bb141b845b01c136457a31af4ab0
Diffstat (limited to 'src/select.c')
-rw-r--r-- | src/select.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/select.c b/src/select.c index aa1f21485..c9bc389b2 100644 --- a/src/select.c +++ b/src/select.c @@ -1429,8 +1429,8 @@ static const char *columnTypeImpl( zType = "INTEGER"; zOrigCol = "rowid"; }else{ - zType = pTab->aCol[iCol].zType; zOrigCol = pTab->aCol[iCol].zName; + zType = sqlite3StrNext(zOrigCol); estWidth = pTab->aCol[iCol].szEst; } zOrigTab = pTab->zName; @@ -1442,7 +1442,7 @@ static const char *columnTypeImpl( if( iCol<0 ){ zType = "INTEGER"; }else{ - zType = pTab->aCol[iCol].zType; + zType = sqlite3StrNext(pTab->aCol[iCol].zName); estWidth = pTab->aCol[iCol].szEst; } #endif @@ -1727,10 +1727,7 @@ 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==0 ){ - pCol->zType = sqlite3DbStrDup(db, - columnType(&sNC, p,0,0,0, &pCol->szEst)); - } + columnType(&sNC, p, 0, 0, 0, &pCol->szEst); szAll += pCol->szEst; pCol->affinity = sqlite3ExprAffinity(p); if( pCol->affinity==0 ) pCol->affinity = SQLITE_AFF_BLOB; |