+
    ‡)Ùj“A ã                   óü   € ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	H
t
HtHtHt ^ RIHtHtHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHtHt ^ RIHt ] P<                  ! R4      tR t R t!R t" ! R R4      t#R# )é    N)Údatetime)Úsettings)Ú
FieldError)ÚColumnsÚExpressionsÚForeignKeyNameÚ	IndexNameÚ	StatementÚTable)Únames_digestÚsplit_identifierÚtruncate_name)Ú
DeferrableÚIndex)ÚCompositePrimaryKey)ÚQuery)ÚTransactionManagementErrorÚatomic)Útimezonezdjango.db.backends.schemac                óÀ   € V P                   pVP                  '       d   R# VP                  '       d   VP                  R.8X  d   R# VP                  VP                  9   # )zn
When altering the given field, must constraints on its model from the given
relation be temporarily dropped?
FNT)ÚfieldÚmany_to_manyÚprimary_keyÚ	to_fieldsÚname)ÚrelationÚaltered_fieldr   s   && ÚW/var/www/eggtrainer/venv/lib/python3.14/site-packages/django/db/backends/base/schema.pyÚ_is_relevant_relationr      sM   € ð
 �N‰N€EØ××ÐáØ× × Ð  U§_¡_¸¸Ô%>áà×Ñ §¡Ñ0Ð0ó    c           	      ó~   € \        V P                  P                  R RRR R7      \        P                  ! R4      R7      # )FT)ÚforwardÚreverseÚinclude_hiddenÚinclude_parentsr   )Úkey)ÚsortedÚ_metaÚ_get_fieldsÚoperatorÚ
attrgetter©Úmodels   &r   Ú_all_related_fieldsr.   )   sB   € äØ�‰×ÑØØØØ!ð	 	 ó 	
ô ×Ò Ó'ôð r    c              #   ó  a a"  € \        V 3R  l\        S P                  4       4       V3R l\        SP                  4       4       4      pV F2  w  r4W43x € \        VP                  VP                  4       Rj  x€L
  K4  	  R#  L
5i)c              3   óP   <"  € T F  p\        VS4      '       g   K  Vx € K  	  R # 5i©N©r   )Ú.0ÚobjÚ	old_fields   & €r   Ú	<genexpr>Ú+_related_non_m2m_objects.<locals>.<genexpr>:   ó$   øé € ð 	
á;�Ü$ S¨)×4÷ ŠCÛ;ùó   ƒ&œ
&c              3   óP   <"  € T F  p\        VS4      '       g   K  Vx € K  	  R # 5ir1   r2   )r3   r4   Ú	new_fields   & €r   r6   r7   ?   r8   r9   N)Úzipr.   r-   Ú_related_non_m2m_objectsÚremote_field)r5   r;   Úrelated_fieldsÚold_relÚnew_rels   ff   r   r=   r=   6   s   ùé € ô ô	
ä*¨9¯?©?Ô;ó	
ô
	
ä*¨9¯?©?Ô;ó	
ó€Nó +ÑˆØÐÒÜ+Ø× Ñ Ø× Ñ ó
÷ 	
ò 	
ó +ñ	
ùs   „A6BÁ:BÁ;Bc                   ó  a € ] tR t^Mt o RtRtRtRtRtRt	Rt
RtR	tR
tRtRt]tRtRtRtRtRtRtRtRtRt]tRt]tRtRtRt]t Rt!Rt"Rt#Rt$Rt%]t&Rt'Rt(R t)R|R! lt*R" t+R# t,R~R$ lt-R% t.R& t/R' t0RR( lt1R) t2R* t3R+ t4R, t5R- t6R. t7]8R/ 4       t9R0 t:R1 t;R2 t<R3 t=R4 t>R5 t?R6 t@R7 tAR8 tBR9 tCR: tDR; tER< tFR= tGR> tHR? tIR@ tJRRA ltKRB tLRRC ltMRD tNRRE ltORRF ltPRG tQRH tRRI tSRJ tTR€RL ltUR�RM ltVRN tWRO tXRPRRQRRRRKRSRKRTRRUR}RVRRWR}RXRRYRRZR/R[ ltYR�R\ ltZR] t[R^ t\R_ t]R` t^R�Ra lt_Rb t`Rc taRd tbRe tcRf tdRg teRh tfRi tgRj thR‚Rk ltiRƒRl ltjR„Rm ltkR…Rn ltlRƒRo ltmRp tnRq toRr tpRs tqR†Rt ltrRu tsRRv lttRw tuRx tvR‡Ry ltwR~Rz ltxR{tyV tzR# )ˆÚBaseDatabaseSchemaEditorz¸
This class and its subclasses are responsible for emitting schema-changing
statements to the databases - model creation/removal/alteration, field
renaming, index fiddling, and so on.
z'CREATE TABLE %(table)s (%(definition)s)z1ALTER TABLE %(old_table)s RENAME TO %(new_table)sz7ALTER TABLE %(table)s SET TABLESPACE %(new_tablespace)szDROP TABLE %(table)s CASCADEz:ALTER TABLE %(table)s ADD COLUMN %(column)s %(definition)sz!ALTER TABLE %(table)s %(changes)sz2ALTER COLUMN %(column)s TYPE %(type)s%(collation)sz%ALTER COLUMN %(column)s DROP NOT NULLz$ALTER COLUMN %(column)s SET NOT NULLz/ALTER COLUMN %(column)s SET DEFAULT %(default)sz$ALTER COLUMN %(column)s DROP DEFAULTz4ALTER TABLE %(table)s DROP COLUMN %(column)s CASCADEzDALTER TABLE %(table)s RENAME COLUMN %(old_column)s TO %(new_column)szFUPDATE %(table)s SET %(column)s = %(default)s WHERE %(column)s IS NULLz"UNIQUE (%(columns)s)%(deferrable)szCHECK (%(check)s)z.ALTER TABLE %(table)s DROP CONSTRAINT %(name)sz"CONSTRAINT %(name)s %(constraint)szPRIMARY KEY (%(columns)s)z?ALTER TABLE %(table)s ADD CONSTRAINT %(name)s CHECK (%(check)s)zbALTER TABLE %(table)s ADD CONSTRAINT %(name)s UNIQUE%(nulls_distinct)s (%(columns)s)%(deferrable)sz|ALTER TABLE %(table)s ADD CONSTRAINT %(name)s FOREIGN KEY (%(column)s) REFERENCES %(to_table)s (%(to_column)s)%(deferrable)sNzQCREATE INDEX %(name)s ON %(table)s (%(columns)s)%(include)s%(extra)s%(condition)szaCREATE UNIQUE INDEX %(name)s ON %(table)s (%(columns)s)%(include)s%(nulls_distinct)s%(condition)sz/ALTER INDEX %(old_name)s RENAME TO %(new_name)szDROP INDEX %(name)szGALTER TABLE %(table)s ADD CONSTRAINT %(name)s PRIMARY KEY (%(columns)s)zDROP PROCEDURE %(procedure)sz)COMMENT ON TABLE %(table)s IS %(comment)sz5COMMENT ON COLUMN %(table)s.%(column)s IS %(comment)sc                ó®   € Wn         W n        V P                  '       d   . V n        V P                   P                  P                  ;'       d    TV n        R # r1   )Ú
connectionÚcollect_sqlÚcollected_sqlÚfeaturesÚcan_rollback_ddlÚatomic_migration)ÚselfrE   rF   r   s   &&&&r   Ú__init__Ú!BaseDatabaseSchemaEditor.__init__–   sA   € Ø$ŒØ&ÔØ××ÐØ!#ˆDÔØ $§¡× 8Ñ 8× IÑ I× TÐ TÈfˆÖr    c                ó´   € . V n         V P                  '       d?   \        V P                  P                  4      V n        V P                  P                  4        V # r1   )Údeferred_sqlrJ   r   rE   ÚaliasÚ	__enter__)rK   s   &r   rQ   Ú"BaseDatabaseSchemaEditor.__enter__Ÿ   sA   € ØˆÔØ× × Ð Ü  §¡×!6Ñ!6Ó7ˆDŒKØ�K‰K×!Ñ!Ô#Øˆr    c                ó¸   € Vf&   V P                    F  pV P                  VR 4       K  	  V P                  '       d   V P                  P	                  WV4       R # R # r1   )rO   ÚexecuterJ   r   Ú__exit__)rK   Úexc_typeÚ	exc_valueÚ	tracebackÚsqls   &&&& r   rU   Ú!BaseDatabaseSchemaEditor.__exit__¦   sK   € ØÒØ×(Ô(�Ø—‘˜S $Ö'ñ )à× × Ð Ø�K‰K× Ñ  °iÖ@ñ !r    c           	     ó  € V P                   '       gN   V P                  P                  '       d2   V P                  P                  P                  '       g   \        R4      h\        V4      p\        P                  RWRVRV/R7       V P                   '       d™   VP                  4       P                  R4      '       d   RMRpVeI   V P                  P                  V\        \        V P                  V4      4      ,          V,           4       R# V P                  P                  W,           4       R# V P                  P!                  4       ;_uu_ 4       pVP#                  W4       RRR4       R#   + '       g   i     R# ; i)	z:Execute the given SQL statement, with optional parameters.ziExecuting DDL statements while in a transaction on databases that can't perform a rollback is prohibited.z%s; (params %r)ÚparamsrY   )ÚextraÚ;Ú N)rF   rE   Úin_atomic_blockrH   rI   r   ÚstrÚloggerÚdebugÚrstripÚendswithrG   ÚappendÚtupleÚmapÚquote_valueÚcursorrT   )rK   rY   r\   Úendingrj   s   &&&  r   rT   Ú BaseDatabaseSchemaEditor.execute¯   s   € ð
 × × Ð Ø—‘×/×/Ð/Ø—O‘O×,Ñ,×=×=Ð=ä,ð?óð ô
 �#‹hˆä�‰Ø˜s°8¸VÀUÈCÐ2Pð 	ô 	
ð ××ÐØŸ:™:›<×0Ñ0°×5Ò5‘R¸3ˆFØÒ!Ø×"Ñ"×)Ñ)Øœ5¤ T×%5Ñ%5°vÓ!>Ó?Õ?À6ÕIöð ×"Ñ"×)Ñ)¨#­,Ö7à—‘×'Ñ'×)Ô)¨VØ—‘˜sÔ+÷ *×)×)Ò)ús   ÅE/Å/F 	c                óL   € V P                   P                  P                  V4      # r1   )rE   ÚopsÚ
quote_name)rK   r   s   &&r   ro   Ú#BaseDatabaseSchemaEditor.quote_nameÎ   s   € Ø�‰×"Ñ"×-Ñ-¨dÓ3Ð3r    c           
     ó¼	  a a€ SP                   P                   FX  pV Uu. uF  pSP                   P                  V4      NK   	  ppS P                  P	                  S P                  SV4      4       KZ  	  . p. pSP                   P                   EF§  pS P                  SV4      w  rxVf   K  VP                  S P                  R7      p	V	R,          '       d"   VRS P                  V	,          ,           ,          pVP                  S P                  R7      p
V
'       d   VRV
,          ,          pVP                  V4       VP                  '       Ed3   VP                  '       Ed    VP                  P                  P                   P                   pVP                  P                  P                   P                  VP                  P"                  4      P$                  pS P&                  '       dE   VRS P&                  RS P)                  V4      RS P)                  V4      /,          ,           ,          pMRS P                  P*                  P,                  '       d-   S P                  P	                  S P/                  SVR4      4       VP	                  S P)                  VP$                  4      : RV: 24       VP1                  4       R9   g   EK=  S P                  P2                  P5                  SP                   P                   VP$                  4      pV'       g   EKŒ  S P                  P                  V4       EKª  	  . pV'       dJ   SP                   P6                   F.  pS P                  P	                  VP9                  SS 4      4       K0  	  M0VP                  VV 3R lSP                   P6                   4       4       SP                   P:                  p\=        V\>        4      '       d+   VP	                  S PA                  VPB                  4      4       S PD                  R	S P)                  SP                   P                   4      R
RPG                  R . VOVO 4       4      /,          pSP                   PH                  '       dR   S P                  P2                  PK                  SP                   PH                  4      pV'       d   VRV,           ,          pVV3# u upi )z-Take a model and return its table definition.©rE   ÚcheckÚ z %sÚto_tableÚ	to_columnú_fk_%(to_table)s_%(to_column)sc              3   óH   <"  € T F  pVP                  SS4      x € K  	  R # 5ir1   )Úconstraint_sql)r3   Ú
constraintr-   rK   s   & €€r   r6   Ú5BaseDatabaseSchemaEditor.table_sql.<locals>.<genexpr>  s(   øé € ð #á"9�Jð ×)Ñ)¨%°×6Ð6Û"9ùs   ƒ"ÚtableÚ
definitionú, c              3   óL   "  € T F  pV'       g   K  \        V4      x € K  	  R # 5ir1   )ra   )r3   Ú	statements   & r   r6   r{   &  s"   é € ð $á!A�IÜô ”�I—�Û!Aùs   ‚
$‘$)Ú	AutoFieldÚBigAutoFieldÚSmallAutoField)&r(   Úunique_togetherÚ	get_fieldrO   rf   Ú_create_unique_sqlÚlocal_fieldsÚ
column_sqlÚdb_parametersrE   Úsql_check_constraintÚdb_type_suffixÚextendr>   Údb_constraintr-   Údb_tableÚ
field_nameÚcolumnÚsql_create_inline_fkro   rH   Úsupports_foreign_keysÚ_create_fk_sqlÚget_internal_typern   Úautoinc_sqlÚconstraintsÚ
create_sqlÚpkÚ
isinstancer   Ú_pk_constraint_sqlÚcolumnsÚsql_create_tableÚjoinÚdb_tablespaceÚtablespace_sql)rK   r-   Úfield_namesr   ÚfieldsÚcolumn_sqlsr\   r}   Úextra_paramsÚ	db_paramsÚcol_type_suffixru   rv   r•   Úconstraint_sqlsrz   r˜   rY   rŸ   s   ff                 r   Ú	table_sqlÚ"BaseDatabaseSchemaEditor.table_sqlÑ   sç  ù€ ð !Ÿ;™;×6Ô6ˆKÙ@KÓLÁ°u�e—k‘k×+Ñ+¨EÖ2ÁˆFÐLØ×Ñ×$Ñ$ T×%<Ñ%<¸UÀFÓ%KÖLñ 7ð ˆØˆØ—[‘[×-Õ-ˆEà'+§¡°u¸eÓ'DÑ$ˆJØÒ!Ùà×+Ñ+°t·±Ð+ÓGˆIØ˜×!Ô!Ø˜c D×$=Ñ$=À	Õ$IÕIÕI�
à#×2Ñ2¸d¿o¹oÐ2ÓNˆOßØ˜e oÕ5Õ5�
Ø�M‰M˜,Ô'à×!×!Ñ! e×&9×&9Ñ&9Ø ×-Ñ-×3Ñ3×9Ñ9×BÑB�Ø!×.Ñ.×4Ñ4×:Ñ:×DÑDØ×&Ñ&×1Ñ1óç‘&ð ð ×,×,Ð,Ø #¨×(AÑ(AØ" D§O¡O°HÓ$=Ø# T§_¡_°YÓ%?ðEõ )õ #õ ‘Jð —_‘_×-Ñ-×C×CÐCØ×%Ñ%×,Ñ,Ø×+Ñ+Ø! 5Ð*Jóôð ×Ñð —O‘O E§L¡LÖ1Úðôð ×&Ñ&Ó(ð -÷ ð
 #Ÿo™o×1Ñ1×=Ñ=Ø—K‘K×(Ñ(¨%¯,©,ó�÷ ’;Ø×%Ñ%×,Ñ,¨[×9ñe .ðp ˆßð $Ÿk™k×5Ô5�
