aboutsummaryrefslogtreecommitdiff
path: root/src/insert.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-03-04 16:42:43 +0000
committerdrh <drh@noemail.net>2016-03-04 16:42:43 +0000
commit2606aca80f35c4672c7834e90786d737679fa35b (patch)
tree2a8be85e2e802ad5ba42c4bb8e9102712cb287aa /src/insert.c
parentfd37e67b16d6c6228aa58709299c86ec81a552a5 (diff)
parent3298a641a2b1c883b34e9d85541db50d6e2d1ff9 (diff)
downloadsqlite-2606aca80f35c4672c7834e90786d737679fa35b.tar.gz
sqlite-2606aca80f35c4672c7834e90786d737679fa35b.zip
Merge recent enhancements from trunk. Default page size is 4096. Writes
to statement journals are avoided. FossilOrigin-Name: 456df3365e2df60e34762f2024bb551538b3f72b
Diffstat (limited to 'src/insert.c')
-rw-r--r--src/insert.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/insert.c b/src/insert.c
index 43e94817f..5dc045ab6 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -2008,11 +2008,15 @@ static int xferOptimization(
return 0; /* tab2 must be NOT NULL if tab1 is */
}
/* Default values for second and subsequent columns need to match. */
- if( i>0
- && ((pDestCol->zDflt==0)!=(pSrcCol->zDflt==0)
- || (pDestCol->zDflt && strcmp(pDestCol->zDflt, pSrcCol->zDflt)!=0))
- ){
- return 0; /* Default values must be the same for all columns */
+ if( i>0 ){
+ assert( pDestCol->pDflt==0 || pDestCol->pDflt->op==TK_SPAN );
+ assert( pSrcCol->pDflt==0 || pSrcCol->pDflt->op==TK_SPAN );
+ if( (pDestCol->pDflt==0)!=(pSrcCol->pDflt==0)
+ || (pDestCol->pDflt && strcmp(pDestCol->pDflt->u.zToken,
+ pSrcCol->pDflt->u.zToken)!=0)
+ ){
+ return 0; /* Default values must be the same for all columns */
+ }
}
}
for(pDestIdx=pDest->pIndex; pDestIdx; pDestIdx=pDestIdx->pNext){