@@ -690,22 +690,24 @@ class InnerDatabaseFile : public SQLiteVFS::File {
690
690
upsert->bind (3 , job->meta2 );
691
691
}
692
692
upsert->bind (4 , job->pageno );
693
- StatementResetter resetter (*upsert);
694
- if (upsert->exec () != 1 ) {
695
- throw std::runtime_error (" unexpected result from page upsert" );
696
- }
697
693
698
- if (page1plain_ && job->pageno == 1 ) {
699
- // see ReadPlainPage1() above. When we write page 1, cc its first 100 bytes into a
700
- // special row with pageno = -100.
701
- upsert->reset ();
702
- upsert->bindNoCopy (1 , job->encoded_page ,
703
- std::min (job->encoded_page_size , size_t (100 )));
704
- upsert->bind (2 , job->meta1 );
705
- upsert->bind (3 , job->meta2 );
706
- upsert->bind (4 , (sqlite_int64)-100 );
694
+ {
695
+ StatementResetter resetter (*upsert);
707
696
if (upsert->exec () != 1 ) {
708
- throw std::runtime_error (" unexpected result from header upsert" );
697
+ throw std::runtime_error (" unexpected result from page upsert" );
698
+ }
699
+
700
+ if (page1plain_ && job->pageno == 1 ) {
701
+ // see ReadPlainPage1() above. When we write page 1, cc its first 100 bytes
702
+ // into a special row with pageno = -100.
703
+ upsert->reset ();
704
+ upsert->bindNoCopy (1 , job->encoded_page ,
705
+ std::min (job->encoded_page_size , size_t (100 )));
706
+ // keep meta1 & meta2 bindings, if any
707
+ upsert->bind (4 , (sqlite_int64)-100 );
708
+ if (upsert->exec () != 1 ) {
709
+ throw std::runtime_error (" unexpected result from header upsert" );
710
+ }
709
711
}
710
712
}
711
713
0 commit comments