+
    S<Âj˜M ã                   ó  € ^ RI t ^ RIt^ RIH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)Úchain)Ú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   ;'       g    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Úattname)ÚrelationÚaltered_fieldr   s   && Ú^/var/www/html/data_capital/venv/lib/python3.14/site-packages/django/db/backends/base/schema.pyÚ_is_relevant_relationr!      sm   € ð
 �N‰N€EØ××ÐáØ× × Ð  U§_¡_¸¸Ô%>áð 	×Ñ˜eŸo™oÑ-÷ 	4ð 	4Ø× Ñ  E§O¡OÑ3ðó    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_fieldsr0   -   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r3   r4   )r5   r6   Ú	new_fields   & €r    r8   r9   C   r:   r;   N)Úzipr0   r/   Ú_related_non_m2m_objectsÚremote_field)r7   r=   Úrelated_fieldsÚold_relÚnew_rels   ff   r    r?   r?   :   s   ùé € ô ô	
ä*¨9¯?©?Ô;ó	
ô
	
ä*¨9¯?©?Ô;ó	
ó€Nó +ÑˆØÐÒÜ+Ø× Ñ Ø× Ñ ó
÷ 	
ò 	
ó +ñ	
ùs   „A6BÁ:BÁ;Bc                   ó"  a € ] tR t^Qt 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. t7R/ t8]9R0 4       t:R1 t;R2 t<R3 t=R4 t>R5 t?R6 t@R7 tAR8 tBR9 tCR: tDR; tER< tFR= tGR> tHR? tIR@ tJRA tKR�RB ltLRC tMR�RD ltNRE tOR�RF ltPR�RG ltQRH tRRI tSRJ tTRK tUR‚RM ltVRƒRN ltWRO tXRP tYRQRRRRRSRLRTRLRURRVRRWRRXRRYRRZRR[R/R\ ltZRƒR] lt[R^ t\R_ t]R` t^Ra t_Rb t`RƒRc ltaRd tbRe tcRf tdRg teRh tfRi tgRj thRk tiRl tjR„Rm ltkR…Rn ltlR†Ro ltmR‡Rp ltnR…Rq ltoRr tpRs tqRt trRu tsRˆRv lttRw tuR�Rx ltvRy twRz txR‰R{ ltyR€R| ltzR}t{V t|R# )ŠÚ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 DEFAULTz,ALTER TABLE %(table)s DROP COLUMN %(column)szDALTER 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)%(on_delete_db)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 n        V P                   P                  P
                  ;'       d    TV n        R # r3   )Ú
