def parse_uqs():
    UNIQUE_PATTERN = '(?:CONSTRAINT "?(.+?)"? +)?UNIQUE *\\((.+?)\\)'
    INLINE_UNIQUE_PATTERN = '(?:(".+?")|(?:[\\[`])?([a-z0-9_]+)(?:[\\]`])?) +[a-z0-9_ ]+? +UNIQUE'
    for match in re.finditer(UNIQUE_PATTERN, table_data, re.I):
        (name, cols) = match.group(1, 2)
        (yield (name, list(self._find_cols_in_sig(cols))))
    for match in re.finditer(INLINE_UNIQUE_PATTERN, table_data, re.I):
        cols = list(self._find_cols_in_sig((match.group(1) or match.group(2))))
        (yield (None, cols))
def parse_uqs():
    UNIQUE_PATTERN = '(?:CONSTRAINT "?(.+?)"? +)?UNIQUE *\\((.+?)\\)'
    INLINE_UNIQUE_PATTERN = '(?:(".+?")|(?:[\\[`])?([a-z0-9_]+)(?:[\\]`])?) +[a-z0-9_ ]+? +UNIQUE'
    for match in re.finditer(UNIQUE_PATTERN, table_data, re.I):
        (name, cols) = match.group(1, 2)
        (yield (name, list(self._find_cols_in_sig(cols))))
    for match in re.finditer(INLINE_UNIQUE_PATTERN, table_data, re.I):
        cols = list(self._find_cols_in_sig((match.group(1) or match.group(2))))
        (yield (None, cols))