Ø×!Ñ!×(Ñ(¨×)>Ñ)>¸uÀdÓ)KÖLò 6ð ×"Ñ"õ #à"'§+¡+×"9Ò"9ó#ô ð
 �[‰[�^‰^ˆÜ�bÔ-×.Ò.Ø×"Ñ" 4×#:Ñ#:¸2¿:¹:Ó#FÔGà×#Ñ#Ø�T—_‘_ U§[¡[×%9Ñ%9Ó:Ø˜$Ÿ)™)ñ $à!A ;Ð!A°Ñ!Aó$ó ð'
õ 
ˆð �;‰;×$×$Ð$Ø!Ÿ_™_×0Ñ0×?Ñ?Ø—‘×)Ñ)óˆN÷ Ø�s˜^Õ+Õ+�Ø�Fˆ{Ðùòy Ms    $Sc              #  ób  "  € Vx € VP                  R 4      ;p'       d   V P                  V4      x € V P                  P                  P                  '       d0   VP
                  '       d   V P                  VP
                  4      x € VP                  pVP                  4       '       d.   V P                  V4      w  ršRV	 2x € VP                  V
4       RpT;'       d?    V P                  V4      '       * ;'       d!    T;'       d    V P                  V4      '       * pV'       dƒ   V P                  V4      pVen   RV P                  V4      ,           pV P                  P                  P                  '       d   WÀP!                  V4      ,          x € MVx € VP#                  V4       VP$                  '       d;   VP&                  '       g)   V P                  P                  P(                  '       d   RpVP*                  '       d*   V P-                  V4      w  rÞVP                  V4       Vx € M7V'       g   Rx € M*V P                  P                  P.                  '       g   Rx € VP&                  '       d   Rx € MVP0                  '       d   Rx € VP2                  ;'       g    VP4                  P2                  pV'       dh   V P                  P                  P6                  '       d@   VP0                  '       d,   V P                  P8                  P;                  VRR	7      x € R# R# R# R# 5i)
Ú	collationzDEFAULT FNTzNOT NULLÚNULLzPRIMARY KEYÚUNIQUE)Úinline)ÚgetÚ_collate_sqlrE   rH   Úsupports_comments_inlineÚ
db_commentÚ_comment_sqlÚnullÚhas_db_defaultÚdb_default_sqlrŒ   Úskip_defaultÚskip_default_on_alterÚeffective_defaultÚ_column_default_sqlÚrequires_literal_defaultsÚprepare_defaultrf   Úempty_strings_allowedr   Ú!interprets_empty_strings_as_nullsÚ	generatedÚ_column_generated_sqlÚimplied_column_nullÚuniquerž   r(   Úsupports_tablespacesrn   rŸ   )rK   Úcolumn_db_typer\   r-   r   Úfield_db_paramsÚinclude_defaultrª   r³   Údefault_sqlÚdefault_paramsÚdefault_valueÚcolumn_defaultÚgenerated_sqlÚgenerated_paramsÚ
tablespaces   &&&&&&&         r   Ú_iter_column_sqlÚ)BaseDatabaseSchemaEditor._iter_column_sql6  sƒ  é € ð ÒØ'×+Ñ+¨KÓ8Ð8ˆ9Ö8Ø×#Ñ# IÓ.Ò.Ø�?‰?×#Ñ#×<×<Ð<À×AQ×AQÐAQØ×#Ñ# E×$4Ñ$4Ó5Ò5à�z‰zˆà×Ñ×!Ò!Ø*.×*=Ñ*=¸eÓ*DÑ'ˆKØ˜[˜MÐ*Ò*Ø�M‰M˜.Ô)Ø#ˆOð ÷ =ð =Ø×%Ñ% eÓ,Ô,÷=ð =ð ×;Ð;˜$×4Ñ4°UÓ;Ô<ð 	÷ Ø ×2Ñ2°5Ó9ˆMØÒ(Ø!+¨d×.FÑ.FÀuÓ.MÕ!M�Ø—?‘?×+Ñ+×E×EÐEð )×+?Ñ+?ÀÓ+NÕNÓNà(Ò(Ø—M‘M -Ô0ð ×'×'Ð'Ø×%×%Ð%Ø—‘×(Ñ(×J×JÐJàˆDØ�?�?ˆ?Ø.2×.HÑ.HÈÓ.OÑ+ˆMØ�M‰MÐ*Ô+ØÓßØÓØ—‘×)Ñ)×=×=Ð=ØŠLØ××ÐØÓØ�\�\ˆ\ØŠNà×(Ñ(×EÐE¨E¯K©K×,EÑ,Eˆ
çØ—‘×(Ñ(×=×=Ð=Ø——�à—/‘/×%Ñ%×4Ñ4°ZÈÐ4ÓMÔMñ ñ >ñ ùs€   ‚AL/ÁL/Á+>L/Â*5L/Ã L/Ã>	L/ÄL/Ä'AL/Å:A L/Æ;L/Ç%L/Ç3L/È0L/È8*L/É#L/É9L/ÊL/Ê'L/Ë%L/Ë,L/Ë>1L/c           
     óª   € VP                  V P                  R7      pVR,          pVf   R# . pRP                  V P                  VVVVVV4      4      V3# )zn
Return the column definition for a field. The field must already have
had set_attributes_from_name() called.
rr   Útypert   ©NN)r‰   rE   r�   rÍ   )rK   r-   r   rÅ   rÄ   rÃ   r\   s   &&&&   r   rˆ   Ú#BaseDatabaseSchemaEditor.column_sqly  sq   € ð  ×-Ñ-¸¿¹Ð-ÓIˆØ(¨Õ0ˆàÒ!ØÐØˆà�H‰Hà×%Ñ%Ø"ØØØØ#Ø#óó
ð ð
ð 	
r    c                ó   € R# )zi
Some backends don't accept default values for certain columns types
(i.e. MySQL longtext and longblob).
F© ©rK   r   s   &&r   r¶   Ú%BaseDatabaseSchemaEditor.skip_default”  ó   € ñ
 r    c                ó   € R# )z‡
Some backends don't accept default values for certain columns types
(i.e. MySQL longtext and longblob) in the ALTER COLUMN statement.
FrÔ   rÕ   s   &&r   r·   Ú.BaseDatabaseSchemaEditor.skip_default_on_alter›  r×   r    c                ó   € \        R4      h)zE
Only used for backends which have requires_literal_defaults feature
z€subclasses of BaseDatabaseSchemaEditor for backends which have requires_literal_defaults must provide a prepare_default() method©ÚNotImplementedError©rK   Úvalues   &&r   r»   Ú(BaseDatabaseSchemaEditor.prepare_default¢  s   € ô "ðPó
ð 	
r    c                ó   € R# )zx
Return the SQL to use in a DEFAULT clause. The resulting string should
contain a '%s' placeholder for a default value.
ú%srÔ   rÕ   s   &&r   r¹   Ú,BaseDatabaseSchemaEditor._column_default_sql«  s   € ñ
 r    c                óÐ  a € ^ RI Hp VP                  p\        W24      '       d   S P	                  V4      MRp\        VP                  R7      pVP                  S P                  R7      pVP                  V4      w  rxS P                  P                  P                  '       d<   T\        ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      ,          p. pWG,          V3# )z;Return the sql and params for the field's database default.)ÚValuez(%s)r,   rr   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir1   )r»   ©r3   ÚprK   s   & €r   r6   Ú:BaseDatabaseSchemaEditor.db_default_sql.<locals>.<genexpr>Á  s   øé € Ð IÁ&¸Q ×!5Ñ!5°a×!8Ð!8Ã&ùó   ƒ!)Údjango.db.models.expressionsrä   Ú_db_default_expressionr™   r¹   r   r-   Úget_compilerrE   ÚcompilerH   rº   rg   )	rK   r   rä   Ú
db_defaultrY   ÚqueryÚcompilerrÆ   r\   s	   f&       r   rµ   Ú'BaseDatabaseSchemaEditor.db_default_sql²  s¹   ø€ å6à×1Ñ1ˆ
ä/9¸*×/LÒ/LˆD×$Ñ$ UÔ+ÐRXð 	ô ˜EŸK™KÔ(ˆØ×%Ñ%°·±Ð%ÓAˆØ&×.Ñ.¨zÓ:ÑˆØ�?‰?×#Ñ#×=×=Ð=ð Ÿ5œ5Ô IÁ&Ó IŸ5™5Ô IÁ&Ó IÓIÕIˆKØˆFØÕ  &Ð(Ð(r    c                ó@  a € VP                  S P                  4      w  r#VP                  '       d   RMRpS P                  P                  P                  '       d<   T\
        ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      ,          pRpRV RV 2V3# )z3Return the SQL to use in a GENERATED ALWAYS clause.ÚSTOREDÚVIRTUALc              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir1   ©ri   ræ   s   & €r   r6   ÚABaseDatabaseSchemaEditor._column_generated_sql.<locals>.<genexpr>Ê  s!   øé € Ð3XÑQWÈA°D×4DÑ4DÀQ×4GÐ4GÓQWùré   zGENERATED ALWAYS AS (z) rÔ   )rÊ   rE   Ú
db_persistrH   rº   rg   )rK   r   Úexpression_sqlr\   Úpersistency_sqls   f&   r   r¿   Ú.BaseDatabaseSchemaEditor._column_generated_sqlÅ  s†   ø€ à!&×!4Ñ!4°T·_±_Ó!EÑˆØ&+×&6×&6Ð&6™(¸IˆØ�?‰?×#Ñ#×=×=Ð=Ø+¯e¬eÔ3XÑQWÓ3X¯e©eÔ3XÑQWÓ3XÓ.XÕXˆNØˆFØ& ~Ð&6°b¸Ð8IÐJÈFÐRÐRr    c                ód  € V P                  4       '       d   V P                  4       pV# V P                  '       d   R pV# V P                  '       gC   V P                  '       d1   V P
                  '       d   V P                  4       R8X  d   RpV# Rp V# \        V RR4      '       g   \        V RR4      '       dv   V P                  4       pVR8X  d   \        P                  ! 4       pV# \        P                  ! 4       pVR8X  d   VP                  4       pV# VR	8X  d   VP                  4       pV# R pV# )
NÚBinaryFieldr    r_   Úauto_nowFÚauto_now_addÚDateTimeFieldÚ	DateFieldÚ	TimeField)Úhas_defaultÚget_defaultr¾   r³   Úblankr¼   r”   Úgetattrr   Únowr   ÚdateÚtime)r   ÚdefaultÚinternal_types   &  r   Ú_effective_defaultÚ+BaseDatabaseSchemaEditor._effective_defaultÎ  s  € ð ×Ñ×ÒØ×'Ñ'Ó)ˆGð( ˆð' �_�_ˆ_ØˆGð$ ˆð# ——� §§ °×0K×0KÐ0KØ×&Ñ&Ó(¨MÔ9Ø�ð ˆð ‘ð ˆô �U˜J¨×.Ò.´'¸%ÀÐQV×2WÒ2WØ!×3Ñ3Ó5ˆMØ Ô/Ü"Ÿ,š,›.�ð ˆô #Ÿ,š,›.�Ø  KÔ/Ø%Ÿl™l›n�Gð
 ˆð	 # kÔ1Ø%Ÿl™l›n�Gð ˆð ˆGØˆr    c                óX   € VP                  V P                  V4      V P                  4      # )z2Return a field's effective database default value.)Úget_db_prep_saver  rE   rÕ   s   &&r   r¸   Ú*BaseDatabaseSchemaEditor.effective_defaultè  s$   € à×%Ñ% d×&=Ñ&=¸eÓ&DÀdÇoÁoÓVÐVr    c                ó   € \        4       h)a(  
Return a quoted version of the value so it's safe to use in an SQL
string. This is not safe against injection from user code; it is
intended only for use in making SQL scripts or preparing default values
for particularly tricky backends (defaults are not user-defined, though,
so this is safe).
rÛ   rÝ   s   &&r   ri   Ú$BaseDatabaseSchemaEditor.quote_valueì  s   € ô "Ó#Ð#r    c           	     ó¼  € V P                  V4      w  r#T P                  Y#;'       g    R4       V P                  P                  P                  '       dê   VP
                  P                  '       d(   V P                  VRVP
                  P                  4       V P                  P                  P                  '       g�   VP
                  P                   Ff  pVP                  '       g   K  VP                  V P                  R7      pVR,          pV P                  ! V P                  WWdP                  4      !   Kh  	  V P                  P                  V P                  V4      4       VP
                  P                    FZ  pVP"                  P$                  P
                  P&                  '       g   K5  V P)                  VP"                  P$                  4       K\  	  R# )zZ
Create a table and any accompanying indexes or unique constraints for
the given `model`.
Nrr   rÐ   )r§   rT   rE   rH   Úsupports_commentsr(   Údb_table_commentÚalter_db_table_commentr°   r‡   r±   r‰   Ú_alter_column_comment_sqlrO   rŒ   Ú_model_indexes_sqlÚlocal_many_to_manyr>   ÚthroughÚauto_createdÚcreate_model)rK   r-   rY   r\   r   rÄ   Ú
field_types   &&     r   r  Ú%BaseDatabaseSchemaEditor.create_modelø  s\  € ð
 —n‘n UÓ+‰ˆð 	�‰�SŸ.˜. DÔ)à�?‰?×#Ñ#×5×5Ð5à�{‰{×+×+Ð+Ø×+Ñ+¨E°4¸¿¹×9UÑ9UÔVà—?‘?×+Ñ+×D×DÐDØ"Ÿ[™[×5Ô5�EØ×'×'Ò'Ø*/×*=Ñ*=Ø'+§¡ð +>ó +˜ð &5°VÕ%<˜
