Import BSDDB 4.7.25 (as of svn r89086)
This commit is contained in:
50
db_printlog/status.awk
Normal file
50
db_printlog/status.awk
Normal file
@@ -0,0 +1,50 @@
|
||||
# $Id: status.awk,v 12.1 2006/02/15 20:35:26 ubell Exp $
|
||||
#
|
||||
# Read through db_printlog output and list all the transactions encountered
|
||||
# and whether they committed or aborted.
|
||||
#
|
||||
# 1 = started
|
||||
# 2 = committed
|
||||
# 3 = explicitly aborted
|
||||
# 4 = other
|
||||
BEGIN {
|
||||
cur_txn = 0
|
||||
}
|
||||
/^\[.*]\[/{
|
||||
in_regop = 0
|
||||
if (status[$5] == 0) {
|
||||
status[$5] = 1;
|
||||
txns[cur_txn] = $5;
|
||||
cur_txn++;
|
||||
}
|
||||
}
|
||||
/ child:/ {
|
||||
txnid = substr($2, 3);
|
||||
status[txnid] = 2;
|
||||
}
|
||||
/txn_regop/ {
|
||||
txnid = $5
|
||||
in_regop = 1
|
||||
}
|
||||
/opcode:/ {
|
||||
if (in_regop == 1) {
|
||||
if ($2 == 1)
|
||||
status[txnid] = 2
|
||||
else if ($2 == 3)
|
||||
status[txnid] = 3
|
||||
else
|
||||
status[txnid] = 4
|
||||
}
|
||||
}
|
||||
END {
|
||||
for (i = 0; i < cur_txn; i++) {
|
||||
if (status[txns[i]] == 1)
|
||||
printf("%s\tABORT\n", txns[i]);
|
||||
else if (status[txns[i]] == 2)
|
||||
printf("%s\tCOMMIT\n", txns[i]);
|
||||
else if (status[txns[i]] == 3)
|
||||
printf("%s\tABORT\n", txns[i]);
|
||||
else if (status[txns[i]] == 4)
|
||||
printf("%s\tOTHER\n", txns[i]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user