connectionÚcollect_sqlÚcollected_sqlÚcollected_table_renamesÚfeaturesÚcan_rollback_ddlÚatomic_migration)ÚselfrG   rH   r   s   &&&&r    Ú__init__Ú!BaseDatabaseSchemaEditor.__init__š   sK   € Ø$ŒØ&ÔØ××ÐØ!#ˆDÔð ,.ˆ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 # r3   )Údeferred_sqlrM   r   rG   ÚaliasÚ	__enter__)rN   s   &r    rT   Ú"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 # r3   )rR   ÚexecuterM   r   Ú__exit__)rN   Úexc_typeÚ	exc_valueÚ	tracebackÚsqls   &&&& r    rX   Ú!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)Úparamsr\   )ÚextraÚ;Ú N)rH   rG   Úin_atomic_blockrK   rL   r   ÚstrÚloggerÚdebugÚrstripÚendswithrI   ÚappendÚtupleÚmapÚquote_valueÚcursorrW   )rN   r\   r_   Úendingrm   s   &&&  r    rW   Ú 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      # r3   )rG   ÚopsÚ
quote_name)rN   r   s   &&r    rr   Ú#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dE   VP                  '       Ed2   VP                  P                  P                   P                   pVP                  P                  P                   P                  VP                  P"                  4      P$                  pS P&                  '       dW   VRS P&                  RS P)                  V4      RS P)                  V4      RS P+                  SV4      /,          ,           ,          pMRS P                  P,                  P.                  '       d-   S P                  P	                  S P1                  SVR4      4       VP	                  S P)                  VP$                  4      : RV: 24       VP3                  4       R9   g   EKO  S P                  P4                  P7                  SP                   P                   VP$                  4      pV'       g   EKž  S P                  P                  V4       EK¼  	  . pV'       dJ   SP                   P8                   F.  pS P                  P	                  VP;                  SS 4      4       K0  	  M0VP                  VV 3R	 lSP                   P8                   4       4       SP                   P<                  p\?        V\@        4      '       d+   VP	                  S PC                  VPD                  4      4       S PF                  R
S P)                  SP                   P                   4      RRPI                  R . VOVO 4       4      /,          pSP                   PJ                  '       dR   S P                  P4                  PM                  SP                   PJ                  4      pV'       d   VRV,           ,          pVV3# u upi )z-Take a model and return its table definition.©rG   ÚcheckÚ z %sÚto_tableÚ	to_columnÚon_delete_dbú_fk_%(to_table)s_%(to_column)sc              3   óH   <"  € T F  pVP                  SS4      x € K  	  R # 5ir3   )Úconstraint_sql)r5   Ú
constraintr/   rN   s   & €€r    r8   Ú5BaseDatabaseSchemaEditor.table_sql.<locals>.<genexpr>#  s(   øé € ð #á"9�Jð ×)Ñ)¨%°×6Ð6Û"9ùó   ƒ"ÚtableÚ
definitionú, c              3   óL   "  € T F  pV'       g   K  \        V4      x € K  	  R # 5ir3   )rd   )r5   Ú	statements   & r    r8   r   .  s"   é € ð $á!A�IÜô ”�I—�Û!Aùs   ‚
$‘$)Ú	AutoFieldÚBigAutoFieldÚSmallAutoField)'r*   Úunique_togetherÚ	get_fieldrR   ri   Ú_create_unique_sqlÚlocal_fieldsÚ
column_sqlÚdb_parametersrG   Úsql_check_constraintÚdb_type_suffixÚextendr@   Údb_constraintr/   Údb_tableÚ
field_nameÚcolumnÚsql_create_inline_fkrr   Ú_create_on_delete_sqlrK   Úsupports_foreign_keysÚ_create_fk_sqlÚget_internal_typerq   Úautoinc_sqlÚconstraintsÚ
create_sqlÚpkÚ
isinstancer   Ú_pk_constraint_sqlÚcolumnsÚsql_create_tableÚjoinÚdb_tablespaceÚtablespace_sql)rN   r/   Úfield_namesr   ÚfieldsÚcolumn_sqlsr_   r‚   Úextra_paramsÚ	db_paramsÚcol_type_suffixrx   ry   r›   Úconstraint_sqlsr~   rž   r\   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Ó%?Ø&¨×(BÑ(BÀ5È%Ó(PðEõ )õ #õ ‘Jð
 —_‘_×-Ñ-×C×CÐCØ×%Ñ%×,Ñ,Ø×+Ñ+Ø! 5Ð*Jóôð ×Ñð —O‘O E§L¡LÖ1Úðôð ×&Ñ&Ó(ð -÷ ð
 #Ÿo™o×1Ñ1×=Ñ=Ø—K‘K×(Ñ(¨%¯,©,ó�÷ ’;Ø×%Ñ%×,Ñ,¨[×9ñg .ðr ˆßð $Ÿ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ˆ{Ðùò{ Ms    $S+c              #  ó^  "  € Vx € VP                  R 4      ;p'       d   V P                  V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P*                  '       d   Rx € VP,                  ;'       g    VP.                  P,                  pV'       db   V P                  P                  P0                  '       d<   VP*                  '       d*   V P                  P2                  P5                  VRR	7      x € V P                  P                  P6                  '       d4   VP8                  '       d    V P;                  VP8                  4      x € R# R# R# 5i)
Ú	collationzDEFAULT FNTzNOT NULLÚNULLzPRIMARY KEYÚUNIQUE)Úinline)ÚgetÚ_collate_sqlÚnullÚhas_db_defaultÚdb_default_sqlr‘   Úskip_defaultÚskip_default_on_alterÚeffective_defaultÚ_column_default_sqlrG   rK   Úrequires_literal_defaultsÚprepare_defaultri   Úempty_strings_allowedr   Ú!interprets_empty_strings_as_nullsÚ	generatedÚ_column_generated_sqlÚimplied_column_nullÚuniquer¤   r*   Úsupports_tablespacesrq   r¥   Úsupports_comments_inlineÚ
db_commentÚ_comment_sql)rN   Ú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_sql>  s~  é € ð ÒØ'×+Ñ+¨KÓ8Ð8ˆ9Ö8Ø×#Ñ# IÓ.Ò.à�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Ø�?‰?×#Ñ#×<×<Ð<À×AQ×AQÐAQØ×#Ñ# E×$4Ñ$4Ó5Ô5ñ BRÑ<ùs�   ‚AL-Á5L-ÂL-Â)	L-Â3L-ÃAL-Ä%A L-Å&L-Å8%L-ÆL-Æ20L-Ç#*L-ÈL-È$L-È;L-ÉL-É1%L-ÊL-Ê)AL-Ë8L-Ì
#L-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.
ru   Útyperw   ©NN)rŽ   rG   r£   rÓ   )rN   r/   r   rË   rÊ   rÉ   r_   s   &&&&   r    r�   Ú#BaseDatabaseSchemaEditor.column_sql�  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© ©rN   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©rN   Ú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.   ru   c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   )r¾   ©r5   ÚprN   s   & €r    r8   Ú: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_compilerrG   ÚcompilerK   r½   rj   )	rN   r   rê   Ú
db_defaultr\   Ú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                ó.   € VP                   '       d   R# R# )z=Return the SQL to define the persistency of generated fields.ÚSTOREDÚVIRTUAL)Ú
db_persistrÛ   s   &&r    Ú!_column_generated_persistency_sqlÚ:BaseDatabaseSchemaEditor._column_generated_persistency_sqlÍ  s   € à ×+×+Ð+ˆxÐ:°Ð:r"   c                ó6  a € VP                  S P                  4      w  r#S P                  V4      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.c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5ir3   ©rl   rì   s   & €r    r8   Ú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Ð   rG   rü   rK   r½   rj   )rN   r   Úexpression_sqlr_   Úpersistency_sqls   f&   r    rÂ   Ú.BaseDatabaseSchemaEditor._column_generated_sqlÑ  s„   ø€ à!&×!4Ñ!4°T·_±_Ó!EÑˆØ×@Ñ@ÀÓGˆØ�?‰?×#Ñ#×=×=Ð=Ø+¯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"   rb   Ú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  rG   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    rl   Ú$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`.
Nru   rÖ   )r­   rW   rG   rK   Úsupports_commentsr*   Údb_table_commentÚalter_db_table_commentrÆ   rŒ   rÇ   rŽ   Ú_alter_column_comment_sqlrR   r‘   Ú_model_indexes_sqlÚlocal_many_to_manyr@   ÚthroughÚauto_createdÚcreate_model)rN   r/   r\   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_modelrW   Úsql_delete_tablerr   r“   ÚlistrR   rŸ   r   Úreferences_tableÚremove)rN   r/   r   r\   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_expressionsrG   rK   Úsupports_expression_indexesrW   r�   ©rN   r/   Úindexs   &&&r    Ú	add_indexÚ"BaseDatabaseSchemaEditor.add_index<  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)r1  rG   rK   r2  rW   Ú
remove_sqlr3  s   &&&r    Úremove_indexÚ%BaseDatabaseSchemaEditor.remove_indexG  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 # )Nr0  )rG   rK   Úcan_rename_indexrW   Ú_rename_index_sqlr   r9  r5  )rN   r/   Ú	old_indexÚ	new_indexs   &&&&r    Úrename_indexÚ%BaseDatabaseSchemaEditor.rename_indexP  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.Nr0  )r�   rW   ©rN   r/   r~   r\   s   &&& r    Úadd_constraintÚ'BaseDatabaseSchemaEditor.add_constraintZ  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)r8  rW   rC  s   &&& r    Úremove_constraintÚ*BaseDatabaseSchemaEditor.remove_constraintb  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)rj   Ú
differenceÚ_delete_composed_indexÚsql_delete_uniquer*   rŠ   rW   r‹   )	rN   r/   Úold_unique_togetherÚnew_unique_togetherr§   ÚoldsÚnewsr¦   r   s	   &&&&     r    Úalter_unique_togetherÚ.BaseDatabaseSchemaEditor.alter_unique_togetherh  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.
r4  TrÄ   FÚ_idx)r§   ÚsuffixN)rj   rJ  rK  Úsql_delete_indexr*   rŠ   rW   Ú_create_index_sql)	rN   r/   Úold_index_togetherÚnew_index_togetherr§   rO  rP  r¦   r   s	   &&&&     r    Úalter_index_togetherÚ-BaseDatabaseSchemaEditor.alter_index_together}  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           
     óZ  aa€ 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                  R 4      RJ p
VP                   P                  oV
'       dÒ   \        V P                  4       F¸  o\        S\        4      '       g   K  SP                  S4      '       g   K4  \        ;QJ d     VV3R lV	 4       F  '       d   K   RM	  RM! VV3R lV	 4       4      '       g   Kx  SP                  R,          P                  V	8X  g   Kœ  V P                  P!                  S4        R# 	  V P"                  ! VV	3RWg,          /VB pV
'       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   \1        R\/        V4      : R	VP                   P                  : R
RP3                  V	4      : R24      hV P5                  V P7                  WAV^ ,          4      4       R# u upi u upi u upi )rÄ   Tc              3   óH   <"  € T F  pSP                  SV4      x € K  	  R # 5ir3   )Úreferences_column)r5   r•   Údeferredr�   s   & €€r    r8   ÚBBaseDatabaseSchemaEditor._delete_composed_index.<locals>.<genexpr>¤  s%   øé € ð ÙPWÀf˜×2Ñ2°5¸&×AÐAÓPWùr€   Fr¡   NÚexclude©ÚquoteúFound wrong number (z) of constraints for Ú(rƒ   Ú))r*   rœ   r   ÚindexesrŠ   r•   r´   r“   r+  rR   rŸ   r   r,  ÚallÚpartsr¡   r-  Ú_constraint_namesrG   rK   Ú*allows_multiple_constraints_on_same_fieldsrd   Ú_unique_constraint_nameÚlenÚ
ValueErrorr£   rW   Ú_delete_constraint_sql)rN   r/   r§   Úconstraint_kwargsr\   r~   Úmeta_constraint_namesÚmeta_index_namesr   r¡   Úis_unique_constraintÚconstraint_namesÚdefault_namer_  r�   s   &&&&&        @@r    rK  Ú/BaseDatabaseSchemaEditor._delete_composed_index’  s3  ù€ à.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×4Ñ4°XÓ>À$ÐFÐØ—‘×$Ñ$ˆßÜ  ×!2Ñ!2Ö3�ä˜x¬×3Ô3Ø ×1Ñ1°%×8Ô8ß›õ ÙPWóŸŸšõ ÙPWó÷ ô ð !Ÿ™ yÕ1×9Ñ9¸WÖDà×%Ñ%×,Ñ,¨XÔ6Úñ 4ð  ×1Ò1ØØñ
ð *Õ<ð
ð  ñ	
Ð÷ !ß Ø—‘×(Ñ(×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ùòg!
ùò SùÚKs   ›JÁ	J#Á#-J(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                  '       d*   V P                  P                  W"4      pW@P                  V&   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)rG   rK   Úignores_table_name_caseÚlowerrW   Úsql_rename_tablerr   rH   rJ   ÚpoprR   rŸ   r   Úrename_table_references)rN   r/   Úold_db_tableÚnew_db_tableÚexisting_tabler\   s   &&&&  r    Úalter_db_tableÚ'BaseDatabaseSchemaEditor.alter_db_tableÈ  sÛ   € àÔ'Ø�O‰O×$Ñ$×<×<Ð<Ø×"Ñ"Ó$¨×(:Ñ(:Ó(<Ô<áØ�‰Ø×!Ñ!à˜TŸ_™_¨\Ó:Ø˜TŸ_™_¨\Ó:ðõô	
ð ××Ðð "×9Ñ9×=Ñ=ØóˆNð :H×(Ñ(¨Ñ6à×$Ô$ˆ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�   Úcommentrb   N)	Úsql_alter_table_commentrG   rK   r  rW   rr   r*   r“   rl   )rN   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)rW   Úsql_retablespace_tablerr   r*   r“   )rN   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da   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       RV P3                  W4      /,          ,           ,          pM+V P4                  P7                  V P9                  WV4      4       V P:                  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 PA                  V4      '       gv   V PC                  V4      ec   V PE                  VRVRR7      w  rÔV PF                  RV P-                  VP                  P                   4      RV/,          pV P=                  WÄ4       VPH                  '       d€   V P                  P                  PJ                  '       dZ   V P                  P                  PL                  '       g4   VR,          pV P<                  ! V PO                  WWâPH                  4      !   V P4                  PQ                  V PS                  W4      4       V P                  P                  PT                  '       d   V P                  PW                  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Ë   Nru   rw   rv   r{   r   Ú	namespacez%s.rb   r•   rx   ry   Ú
deferrablerz   r�   r‚   ©ÚdropÚchangesrÖ   ),r   r@   r#  r*   r$  r%  r�   r�   rG   rŽ   r�   rK   r˜   r’   Úsql_create_column_inline_fkr/   r“   rŠ   r”   r•   r   Ú_fk_constraint_namerr   rq   Údeferrable_sqlr—   rR   ri   r™   Úsql_create_columnrW   r·   rº   r»   Ú_alter_column_default_sqlÚsql_alter_columnrÇ   r  rÆ   r   r‘   Ú_field_indexes_sqlÚconnection_persists_old_columnsÚclose)rN   r/   r   r‚   r_   r«   rª   Úconstraint_suffixrx   ry   r“  Ú_r\   Ú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Ø" D×$>Ñ$>¸uÓ$Lð
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.
ru   rÖ   NT©Úforeign_keyr�   r•   )r   r@   r#  r*   r$  r)  rŽ   rG   rj  r•   rW   Ú_delete_fk_sqlÚsql_delete_columnrr   r“   rK   rŸ  r   r+  rR   rŸ   r   r^  r-  )rN   r/   r   Úfk_namesÚfk_namer\   s   &&&   r    Úremove_fieldÚ%BaseDatabaseSchemaEditor.remove_fieldQ  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           
     óD  € 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	M…VP                  '       dt    VP                  V P                  4      p
VP                  V P                  4      pW«8g  p	V P                  P                  pV	'       g   Wh8w  d   VP                  '       g   R	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.
Nru   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Ž   rG   r@   rn  r#  r*   r$  Ú_alter_many_to_manyrÁ   rû   rÐ   rK   Ú)supports_alter_generated_column_data_typer   Ú_alter_field)rN   r/   r7   r=   ÚstrictÚold_db_paramsÚold_typeÚnew_db_paramsÚnew_typeÚmodifying_generated_fieldÚold_field_sqlÚnew_field_sqlÚdb_featuress   &&&&&        r    Úalter_fieldÚ$BaseDatabaseSchemaEditor.alter_fieldq  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à(,Ñ%Ø× × Ð ð5Ø )× 7Ñ 7¸¿¹Ó H�ð
 !*× 7Ñ 7¸¿¹Ó H�Ø,9Ñ,JÐ)Ø"Ÿo™o×6Ñ6�÷ 2Ø Ô,Ø'×Q×QÐQà04Ð-ß$ÜØIÈ)Èð UHð Hóð ð
 	×ÑØØØØØØØØö		
øô+ ô 1à,0Ò)ð1ús   É,L ÌLÌL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)rG   Údata_type_check_constraintsÚdb_type_parametersrš   ÚKeyError)rN   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	           	     ór  € \        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                  '       dB   V'       d:   \m        \o        V!  4      w  pp(RPq                  V4      \m        \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§  rd  z!) of foreign key constraints for Ú.F)rÄ   r   ra  z) of unique constraints for r°   )r4  Útype_ra  )rv   ra  z) of check constraints for ru   r•  Nrƒ   r�   r—  rç   r•   r  ©r§   rÖ   r{   Ú_fkÚ_check©rU  rv   )IÚsetrG   rK   r˜   r@   r’   r°  rj  r•   rm  rn  r*   r“   ÚaddrW   r©  rÄ   Ú_field_became_primary_keyrœ   r   Ú_delete_unique_sqlr´   r   r?   Úrelated_modelr   Údb_indexrg  r   rU  Ú_delete_index_sqlrÆ  Ú_delete_check_sqlÚ_rename_field_sqlrR   rŸ   r   Úrename_column_referencesr�   r  rÇ   Ú_alter_column_type_sqlri   r‘   r·   rô   Ú"_alter_column_database_default_sqlr¶   r»   rº   rœ  Ú_alter_column_null_sqlr  Úsupports_combined_altersrj   r>   r£   r   r�  rr   r¸   Úsql_update_with_defaultÚ_delete_primary_keyÚ_unique_should_be_addedr‹   rW  Ú_create_primary_key_sqlrŽ   r™   Ú_create_index_nameÚ_create_check_sqlrŸ  r   )4rN   r/   r7   r=   r¶  r¸  rµ  r·  r´  Úfks_droppedr«  r¬  r~   rq  rt  Úconstraint_nameÚold_collationÚnew_collationÚdrop_foreign_keysÚ_old_relrC   Úrel_fk_namesr4  rr  Úindex_namesÚ
index_nameÚold_db_checkÚnew_db_checkr\   Ú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_updaterB   Ú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¬E´%¸±.Ó,AÐBÐC�ã&‘��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ùòI
%ùòv  Mùò&%s   Å<|*Ï|/Ñ:|4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.
Nru   r•   rÖ   )
rG   rK   rÀ   r¿   rŽ   r¶   Úsql_alter_column_nullÚsql_alter_column_not_nullrr   r•   )rN   r/   r7   r=   r·  r\   s   &&&&  r    rÜ  Ú/BaseDatabaseSchemaEditor._alter_column_null_sqlK  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.
ru   r•   rÖ   r  )r»   r¼   rG   rK   r½   r¾   rŽ   r¶   Ú sql_alter_column_no_default_nullÚsql_alter_column_no_defaultÚsql_alter_column_defaultrr   r•   )
rN   r/   r7   r=   r–  rø  r  r_   r·  r\   s
   &&&&&     r    rœ  Ú2BaseDatabaseSchemaEditor._alter_column_default_sqlh  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.
rb   ru   r•   rÖ   r  )r  r	  r¸   rŽ   rG   rr   r•   )	rN   r/   r7   r=   r–  r\   rÌ   r_   r·  s	   &&&&&    r    rÛ  Ú;BaseDatabaseSchemaEditor._alter_column_database_default_sqlŽ  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.
rw   rb   r•   rÖ   r°   r…  )rµ   r*   r“   rG   rK   r  r   rÇ   r   ri   rÈ   Úsql_alter_column_typerr   r•   )rN   r/   r7   r=   r¸  ræ  rç  rõ  Úcollate_sqlÚcomment_sqlr\   r_   s   &&&&&&&     r    rÚ  Ú/BaseDatabaseSchemaEditor._alter_column_type_sqlª  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•   r…  )Úsql_alter_column_commentrr   r*   r“   r•   rÈ   )rN   r/   r=   r¸  Únew_db_comments   &&&&&r    r   Ú2BaseDatabaseSchemaEditor._alter_column_comment_sqlØ  s`   € à×)Ñ)à˜Ÿ™¨¯©×)=Ñ)=Ó>Ø˜$Ÿ/™/¨)×*:Ñ*:Ó;Ø˜4×,Ñ,¨^Ó<ðõð ð
ð 	
r"   c                ó8   € T P                  T;'       g    R 4      # ©rb   r   )rN   r…  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“   r‚  r½  rŠ   Úm2m_reverse_field_nameÚm2m_field_name)rN   r/   r7   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"   rb   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   rG   rq   Úmax_name_lengthr£   rm  Úisdigit)	rN   Ú
table_nameÚcolumn_namesrU  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# )Nrw   rb   )rm  r¤   r   ÚDEFAULT_INDEX_TABLESPACEr*   rG   rq   r¥   )rN   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 rb   rÚ   )rN   Ú	conditions   &&r    Ú_index_condition_sqlÚ-BaseDatabaseSchemaEditor._index_condition_sql3  s   € ßØ˜yÕ(Ð(Ùr"   c                óÌ   € V'       d'   V P                   P                  P                  '       g   R # \        R\	        VP
                  P                  W P                  4      R7      # )rb   z INCLUDE (%(columns)s))r¡   )rG   rK   Úsupports_covering_indexesr   r   r*   r“   rr   )rN   r/   r¡   s   &&&r    Ú_index_include_sqlÚ+BaseDatabaseSchemaEditor._index_include_sql8  sE   € ß˜dŸo™o×6Ñ6×P×PÐPÙÜØ$Ü˜EŸK™K×0Ñ0°'¿?¹?ÓKô