ØŸšØ!×;Ñ;Ø %¨j×:JÑ:Jóôñ 6ð 	×Ñ× Ñ  ×!8Ñ!8¸Ó!?Ô@ð —[‘[×3Ô3ˆEØ×!Ñ!×)Ñ)×/Ñ/×<×<Ò<Ø×!Ñ! %×"4Ñ"4×"<Ñ"<Ö=ó 4r    c                ót  € VP                   P                   FZ  pVP                  P                  P                   P                  '       g   K5  V P                  VP                  P                  4       K\  	  V P                  V P                  RV P                  VP                   P                  4      /,          4       \        V P                  4       Fc  p\        V\        4      '       g   K  VP                  VP                   P                  4      '       g   KH  V P                  P                  V4       Ke  	  R# )z!Delete a model from the database.r|   N)r(   r  r>   r  r  Údelete_modelrT   Úsql_delete_tablero   rŽ   ÚlistrO   r™   r
   Úreferences_tableÚremove)rK   r-   r   rY   s   &&  r   r   Ú%BaseDatabaseSchemaEditor.delete_model  sâ   € ð —[‘[×3Ô3ˆEØ×!Ñ!×)Ñ)×/Ñ/×<×<Ò<Ø×!Ñ! %×"4Ñ"4×"<Ñ"<Ö=ñ 4ð
 	�‰Ø×!Ñ!à˜Ÿ™¨¯©×)=Ñ)=Ó>ðõô	
ô ˜×)Ñ)Ö*ˆCÜ˜#œy×)Ô)¨c×.BÑ.BØ—‘×$Ñ$÷/ô /ð ×!Ñ!×(Ñ(¨Ö-ó	 +r    c                ó¾   € VP                   '       d)   V P                  P                  P                  '       g   R# V P	                  VP                  W4      RR7       R# )zAdd an index on a model.N©r\   )Úcontains_expressionsrE   rH   Úsupports_expression_indexesrT   r—   ©rK   r-   Úindexs   &&&r   Ú	add_indexÚ"BaseDatabaseSchemaEditor.add_index0  sF   € ð ×&×&Ð&Ø—O‘O×,Ñ,×H×HÐHáð 	�‰�U×%Ñ% eÓ2¸4ˆÖ@r    c                óº   € VP                   '       d)   V P                  P                  P                  '       g   R# V P	                  VP                  W4      4       R# )zRemove an index from a model.N)r(  rE   rH   r)  rT   Ú
remove_sqlr*  s   &&&r   Úremove_indexÚ%BaseDatabaseSchemaEditor.remove_index;  s@   € ð ×&×&Ð&Ø—O‘O×,Ñ,×H×HÐHáØ�‰�U×%Ñ% eÓ2Ö3r    c                ó  € V P                   P                  P                  '       d:   V P                  V P	                  WP
                  VP
                  4      R R7       R # V P                  W4       V P                  W4       R # )Nr'  )rE   rH   Úcan_rename_indexrT   Ú_rename_index_sqlr   r0  r,  )rK   r-   Ú	old_indexÚ	new_indexs   &&&&r   Úrename_indexÚ%BaseDatabaseSchemaEditor.rename_indexD  s`   € Ø�?‰?×#Ñ#×4×4Ð4Ø�L‰LØ×&Ñ& u¯n©n¸i¿n¹nÓMØð ö ð
 ×Ñ˜eÔ/Ø�N‰N˜5Ö,r    c                ób   € VP                  W4      pV'       d   V P                  VRR7       R# R# )zAdd a constraint to a model.Nr'  )r—   rT   ©rK   r-   rz   rY   s   &&& r   Úadd_constraintÚ'BaseDatabaseSchemaEditor.add_constraintN  s,   € à×#Ñ# EÓ0ˆßð �L‰L˜ TˆLÖ*ñ r    c                ó^   € VP                  W4      pV'       d   V P                  V4       R# R# )z!Remove a constraint from a model.N)r/  rT   r:  s   &&& r   Úremove_constraintÚ*BaseDatabaseSchemaEditor.remove_constraintV  s&   € à×#Ñ# EÓ0ˆßØ�L‰L˜Öñ r    c           	     óÂ  € V Uu0 uF  p\        V4      kK  	  ppV Uu0 uF  p\        V4      kK  	  ppVP                  V4       F%  pV P                  VVRRRR/V P                  4       K'  	  VP                  V4       FL  pV Uu. uF  q�P                  P                  V4      NK  	  ppV P                  V P                  W4      4       KN  	  R# u upi u upi u upi )z�
Deal with a model changing its unique_together. The input
unique_togethers must be doubly-nested, not the single-nested
["foo", "bar"] format.
rÁ   Tr   FN)rg   Ú
differenceÚ_delete_composed_indexÚsql_delete_uniquer(   r…   rT   r†   )	rK   r-   Úold_unique_togetherÚnew_unique_togetherr¡   ÚoldsÚnewsr    r   s	   &&&&     r   Úalter_unique_togetherÚ.BaseDatabaseSchemaEditor.alter_unique_together\  sÑ   € ñ -@Ó@Ñ,? &”�f–Ñ,?ˆÐ@Ù,?Ó@Ñ,? &”�f–Ñ,?ˆÐ@à—o‘o dÖ+ˆFØ×'Ñ'ØØØ˜4 °Ð6Ø×&Ñ&ö	ñ ,ð  Ÿ?™?¨4Ö0ˆKÙ@KÓLÁ°u—k‘k×+Ñ+¨EÖ2ÁˆFÐLØ�L‰L˜×0Ñ0°Ó?Ö@ó 1ùò AùÚ@ùò Ms   …CŸCÂ#Cc           	     óÆ  € V Uu0 uF  p\        V4      kK  	  ppV Uu0 uF  p\        V4      kK  	  ppVP                  V4       F%  pV P                  VVRRRR/V P                  4       K'  	  VP                  V4       FN  pV Uu. uF  q�P                  P                  V4      NK  	  ppV P                  V P                  WRR7      4       KP  	  R# u upi u upi u upi )zŽ
Deal with a model changing its index_together. The input
index_togethers must be doubly-nested, not the single-nested
["foo", "bar"] format.
r+  TrÁ   FÚ_idx)r¡   ÚsuffixN)rg   rA  rB  Úsql_delete_indexr(   r…   rT   Ú_create_index_sql)	rK   r-   Úold_index_togetherÚnew_index_togetherr¡   rF  rG  r    r   s	   &&&&     r   Úalter_index_togetherÚ-BaseDatabaseSchemaEditor.alter_index_togetherq  sÕ   € ñ -?Ó?Ñ,> &”�f–Ñ,>ˆÐ?Ù,>Ó?Ñ,> &”�f–Ñ,>ˆÐ?à—o‘o dÖ+ˆFØ×'Ñ'ØØØ˜$ ¨%Ð0Ø×%Ñ%ö	ñ ,ð  Ÿ?™?¨4Ö0ˆKÙ@KÓLÁ°u—k‘k×+Ñ+¨EÖ2ÁˆFÐLØ�L‰L˜×/Ñ/°ÈVÐ/ÓTÖUó 1ùò @ùÚ?ùò Ms   …CŸCÂ#Cc           
     ól  € VP                   P                   Uu0 uF  qUP                  kK  	  ppVP                   P                   Uu0 uF  qUP                  kK  	  ppV Uu. uF'  q�P                   P	                  V4      P
                  NK)  	  p	pV P                  ! VV	3R Wg,          /VB p
