diff options
author | drh <drh@noemail.net> | 2019-08-06 14:37:24 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-08-06 14:37:24 +0000 |
commit | 96fb16eecdf03c1042a19bb6aaf46eededb6c75f (patch) | |
tree | 7c5180007167a8a899e8e4e17c0e51d41ad47268 /src/insert.c | |
parent | 5978a7a525c58e1402b87ba957d287f650e0f9ab (diff) | |
download | sqlite-96fb16eecdf03c1042a19bb6aaf46eededb6c75f.tar.gz sqlite-96fb16eecdf03c1042a19bb6aaf46eededb6c75f.zip |
Use 0x40 (ASCII '@') instead of 0x00 to mean "no affinity" so that columns
with no affinity can appear in a zero-terminated string. Use the new
SQLITE_AFF_NONE macro for this new magic number.
FossilOrigin-Name: e8234f6939ccff4c10f741cf66d1c537cfebcbd0d1d79a618a64c755a7f087b5
Diffstat (limited to 'src/insert.c')
-rw-r--r-- | src/insert.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/insert.c b/src/insert.c index 2f1a19952..53d7e89b2 100644 --- a/src/insert.c +++ b/src/insert.c @@ -98,7 +98,7 @@ const char *sqlite3IndexAffinityStr(sqlite3 *db, Index *pIdx){ assert( pIdx->aColExpr!=0 ); aff = sqlite3ExprAffinity(pIdx->aColExpr->a[n].pExpr); } - if( aff==0 ) aff = SQLITE_AFF_BLOB; + if( aff<SQLITE_AFF_BLOB ) aff = SQLITE_AFF_BLOB; pIdx->zColAff[n] = aff; } pIdx->zColAff[n] = 0; @@ -139,11 +139,12 @@ void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ } for(i=0; i<pTab->nCol; i++){ + assert( pTab->aCol[i].affinity!=0 ); zColAff[i] = pTab->aCol[i].affinity; } do{ zColAff[i--] = 0; - }while( i>=0 && zColAff[i]==SQLITE_AFF_BLOB ); + }while( i>=0 && zColAff[i]<=SQLITE_AFF_BLOB ); pTab->zColAff = zColAff; } assert( zColAff!=0 ); |