ð 	
r"   r§   r   rU  Úusingr¤   Úcol_suffixesr\   Ú	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_colsru   )r¤   c                  óR   <€ Sf   SP                   ! V / VB oSP                  S4      # r3   )râ  rr   )ÚargsÚkwargsr   rN   s   *,€€r    Úcreate_index_nameÚEBaseDatabaseSchemaEditor._create_index_sql.<locals>.create_index_namea  s,   ø€ àŠ|Ø×.Ò.°Ð?¸Ñ?�Ø—?‘? 4Ó(Ð(r"   )r�   r   r4  r¡   r`   r-  r7  )r   rò   rG   r*  r•   Úsql_create_indexr*   r“   r   r   rr   r
   Ú_index_columnsr   rl   r.  r2  )rN   r/   r§   r   rU  r4  r¤   r5  r\   r6  r-  r7  r8  rö   r¥   r   r¡   rA  r�   r?  s   f&$d$$$$$$$$$       r    rW  Ú*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   rV  r   r*   r“   rr   ri  r�   r+  rR   rŸ   Úreferences_indexr-  )rN   r/   r   r\   r…   r"  rì  s   &&&&   r    rÖ  Ú*BaseDatabaseSchemaEditor._delete_index_sqlv  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“   rr   )rN   r/   rI  rJ  s   &&&&r    r=  Ú*BaseDatabaseSchemaEditor._rename_index_sqlˆ  sH   € ÜØ×!Ñ!Ü˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—_‘_ XÓ.Ø—_‘_ XÓ.ô	
ð 	
r"   c                óv   € VP                   p VP                  P                  V 4      #   \         d     R # i ; ir  )r@   Ú	on_deleteÚon_delete_sqlÚAttributeError)rN   r/   r   r@   s   &&& r    r—   Ú.BaseDatabaseSchemaEditor._create_on_delete_sql�  s;   € Ø×)Ñ)ˆð	Ø×)Ñ)×7Ñ7¸Ó=Ð=øÜô 	Úð	ús   Ž) ©8·8c                ó2   € \        WV P                  VR 7      # ))r5  )r   rr   )rN   r�   r¡   r5  r6  s   &&&&&r    rB  Ú'BaseDatabaseSchemaEditor._index_columns—  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ž  rg  r1  rG   rK   r2  ri   r�   )rN   r/   Úoutputr   r4  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_indexedri   rW  )rN   r/   r   rX  s   &&& r    rž  Ú+BaseDatabaseSchemaEditor._field_indexes_sql­  s;   € ð ˆØ×(Ñ(¨×6Ò6Ø�M‰M˜$×0Ñ0°¸wÐ0ÓGÔHØˆr"   c                óx  € VP                   '       g9   VP                  '       g'   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                   '       dN   VP                   '       d<   V P                  VP                  4      V P                  VP                  4      8w  d   R# VP                  '       d0   VP                  '       d   VP                  VP                  8w  d   R# WVV3W‰V
38g  # )FNÚtorô   T)Úconcreter   rÐ  ÚdeconstructÚunionÚnon_db_attrsr}  r@   r/   r*   r“   r´   r¸   rr   r•   r   )rN   r7   r=   rÉ  r¢  Úold_pathÚold_argsÚ
old_kwargsÚnew_pathÚnew_argsÚ
new_kwargsÚattrs   &&&&        r    r°  Ú1BaseDatabaseSchemaEditor._field_should_be_altered¶  s  € Ø×#×#Ð# y×'=×'=Ð'=Ø×#×#Ð# y×'=×'=Ð'=áØ—�œ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˜<Ô(à××ÐØ×"×"Ð"Ø—‘ ×!1Ñ!1Ó2°d·o±oÀi×FVÑFVÓ6WÔWáà×"×"Ð"Ø×&×&Ð&Ø—‘ )§.¡.Ô0áØ JÐ/°HÈ
Ð3SÑSÐSr"   c                óL   € VP                   ;'       d    VP                  '       * # r3   )rÕ  rÄ   ©rN   r/   r   s   &&&r    r[  Ú1BaseDatabaseSchemaEditor._field_should_be_indexedç  s   € Ø�~‰~×2Ð2 e§l¡lÔ"2Ð2r"   c                óL   € VP                   '       * ;'       d    VP                   # r3   ©r   ©rN   r7   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                   # r3   )r   rÄ   rp  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_columnrr   r•   )rN   r�   r7   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	V P                  W4      R 7      # ))r�   r   r•   rx   ry   r”  rz   )r   r*   r“   rr   r™  r   r•   Útarget_fieldr/   rG   rq   rš  r   Úsql_create_fkr—   )
rN   r/   r   rU  r�   r   r•   rx   ry   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ˆ
ÜØ×ÑØØØØØØ!Ø×3Ñ3°EÓAô	
ð 		
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      # r3   ©rr   râ  ©r=  r>  rN   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   rz  r/   )rN   r/   r   rU  r�  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      # r3   )ro  Úsql_delete_fk©rN   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 # )Nrb   z DEFERRABLE INITIALLY DEFERREDz DEFERRABLE INITIALLY IMMEDIATE)r   ÚDEFERREDÚ	IMMEDIATE)rN   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 DISTINCTrb   rÚ   )rN   Ú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                  # r3   )rG   rK   Úsupports_partial_indexesÚ&supports_deferrable_unique_constraintsr1  r2  Ú*supports_nulls_distinct_unique_constraints)rN   r-  r”  r7  r8  r�  s   &&&&&&r    Ú_unique_supportedÚ*BaseDatabaseSchemaEditor._unique_supported1  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”  r7  r8  r�  N)r   r-  r7  r6  r8  r�  r¡   rƒ   r”  r   r~   )
r–  r‹   rR   ri   Úsql_unique_constraintr£   rr   r•   rŒ  Úsql_constraint)rN   r/   r§   r   r-  r”  r7  r6  r8  r�  r\   r   r~   s   &&&&&&&&&&   r    Ú_unique_sqlÚ$BaseDatabaseSchemaEditor._unique_sqlI  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:  ru   Trb  )r5  r6  )r�   r   r¡   r-  r”  r7  r�  rÚ   )r–  r   rò   rG   r*   r“   r•   rl  rr   Úsql_create_unique_indexÚsql_create_uniquerB  r   rl   r   r   r.  rŒ  r2  r�  )rN   r/   r§   r   r-  r”  r7  r6  r8  r�  rö   r�   r   r¡   r\   s   &&&&&&&&&&     r    r‹   Ú+BaseDatabaseSchemaEditor._create_unique_sql}  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      # r3   r  r€  s   *,€r    Úcreate_unique_nameÚLBaseDatabaseSchemaEditor._unique_constraint_name.<locals>.create_unique_name³  s"   ø€ Ø—‘ t×'>Ò'>ÀÐ'OÈÑ'OÓPÐPr"   Ú_uniq)râ  r
   )rN   r�   r¡   rc  r¤  s   f&&& r    rl  Ú0BaseDatabaseSchemaEditor._unique_constraint_name°  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–  rV  rL  ro  )
rN   r/   r   r-  r”  r7  r6  r8  r�  r\   s
   &&&&&&&&& r    rÓ  Ú+BaseDatabaseSchemaEditor._delete_unique_sql»  sb   € ð ×%Ñ%ØØ!ØØ#Ø)ð &÷ 
ò 
ñ ßŸ§9·Ø×'Ñ'‰Cà×(Ñ(ˆCØ×*Ñ*¨3°tÓ<Ð<r"   c                ót   € V P                   R V P                  V4      RV P                  RV/,          /,          # )r   r~   rv   )r›  rr   r�   )rN   r   rv   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   rv   )	rG   rK   Ú supports_table_check_constraintsr   Úsql_create_checkr   r*   r“   rr   )rN   r/   r   rv   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      # r3   )rG   rK   r®  ro  Úsql_delete_checkr†  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      # )rE  )r   r   r*   r“   rr   )rN   Útemplater/   r   s   &&&&r    ro  Ú/BaseDatabaseSchemaEditor._delete_constraint_sqlé  s6   € ÜØÜ˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—‘ Ó&ô
ð 	
r"   c
           
     óH  € 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                  pV P                  '       d   V P                  P                  W»4      pV P                   P                  4       ;_uu_ 4       pV P                   P                  P                  WË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   r4  rv   r¨  rÖ   )rG   rK   Útruncates_namesÚintrospectionÚidentifier_converterr   rq   r   r*   r“   rH   rJ   r´   rm   Úget_constraintsÚitemsri   )rN   r/   r#  rÄ   r   r4  r¨  rv   rË  ra  r   r"  rm   rœ   ÚresultÚinfodicts   &&&&&&&&&&      r    rj  Ú*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ñ )ð ð 	ð —[‘[×)Ñ)ˆ
Ø××ÐØ×5Ñ5×9Ñ9¸*ÓQˆJØ�_‰_×#Ñ#×%Ô%¨ØŸ/™/×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ð  ˆùòE	÷ &×%ús   ‰*H´A9HÄ&HÈH!	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r3   ©rr   )r5   r•   rN   s   & €r    r8   Ú>BaseDatabaseSchemaEditor._pk_constraint_sql.<locals>.<genexpr>$  s   øé € Ð OÁw¸V §¡°×!8Ð!8Ãwùrï   )Úsql_pk_constraintr£   )rN   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# )Tro  rd  z) of PK constraints for N)rj  rm  rn  r*   r“   rW   Ú_delete_primary_key_sql)rN   r/   r´  rt  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“   rr   râ  r•   r   rl  s   &&&r    rá  Ú0BaseDatabaseSchemaEditor._create_primary_key_sql4  sˆ   € ÜØ×ÑÜ˜Ÿ™×,Ñ,¨d¯o©oÓ>Ø—‘Ø×'Ñ'Ø—K‘K×(Ñ(¨5¯<©<¨.Àð (ó óô
 ˜EŸK™K×0Ñ0°5·<±<°.À$Ç/Á/ÓRô	
ð 		
r"   c                ó:   € V P                  V P                  W4      # r3   )ro  Úsql_delete_pkr†  s   &&&r    rÇ  Ú0BaseDatabaseSchemaEditor._delete_primary_key_sql@  rˆ  r"   c                óF   € V'       d   R V P                  V4      ,           # R# )zCOLLATE rb   rÂ  )rN   r°   ræ  r"  s   &&&&r    rµ   Ú%BaseDatabaseSchemaEditor._collate_sqlC  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_procedurerr   r£   rW   )rN   Úprocedure_namerÔ  r\   s   &&& r    Úremove_procedureÚ)BaseDatabaseSchemaEditor.remove_procedureF  sA   € Ø×'Ñ'Ø˜Ÿ™¨Ó8Ø˜3Ÿ8™8 KÓ0ð+
õ 
ˆð 	�‰�SÖr"   )r   rM   rH   rI   rJ   rG   rR   )FTrÚ   )rÚ   )Fr  r3   )NNNNN)NNNNNN)NNNNNNN)T)NNNNNNNNr×   )}Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r¢   r|  r�  r*  r›  r�  r  r  r  r	  r  r  rª  rw  rÞ  rš  r�   Úsql_delete_constraintr›  rÄ  r¯  r²  r   rL  r{  r–   r˜  r…  rA  rŸ  rK  rV  rË  rÎ  rÖ  r†  r  rO   rT   rX   rW   rr   r­   rÓ   r�   r¹   rº   r¾   r¼   r¸   rü   rÂ   Ústaticmethodr  r»   rl   r%  r)  r5  r9  r@  rD  rG  rQ  rZ  rK  r‚  r  r�  r¤  r­  r½  rÆ  r³  rÜ  rœ  rÛ  rÚ  r   rÈ   r±  râ  r*  r.  r2  rW  rÖ  r=  r—   rB  r!  rž  r°  r[  rÒ  rà  rØ  r™   r™  r©  rŒ  r�  r–  rœ  r‹   rl  rÓ  r«  rã  r×  ro  rj  r    rß  rá  rÇ  rµ   rØ  Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r    rE   rE   Q   sL  ø‡ € ñð AÐØJÐØVÐØ5ÐàTÐØ:ÐØPÐØCÐØ FÐØPÐØ"HÐØ'BÐ$ØFÐàNð ð 	Qð ð AÐØ.ÐØLÐØ9€NØ3ÐàXÐØ,Ðð	?ð ð .Ðð	Pð ð  ÐØ"&ÐØ)€Mð	9ð ð
	Bð ð IÐØ,Ðð 	Rð ð *€Mà9ÐàIÐØVÐôUòòAô,ò>4òbòLA6ôF
ò6òò
òò)ò&;òSð ñó ðò2Wò$ò!>òF.ò*	Aò4ò-ò+òòAò*Vò*4SòlHò6ò	
òW$òr.ô@Z
òx	ôq$òfô:$
ôL
ò8,
ò\	
ò/ò
ôBô@
òò

ð4
ð ð	4
ð
 ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ð4
ð ô4
ôlò$
òòSòò&ô/Tòb3òCò
ò
ò
ò,
òLò5òô
ô02
ôh1
ôf	Fô=ò2
ò
òOò

ô0òd
ô
Oò

òLôL÷ò r"   rE   )&Úloggingr,   r   Ú	itertoolsr   Ú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   Ú	getLoggerre   r!   r0   r?   rE   rÚ   r"   r    Ú<module>rð     se   ðÛ Û Ý Ý å  Ý -÷÷ ÷ SÑ Rß .Ý AÝ &ß DÝ !à	×	Ò	Ð6Ó	7€òò&
ò
÷.zó zr"   