VP                  R4      RJ di   V
'       da   V P                  P                  P                  '       d;   \        V P                  VP                   P                  V	RR7      4      pWº9   d   V.p
\        V
4      ^8w  dE   \        R\        V
4      : RVP                   P                  : RRP!                  V	4      : R	24      hV P#                  V P%                  WAV
^ ,          4      4       R
# u upi u upi u upi )ÚexcluderÁ   TF©ÚquoteúFound wrong number (z) of constraints for Ú(r~   Ú)N)r(   r–   r   Úindexesr…   r�   Ú_constraint_namesr®   rE   rH   Ú*allows_multiple_constraints_on_same_fieldsra   Ú_unique_constraint_namerŽ   ÚlenÚ
ValueErrorr�   rT   Ú_delete_constraint_sql)rK   r-   r¡   Úconstraint_kwargsrY   rz   Úmeta_constraint_namesÚmeta_index_namesr   r›   Úconstraint_namesÚdefault_names   &&&&&       r   rB  Ú/BaseDatabaseSchemaEditor._delete_composed_index†  sƒ  € à.3¯k©k×.EÒ.Eó!
Ù.E 
�OŒOÑ.Eð 	ð !
ð ?D¿k¹k×>QÒ>QÓRÑ>Q°
ŸOœOÑ>QÐÐRÙDJÓKÁF¸5—;‘;×(Ñ(¨Ó/×6Ô6ÁFˆÐKØ×1Ò1ØØñ
ð *Õ<ð
ð  ñ	
Ðð ×!Ñ! (Ó+¨tÓ3ß Ø—‘×(Ñ(×S×SÐSô Ø×,Ñ,¨U¯[©[×-AÑ-AÀ7ÐRWÐ,ÓXóˆLð Ô/Ø$0 >Ð ÜÐÓ  AÔ%Ýô Ð(Ö)Ø—K‘K×(Ô(Ø—I‘I˜gÖ&ð	óð ð 	�‰�T×0Ñ0°Ð=MÈaÕ=PÓQÖRùò?!
ùò SùÚKs   ™F'ÁF,Á!-F1c           	     ó¨  € W#8X  gJ   V P                   P                  P                  '       d&   VP                  4       VP                  4       8X  d   R# V P	                  V P
                  RV P                  V4      RV P                  V4      /,          4       V P                   F,  p\        V\        4      '       g   K  VP                  W#4       K.  	  R# )z#Rename the table a model points to.NÚ	old_tableÚ	new_table)rE   rH   Úignores_table_name_caseÚlowerrT   Úsql_rename_tablero   rO   r™   r
   Úrename_table_references)rK   r-   Úold_db_tableÚnew_db_tablerY   s   &&&& r   Úalter_db_tableÚ'BaseDatabaseSchemaEditor.alter_db_table¨  s£   € àÔ'Ø�O‰O×$Ñ$×<×<Ð<Ø×"Ñ"Ó$¨×(:Ñ(:Ó(<Ô<áØ�‰Ø×!Ñ!à˜TŸ_™_¨\Ó:Ø˜TŸ_™_¨\Ó:ðõô	
ð ×$Ô$ˆCÜ˜#œy×)Ô)Ø×+Ñ+¨LÖGó %r    c           
     óB  € V P                   '       d�   V P                  P                  P                  '       de   T P	                  V P                   R V P                  VP                  P                  4      RT P                  T;'       g    R4      /,          4       R# R# R# )r|   Úcommentr_   N)	Úsql_alter_table_commentrE   rH   r  rT   ro   r(   rŽ   ri   )rK   r-   Úold_db_table_commentÚnew_db_table_comments   &&&&r   r  Ú/BaseDatabaseSchemaEditor.alter_db_table_comment»  s|   € Ø×'×'Ð'¨D¯O©O×,DÑ,D×,V×,VÐ,VØ�L‰LØ×,Ñ,à˜TŸ_™_¨U¯[©[×-AÑ-AÓBØ˜t×/Ñ/Ð0D×0JÐ0JÈÓKðõöñ -WÑ'r    c                óØ   € V P                  V P                  RV P                  VP                  P                  4      RV P                  V4      RV P                  V4      /,          4       R# )z)Move a model's table between tablespaces.r|   Úold_tablespaceÚnew_tablespaceN)rT   Úsql_retablespace_tablero   r(   rŽ   )rK   r-   Úold_db_tablespaceÚnew_db_tablespaces   &&&&r   Úalter_db_tablespaceÚ,BaseDatabaseSchemaEditor.alter_db_tablespaceÅ  sW   € à�‰Ø×'Ñ'à˜Ÿ™¨¯©×)=Ñ)=Ó>Ø  $§/¡/Ð2CÓ"DØ  $§/¡/Ð2CÓ"Dðõö	
r    c                óØ	  € VP                   '       dV   VP                  P                  P                  P                  '       d&   V P                  VP                  P                  4      # V P                  WRR7      w  r4Vf   R# VP                  V P                  R7      ;p'       d   VRV 2,          pVP                  V P                  R7      pVR,          '       d"   VRV P                  V,          ,           ,          pVP                  '       EdÊ   V P                  P                  P                  '       Ed£   VP                  '       Ed�   RpV P                  '       EdP   VP                  P                  P                  P                   pVP                  P                  P                  P#                  VP                  P$                  4      P&                  p	\)        VP                  P                   4      w  r«TRV P                  RV P+                  WV4      R	V
'       d   R
V P-                  V
4      ,          MRRV P-                  VP&                  4      RV P-                  V4      RV P-                  V	4      RV P                  P.                  P1                  4       /,          ,           ,          pM+V P2                  P5                  V P7                  WV4      4       V P8                  RV P-                  VP                  P                   4      RV P-                  VP&                  4      RV/,          pT P;                  YÄ;'       g    R4       VP=                  4       '       g�   V P?                  V4      '       gv   V PA                  V4      ec   V PC                  VRVRR7      w  rÔV PD                  RV P-                  VP                  P                   4      RV/,          pV P;                  WÄ4       VPF                  '       d€   V P                  P                  PH                  '       dZ   V P                  P                  PJ                  '       g4   VR,          pV P:                  ! V PM                  WWâPF                  4      !   V P2                  PO                  V PQ                  W4      4       V P                  P                  PR                  '       d   V P                  PU                  4        R# R# )zw
Create a field on a model. Usually involves adding a column, but may
involve adding a table instead (for M2M fields).
T)rÅ   Nrr   rt   rs   rw   r   Ú	namespacez%s.r_   r�   ru   rv   Ú
deferrabler|   r}   ©ÚdropÚchangesrÐ   )+r   r>   r  r(   r  r  rˆ   r‹   rE   r‰   rŠ   rH   r’   r�   Úsql_create_column_inline_fkr-   rŽ   r…   r�   r�   r   Ú_fk_constraint_namero   rn   Údeferrable_sqlrO   rf   r“   Úsql_create_columnrT   r´   r·   r¸   Ú_alter_column_default_sqlÚsql_alter_columnr±   r  r°   r  rŒ   Ú_field_indexes_sqlÚconnection_persists_old_columnsÚclose)rK   r-   r   r}   r\   r¥   r¤   Úconstraint_suffixru   rv   r�  Ú_rY   Úchanges_sqlr  s   &&&            r   Ú	add_fieldÚ"BaseDatabaseSchemaEditor.add_fieldÐ  sä  € ð ××Ð %×"4Ñ"4×"<Ñ"<×"BÑ"B×"O×"OÐ"OØ×$Ñ$ U×%7Ñ%7×%?Ñ%?Ó@Ð@à!Ÿ_™_¨UÈ4˜_ÓPÑˆ
àÒÙØ#×2Ñ2¸d¿o¹oÐ2ÓNÐNˆ?ÖNØ˜A˜oÐ.Ð/Õ/ˆJà×'Ñ'°4·?±?Ð'ÓCˆ	Ø�W×ÔØ˜# × 9Ñ 9¸IÕ EÕEÕEˆJà××ÑØ—‘×(Ñ(×>×>Ñ>Ø×#×#Ñ#à @Ðà×/×/Ñ/Ø ×-Ñ-×3Ñ3×9Ñ9×BÑB�Ø!×.Ñ.×4Ñ4×:Ñ:×DÑDØ×&Ñ&×1Ñ1óç‘&ð ô  0°·±×0DÑ0DÓE‘�	Ø˜c D×$DÑ$DØ˜D×4Ñ4°UÐCTÓUØß>G˜ §¡°	Ó :Ö:ÈRà˜dŸo™o¨e¯l©lÓ;Ø §¡°Ó 9Ø §¡°Ó!;Ø  $§/¡/×"5Ñ"5×"DÑ"DÓ"Fð	Hõ 	%õ 	õ 	‘
ð ×!Ñ!×(Ñ(Ø×'Ñ'¨Ð6GÓHôð ×$Ñ$Ø�T—_‘_ U§[¡[×%9Ñ%9Ó:Ø�d—o‘o e§l¡lÓ3Ø˜*ð(
õ 
ˆð 	�‰�SŸ.˜. DÔ)ð ×$Ñ$×&Ò&Ø×.Ñ.¨u×5Ò5Ø×&Ñ& uÓ-Ò9à"&×"@Ñ"@Ø�t˜U¨ð #Aó #ÑˆKð ×'Ñ'Ø˜Ÿ™¨¯©×)=Ñ)=Ó>Ø˜;ð+õ ˆCð �L‰L˜Ô%ð ××ÐØ—‘×(Ñ(×:×:Ð:Ø—O‘O×,Ñ,×E×EÐEà" 6Õ*ˆJØ�LŠLØ×/Ñ/Ø *×.>Ñ.>óòð 	×Ñ× Ñ  ×!8Ñ!8¸Ó!FÔGà�?‰?×#Ñ#×C×CÐCØ�O‰O×!Ñ!Ö#ñ Dr    c                ó*  € VP                   '       dV   VP                  P                  P                  P                  '       d&   V P                  VP                  P                  4      # VP                  V P                  R7      R,          f   R# VP                  '       dH   V P                  WP                  .RR7      pV F#  pV P                  V P                  W4      4       K%  	  V P                  RV P                  VP                  P                  4      RV P                  VP                  4      /,          pV P                  V4       V P                  P                  P                   '       d   V P                  P#                  4        \%        V P&                  4       Fn  p\)        V\*        4      '       g   K  VP-                  VP                  P                  VP                  4      '       g   KS  V P&                  P/                  V4       Kp  	  R# )zm
Remove a field from a model. Usually involves deleting a column,
but for M2Ms may involve deleting a table.
rr   rÐ   NT©Úforeign_keyr|   r�   )r   r>   r  r(   r  r   r‰   rE   r[  r�   rT   Ú_delete_fk_sqlÚsql_delete_columnro   rŽ   rH   r�  rŽ  r"  rO   r™   r
   Úreferences_columnr$  )rK   r-   r   Úfk_namesÚfk_namerY   s   &&&   r   Úremove_fieldÚ%BaseDatabaseSchemaEditor.remove_field(  s…  € ð ××Ð %×"4Ñ"4×"<Ñ"<×"BÑ"B×"O×"OÐ"OØ×$Ñ$ U×%7Ñ%7×%?Ñ%?Ó@Ð@à×Ñ¨$¯/©/ÐÓ:¸6ÕBÒJÙà××ÐØ×-Ñ-¨e·l±l°^ÐQUÐ-ÓVˆHÛ#�Ø—‘˜T×0Ñ0°Ó@ÖAñ $ð ×$Ñ$Ø�T—_‘_ U§[¡[×%9Ñ%9Ó:Ø�d—o‘o e§l¡lÓ3ð(
õ 
ˆð 	�‰�SÔà�?‰?×#Ñ#×C×CÐCØ�O‰O×!Ñ!Ô#ä˜×)Ñ)Ö*ˆCÜ˜#œy×)Ô)¨c×.CÑ.CØ—‘×$Ñ$ e§l¡l÷/ô /ð ×!Ñ!×(Ñ(¨Ö-ó	 +r    c           
     óÔ  € V P                  W#4      '       g   R# VP                  V P                  R7      pVR,          pVP                  V P                  R7      pVR,          pRp	Vf   VP                  e   Vf#   VP                  f   \	        RV: RV: R24      hVf¯   Vf«   VP                  P
                  '       d�   VP                  P
                  '       ds   VP                  P
                  P                  P                  '       dC   VP                  P
                  P                  P                  '       d   V P                  WW44      # VfŸ   Vf›   VP                  P
                  '       d   VP                  P
                  '       dc   VP                  P
                  P                  P                  '       g3   VP                  P
                  P                  P                  '       g   R# Ve   Vf   \	        RV: RV: R24      hVP                  VP                  8w  g.   VP                  '       d   VP                  VP                  8w  d   R	p	MMVP                  '       d<    VP                  V P                  4      p
VP                  V P                  4      pW«8g  p	V	'       d   \	        R
V R24      hV P                  VVVVVVVV4       R#   \         d    R	p	 L@i ; i)z÷
Allow a field's type, uniqueness, nullability, default, column,
constraints, etc. to be modified.
`old_field` is required to compute the necessary changes.
If `strict` is True, raise errors if the old column does not match
`old_field` precisely.
Nrr   rÐ   FzCannot alter field z into zT - they do not properly define db_type (are you using a badly-written custom field?)zr - they are not compatible types (you cannot alter to or from M2M fields, or add or remove through= on M2M fields)Tz7Modifying GeneratedFields is not supported - the field z6 must be removed and re-added with the new definition.)Ú_field_should_be_alteredr‰   rE   r>   r_  r  r(   r  Ú_alter_many_to_manyr¾   rø   rÊ   r   Ú_alter_field)rK   r-   r5   r;   ÚstrictÚold_db_paramsÚold_typeÚnew_db_paramsÚnew_typeÚmodifying_generated_fieldÚold_field_sqlÚnew_field_sqls   &&&&&       r   Úalter_fieldÚ$BaseDatabaseSchemaEditor.alter_fieldH  s—  € ð ×,Ñ,¨Y×BÒBÙà!×/Ñ/¸4¿?¹?Ð/ÓKˆØ  Õ(ˆØ!×/Ñ/¸4¿?¹?Ð/ÓKˆØ  Õ(ˆØ$)Ð!ØÒ ×!7Ñ!7Ò!?ØÒ ×!7Ñ!7Ò!?åó ›ið)óð ð ÒØÒ à×&Ñ&×.×.Ð.Ø×*Ñ*×2×2Ð2Ø×*Ñ*×2Ñ2×8Ñ8×E×EÐEØ×*Ñ*×2Ñ2×8Ñ8×E×EÐEð ×+Ñ+¨E¸iÓPÐPàÒØÒ à×&Ñ&×.×.Ð.Ø×*Ñ*×2×2Ð2Ø!×.Ñ.×6Ñ6×<Ñ<×I×IÐIØ!×.Ñ.×6Ñ6×<Ñ<×I×IÐIñ ØÒ Ò!1Ýó .7»	ðCóð ð
 × Ñ  I×$7Ñ$7Ô7Ø××Ð I×$8Ñ$8¸I×<PÑ<PÔ$Pà(,Ñ%Ø× × Ð ðKØ )× 7Ñ 7¸¿¹Ó H�ð
 !*× 7Ñ 7¸¿¹Ó H�Ø,9Ñ,JÐ)ß$ÜØIÈ)Èð UHð Hóð ð
 	×ÑØØØØØØØØö		
øô ô 1à,0Ò)ð1ús   É,K ËK'Ë&K'c                óÎ   € V P                   P                  pVP                  V P                   4      pR VR&    W1P                  4       ,          V,          #   \         d     R# i ; i)Ú__column_name__r�   N)rE   Údata_type_check_constraintsÚdb_type_parametersr”   ÚKeyError)rK   r   rÄ   Úcheck_constraintsÚdatas   &&&  r   Ú_field_db_checkÚ(BaseDatabaseSchemaEditor._field_db_check›  s_   € ð !ŸO™O×GÑGÐØ×'Ñ'¨¯©Ó8ˆØ*ˆˆX‰ð	Ø$×%<Ñ%<Ó%>Õ?À$ÕFÐFøÜô 	Úð	ús   ¸A ÁA$Á#A$c	           	     óf  € \        4       p	V P                  P                  P                  '       dù   VP                  '       dç   VP
                  '       dÕ   V P                  VVR0R7      '       dº   V P                  WP                  .RR7      p
V'       dO   \        V
4      ^8w  d?   \        R\        V
4      : RVP                  P                  : RVP                  : 24      hV
 F?  pV	P                  VP                  34       V P                  V P                  W4      4       KA  	  VP                   '       dø   VP                   '       d   V P#                  W#4      '       dÏ   VP                  P$                   Uu0 uF  qÌP&                  kK  	  ppV P                  VVP                  .RRVR	7      pV'       dO   \        V4      ^8w  d?   \        R\        V4      : R
VP                  P                  : RVP                  : 24      hV F#  pV P                  V P)                  W4      4       K%  	  VP+                  R4      pVP+                  R4      pV P                  P                  P                  ;'       db    VP,                  ;'       d    VP,                  ;'       g)    VP                   ;'       d&    VP                   ;'       d    WE8g  ;'       g    VV8g  pV'       d}   \/        W#4       Fm  w  ppV P                  VP0                  VP2                  P                  .RR7      pV F.  pV P                  V P                  VP0                  V4      4       K0  	  Ko  	  VP4                  '       d¿   VP                   '       g­   VP4                  '       d   VP                   '       d‰   VP                  P6                   Uu0 uF  pVP&                  kK  	  ppV P                  VVP                  .R\8        P:                  VR7      pV F$  pV P                  V P=                  VV4      4       K&  	  V P?                  W&4      pV P?                  W74      pVV8w  dÖ   V'       dÎ   VP                  P$                   Uu0 uF  qÌP&                  kK  	  ppV P                  VVP                  .RVR7      pV'       dO   \        V4      ^8w  d?   \        R\        V4      : RVP                  P                  : RVP                  : 24      hV F#  pV P                  V PA                  W4      4       K%  	  VP                  VP                  8w  d�   V P                  V PC                  VP                  P                  W#V4      4       V PD                   FV  p\G        V\H        4      '       g   K  VPK                  VP                  P                  VP                  VP                  4       KX  	  . p. p. pVPM                  V P                  R7      p VPM                  V P                  R7      p!WE8w  gP   V V!8w  gI   VV8w  gB   V P                  P                  PN                  '       dU   VPP                  VPP                  8w  d:   V PS                  WW5VV4      w  p"p#VPU                  V"4       VPW                  V#4       VPY                  4       '       dT   VPY                  4       '       d   VPZ                  VPZ                  8w  d"   VPU                  V P]                  WV4      4       M9VPY                  4       '       d$   VPU                  V P]                  WVRR7      4       Rp$VP^                  '       d�   VP^                  '       g~   VPY                  4       '       gh   V Pa                  V4      p%V Pa                  V4      p&V Pc                  V4      '       g/   V%V&8w  d(   V&e$   Rp$VPU                  V Pe                  WV4      4       VP^                  VP^                  8w  d,   V Pg                  WV4      p"V"'       d   VPU                  V"4       VPi                  4       ;'       g    VPY                  4       ;'       d&    VP^                  ;'       d    VP^                  '       * p'V'       g
   V'       Ed¼   V''       g
   VV,          pV P                  P                  Pj                  '       d<   V'       d4   \m        \o        V!  4      w  pp(RPq                  V4      \s        V(. 4      3.pV FP  w  pp(V P                  V Pt                  RV Pw                  VP                  P                  4      RV/,          V(4       KR  	  V''       dì   VPY                  4       '       g   Rp)X&.p(MV Py                  V4      w  p)p(V P                  V Pz                  RV Pw                  VP                  P                  4      RV Pw                  VP                  4      RV)/,          V(4       V FP  w  pp(V P                  V Pt                  RV Pw                  VP                  P                  4      RV/,          V(4       KR  	  V'       d   V F  w  pp(V P                  VV(4       K  	  VP,                  '       d$   VP,                  '       g   V P}                  W4       V P                  W#4      '       d"   V P                  V P�                  W.4      4       VP4                  '       d   VP                   '       dG   VP4                  '       d5   VP                   '       g#   V P                  V Pƒ                  W.R7      4       . p*V'       d   V*PW                  \/        W#4      4       V P#                  W#4      '       d;   V P                  V P…                  W4      4       V*PW                  \/        W#4      4       V* EF5  w  p+pVP2                  P‡                  V P                  R7      p,V,R,          p-V,P+                  R4      p.V+P2                  P‡                  V P                  R7      p/V/P+                  R4      p0V PS                  VP0                  V+P2                  VP2                  V-V0V.4      w  p"p#V P                  V Pt                  RV Pw                  VP0                  P                  P                  4      RV"^ ,          /,          V"^,          4       V# F  w  pp(V P                  VV(4       K  	  EK8  	  V P                  P                  P                  '       dr   VP                  '       d`   V	'       g%   VP                  '       d   VP
                  '       g4   VP
                  '       d"   V P                  V P‰                  WR4      4       V'       da   V* FZ  w  p1p2V2P2                  P
                  '       g   K$  V P                  V P‰                  V2P0                  V2P2                  R4      4       K\  	  VV8w  dd   V'       d\   V P‹                  VP                  P                  VP                  .RR7      pV P                  V P�                  WVR,          4      4       V$'       dd   V Pe                  WVRR7      w  p3p(V Pt                  RV Pw                  VP                  P                  4      RV3/,          pV P                  VV(4       V P                  P                  PŽ                  '       d   V P                  P‘                  4        R# R# u upi u upi u upi )z3Perform a "physical" (non-ManyToMany) field update.r±   )ÚignoreTr•  rW  z!) of foreign key constraints for Ú.F)rÁ   r   rT  z) of unique constraints for rª   )r+  Útype_rT  )rs   rT  z) of check constraints for rr   rƒ  Nr~   r|   r…  rá   r�   r
  ©r¡   rÐ   rw   Ú_fkÚ_check©rL  rs   )IÚsetrE   rH   r’   r>   r�   rŸ  r[  r�   r^  r_  r(   rŽ   ÚaddrT   r—  rÁ   Ú_field_became_primary_keyr–   r   Ú_delete_unique_sqlr®   r   r=   Úrelated_modelr   Údb_indexrZ  r   rL  Ú_delete_index_sqlr³  Ú_delete_check_sqlÚ_rename_field_sqlrO   r™   r
   Úrename_column_referencesr‹   r  r±   Ú_alter_column_type_sqlrf   rŒ   r´   rî   Ú"_alter_column_database_default_sqlr³   r¸   r·   rŠ  Ú_alter_column_null_sqlr  Úsupports_combined_altersrg   r<   r�   Úsumr‹  ro   rµ   Úsql_update_with_defaultÚ_delete_primary_keyÚ_unique_should_be_addedr†   rN  Ú_create_primary_key_sqlr‰   r“   Ú_create_index_nameÚ_create_check_sqlr�  rŽ  )4rK   r-   r5   r;   r¤  r¦  r£  r¥  r¢  Úfks_droppedrš  r›  rz   rb  rd  Úconstraint_nameÚold_collationÚnew_collationÚdrop_foreign_keysÚ_old_relrA   Úrel_fk_namesr+  rc  Úindex_namesÚ
index_nameÚold_db_checkÚnew_db_checkrY   ÚactionsÚnull_actionsÚpost_actionsÚold_type_suffixÚnew_type_suffixÚfragmentÚother_actionsÚneeds_database_defaultÚold_defaultÚnew_defaultÚfour_way_default_alterationr\   rÆ   Úrels_to_updater@   Úrel_db_paramsÚrel_typeÚrel_collationÚold_rel_db_paramsÚold_rel_collationr�  Úrelr‘  s4   &&&&&&&&&                                           r   r¡  Ú%BaseDatabaseSchemaEditor._alter_field¦  sÛ  € ô “eˆà�O‰O×$Ñ$×:×:Ð:Ø×&×&Ð&Ø×'×'Ð'Ø×-Ñ-ØØØ$�~ð .÷ ò ð ×-Ñ-Ø×(Ñ(Ð)°tð .ó ˆH÷ œ#˜h›-¨1Ô,Ý ô ˜HžØŸ™×,Ô,Ø!×(Ó(ð	óð ó $�Ø—‘ ×!1Ñ!1Ð 3Ô4Ø—‘˜T×0Ñ0°Ó@ÖAñ $ð ××ÐØ× × Ð  D×$BÑ$BÀ9×$XÒ$Xð 38·+±+×2IÒ2Ió%Ù2I J—”Ñ2Ið "ð %ð  $×5Ñ5ØØ×!Ñ!Ð"ØØ!Ø-ð  6ó  Ð÷ œ#Ð.Ó/°1Ô4Ý ô Ð,Ö-ØŸ™×,Ô,Ø!×(Ó(ð	óð ó $4�Ø—‘˜T×4Ñ4°UÓLÖMñ $4ð &×)Ñ)¨+Ó6ˆØ%×)Ñ)¨+Ó6ˆà�O‰O×$Ñ$×:Ñ:÷ Mð Mà×&Ñ&×@Ð@¨9×+@Ñ+@÷ ;ð ;Ø×$Ñ$÷Mð :¨×)9Ñ)9÷Mð Mð
 Ñ&×KÐK¨M¸]Ñ,Jð 	÷ ô &>¸iÖ%SÑ!�˜'Ø#×5Ñ5Ø×)Ñ)¨G¯M©M×,@Ñ,@Ð+AÈtð  6ó  �ó  ,�GØ—L‘L ×!4Ñ!4°W×5JÑ5JÈGÓ!TÖUó  ,ñ	 &Tð" ××ÐØ×$×$Ð$Ø×'×'Ð'¨9×+;×+;Ð+;ð 9>¿¹×8KÒ8KÓLÑ8K¨u §
¤
Ñ8KÐÐLð ×0Ñ0ØØ×!Ñ!Ð"ØÜ—l‘lØ(ð 1ó ˆKó *�
ð —‘˜T×3Ñ3°E¸:ÓFÖGñ	 *ð ×+Ñ+¨IÓEˆØ×+Ñ+¨IÓEˆØ˜<Ô'¯Là27·+±+×2IÒ2Ió%Ù2I J—”Ñ2Ið "ð %ð  $×5Ñ5ØØ×!Ñ!Ð"ØØ-ð	  6ó  Ð÷ œ#Ð.Ó/°1Ô4Ý ô Ð,Ö-ØŸ™×,Ô,Ø!×(Ó(ð	óð ó $4�Ø—‘˜T×3Ñ3°EÓKÖLñ $4ð ×Ñ˜y×/Ñ/Ô/Ø�L‰LØ×&Ñ&Ø—K‘K×(Ñ(¨)Àóôð ×(Ô(�Ü˜c¤9×-Ô-Ø×0Ñ0ØŸ™×,Ñ,¨i×.>Ñ.>À	×@PÑ@Pöñ )ð ˆØˆØˆà#×2Ñ2¸d¿o¹oÐ2ÓNˆØ#×2Ñ2¸d¿o¹oÐ2ÓNˆð Ô Ø /Ô1Ø Ô-à—‘×(Ñ(×:×:Ð:Ø×(Ñ(¨I×,@Ñ,@Ô@ð '+×&AÑ&AØ )°}Àmó'Ñ#ˆH�mð �N‰N˜8Ô$Ø×Ñ Ô.à×#Ñ#×%Ò%à×,Ñ,×.Ò.Ø×'Ñ'¨9×+?Ñ+?Ô?à—‘Ø×;Ñ;¸EÈiÓXôøð ×%Ñ%×'Ò'Ø�N‰NØ×7Ñ7Ø i°dð 8ó ôð "'ÐØ�>�>ˆ> )§.§. .¸×9QÑ9Q×9SÒ9SØ×0Ñ0°Ó;ˆKØ×0Ñ0°Ó;ˆKà×.Ñ.¨y×9Ò9Ø ;Ô.ØÒ+à)-Ð&Ø—‘Ø×2Ñ2°5ÀYÓOôð �>‰>˜YŸ^™^Ô+Ø×2Ñ2°5ÀYÓOˆHßØ×#Ñ# HÔ-ð ×!Ñ!Ó#×AÐA y×'?Ñ'?Ó'A÷'6ð '6à�~‰~×4Ð4 i§n¡nÔ"4ð 	$÷ —l�lß.ð ˜<Õ'�à�‰×'Ñ'×@×@Ð@ÇWÜ#¤C¨¡MÓ2‘��VØ ŸI™I c›N¬C°¸«OÐ<Ð=�ã&‘��VØ—‘Ø×)Ñ)à §¡°·±×1EÑ1EÓ!FØ! 3ðõð
 öñ  '÷ +Ø ×/Ñ/×1Ò1Ø"&�KØ)˜]‘Fà*.×*=Ñ*=¸iÓ*HÑ'�K à—‘Ø×0Ñ0à §¡°·±×1EÑ1EÓ!FØ  $§/¡/°)×2BÑ2BÓ"CØ! ;ðõð ôó $0‘K�C˜Ø—L‘LØ×-Ñ-à# T§_¡_°U·[±[×5IÑ5IÓ%JØ% sðõð
 öñ $0÷ Û+‘��VØ—‘˜S &Ö)ñ  ,ð × × Ð ¨×)>×)>Ð)>Ø×$Ñ$ UÔ3à×'Ñ'¨	×=Ò=Ø�L‰L˜×0Ñ0°¸ÓDÔEð ×#×#Ð# y×'7×'7Ð'7Ø×"×"Ð"Ø×$×$Ð$à�L‰L˜×/Ñ/°¸kÐ/ÓJÔKð ˆßØ×!Ñ!Ô":¸9Ó"PÔQà×)Ñ)¨)×?Ò?à�L‰L˜×5Ñ5°eÓGÔHà×!Ñ!Ô":¸9Ó"PÔQä .ÑˆG�WØ#ŸM™M×7Ñ7À4Ç?Á?Ð7ÓSˆMØ$ VÕ,ˆHØ)×-Ñ-¨kÓ:ˆMØ '§¡× ;Ñ ;ÀtÇÁÐ ;Ó WÐØ 1× 5Ñ 5°kÓ BÐØ&*×&AÑ&AØ×%Ñ%Ø—‘Ø—‘ØØ!Øó'Ñ#ˆH�mð �L‰LØ×%Ñ%à˜TŸ_™_¨W×-BÑ-B×-HÑ-H×-QÑ-QÓRØ˜x¨�{ðõð
 ˜•ôó  -‘��VØ—‘˜S &Ö)ô  -ñ- !/ð4 �O‰O×$Ñ$×:×:Ð:Ø×&×&Ð&ç 9×#9×#9Ð#9À×AX×AXÐAXà×'×'Ð'à�L‰LØ×#Ñ# EÐ6VÓWô÷ Û(‘��3Ø—9‘9×*×*Ò*Ø—L‘LØ×+Ñ+¨C×,=Ñ,=¸s¿y¹yÈ%ÓPöñ )ð ˜<Ô'¯LØ"×5Ñ5Ø—‘×$Ñ$ y×'7Ñ'7Ð&8Àð 6ó ˆOð �L‰LØ×&Ñ& u¸}ÈWÕ?UÓVô÷
 "Ø"&×"@Ñ"@Ø )°$ð #Aó #ÑˆK˜ð ×'Ñ'Ø˜Ÿ™¨¯©×)=Ñ)=Ó>Ø˜;ð+õ ˆCð �L‰L˜˜fÔ%à�?‰?×#Ñ#×C×CÐCØ�O‰O×!Ñ!Ö#ñ DùòC
%ùòt  Mùò&%s   Å<|$Ï|)Ñ:|.c                ó`  € V P                   P                  P                  '       d   VP                  '       d   R# VP	                  V P                   R7      pVP
                  '       d   V P                  MV P                  pVRV P                  VP                  4      RVR,          /,          . 3# )z¯
Hook to specialize column null alteration.

Return a (sql, params) fragment to set a column to null or non-null
as required by new_field, or None if no changes are required.
Nrr   r�   rÐ   )
rE   rH   r½   r¼   r‰   r³   Úsql_alter_column_nullÚsql_alter_column_not_nullro   r�   )rK   r-   r5   r;   r¥  rY   s   &&&&  r   rÉ  Ú/BaseDatabaseSchemaEditor._alter_column_null_sql  s¢   € ð �O‰O×$Ñ$×F×FÐFØ×/×/Ð/ñ à%×3Ñ3¸t¿¹Ð3ÓOˆMð —>—>�>ð ×*Ò*à×3Ñ3ð ð à˜dŸo™o¨i×.>Ñ.>Ó?Ø˜M¨&Õ1ðõð
 ðð r    c                óî  € V P                  V4      pV P                  V4      pV.pV'       d   . pM9V P                  P                  P                  '       d   V P                  V4      p. pVP                  V P                  R7      pV'       d-   VP                  '       d   V P                  p	MV P                  p	MV P                  p	V	RV P                  VP                  4      RVR,          RV/,          V3# )z¡
Hook to specialize column default alteration.

Return a (sql, params) fragment to add or drop (depending on the drop
argument) a default to new_field's column.
rr   r�   rÐ   r
  )r¸   r¹   rE   rH   rº   r»   r‰   r³   Ú sql_alter_column_no_default_nullÚsql_alter_column_no_defaultÚsql_alter_column_defaultro   r�   )
rK   r-   r5   r;   r„  ræ  r
  r\   r¥  rY   s
   &&&&&     r   rŠ  Ú2BaseDatabaseSchemaEditor._alter_column_default_sql3  sã   € ð ×,Ñ,¨YÓ7ˆØ×*Ñ*¨9Ó5ˆØ�ˆçØ‰FØ�_‰_×%Ñ%×?×?Ð?ð ×*Ñ*¨;Ó7ˆGØˆFà!×/Ñ/¸4¿?¹?Ð/ÓKˆßØ�~�~ˆ~Ø×;Ñ;‘à×6Ñ6‘à×/Ñ/ˆCàà˜$Ÿ/™/¨)×*:Ñ*:Ó;Ø˜ fÕ-Ø˜7ðõð ð
ð 	
r    c                ó  € V'       d   V P                   pRp. pMV P                  pV P                  V4      w  rgVP                  V P                  R7      pVRV P                  VP                  4      RVR,          RV/,          V3# )zª
Hook to specialize column database default alteration.

Return a (sql, params) fragment to add or drop (depending on the drop
argument) a default to new_field's column.
r_   rr   r�   rÐ   r
  )rö  r÷  rµ   r‰   rE   ro   r�   )	rK   r-   r5   r;   r„  rY   rÆ   r\   r¥  s	   &&&&&    r   rÈ  Ú;BaseDatabaseSchemaEditor._alter_column_database_default_sqlY  s�   € ÷ Ø×2Ñ2ˆCØˆKØ‰Fà×/Ñ/ˆCØ"&×"5Ñ"5°iÓ"@ÑˆKà!×/Ñ/¸4¿?¹?Ð/ÓKˆàà˜$Ÿ/™/¨)×*:Ñ*:Ó;Ø˜ fÕ-Ø˜;ðõð ð
ð 	
r    c           	     óV  € . pV P                  WeVP                  P                  4      ;p'       d   RV 2pMRpRp	V P                  P                  P
                  '       d“   VP                  '       g�   VP                  VP                  8w  d9   V P                  WWCP                  4      w  r«V
'       d   VP                  W«34       VP                  '       d   V P                  VP                  4      p	V P                  RV P                  VP                  4      RVRVRV	/,          . 3V3# )a\  
Hook to specialize column type alteration for different backends,
for cases when a creation type is different to an alteration type
(e.g. SERIAL in PostgreSQL, PostGIS fields).

Return a 2-tuple of: an SQL fragment of (sql, params) to insert into
an ALTER TABLE statement and a list of extra (sql, params) tuples to
run once the field is altered.
rt   r_   r�   rÐ   rª   rs  )r¯   r(   rŽ   rE   rH   r  r   r±   r  rf   r²   Úsql_alter_column_typero   r�   )rK   r-   r5   r;   r¦  rÔ  rÕ  rã  Úcollate_sqlÚcomment_sqlrY   r\   s   &&&&&&&     r   rÇ  Ú/BaseDatabaseSchemaEditor._alter_column_type_sqlu  s&  € ð ˆØ×+Ñ+Ø¨%¯+©+×*>Ñ*>ó
ð 
ˆ;ö 
ð ˜k˜]Ð+‰KàˆKàˆØ�?‰?×#Ñ#×5×5Ð5¸i×>T×>TÐ>TØ×#Ñ# y×';Ñ';Ô;ð #×<Ñ<Ø h×0DÑ0Dó‘�÷ Ø!×(Ñ(¨#¨Ô7Ø×#×#Ð#Ø"×/Ñ/°	×0DÑ0DÓE�ð ×*Ñ*à˜dŸo™o¨i×.>Ñ.>Ó?Ø˜HØ Ø˜{ð	õð ð	ð ð
ð 	
r    c           	     óÎ   € V P                   R V P                  VP                  P                  4      RV P                  VP                  4      RV P                  V4      /,          . 3# )r|   r�   rs  )Úsql_alter_column_commentro   r(   rŽ   r�   r²   )rK   r-   r;   r¦  Únew_db_comments   &&&&&r   r  Ú2BaseDatabaseSchemaEditor._alter_column_comment_sql£  s`   € à×)Ñ)à˜Ÿ™¨¯©×)=Ñ)=Ó>Ø˜$Ÿ/™/¨)×*:Ñ*:Ó;Ø˜4×,Ñ,¨^Ó<ðõð ð
ð 	
r    c                ó8   € T P                  T;'       g    R 4      # ©r_   rö   )rK   rs  s   &&r   r²   Ú%BaseDatabaseSchemaEditor._comment_sql®  s   € Ø×Ñ § ¨2Ó.Ð.r    c                ó  € VP                   P                  P                  P                  VP                   P                  P                  P                  8w  dx   V P	                  VP                   P                  VP                   P                  P                  P                  VP                   P                  P                  P                  4       V P                  VP                   P                  VP                   P                  P                  P                  VP                  4       4      VP                   P                  P                  P                  VP                  4       4      4       V P                  VP                   P                  VP                   P                  P                  P                  VP                  4       4      VP                   P                  P                  P                  VP                  4       4      4       R# )z*Alter M2Ms to repoint their to= endpoints.N)	r>   r  r(   rŽ   rp  rª  r…   Úm2m_reverse_field_nameÚm2m_field_name)rK   r-   r5   r;   r¢  s   &&&&&r   r   Ú,BaseDatabaseSchemaEditor._alter_many_to_many±  s€  € ð ×"Ñ"×*Ñ*×0Ñ0×9Ñ9Ø×%Ñ%×-Ñ-×3Ñ3×<Ñ<ô=ð ×ÑØ×&Ñ&×.Ñ.Ø×&Ñ&×.Ñ.×4Ñ4×=Ñ=Ø×&Ñ&×.Ñ.×4Ñ4×=Ñ=ôð 	×ÑØ×"Ñ"×*Ñ*ð ×"Ñ"×*Ñ*×0Ñ0×:Ñ:Ø×0Ñ0Ó2óð ×"Ñ"×*Ñ*×0Ñ0×:Ñ:Ø×0Ñ0Ó2óô	
ð 	×ÑØ×"Ñ"×*Ñ*à×"Ñ"×*Ñ*×0Ñ0×:Ñ:¸9×;SÑ;SÓ;UÓVØ×"Ñ"×*Ñ*×0Ñ0×:Ñ:¸9×;SÑ;SÓ;UÓVö		
r    r_   c                ó:  € \        V4      w  rA\        V.VO5R^/ : V: 2pV P                  P                  P	                  4       ;'       g    ^ÈpV: RRP                  V4      : RV: 2p\        V4      V8:  d   V# \        V4      V^,          8”  d   VRV^,           pV\        V4      ,
          ^,          ^,
          pVRV : RRP                  V4      RV : RV: 2pV^ ,          R8X  g   V^ ,          P                  4       '       d   RVRR ,          pV# )z�
