@@ -45,6 +45,7 @@ def __init__(self, banner, info):
4545 self .__inServicePack = False
4646 self .__release = None
4747 self .__version = ""
48+ self .__versionAlt = None
4849 self .__servicePack = ""
4950 self .__info = info
5051
@@ -74,17 +75,23 @@ def characters(self, data):
7475
7576 def endElement (self , name ):
7677 if name == "signature" :
77- if re .search (" %s[\.\ ]+" % self .__version , self .__banner ):
78- self .__feedInfo ("dbmsRelease" , self .__release )
79- self .__feedInfo ("dbmsVersion" , self .__version )
80- self .__feedInfo ("dbmsServicePack" , self .__servicePack )
78+ for version in (self .__version , self .__versionAlt ):
79+ if version and re .search (" %s[\.\ ]+" % version , self .__banner ):
80+ self .__feedInfo ("dbmsRelease" , self .__release )
81+ self .__feedInfo ("dbmsVersion" , self .__version )
82+ self .__feedInfo ("dbmsServicePack" , self .__servicePack )
83+ break
8184
8285 self .__version = ""
86+ self .__versionAlt = None
8387 self .__servicePack = ""
8488
8589 elif name == "version" :
8690 self .__inVersion = False
8791 self .__version = self .__version .replace (" " , "" )
92+
93+ match = re .search (r"\A(?P<major>\d+)\.00\.(?P<build>\d+)\Z" , self .__version )
94+ self .__versionAlt = "%s.0.%s.0" % (match .group ('major' ), match .group ('build' )) if match else None
8895
8996 elif name == "servicepack" :
9097 self .__inServicePack = False
0 commit comments