bgN5ddlmZddlZddlmZddlmZddlmZddlmZddlmZddl m Z dd l m Z dd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddl"m#Z#ddl$m%Z%ddl%m&Z&er6ddlm'Z'dd l(m)Z)dd!l(m*Z*dd"l+m,Z,dd#l-m.Z.dd$l-m/Z/dd%l0m1Z1dd&l2m3Z3dd'lm4Z4Gd(d)e#Z5Gd*d+eeZ6Gd,d-eeZ7e e6d.dFd4Z8e e7d.dGd5Z9e ed.dHd8Z:dId;Z;e ed.dJd=Z<e ed.dKd?Z=e ed.dLdAZ>e ed.dMdCZ?e e!d.dNdEZ@dS)O) annotationsN)Any)List)Optional) TYPE_CHECKING)Union)types)compiles)Column) CreateIndex) Executable) ClauseElement) AddColumn) alter_column) alter_table) ColumnDefault) ColumnName)ColumnNullable) ColumnType)format_column_name)format_server_default)format_table_name) format_type) RenameTable) DefaultImpl)util) sqla_compat)Literal) MSDDLCompiler) MSSQLCompiler) CursorResult)Index)Table) TableClause) TypeEngine)_ServerDefaultceZdZdZdZdZejddhfzZdZd1fd Z d2fd Z d1dZ d1fd Z d3d4fd# Z d5d&Zd6fd+ Z d7d8fd. Zd/Zfd0ZxZS)9 MSSQLImplmssqlTGOVARCHARNVARCHAR) minvaluemaxvalue nominvalue nomaxvaluecyclecacheorderon_nullr5returnNonectj|i||jd|j|_dS)Nmssql_batch_separator)super__init__ context_optsgetbatch_separator)selfargkw __class__s H/opt/cloudlinux/venv/lib64/python3.11/site-packages/alembic/ddl/mssql.pyr<zMSSQLImpl.__init__AsH#$$$$#044 #T%9   constructrOptional[CursorResult]ctj|g|Ri|}|jr!|jr||j|SN)r;_execas_sqlr? static_output)r@rFargsrBresultrCs rDrJzMSSQLImpl._execGsXy64666266 ; 54/ 5   t3 4 4 4 rEc@|d|jzdS)NzBEGIN TRANSACTION)rLcommand_terminator)r@s rD emit_beginzMSSQLImpl.emit_beginMs% .1HHIIIIIrEct|jr#|jr||jdSdSdSrI)r; emit_commitrKr?rL)r@rCs rDrSzMSSQLImpl.emit_commitPs^  ; 54/ 5   t3 4 4 4 4 4 5 5 5 5rENF table_namestr column_namenullableOptional[bool]server_default/Optional[Union[_ServerDefault, Literal[False]]]name Optional[str]type_Optional[TypeEngine]schema existing_typeexisting_server_defaultOptional[_ServerDefault]existing_nullablerBc B|||}d}n8|tjdn!| || }|}d}n|tjdd} tj|| stj|| r d} || d<| | d<t j||f||||| d| |durV| durR| dus|%|t||d||%t |||| |'t |||| dSdS) NzhMS-SQL ALTER COLUMN operations with NULL or NOT NULL require the existing_type or a new type_ be passed.zMS-SQL ALTER COLUMN operations that specify type_= should also specify a nullable= or existing_nullable= argument to avoid implicit conversion of NOT NULL columns to NULL.FTrYra)rWr]r_r`rcsys.default_constraints)r_rY)r_r[) r CommandErrorwarnr_server_default_is_identity_server_default_is_computedr;rrJ_ExecDropConstraint)r@rTrVrWrYr[r]r_r`rarcrB used_defaultrCs rDrzMSSQLImpl.alter_columnUs"   !& &'>'  *u/@(H"MEE   I/     2 3   D  4 3   D  L#1B ,CB( )   '/    & &<5+@+@&e33~7M '"#1 )$$!#1 %   GG KT !       rEindexr$c |jddpd}|jJ|D]B}||jjvr2|jt |t jC|t|dS)N mssql_include) kwargsr>tablec append_columnr sqltypesNullTyperJr )r@rlrncols rD create_indexzMSSQLImpl.create_indexs (($??E2 {&&&  J JC%+-'' ))&h6G*H*HIII ;u%%&&&&&rErqUnion[TableClause, Table]rows List[dict]c Z|jr|d|jj|zt j||fi||d|jj|zdSt j||fi|dS)NzSET IDENTITY_INSERT %s ONzSET IDENTITY_INSERT %s OFF)rKrJdialectidentifier_preparer format_tabler; bulk_insert)r@rqryrBrCs rDrzMSSQLImpl.bulk_inserts ; 3 JJ+,2??FFG    EGG t 2 2r 2 2 2 JJ,,2??FFG      EGG t 2 2r 2 2 2 2 2rEcolumn Column[Any]c |dd}|r%|t||d||dd}|r%|t||d||dd}|r$|t|||t j||fd|i|dS)Nmssql_drop_defaultFremssql_drop_checkzsys.check_constraintsmssql_drop_foreign_keyr_)poprJrj_ExecDropFKConstraintr; drop_column) r@rTrr_rB drop_default drop_checkdrop_fksrCs rDrzMSSQLImpl.drop_columnsvv2E::   JJ#(A6    VV.66   JJ#(?    662E::  J JJ,ZHH I I IJDDvDDDDDDrEcn|tjdd|}|tjdd|}||kS)Nz [\(\) \"\'])resub)r@inspector_columnmetadata_columnrendered_metadata_defaultrendered_inspector_defaults rDcompare_server_defaultz MSSQLImpl.compare_server_defaultsV % 0(*$=)) % & 1*,$>** &*-FFFrEct||\}}}|||s|j|jjrd}|||fS)NF)r;_compare_identity_defaultr primary_key)r@metadata_identityinspector_identitydiffignoredis_alterrCs rDrz#MSSQLImpl._compare_identity_defaultsj"'''"C"C 1# # gx  %"./")5")56 HWh&&rE)r7r8)rFrr7rG)NFNNNNNN)rTrUrVrUrWrXrYrZr[r\r]r^r_r\r`r^rarbrcrXrBrr7r8)rlr$r7r8)rqrxryrzrBrr7r8rI)rTrUrrr_r\r7r8)__name__ __module__ __qualname__ __dialect__transactional_ddlr?r type_synonymsidentity_attrs_ignorer<rJrQrSrrwrrrr __classcell__)rCs@rDr*r*/sKO-)Z1H0JJM        JJJJ555555$( "&* $.2<@,0WWWWWWWr ' ' ' '333333(!% EEEEEEE4GGG0'''''''''rEr*ceZdZdZd d Zd S)rjFtnamerUcolnameUnion[Column[Any], str]r]r_r\r7r8c>||_||_||_||_dSrI)rrr]r_)r@rrr]r_s rDr<z_ExecDropConstraint.__init__s$    rEN) rrUrrr]rUr_r\r7r8rrr inherit_cacher<rorErDrjrjs-M      rErjceZdZdZd d Zd S) rFrrUrrr_r\r7r8c0||_||_||_dSrI)rrr_)r@rrr_s rDr<z_ExecDropFKConstraint.__init__!s   rEN)rrUrrr_r\r7r8rrorErDrrs-MrErr+elementcompilerr"r7rUc |j|j|j|jf\}}}}d|||t ||||r|dznddzS)Nadeclare @const_name varchar(256) select @const_name = QUOTENAME([name]) from %(type)s where parent_object_id = object_id('%(schema_dot)s%(tname)s') and col_name(parent_object_id, parent_column_id) = '%(colname)s' exec('alter table %(tname_quoted)s drop constraint ' + @const_name).r)typerr tname_quoted schema_dot)r_rrr]r)rrrBr_rrr]s rD_exec_drop_col_constraintr)sn   %!FE7E G )(E6BB&,4fsll" JJ  rEc l|j|j|j}}}d||t||||r|dznddzS)Naydeclare @const_name varchar(256) select @const_name = QUOTENAME([name]) from sys.foreign_keys fk join sys.foreign_key_columns fkc on fk.object_id=fkc.constraint_object_id where fkc.parent_object_id = object_id('%(schema_dot)s%(tname)s') and col_name(fkc.parent_object_id, fkc.parent_column_id) = '%(colname)s' exec('alter table %(tname_quoted)s drop constraint ' + @const_name)rr)rrrr)r_rrr)rrrBr_rrs rD_exec_drop_col_fk_constraintrBsZ%^W]GO7EF G)(E6BB&,4fsll" JJ  rErr!c dt||j|jdt||jfi|SN )rrTr_mssql_add_columnrrrrBs rDvisit_add_columnrVsB Hg0'.AAAA7>88R888 rErrc $d|j|fi|zS)NzADD %s)get_column_specification)rrrBs rDrr^s% 7h7EE"EE EErErc t||j|jdt||jdt ||jd|jrdndS)NrNULLzNOT NULL)rrTr_rrVrr`rWrs rDvisit_column_nullablerdsf Hg0'.AAAAXw23333Hg34444"2 2  rErc t||j|jdt||jdt ||jS)Nz ADD DEFAULT z FOR )rrTr_rdefaultrrVrs rDvisit_column_defaultrpsP Hg0'.AAAAh88888W%8999 rErc dt||j|jdt||jdt||jdS)NEXEC sp_rename 'r', z , 'COLUMN')rrTr_rrVnewnamers rDvisit_rename_columnr}sU (G$6GGGG8W%899998W_5555 rErc t||j|jdt||jdt ||jSr)rrTr_rrVrr]rs rDvisit_column_typersP Hg0'.AAAAXw23333Hgm,,, rErc ldt||j|jdt||jdS)Nrr)rrTr_new_table_namers rDvisit_rename_tablers? (G$6GGGG(G$:DAAA rE)rrjrr"r7rU)rrrr"r7rU)rrrr!r7rU)rr!rrr7rU)rrrr!r7rU)rrrr!r7rU)rrrr!r7rU)rrrr!r7rU)rrrr!r7rU)A __future__rrtypingrrrrr sqlalchemyr rtsqlalchemy.ext.compilerr sqlalchemy.schemar r sqlalchemy.sql.baser sqlalchemy.sql.elementsrbaserrrrrrrrrrrrimplrrrrr sqlalchemy.dialects.mssql.baser!r"sqlalchemy.engine.cursorr#sqlalchemy.sql.schemar$r%sqlalchemy.sql.selectabler&sqlalchemy.sql.type_apir'r(r*rjrrrrrrrrrrrorErDrs""""""  ((((((,,,,,,$$$$$$))))))******111111 $$$$$$''''''###### %<<<<<<<<<<<<555555++++++++++++555555222222$$$$$$\'\'\'\'\' \'\'\'~     *m    J   w''('0  ))*)& )WFFFF  .'""#" -!!   "!  *g *g +w rE