diff options
author | drh <drh@noemail.net> | 2016-03-04 16:42:43 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2016-03-04 16:42:43 +0000 |
commit | 2606aca80f35c4672c7834e90786d737679fa35b (patch) | |
tree | 2a8be85e2e802ad5ba42c4bb8e9102712cb287aa /src/insert.c | |
parent | fd37e67b16d6c6228aa58709299c86ec81a552a5 (diff) | |
parent | 3298a641a2b1c883b34e9d85541db50d6e2d1ff9 (diff) | |
download | sqlite-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.c | 14 |
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){ |