@@ -47,12 +47,13 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
47
47
48
48
auto usedQSets = UnorderedMap<Hash, SCPQuorumSetPtr>{};
49
49
auto & db = mApp .getDatabase ();
50
+ auto & sess = db.getMiscSession ();
50
51
51
- soci::transaction txscope (db. getSession ());
52
+ soci::transaction txscope (sess. session ());
52
53
53
54
{
54
55
auto prepClean = db.getPreparedStatement (
55
- " DELETE FROM scphistory WHERE ledgerseq =:l" );
56
+ " DELETE FROM scphistory WHERE ledgerseq =:l" , sess );
56
57
57
58
auto & st = prepClean.statement ();
58
59
st.exchange (soci::use (seq));
@@ -92,7 +93,8 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
92
93
auto prepEnv =
93
94
db.getPreparedStatement (" INSERT INTO scphistory "
94
95
" (nodeid, ledgerseq, envelope) VALUES "
95
- " (:n, :l, :e)" );
96
+ " (:n, :l, :e)" ,
97
+ sess);
96
98
auto & st = prepEnv.statement ();
97
99
st.exchange (soci::use (nodeIDs, " n" ));
98
100
st.exchange (soci::use (seqs, " l" ));
@@ -124,7 +126,7 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
124
126
std::string qSetHHex (binToHex (qSetH));
125
127
126
128
auto prep = db.getPreparedStatement (
127
- " UPDATE quoruminfo SET qsethash = :h WHERE nodeid = :id" );
129
+ " UPDATE quoruminfo SET qsethash = :h WHERE nodeid = :id" , sess );
128
130
auto & st = prep.statement ();
129
131
st.exchange (soci::use (qSetHHex));
130
132
st.exchange (soci::use (nodeIDStrKey));
@@ -136,7 +138,8 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
136
138
if (st.get_affected_rows () != 1 )
137
139
{
138
140
auto prepI = db.getPreparedStatement (
139
- " INSERT INTO quoruminfo (nodeid, qsethash) VALUES (:id, :h)" );
141
+ " INSERT INTO quoruminfo (nodeid, qsethash) VALUES (:id, :h)" ,
142
+ sess);
140
143
auto & stI = prepI.statement ();
141
144
stI.exchange (soci::use (nodeIDStrKey));
142
145
stI.exchange (soci::use (qSetHHex));
@@ -158,7 +161,7 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
158
161
159
162
uint32_t lastSeenSeq;
160
163
auto prepSelQSet = db.getPreparedStatement (
161
- " SELECT lastledgerseq FROM scpquorums WHERE qsethash = :h" );
164
+ " SELECT lastledgerseq FROM scpquorums WHERE qsethash = :h" , sess );
162
165
auto & stSel = prepSelQSet.statement ();
163
166
stSel.exchange (soci::into (lastSeenSeq));
164
167
stSel.exchange (soci::use (qSetH));
@@ -177,7 +180,8 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
177
180
178
181
auto prepUpQSet = db.getPreparedStatement (
179
182
" UPDATE scpquorums SET "
180
- " lastledgerseq = :l WHERE qsethash = :h" );
183
+ " lastledgerseq = :l WHERE qsethash = :h" ,
184
+ sess);
181
185
182
186
auto & stUp = prepUpQSet.statement ();
183
187
stUp.exchange (soci::use (seq));
@@ -202,7 +206,8 @@ HerderPersistenceImpl::saveSCPHistory(uint32_t seq,
202
206
auto prepInsQSet = db.getPreparedStatement (
203
207
" INSERT INTO scpquorums "
204
208
" (qsethash, lastledgerseq, qset) VALUES "
205
- " (:h, :l, :v);" );
209
+ " (:h, :l, :v);" ,
210
+ sess);
206
211
207
212
auto & stIns = prepInsQSet.statement ();
208
213
stIns.exchange (soci::use (qSetH));
@@ -372,48 +377,45 @@ void
372
377
HerderPersistence::dropAll (Database& db)
373
378
{
374
379
ZoneScoped;
375
- db.getSession () << " DROP TABLE IF EXISTS scphistory" ;
380
+ db.getRawMiscSession () << " DROP TABLE IF EXISTS scphistory" ;
376
381
377
- db.getSession () << " DROP TABLE IF EXISTS scpquorums" ;
382
+ db.getRawMiscSession () << " DROP TABLE IF EXISTS scpquorums" ;
378
383
379
- db.getSession () << " CREATE TABLE scphistory ("
380
- " nodeid CHARACTER(56) NOT NULL,"
381
- " ledgerseq INT NOT NULL CHECK (ledgerseq >= 0),"
382
- " envelope TEXT NOT NULL"
383
- " )" ;
384
+ db.getRawMiscSession () << " CREATE TABLE scphistory ("
385
+ " nodeid CHARACTER(56) NOT NULL,"
386
+ " ledgerseq INT NOT NULL CHECK (ledgerseq >= 0),"
387
+ " envelope TEXT NOT NULL"
388
+ " )" ;
384
389
385
- db.getSession () << " CREATE INDEX scpenvsbyseq ON scphistory(ledgerseq)" ;
390
+ db.getRawMiscSession ()
391
+ << " CREATE INDEX scpenvsbyseq ON scphistory(ledgerseq)" ;
386
392
387
- db.getSession () << " CREATE TABLE scpquorums ("
388
- " qsethash CHARACTER(64) NOT NULL,"
389
- " lastledgerseq INT NOT NULL CHECK (lastledgerseq >= 0),"
390
- " qset TEXT NOT NULL,"
391
- " PRIMARY KEY (qsethash)"
392
- " )" ;
393
+ db.getRawMiscSession ()
394
+ << " CREATE TABLE scpquorums ("
395
+ " qsethash CHARACTER(64) NOT NULL,"
396
+ " lastledgerseq INT NOT NULL CHECK (lastledgerseq >= 0),"
397
+ " qset TEXT NOT NULL,"
398
+ " PRIMARY KEY (qsethash)"
399
+ " )" ;
393
400
394
- db.getSession ()
401
+ db.getRawMiscSession ()
395
402
<< " CREATE INDEX scpquorumsbyseq ON scpquorums(lastledgerseq)" ;
396
403
397
- db.getSession () << " DROP TABLE IF EXISTS quoruminfo" ;
398
- }
399
-
400
- void
401
- HerderPersistence::createQuorumTrackingTable (soci::session& sess)
402
- {
403
- sess << " CREATE TABLE quoruminfo ("
404
- " nodeid CHARACTER(56) NOT NULL,"
405
- " qsethash CHARACTER(64) NOT NULL,"
406
- " PRIMARY KEY (nodeid))" ;
404
+ db.getRawMiscSession () << " DROP TABLE IF EXISTS quoruminfo" ;
405
+ db.getRawMiscSession () << " CREATE TABLE quoruminfo ("
406
+ " nodeid CHARACTER(56) NOT NULL,"
407
+ " qsethash CHARACTER(64) NOT NULL,"
408
+ " PRIMARY KEY (nodeid))" ;
407
409
}
408
410
409
411
void
410
412
HerderPersistence::deleteOldEntries (Database& db, uint32_t ledgerSeq,
411
413
uint32_t count)
412
414
{
413
415
ZoneScoped;
414
- DatabaseUtils::deleteOldEntriesHelper (db.getSession (), ledgerSeq, count ,
415
- " scphistory" , " ledgerseq" );
416
- DatabaseUtils::deleteOldEntriesHelper (db.getSession (), ledgerSeq, count ,
417
- " scpquorums" , " lastledgerseq" );
416
+ DatabaseUtils::deleteOldEntriesHelper (db.getRawMiscSession (), ledgerSeq,
417
+ count, " scphistory" , " ledgerseq" );
418
+ DatabaseUtils::deleteOldEntriesHelper (db.getRawMiscSession (), ledgerSeq,
419
+ count, " scpquorums" , " lastledgerseq" );
418
420
}
419
421
}
0 commit comments