Skip to content

Commit ab03605

Browse files
knizhnikkelvich
authored andcommitted
Fix bug in execQuery
1 parent 9dff14c commit ab03605

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

contrib/multimaster/tests/dtmbench.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,16 @@ void exec(transaction_base& txn, char const* sql, ...)
101101
txn.exec(buf);
102102
}
103103

104-
xid_t execQuery( transaction_base& txn, char const* sql, ...)
104+
template<class T>
105+
T execQuery( transaction_base& txn, char const* sql, ...)
105106
{
106107
va_list args;
107108
va_start(args, sql);
108109
char buf[1024];
109110
vsprintf(buf, sql, args);
110111
va_end(args);
111112
result r = txn.exec(buf);
112-
return r[0][0].as(xid_t());
113+
return r[0][0].as(T());
113114
}
114115

115116
void* reader(void* arg)
@@ -154,8 +155,8 @@ void* writer(void* arg)
154155
exec(txn, "update t set v = v + 1 where u=%d", dstAcc);
155156
t.updates += 2;
156157
} else {
157-
int64_t sum = execQuery(txn, "select v from t where u=%d", srcAcc)
158-
+ execQuery(txn, "select v from t where u=%d", dstAcc);
158+
int64_t sum = execQuery<int64_t>(txn, "select v from t where u=%d", srcAcc)
159+
+ execQuery<int64_t>(txn, "select v from t where u=%d", dstAcc);
159160
if (sum > cfg.nIterations*cfg.nWriters || sum < -cfg.nIterations*cfg.nWriters) {
160161
printf("Wrong sum=%ld\n", sum);
161162
}
@@ -164,6 +165,7 @@ void* writer(void* arg)
164165
txn.commit();
165166
t.transactions += 1;
166167
} catch (pqxx_exception const& x) {
168+
printf("EXCEPTION: %s\n", x.base().what());
167169
txn.abort();
168170
t.aborts += 1;
169171
i -= 1;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy