1.1 --- a/tools/showplan.py Thu Jul 05 16:01:33 2018 +0200
1.2 +++ b/tools/showplan.py Thu Jul 05 19:34:04 2018 +0200
1.3 @@ -1,14 +1,32 @@
1.4 #!/usr/bin/env python
1.5
1.6 +from os.path import abspath, exists, join, split
1.7 import sys
1.8
1.9 +# Find the modules.
1.10 +
1.11 +try:
1.12 + import encoders
1.13 +except ImportError:
1.14 + parent = abspath(split(split(__file__)[0])[0])
1.15 + if split(parent)[1] == "Lichen":
1.16 + sys.path.append(parent)
1.17 +
1.18 +from encoders import decode_access_location
1.19 +
1.20 if len(sys.argv) < 3:
1.21 - print >>sys.stderr, "Usage: %s <filename> <access>" % sys.argv[0]
1.22 + print >>sys.stderr, "Usage: %s <directory> <access>" % sys.argv[0]
1.23 sys.exit(1)
1.24
1.25 -filename = sys.argv[1]
1.26 +dirname = sys.argv[1]
1.27 access = sys.argv[2]
1.28
1.29 +filename = join(dirname, "_deduced", "attribute_plans")
1.30 +
1.31 +if not exists(filename):
1.32 + print >>sys.stderr, "Directory %s does not provide file %s." % (dirname, filename)
1.33 + sys.exit(1)
1.34 +
1.35 f = open(filename)
1.36 try:
1.37 for line in f.xreadlines():
1.38 @@ -17,17 +35,21 @@
1.39 continue
1.40
1.41 location, name, test, test_type, base, traversed, traversal_modes, \
1.42 - attrnames, context, context_test, first_method, final_method, attr, \
1.43 - accessor_kinds = columns
1.44 + traversal_attrnames, context, context_test, \
1.45 + first_method, final_method, attr, accessor_kinds = columns
1.46 +
1.47 + path, _name, attrnames, access_number = decode_access_location(location)
1.48
1.49 print "Location:", location
1.50 print "Name:", name
1.51 + print "Attribute names:", attrnames
1.52 + print "Access number:", access_number
1.53 print "Test:", test
1.54 print "Test type:", test_type
1.55 print "Base:", base
1.56 print "Traversed:", traversed
1.57 print "Traversal modes:", traversal_modes
1.58 - print "Attribute names:", attrnames
1.59 + print "Traversed attributes:", traversal_attrnames
1.60 print "Context:", context
1.61 print "Context test:", context_test
1.62 print "First method:", first_method