Your IP : 18.224.0.57
�
��bg$A � �V � d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlm Z d dlm
Z d d lm
Z
d
dlmZ d
dlmZ d
d
lmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z er$d dlm!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d
dlm*Z* G d � d!e� � Z+ G d"� d#e+� � Z, G d$� d%e� � Z- G d&� d'e� � Z. G d(� d)e.� � Z/ e
ed*d+� � e
ed*d+� � e
ed*d+� � e
ed*d+� � d,� � � � � � � � � Z0 e
e-d*d+� � dAd2�� � Z1 e
e/d*d+� � dBd3�� � Z2 e
e.d*d+� � dCd4�� � Z3dDd>�Z4 e
e j% d*d+� � dEd@�� � Z5dS )F� )�annotationsN)�Any)�Optional)�
TYPE_CHECKING)�Union��schema)�types)�compiles� )�alter_table)�AlterColumn)�
ColumnDefault)�
ColumnName)�ColumnNullable)�
ColumnType)�format_column_name)�format_server_default)�DefaultImpl� )�util)�compare)�sqla_compat)�_is_mariadb)�_is_type_bound)�Literal)�MySQLDDLCompiler)�DropConstraint)�
Constraint)�
TypeEngine)�_ServerDefaultc � � � e Zd ZdZdZej ddhddhfz ZddgZ d,d-� fd#�
Zd.� fd&�Z d/d(�Z
d)� Zd*� Zd+� Z
� xZS )0� MySQLImpl�mysqlF�BOOL�TINYINT�JSON�LONGTEXTzcharacter set ([\w\-_]+)zcollate ([\w\-_]+)N�
table_name�str�column_name�nullable�Optional[bool]�server_default�%Union[_ServerDefault, Literal[False]]�name�
Optional[str]�type_�Optional[TypeEngine]r �
existing_type�existing_server_default�Optional[_ServerDefault]�existing_nullable�
autoincrement�existing_autoincrement�comment�$Optional[Union[str, Literal[False]]]�existing_comment�kwr �return�Nonec �z �� t j || � � st j || � � r# t � � j ||f|||||
|| d�|�� |�| � |�|n||� � rM| � t ||||�|n||�|n|
�|
nd|�|n||dur|n| |�|n||
dur|
n|�� � � � d S |�|�|�|
durM| � t ||||�|n||�|n|
�|
nd|�|n||dur|n| |�|n||
dur|
n|�� � � � d S |dur(| � t ||||�� � � � d S d S )N)r, r2 r r4 r7 r. r5 TF)r �newnamer, r2 �defaultr8 r: r )
r �_server_default_is_identity�_server_default_is_computed�super�alter_column�$_is_mysql_allowed_functional_default�_exec�MySQLChangeColumn�MySQLModifyColumn�MySQLAlterDefault)�selfr) r+ r, r. r0 r2 r r4 r5 r7 r8 r9 r: r<