Example #1
0
    def parseTable(self ,line):
        """parse table definition."""
        # get table name
        m = re_table_start.search(line)
        if m :
        	tblname = line[m.end():]
        	tblname = tblname.strip(' (\t')
        tbl = Table()
        tbl.name = tblname
        if len(self.tblcomments) > 0:
            tbl.comment = self.tblcomments.pop()
        # parse each field step by step.
        li = self.handle.readline()
        while li:
            # if it's the end of create table
            if li.strip(' \t\n') == ');': break
            if not self.parseField(tbl,li): return
            li = self.handle.readline()
        # save table
        for p in self.currPrimaryKeys:
            if tbl.getFields()[p]:
                tbl.getFields()[p].setPrimaryKey(True)

        self.currPrimaryKeys = []
        self.tables.append(tbl)
Example #2
0
    def parseTable(self, line):
        """parse table definition."""
        # get table name
        m = re_table_start.search(line)
        if m:
            tblname = line[m.end():]
            tblname = tblname.strip(' (\t')
        tbl = Table()
        tbl.name = tblname
        if len(self.tblcomments) > 0:
            tbl.comment = self.tblcomments.pop()
        # parse each field step by step.
        li = self.handle.readline()
        while li:
            # if it's the end of create table
            if li.strip(' \t\n') == ');': break
            if not self.parseField(tbl, li): return
            li = self.handle.readline()
        # save table
        for p in self.currPrimaryKeys:
            if tbl.getFields()[p]:
                tbl.getFields()[p].setPrimaryKey(True)

        self.currPrimaryKeys = []
        self.tables.append(tbl)
Example #3
0
def test():
    parse = SQLParse('')
    v = parse.splitString('id varchar(3)default getvalue(ffd)',' ' ,'\t' ,')')
    print v
    v = parse.splitString('; fim',' ','\t',';')
    print v

    testFld = 'id integer primary key, --@ ол╣Щ'

    table = Table('table1')
    parse.parseField(table,testFld)
    for n,t in table.getFields().items():
        print t.name
        print t.type
        print t.length
        print t.comment
Example #4
0
def test():
    parse = SQLParse('')
    v = parse.splitString('id varchar(3)default getvalue(ffd)', ' ', '\t', ')')
    print v
    v = parse.splitString('; fim', ' ', '\t', ';')
    print v

    testFld = 'id integer primary key, --@ ол╣Щ'

    table = Table('table1')
    parse.parseField(table, testFld)
    for n, t in table.getFields().items():
        print t.name
        print t.type
        print t.length
        print t.comment