Generate a unique name for an index/unique constraint.

The name is divided into 3 parts: the table name, the column names,
and a unique digest and suffix.
Úlengthr�  NzD%séÿÿÿÿ)r   r   rE   rn   Úmax_name_lengthr�   r^  Úisdigit)	rK   Ú
table_nameÚcolumn_namesrL  r�  Úhash_suffix_partÚ
max_lengthrÚ  Úother_lengths	   &&&&     r   rÐ  Ú+BaseDatabaseSchemaEditor._create_index_nameÑ  s  € ô )¨Ó4‰ˆä˜Ð= lÒ=¸1Ó=Úð
Ðð —_‘_×(Ñ(×8Ñ8Ó:×AÐA¸cˆ
ã#-¨s¯x©x¸Ö/EÒGWÐXˆ
Üˆz‹?˜jÔ(ØÐäÐÓ  :°¥>Ô1Ø/Ð0A°*Àµ/ÐBÐØ"¤SÐ)9Ó%:Õ:¸qÕ@À1ÕDˆà�}˜Ó%Ø�H‰H�\Ó" = LÓ1Úð
ˆ
ð �a�=˜CÔ :¨a¥=×#8Ñ#8×#:Ò#:Ø ¨C¨R Õ0ˆJØÐr    c                óš  € Vf—   \        V4      ^8X  d.   V^ ,          P                  '       d   V^ ,          P                  pMY\        P                  '       d   \        P                  pM2VP                  P                  '       d   VP                  P                  pVe-   RV P
                  P                  P                  V4      ,           # R# )Nrt   r_   )r^  rž   r   ÚDEFAULT_INDEX_TABLESPACEr(   rE   rn   rŸ   )rK   r-   r¡   rž   s   &&&&r   Ú_get_index_tablespace_sqlÚ2BaseDatabaseSchemaEditor._get_index_tablespace_sqlñ  s‘   € ØÒ Ü�6‹{˜aÔ F¨1¥I×$;×$;Ð$;Ø & q¥	× 7Ñ 7‘Ü×2×2Ð2Ü (× AÑ A‘Ø—‘×*×*Ð*Ø %§¡× 9Ñ 9�ØÒ$Ø˜Ÿ™×,Ñ,×;Ñ;¸MÓJÕJÐJÙr    c                ó(   € V'       d
   R V,           # R# )z WHERE r_   rÔ   )rK   Ú	conditions   &&r   Ú_index_condition_sqlÚ-BaseDatabaseSchemaEditor._index_condition_sqlý  s   € ßØ˜yÕ(Ð(Ùr    c                óÌ   € V'       d'   V P                   P                  P                  '       g   R # \        R\	        VP
                  P                  W P                  4      R7      # )r_   z INCLUDE (%(columns)s))r›   )rE   rH   Úsupports_covering_indexesr
   r   r(   rŽ   ro   )rK   r-   r›   s   &&&r   Ú_index_include_sqlÚ+BaseDatabaseSchemaEditor._index_include_sql  sE   € ß˜dŸo™o×6Ñ6×P×PÐPÙÜØ$Ü˜EŸK™K×0Ñ0°'¿?¹?ÓKô
ð 	
r    r¡   r   rL  Úusingrž   Úcol_suffixesrY   Ú	opclassesr  ÚincludeÚexpressionsc               óP  a a€ T;'       g    . pT;'       g    . p\        VRR7      P                  S P                  R7      pS P                  WVR7      pV Uu. uF  qÿP                  NK  	  ppT;'       g    S P
                  pVP                  P                  pVV 3R lp\        T\        VS P                  4      \        VVVV4      TV'       d   S P                  VVWy4      M\        VWÍS P                  4      VS P                  V
4      S P!                  W4      R7      # u upi )z«
Return the SQL statement to create the index for one or several fields
or expressions. `sql` can be specified if the syntax differs from the
standard (GIS indexes, ...).
F©Ú
alias_colsrr   )rž   c                  óR   <€ Sf   SP                   ! V / VB oSP                  S4      # r1   )rÐ  ro   )ÚargsÚkwargsr   rK   s   *,€€r   Úcreate_index_nameÚEBaseDatabaseSchemaEditor._create_index_sql.<locals>.create_index_name+  s,   ø€ àŠ|Ø×.Ò.°Ð?¸Ñ?�Ø—?‘? 4Ó(Ð(r    )r|   r   r"  r›   r]   r  r%  )r   rì   rE   r  r�   Úsql_create_indexr(   rŽ   r
   r   ro   r	   Ú_index_columnsr   ri   r  r   )rK   r-   r¡   r   rL  r"  rž   r#  rY   r$  r  r%  r&  rð   rŸ   r   r›   r/  r|   r-  s   f&$d$$$$$$$$$       r   rN  Ú*BaseDatabaseSchemaEditor._create_index_sql
  s  ù€ ð* —�˜2ˆØ!×'Ð' RˆÜ˜¨5Ô1×>Ñ>Ø—‘ð ?ó 
ˆð ×7Ñ7Ø¨ð 8ó 
ˆñ .4Ó4©V E—<”<©VˆÐ4Ø×7Ð7 $×"7Ñ"7ÐØ—‘×$Ñ$ˆö	)ô ØÜ˜˜tŸ™Ó/Ü˜5 '¨6Ð3DÓEØ÷ ð ×#Ñ# E¨7°LÔLä  ¨¸t×?OÑ?OÓPà Ø×/Ñ/°	Ó:Ø×+Ñ+¨EÓ;ô
ð 	
ùò 5s   ÁD#c                óè  € \        T;'       g    V P                  \        VP                  P                  V P
                  4      V P                  V4      R 7      pVP                  R,          P                  pVP                  R,          p\        V P                  4       FO  p\        V\         4      '       g   K  VP                  WV4      '       g   K4  V P                  P                  V4       KQ  	  V# )©r|   r   r|   r   )r
   rM  r   r(   rŽ   ro   Úpartsr|   r"  rO   r™   Úreferences_indexr$  )rK   r-   r   rY   r€   r  rÚ  s   &&&&   r   rÃ  Ú*BaseDatabaseSchemaEditor._delete_index_sql@  sº   € ÜØ×(Ð(�4×(Ñ(Ü˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—‘ Ó&ô
ˆ	ð —_‘_ WÕ-×3Ñ3ˆ
Ø—_‘_ VÕ,ˆ
Ü˜×)Ñ)Ö*ˆCÜ˜#œy×)Ô)¨c×.BÑ.BØ÷/ô /ð ×!Ñ!×(Ñ(¨Ö-ñ	 +ð Ðr    c                óÀ   € \        V P                  \        VP                  P                  V P
                  4      V P                  V4      V P                  V4      R 7      # ))r|   Úold_nameÚnew_name)r
   Úsql_rename_indexr   r(   rŽ   ro   )rK   r-   r8  r9  s   &&&&r   r4  Ú*BaseDatabaseSchemaEditor._rename_index_sqlR  sH   € ÜØ×!Ñ!Ü˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—_‘_ XÓ.Ø—_‘_ XÓ.ô	
