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/pragma.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/pragma.c')
-rw-r--r-- | src/pragma.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/pragma.c b/src/pragma.c index 0460f663f..1d6291431 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -1065,6 +1065,7 @@ void sqlite3Pragma( setAllColumnNames(v, 6, azCol); assert( 6==ArraySize(azCol) ); sqlite3ViewGetColumnNames(pParse, pTab); for(i=0, pCol=pTab->aCol; i<pTab->nCol; i++, pCol++){ + const char *zName; if( IsHiddenColumn(pCol) ){ nHidden++; continue; @@ -1077,10 +1078,11 @@ void sqlite3Pragma( for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){} } assert( pCol->pDflt==0 || pCol->pDflt->op==TK_SPAN ); + zName = pCol->zName; sqlite3VdbeMultiLoad(v, 1, "issisi", i-nHidden, - pCol->zName, - pCol->zType ? pCol->zType : "", + zName, + sqlite3StrNext(zName), pCol->notNull ? 1 : 0, pCol->pDflt ? pCol->pDflt->u.zToken : 0, k); |