From e56551d9a8330fe2d12f03de627222e2e604ce2f Mon Sep 17 00:00:00 2001 From: JohnE Date: Fri, 12 Jun 2015 15:10:05 -0700 Subject: [PATCH] WIP: import JSON file --- libs/fingerprint.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/libs/fingerprint.py b/libs/fingerprint.py index 82dde61..a2b6f47 100644 --- a/libs/fingerprint.py +++ b/libs/fingerprint.py @@ -112,6 +112,8 @@ class TableDefinition: self.tableName = "" self.sqlStr = "" self.fields = {} + self.primarykeyFlag = False + self.uniqueFlag = False def loadTable(self, tableName, sqlStr): @@ -196,6 +198,14 @@ class TableDefinition: if results: field = self.fields[results.group(1)] field['primarykey'] = True + self.primarykeyFlag = True + return False + # UNIQUE(field_name, + results = re.match(r'UNIQUE\((?:[`|\"|\'])*(\w+)(?:[`|\"|\'])*\,?', sqltext) + if results: + field = self.fields[results.group(1)] + field['unique'] = True + self.uniqueFlag = True; return False # custom_ringtone TEXT results = re.match(r'(?:[`|\"|\'])*(\w+)(?:[`|\"|\'])*\s+(\w+)', sqltext) @@ -204,10 +214,19 @@ class TableDefinition: newField['datatype'] = results.group(2) return newField # field_name) - results = re.match(r'(?:[`|\"|\'])*(\w+)(?:[`|\"|\'])*\)', sqltext) + results = re.match(r'(?:[`|\"|\'])*(\w+)(?:[`|\"|\'])*(\)?)', sqltext) if results: field = self.fields[results.group(1)] - field['primarykey'] = True + field = self.fields[results.group(2)] + if (self.primarykeyFlag): + field['primarykey'] = True + if (field): + self.primarykeyFlag = False + elif (self.uniqueFlag): + field['unique'] = True + if (field): + self.uniqueFlag = False + return False print 'INFO: field definition not recognized: "' + sqltext + '"'