ð 	
r    c                ó2   € \        WV P                  VR 7      # ))r#  )r   ro   )rK   r|   r›   r#  r$  s   &&&&&r   r0  Ú'BaseDatabaseSchemaEditor._index_columnsZ  s   € Ü�u t§¡À\ÔRÐRr    c                ó  € VP                   P                  '       d9   VP                   P                  '       g   VP                   P                  '       d   . # . pVP                   P                   F#  pVP                  V P                  W4      4       K%  	  VP                   P                   F]  pVP                  '       d)   V P                  P                  P                  '       g   K=  VP                  VP                  W4      4       K_  	  V# )zb
Return a list of all index SQL statements (field indexes, Meta.indexes)
for the specified model.
)r(   ÚmanagedÚproxyÚswappedr‡   rŒ   rŒ  rZ  r(  rE   rH   r)  rf   r—   )rK   r-   Úoutputr   r+  s   &&   r   r  Ú+BaseDatabaseSchemaEditor._model_indexes_sql]  s½   € ð
 �{‰{×"×"Ð" e§k¡k×&7×&7Ð&7¸5¿;¹;×;N×;NÐ;NØˆIØˆØ—[‘[×-Ô-ˆEØ�M‰M˜$×1Ñ1°%Ó?Ö@ñ .ð —[‘[×(Ô(ˆEà×.×.Ð.Ø—?‘?×+Ñ+×G×GÒGà—‘˜e×.Ñ.¨uÓ;Ö<ñ )ð ˆr    c                ó|   € . pV P                  W4      '       d#   VP                  V P                  W.R7      4       V# )zD
Return a list of all index SQL statements for the specified field.
r¹  )Ú_field_should_be_indexedrf   rN  )rK   r-   r   rB  s   &&& r   rŒ  Ú+BaseDatabaseSchemaEditor._field_indexes_sqlp  s;   € ð ˆØ×(Ñ(¨×6Ò6Ø�M‰M˜$×0Ñ0°¸wÐ0ÓGÔHØˆr    c                ón  € VP                   '       g   VP                   '       g   R # T;'       g    \        4       pVP                  4       w  rErgVP                  4       w  rHršVP                  VP                  4       F  pVP                  VR4       K  	  VP                  VP                  4       F  pV
P                  VR4       K  	  VP                  '       g    VP                  '       dŽ   VP                  '       d|   VP                  P                  P                  P                  VP                  P                  P                  P                  8X  d%   VP                  RR4       V
P                  RR4       VP                  R4      '       d_   V
P                  R4      '       dH   V P                  V4      V P                  V4      8X  d#   VP                  R4       V
P                  R4       V P                  VP                  4      V P                  VP                  4      8g  ;'       g
    WVV3W‰V
38g  # )FNÚtorî   )Úconcreter½  ÚdeconstructÚunionÚnon_db_attrsÚpopr   r>   r-   r(   rŽ   r®   rµ   ro   r�   )rK   r5   r;   r¶  r�  Úold_pathÚold_argsÚ
old_kwargsÚnew_pathÚnew_argsÚ
new_kwargsÚattrs   &&&&        r   rŸ  Ú1BaseDatabaseSchemaEditor._field_should_be_alteredy  sÃ  € Ø×!×!Ð!¨)×*<×*<Ð*<ÙØ—�œ3›5ˆØ,5×,AÑ,AÓ,CÑ)ˆ�XØ,5×,AÑ,AÓ,CÑ)ˆ�Xð —L‘L ×!7Ñ!7Ö8ˆDØ�N‰N˜4 Ö&ñ 9à—L‘L ×!7Ñ!7Ö8ˆDØ�N‰N˜4 Ö&ñ 9ð ×&×&Ð&Ø×&×&Ð&Ø×&×&Ð&Ø×&Ñ&×,Ñ,×2Ñ2×;Ñ;Ø×%Ñ%×+Ñ+×1Ñ1×:Ñ:ô;ð �N‰N˜4 Ô&Ø�N‰N˜4 Ô&ð �N‰N˜<×(Ò(Ø—‘˜|×,Ò,Ø×#Ñ# IÓ.°$×2EÑ2EÀiÓ2PÔPà�N‰N˜<Ô(Ø�N‰N˜<Ô(Ø�‰˜y×/Ñ/Ó0°D·O±OØ×Ñó5
ñ 
÷ Rð Rà *Ð-°(ÀjÐ1QÑQð	Rr    c                óL   € VP                   ;'       d    VP                  '       * # r1   )rÂ  rÁ   ©rK   r-   r   s   &&&r   rE  Ú1BaseDatabaseSchemaEditor._field_should_be_indexedž  s   € Ø�~‰~×2Ð2 e§l¡lÔ"2Ð2r    c                óL   € VP                   '       * ;'       d    VP                   # r1   ©r   ©rK   r5   r;   s   &&&r   r¿  Ú2BaseDatabaseSchemaEditor._field_became_primary_key¡  s   € Ø×(Ñ(Ô(×BÐB¨Y×-BÑ-BÐBr    c                ó¦   € VP                   '       * ;'       d:    VP                  ;'       d&    VP                  '       * ;'       g    VP                   # r1   )r   rÁ   r[  s   &&&r   rÎ  Ú0BaseDatabaseSchemaEditor._unique_should_be_added¤  sN   € à×%Ñ%Ô%÷ @ð @Ø× Ñ ÷@ð @à×%Ñ%Ô%×>Ð>¨×)>Ñ)>ð	
r    c           	     óº   € V P                   R V P                  V4      RV P                  VP                  4      RV P                  VP                  4      RV/,          # )r|   Ú
old_columnÚ
new_columnrÐ   )Úsql_rename_columnro   r�   )rK   r|   r5   r;   r¦  s   &&&&&r   rÅ  Ú*BaseDatabaseSchemaEditor._rename_field_sql«  sU   € Ø×%Ñ%Ø�T—_‘_ UÓ+Ø˜$Ÿ/™/¨)×*:Ñ*:Ó;Ø˜$Ÿ/™/¨)×*:Ñ*:Ó;Ø�Hð	)
õ 
ð 	
r    c           
     óŠ  € \        VP                  P                  V P                  4      pV P	                  WV4      p\        VP                  P                  VP                  .V P                  4      p\        VP                  P                  P                  P                  V P                  4      p\        VP                  P                  P                  P                  VP                  P                  .V P                  4      pV P                  P                  P                  4       p	\        V P                  VVVVVV	R 7      # ))r|   r   r�   ru   rv   r‚  )r   r(   rŽ   ro   r‡  r   r�   Útarget_fieldr-   rE   rn   rˆ  r
   Úsql_create_fk)
