db_manager: get fields' size from formatted type string (fix #6402)

This commit is contained in:
Giuseppe Sucameli 2012-10-03 01:19:29 +02:00
parent c74090d655
commit 99876ccb45

View File

@ -302,16 +302,14 @@ class PGTableField(TableField):
self.num, self.name, self.dataType, self.charMaxLen, self.modifier, self.notNull, self.hasDefault, self.default, typeStr = row self.num, self.name, self.dataType, self.charMaxLen, self.modifier, self.notNull, self.hasDefault, self.default, typeStr = row
self.primaryKey = False self.primaryKey = False
# convert the modifier to string (e.g. "precision,scale") # get modifier (e.g. "precision,scale") from formatted type string
if self.modifier != None and self.modifier != -1: trimmedTypeStr = QString(typeStr).trimmed()
trimmedTypeStr = QString(typeStr).trimmed() regex = QRegExp( "\((.+)\)$" )
if trimmedTypeStr.startsWith(self.dataType): startpos = regex.indexIn( trimmedTypeStr )
regex = QRegExp( "%s\s*\((.+)\)$" % QRegExp.escape(self.dataType) ) if startpos >= 0:
startpos = regex.indexIn( trimmedTypeStr ) self.modifier = regex.cap(1).trimmed()
if startpos >= 0: else:
self.modifier = regex.cap(1).trimmed() self.modifier = None
else:
self.modifier = None
# find out whether fields are part of primary key # find out whether fields are part of primary key
for con in self.table().constraints(): for con in self.table().constraints():