aboutsummaryrefslogtreecommitdiff
path: root/src/insert.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-08-06 14:37:24 +0000
committerdrh <drh@noemail.net>2019-08-06 14:37:24 +0000
commit96fb16eecdf03c1042a19bb6aaf46eededb6c75f (patch)
tree7c5180007167a8a899e8e4e17c0e51d41ad47268 /src/insert.c
parent5978a7a525c58e1402b87ba957d287f650e0f9ab (diff)
downloadsqlite-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.c5
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 );