rK   r-   r   rL  r|   r   r�   ru   rv   r‚  s
   &&&&      r   r“   Ú'BaseDatabaseSchemaEditor._create_fk_sql³  sø   € Ü�e—k‘k×*Ñ*¨D¯O©OÓ<ˆØ×'Ñ'¨°fÓ=ˆÜ˜Ÿ™×-Ñ-°·±¨~¸t¿¹ÓOˆÜ˜×+Ñ+×1Ñ1×7Ñ7×@Ñ@À$Ç/Á/ÓRˆÜØ×Ñ×$Ñ$×*Ñ*×3Ñ3Ø×Ñ×&Ñ&Ð'Ø�O‰Oó
ˆ	ð
 —_‘_×(Ñ(×7Ñ7Ó9ˆ
ÜØ×ÑØØØØØØ!ô
ð 	
r    c                ó  a € V 3R  lp\        VP                  P                  VP                  .\	        VP
                  P                  P                  P                  4      ^,          VP
                  P                  .VV4      # )c                  óF   <€ SP                  SP                  ! V / VB 4      # r1   ©ro   rÐ  ©r+  r,  rK   s   *,€r   Úcreate_fk_nameÚDBaseDatabaseSchemaEditor._fk_constraint_name.<locals>.create_fk_nameÉ  s"   ø€ Ø—?‘? 4×#:Ò#:¸DÐ#KÀFÑ#KÓLÐLr    )r   r(   rŽ   r�   r   re  r-   )rK   r-   r   rL  rl  s   f&&& r   r‡  Ú,BaseDatabaseSchemaEditor._fk_constraint_nameÈ  sk   ø€ õ	Mô Ø�K‰K× Ñ Ø�\‰\ˆNÜ˜U×/Ñ/×5Ñ5×;Ñ;×DÑDÓEÀaÕHØ×Ñ×&Ñ&Ð'ØØó
ð 	
r    c                ó:   € V P                  V P                  W4      # r1   )r`  Úsql_delete_fk©rK   r-   r   s   &&&r   r—  Ú'BaseDatabaseSchemaEditor._delete_fk_sqlÕ  ó   € Ø×*Ñ*¨4×+=Ñ+=¸uÓKÐKr    c                ón   € Vf   R# V\         P                  8X  d   R# V\         P                  8X  d   R# R # )Nr_   z DEFERRABLE INITIALLY DEFERREDz DEFERRABLE INITIALLY IMMEDIATE)r   ÚDEFERREDÚ	IMMEDIATE)rK   r‚  s   &&r   Ú_deferrable_constraint_sqlÚ3BaseDatabaseSchemaEditor._deferrable_constraint_sqlØ  s2   € ØÒÙØœ×,Ñ,Ô,Ù3Øœ×-Ñ-Ô-Ù4ñ .r    c                ó&   € VR J d   R# VRJ d   R# R# )Fz NULLS NOT DISTINCTTz NULLS DISTINCTr_   rÔ   )rK   Únulls_distincts   &&r   Ú _unique_index_nulls_distinct_sqlÚ9BaseDatabaseSchemaEditor._unique_index_nulls_distinct_sqlà  s   € Ø˜UÓ"Ù(Ø˜tÓ#Ù$Ùr    c                ó  € V'       * ;'       g)    V P                   P                  P                  ;'       dÒ    V'       * ;'       g)    V P                   P                  P                  ;'       d›    V'       * ;'       g)    V P                   P                  P                  ;'       dd    V'       * ;'       g)    V P                   P                  P
                  ;'       d-    VR J ;'       g!    V P                   P                  P                  # r1   )rE   rH   Úsupports_partial_indexesÚ&supports_deferrable_unique_constraintsr  r)  Ú*supports_nulls_distinct_unique_constraints)rK   r  r‚  r%  r&  rz  s   &&&&&&r   Ú_unique_supportedÚ*BaseDatabaseSchemaEditor._unique_supportedç  sÙ   € ð Œ]×OÐO˜dŸo™o×6Ñ6×OÑO÷ ð à”÷ Sð SØ—?‘?×+Ñ+×RÑR÷ð ð
 ”×RÐR §¡× 8Ñ 8× RÑ R÷ð ð  ”×WÐW 4§?¡?×#;Ñ#;×#WÑ#W÷ð ð  $Ð&÷ Wð WØ—?‘?×+Ñ+×VÑVð	
r    c
                ó  € V P                  VVVVV	R 7      '       g   R# V'       g   V'       g   V'       g   V'       g   V	e?   V P                  VVVVVVVV	R7      p
V
'       d   V P                  P                  V
4       R# V P                  RRP                  V Uu. uF  q°P                  VP                  4      NK  	  up4      RV P                  V4      /,          pV P                  RV P                  V4      RV/,          # u upi )©r  r‚  r%  r&  rz  N)r   r  r%  r$  r&  rz  r›   r~   r‚  r   rz   )
r�  r†   rO   rf   Úsql_unique_constraintr�   ro   r�   rw  Úsql_constraint)rK   r-   r¡   r   r  r‚  r%  r$  r&  rz  rY   r   rz   s   &&&&&&&&&&   r   Ú_unique_sqlÚ$BaseDatabaseSchemaEditor._unique_sqlÿ  s  € ð ×%Ñ%ØØ!ØØ#Ø)ð &÷ 
ò 
ñ ÷ ßßßØÒ)ð ×)Ñ)ØØØØ#ØØ#Ø'Ø-ð *ó 	ˆC÷ Ø×!Ñ!×(Ñ(¨Ô-ÙØ×/Ñ/Ø�t—y‘yÉVÓ!TÉVÀE§/¡/°%·,±,Ö"?ÉVÑ!TÓUØ˜$×9Ñ9¸*ÓEð3
õ 
ˆ
ð ×"Ñ"Ø�D—O‘O DÓ)Ø˜*ð&
õ 
ð 	
ùò "Us   Â#Dc
                óä  € V P                  VVVVV	R 7      '       g   R# \        VRR7      P                  V P                  R7      p
