관리-도구
편집 파일: mysql.cpython-311.pyc
� �܋f$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<