def _get_column_info(self, name, format_type, *args, **kwargs):
"""
When the PGDialect or its subclasses get column information, if the type
is unknown and certain conditions are met, create a new type dynamically.
This wraps the original function (see sqlalchemy's
dialects/postgresql/base.py file).
"""
attype = re.sub(r'\(.*\)', '', format_type)
attype = re.sub(r'\[\]', '', attype)
info = gci(self, name, format_type, *args, **kwargs)
if (info['type'] == sqlalchemy.sql.sqltypes.NULLTYPE and
attype.lower() not in dialect.base.ischema_names and
attype not in KnownTypes):
newtype = type(str(attype), (DynamicType,), {'name': str(attype)})
newtype.__visit_name__ = attype
dialect.base.ischema_names[attype.lower()] = newtype
KnownTypes[attype] = newtype
info = gci(self, name, format_type, *args, **kwargs)
return info
postgres_sqlalchemy.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录