VP                  P
                  pV Uu. uF  qÌP                  NK  	  ppVf   V P                  W½RR7      pMV P                  V4      pV'       g   V'       g   V'       g	   V'       d   V P                  pMV P                  pV'       d   V P                  W½R	VR7      pM\        W¸W P                  4      p\        V\        W°P                  4      VVV P!                  V4      V P#                  V4      V P%                  W4      V P'                  V	4      R7      # u upi )
r„  NFr(  rr   TrU  )r#  r$  )r|   r   r›   r  r‚  r%  rz  rÔ   )r�  r   rì   rE   r(   rŽ   r�   r]  ro   Úsql_create_unique_indexÚsql_create_uniquer0  r   ri   r
   r   r  rw  r   r{  )rK   r-   r¡   r   r  r‚  r%  r$  r&  rz  rð   r|   r   r›   rY   s   &&&&&&&&&&     r   r†   Ú+BaseDatabaseSchemaEditor._create_unique_sql3  sS  € ð ×%Ñ%ØØ!ØØ#Ø)ð &÷ 
ò 
ñ ä˜¨5Ô1×>Ñ>Ø—‘ð ?ó 
ˆð —‘×$Ñ$ˆÙ-3Ó4©V E—<”<©VˆÐ4ØŠ<Ø×/Ñ/°ÀdÐ/ÓK‰Dà—?‘? 4Ó(ˆDßŸ§9·Ø×.Ñ.‰Cà×(Ñ(ˆCßØ×)Ñ)Ø¨R¸9ð *ó ‰Gô " %°h×@PÑ@PÓQˆGÜØÜ˜Ÿ™Ó/ØØØ×/Ñ/°	Ó:Ø×6Ñ6°zÓBØ×+Ñ+¨EÓ;Ø×@Ñ@ÀÓPô	
ð 		
ùò 5s   Á E-c                óT   a € V'       d   V 3R  lpMS P                   p\        WRV4      # )c                  óF   <€ SP                  SP                  ! V / VB 4      # r1   rj  rk  s   *,€r   Úcreate_unique_nameÚLBaseDatabaseSchemaEditor._unique_constraint_name.<locals>.create_unique_namei  s"   ø€ Ø—‘ t×'>Ò'>ÀÐ'OÈÑ'OÓPÐPr    Ú_uniq)rÐ  r	   )rK   r|   r›   rV  r�  s   f&&& r   r]  Ú0BaseDatabaseSchemaEditor._unique_constraint_namef  s*   ø€ ßöQð "&×!8Ñ!8Ðä˜¨Ð2DÓEÐEr    c	                óÔ   € V P                  VVVVVR 7      '       g   R# V'       g   V'       g   V'       g	   V'       d   V P                  p	MV P                  p	V P                  W‘V4      # )r„  N)r�  rM  rC  r`  )
rK   r-   r   r  r‚  r%  r$  r&  rz  rY   s
   &&&&&&&&& r   rÀ  Ú+BaseDatabaseSchemaEditor._delete_unique_sqlq  sb   € ð ×%Ñ%ØØ!ØØ#Ø)ð &÷ 
ò 
ñ ßŸ§9·Ø×'Ñ'‰Cà×(Ñ(ˆCØ×*Ñ*¨3°tÓ<Ð<r    c                ót   € V P                   R V P                  V4      RV P                  RV/,          /,          # )r   rz   rs   )r†  ro   rŠ   )rK   r   rs   s   &&&r   Ú
_check_sqlÚ#BaseDatabaseSchemaEditor._check_sqlŠ  s=   € Ø×"Ñ"Ø�D—O‘O DÓ)Ø˜$×3Ñ3°wÀÐ6FÕFð&
õ 
ð 	
r    c                óò   € V P                   P                  P                  '       g   R # \        V P                  \        VP                  P                  V P                  4      V P                  V4      VR7      # )N)r|   r   rs   )	rE   rH   Ú supports_table_check_constraintsr
   Úsql_create_checkr   r(   rŽ   ro   )rK   r-   r   rs   s   &&&&r   rÑ  Ú*BaseDatabaseSchemaEditor._create_check_sql�  sX   € Ø�‰×'Ñ'×H×HÐHÙÜØ×!Ñ!Ü˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—‘ Ó&Øô	
ð 	
r    c                óŠ   € V P                   P                  P                  '       g   R # V P                  V P                  W4      # r1   )rE   rH   r™  r`  Úsql_delete_checkrq  s   &&&r   rÄ  Ú*BaseDatabaseSchemaEditor._delete_check_sqlš  s4   € Ø�‰×'Ñ'×H×HÐHÙØ×*Ñ*¨4×+@Ñ+@À%ÓNÐNr    c                óŒ   € \        V\        VP                  P                  V P                  4      V P	                  V4      R 7      # )r3  )r
   r   r(   rŽ   ro   )rK   Útemplater-   r   s   &&&&r   r`  Ú/BaseDatabaseSchemaEditor._delete_constraint_sqlŸ  s6   € ÜØÜ˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—‘ Ó&ô
ð 	
r    c
           
     óê  € Ve«   V U
u. uFž  p
V P                   P                  P                  '       dQ   V P                   P                  P	                  \        W P                   P                  P                  4       4      4      M$V P                   P                  P	                  V
4      NK   	  pp
V P                   P                  4       ;_uu_ 4       pV P                   P                  P                  W±P                  P                  4      pRRR4       . pXP                  4        F²  w  r®Ve   W.R,          8X  g   K  Ve   VR,          V8w  d   K,  Ve   VR,          V8w  d   K@  Ve   VR,          V8w  d   KT  Ve   VR,          V8w  d   Kh  Ve   VR,          '       g   K}  Ve   VR,          V8w  d   K‘  V	'       d	   W©9  g   K¡  VP                  V
4       K´  	  V# u up
i   + '       g   i     Lß; i)	z@Return all constraint names matching the columns and conditions.Nr›   rÁ   r   r+  rs   r–  rÐ   )rE   rH   Útruncates_namesÚintrospectionÚidentifier_converterr   rn   r  rj   Úget_constraintsr(   rŽ   Úitemsrf   )rK   r-   r  rÁ   r   r+  r–  rs   r¸  rT  r   rj   r–   ÚresultÚinfodicts   &&&&&&&&&&     r   r[  Ú*BaseDatabaseSchemaEditor._constraint_names¦  s¬  € ð Ò#ñ )ó	ñ )�Dð —‘×/Ñ/×?×?Ð?ð —O‘O×1Ñ1×FÑFÜ% d¯O©O×,?Ñ,?×,OÑ,OÓ,QÓRôð Ÿ™×6Ñ6×KÑKÈDÓQò	Rñ )ð ð 	ð �_‰_×#Ñ#×%Ô%¨ØŸ/™/×7Ñ7×GÑGØŸ™×,Ñ,óˆK÷ &ð ˆØ)×/Ñ/Ö1‰NˆDØÒ# |À	Õ7JÖ'JØÒ%¨(°8Õ*<ÀÔ*FÙØÒ*¨x¸Õ/FÈ+Ô/UÙØÒ$¨°'Õ):¸eÔ)CÙØÒ$¨°'Õ):¸eÔ)CÙØÒ*°8¸M×3JÔ3JÙØÒ$¨°&Õ)9¸UÔ)BÙß $Ö"5Ø—M‘M $Ö'ñ 2ð  ˆùò?	÷ &×%ús   ‰*G´A9GÃ:G"Ç"G2	c                ó`   a € S P                   R RP                  V 3R lV 4       4      /,          # )r›   r~   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir1   ©ro   )r3   r�   rK   s   & €r   r6   Ú>BaseDatabaseSchemaEditor._pk_constraint_sql.<locals>.<genexpr>×  s   øé € Ð OÁw¸V §¡°×!8Ð!8Ãwùré   )Úsql_pk_constraintr�   )rK   r›   s   f&r   rš   Ú+BaseDatabaseSchemaEditor._pk_constraint_sqlÕ  s/   ø€ Ø×%Ñ%Ø�t—y‘yÔ OÁwÓ OÓOð)
õ 
ð 	
r    c                ó  € V P                  VR R7      pV'       dA   \        V4      ^8w  d1   \        R\        V4      : RVP                  P                  : 24      hV F#  pV P                  V P                  W4      4       K%  	  R# )TrZ  rW  z) of PK constraints for N)r[  r^  r_  r(   rŽ   rT   Ú_delete_primary_key_sql)rK   r-   r¢  rd  rÓ  s   &&&  r   rÍ  Ú,BaseDatabaseSchemaEditor._delete_primary_keyÚ  su   € Ø×1Ñ1°%ÀTÐ1ÓJÐß”cÐ*Ó+¨qÔ0Ýô Ð(Ö)Ø—K‘K×(Ó(ðóð ó  0ˆOØ�L‰L˜×5Ñ5°eÓMÖNó  0r    c                ól  € \        V P                  \        VP                  P                  V P
                  4      V P                  V P                  VP                  P                  VP                  .R R7      4      \        VP                  P                  VP                  .V P
                  4      R7      # )Ú_pkr¼  )r|   r   r›   )	r
   Úsql_create_pkr   r(   rŽ   ro   rÐ  r�   r   rW  s   &&&r   rÏ  Ú0BaseDatabaseSchemaEditor._create_primary_key_sqlç  sˆ   € ÜØ×ÑÜ˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—‘Ø×'Ñ'Ø—K‘K×(Ñ(¨5¯<©<¨.Àð (ó óô
 ˜EŸK™K×0Ñ0°5·<±<°.À$Ç/Á/ÓRô	
ð 		
r    c                ó:   € V P                  V P                  W4      # r1   )r`  Úsql_delete_pkrq  s   &&&r   r²  Ú0BaseDatabaseSchemaEditor._delete_primary_key_sqló  rs  r    c                óF   € V'       d   R V P                  V4      ,           # R# )zCOLLATE r_   r­  )rK   rª   rÔ  r  s   &&&&r   r¯   Ú%BaseDatabaseSchemaEditor._collate_sqlö  s   € ß:Cˆz˜DŸO™O¨IÓ6Õ6ÐKÈÐKr    c                ó’   € V P                   R V P                  V4      RRP                  V4      /,          pV P                  V4       R# )Ú	procedureÚparam_typesÚ,N)Úsql_delete_procedurero   r�   rT   )rK   Úprocedure_namer¿  rY   s   &&& r   Úremove_procedureÚ)BaseDatabaseSchemaEditor.remove_procedureù  sA   € Ø×'Ñ'Ø˜Ÿ™¨Ó8Ø˜3Ÿ8™8 KÓ0ð+
õ 
ˆð 	�‰�SÖr    )r   rJ   rF   rG   rE   rO   )FTrÔ   )rÔ   )Fr  r1   )NNNNN)NNNNNN)NNNNNNN)T)NNNNNNNNrÑ   ){Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rœ   rl  r{  r!  r‰  r‹  rü  rñ  rò  r÷  rö  rõ  r˜  rb  rÌ  r…  rŠ   Úsql_delete_constraintr†  r¯  rš  r�  r‹  rC  rf  r‘   r†  rp  r/  rŠ  r:  rM  r¶  r¹  rÁ  rt  r  rL   rQ   rU   rT   ro   r§   rÍ   rˆ   r¶   r·   r»   r¹   rµ   r¿   Ústaticmethodr  r¸   ri   r  r   r,  r0  r7  r;  r>  rH  rQ  rB  rp  r  r~  r’  rœ  rª  r³  r¡  rÉ  rŠ  rÈ  rÇ  r  r²   r   rÐ  r  r  r   rN  rÃ  r4  r0  r  rŒ  rŸ  rE  r¿  rÎ  rÅ  r“   r‡  r—  rw  r{  r�  r‡  r†   r]  rÀ  r–  rÑ  rÄ  r`  r[  rš   rÍ  rÏ  r²  r¯   rÃ  Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   rC   rC   M   sC  ø‡ € ñð AÐØJÐØVÐØ5ÐàTÐØ:ÐØPÐØCÐØ FÐØPÐØ"HÐØ'BÐ$ØNÐàNð ð 	Qð ð AÐØ.ÐØLÐØ9€NØ3ÐàXÐØ,Ðð	?ð ð .Ðð	@ð ð  ÐØ"&ÐØ)€Mð	9ð ð
	Bð ð IÐØ,Ðð 	Rð ð *€Mà9ÐàIÐØVÐôUòòAô,ò>4òaòJANôF
ò6òò
òò)ò&Sð ñó ðò2Wò$ò!>òF.ò*	Aò4ò-ò+òòAò*Vò* SòDHò&ò	
òV$òp.ô@Q
òf	ôn$ò`ô:$
ôL
ò8,
ò\	
ò/ò
ô@ô@
òò

ð4
ð ð	4
ð
 ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ô4
ôlò$
òSòò&ô#RòJ3òCò
ò
ò
ò*
òLò5òô
ô02
ôh1
ôf	Fô=ò2
ò
òOò

ô-ò^
ô
Oò

òLôL÷ò r    rC   )$Úloggingr*   r   Údjango.confr   Údjango.core.exceptionsr   Ú!django.db.backends.ddl_referencesr   r   r   r	   r
   r   Údjango.db.backends.utilsr   r   r   Údjango.db.modelsr   r   Ú!django.db.models.fields.compositer   Údjango.db.models.sqlr   Údjango.db.transactionr   r   Údjango.utilsr   Ú	getLoggerrb   r   r.   r=   rC   rÔ   r    r   Ú<module>rÚ     sb   ðÛ Û Ý å  Ý -÷÷ ÷ SÑ Rß .Ý AÝ &ß DÝ !à	×	Ò	Ð6Ó	7€ò1ò 
ò
÷.qó qr    