diff options
author | unknown <tim@threads.polyesthetic.msg> | 2001-03-04 19:42:05 -0500 |
---|---|---|
committer | unknown <tim@threads.polyesthetic.msg> | 2001-03-04 19:42:05 -0500 |
commit | ec6ae091617bdfdca9e65e8d3e65b950d234f676 (patch) | |
tree | 9dd732e08dba156ee3d7635caedc0dc3107ecac6 /bdb/db_printlog/dbname.awk | |
parent | 87d70fb598105b64b538ff6b81eef9da626255b1 (diff) | |
download | mariadb-git-ec6ae091617bdfdca9e65e8d3e65b950d234f676.tar.gz |
Import changeset
Diffstat (limited to 'bdb/db_printlog/dbname.awk')
-rw-r--r-- | bdb/db_printlog/dbname.awk | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/bdb/db_printlog/dbname.awk b/bdb/db_printlog/dbname.awk new file mode 100644 index 00000000000..d070335127c --- /dev/null +++ b/bdb/db_printlog/dbname.awk @@ -0,0 +1,79 @@ +# $Id: dbname.awk,v 1.2 2000/08/03 15:06:39 ubell Exp $ +# +# Take a comma-separated list of database names and spit out all the +# log records that affect those databases. + +NR == 1 { + nfiles = 0 + while ((ndx = index(DBNAME, ",")) != 0) { + filenames[nfiles] = substr(DBNAME, 1, ndx - 1) 0; + DBNAME = substr(DBNAME, ndx + 1, length(DBNAME) - ndx); + files[nfiles] = -1 + nfiles++ + } + filenames[nfiles] = DBNAME 0; + files[nfiles] = -1 + myfile = -1; +} + +/^\[.*log_register/ { + register = 1; +} +/opcode:/ { + if (register == 1) { + if ($2 == 1) + register = 3; + else + register = $2; + } +} +/name:/ { + if (register >= 2) { + for (i = 0; i <= nfiles; i++) { + if ($2 == filenames[i]) { + if (register == 2) { + printme = 0; + myfile = -1; + files[i] = -1; + } else { + myfile = i; + } + break; + } + } + } + register = 0; +} +/fileid:/{ + if (myfile != -1) { + files[myfile] = $2; + printme = 1; + register = 0; + myfile = -1; + } else + for (i = 0; i <= nfiles; i++) + if ($2 == files[i]) { + printme = 1 + break; + } +} + + + +/^\[/{ + if (printme == 1) { + printf("%s\n", rec); + printme = 0 + } + rec = ""; + + rec = $0 +} +/^ /{ + rec = sprintf("%s\n%s", rec, $0); +} + +END { + if (printme == 1) + printf("%s\n", rec); +} |