def _get_column_info(self, name, type_, nullable, default, primary_key, generated, persisted, tablesql):
    if generated:
        type_ = re.sub('generated', '', type_, flags=re.IGNORECASE)
        type_ = re.sub('always', '', type_, flags=re.IGNORECASE).strip()
    coltype = self._resolve_type_affinity(type_)
    if (default is not None):
        default = str(default)
    colspec = {'name': name, 'type': coltype, 'nullable': nullable, 'default': default, 'autoincrement': 'auto', 'primary_key': primary_key}
    if generated:
        sqltext = ''
        if tablesql:
            pattern = '[^,]*\\s+AS\\s+\\(([^,]*)\\)\\s*(?:virtual|stored)?'
            match = re.search((re.escape(name) + pattern), tablesql, re.IGNORECASE)
            if match:
                sqltext = match.group(1)
        colspec['computed'] = {'sqltext': sqltext, 'persisted': persisted}
    return colspec
def _get_column_info(self, name, type_, nullable, default, primary_key, generated, persisted, tablesql):
    if generated:
        type_ = re.sub('generated', , type_, flags=re.IGNORECASE)
        type_ = re.sub('always', , type_, flags=re.IGNORECASE).strip()
    coltype = self._resolve_type_affinity(type_)
    if (default is not None):
        default = str(default)
    colspec = {'name': name, 'type': coltype, 'nullable': nullable, 'default': default, 'autoincrement': 'auto', 'primary_key': primary_key}
    if generated:
        sqltext = 
        if tablesql:
            pattern = '[^,]*\\s+AS\\s+\\(([^,]*)\\)\\s*(?:virtual|stored)?'
            match = re.search((re.escape(name) + pattern), tablesql, re.IGNORECASE)
            if match:
                sqltext = match.group(1)
        colspec['computed'] = {'sqltext': sqltext, 'persisted': persisted}
    return colspec