@@ -4335,27 +4335,26 @@ static int fts3IncrmergeLoad(
4335
4335
while ( reader .aNode && rc == SQLITE_OK ) rc = nodeReaderNext (& reader );
4336
4336
blobGrowBuffer (& pNode -> key , reader .term .n , & rc );
4337
4337
if ( rc == SQLITE_OK ){
4338
- if ( reader .term .n <=0 ){
4339
- rc = FTS_CORRUPT_VTAB ;
4340
- }else {
4338
+ assert_fts3_nc ( reader .term .n > 0 || reader .aNode == 0 );
4339
+ if ( reader .term .n > 0 ){
4341
4340
memcpy (pNode -> key .a , reader .term .a , reader .term .n );
4342
- pNode -> key .n = reader .term .n ;
4343
- if ( i > 0 ){
4344
- char * aBlock = 0 ;
4345
- int nBlock = 0 ;
4346
- pNode = & pWriter -> aNodeWriter [i - 1 ];
4347
- pNode -> iBlock = reader .iChild ;
4348
- rc = sqlite3Fts3ReadBlock (p , reader .iChild , & aBlock , & nBlock ,0 );
4349
- blobGrowBuffer (& pNode -> block ,
4350
- MAX (nBlock , p -> nNodeSize )+ FTS3_NODE_PADDING , & rc
4351
- );
4352
- if ( rc == SQLITE_OK ){
4353
- memcpy (pNode -> block .a , aBlock , nBlock );
4354
- pNode -> block .n = nBlock ;
4355
- memset (& pNode -> block .a [nBlock ], 0 , FTS3_NODE_PADDING );
4356
- }
4357
- sqlite3_free (aBlock );
4341
+ }
4342
+ pNode -> key .n = reader .term .n ;
4343
+ if ( i > 0 ){
4344
+ char * aBlock = 0 ;
4345
+ int nBlock = 0 ;
4346
+ pNode = & pWriter -> aNodeWriter [i - 1 ];
4347
+ pNode -> iBlock = reader .iChild ;
4348
+ rc = sqlite3Fts3ReadBlock (p , reader .iChild , & aBlock , & nBlock ,0 );
4349
+ blobGrowBuffer (& pNode -> block ,
4350
+ MAX (nBlock , p -> nNodeSize )+ FTS3_NODE_PADDING , & rc
4351
+ );
4352
+ if ( rc == SQLITE_OK ){
4353
+ memcpy (pNode -> block .a , aBlock , nBlock );
4354
+ pNode -> block .n = nBlock ;
4355
+ memset (& pNode -> block .a [nBlock ], 0 , FTS3_NODE_PADDING );
4358
4356
}
4357
+ sqlite3_free (aBlock );
4359
4358
}
4360
4359
}
4361
4360
}
0 commit comments