+
    ‡)ÙjO   ã                   óŒ   € R t ^ RIt^ RIHt ^ RIHtHt ^ RIHt  ! R R]	4      t
 ! R R4      t ! R	 R
4      t ! R R4      tR# )z]
Useful auxiliary data structures for query construction. Not useful outside
the SQL domain.
N)ÚFullResultSet)ÚINNERÚLOUTER)ÚRemovedInDjango60Warningc                   ó*   a € ] tR t^t o RtR tRtV tR# )Ú	MultiJoinz”
Used by join construction code to indicate the point at which a
multi-valued join was attempted (if the caller wants to treat that
exceptionally).
c                ó   € Wn         W n        R # ©N©ÚlevelÚnames_with_path)ÚselfÚ	names_posÚpath_with_namess   &&&Ú\/var/www/eggtrainer/venv/lib/python3.14/site-packages/django/db/models/sql/datastructures.pyÚ__init__ÚMultiJoin.__init__   s   € ØŒ
à.Öó    r
   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s   ø‡ € ñ÷/ð /r   r   c                   ó   € ] tR t^tRtR# )ÚEmpty© N)r   r   r   r   r   r   r   r   r   r      s   † Ûr   r   c                   ób   a € ] tR t^t o RtRR ltR tR t]R 4       t	R t
R tR	 tR
 tRtV tR# )ÚJoina¥  
Used by sql.Query and sql.SQLCompiler to generate JOIN clauses into the
FROM entry. For example, the SQL generated could be
    LEFT OUTER JOIN "sometable" T1
    ON ("othertable"."sometable_id" = "sometable"."id")

This class is primarily used in Query.alias_map. All entries in alias_map
must be Join compatible by providing the following attributes and methods:
    - table_name (string)
    - table_alias (possible alias for the table, can be None)
    - join_type (can be None for those entries that aren't joined from
      anything)
    - parent_alias (which table is this join's parent, can be None similarly
      to join_type)
    - as_sql()
    - relabeled_clone()
Nc                ó¢  € Wn         W n        W0n        W@n        \	        VR 4      '       d\   VP                  4       V n        \        ;QJ d    . R V P                   4       F  NK  	  5M! R V P                   4       4      V n        M7\        P                  ! R\        4       RV n        VP                  4       V n        WPn        W`n        Wpn        R# )Úget_joining_fieldsc              3   óV   "  € T F  w  rVP                   VP                   3x € K!  	  R # 5ir	   )Úcolumn)Ú.0Ú	lhs_fieldÚ	rhs_fields   &  r   Ú	<genexpr>Ú Join.__init__.<locals>.<genexpr>F   s+   é € ð #á,<Ñ(�Ið ×!Ñ! 9×#3Ñ#3Õ4Û,<ùs   ‚')zaThe usage of get_joining_columns() in Join is deprecated. Implement get_joining_fields() instead.N)Ú
table_nameÚparent_aliasÚtable_aliasÚ	join_typeÚhasattrr#   Újoin_fieldsÚtupleÚ	join_colsÚwarningsÚwarnr   Úget_joining_columnsÚ
join_fieldÚnullableÚfiltered_relation)r   r+   r,   r-   r.   r6   r7   r8   s   &&&&&&&&r   r   ÚJoin.__init__1   s³   € ð %ŒØ(Ôà&Ôà"Œô �:Ð3×4Ò4Ø)×<Ñ<Ó>ˆDÔß"œUñ #à,0×,<Ò,<ó#ŸU™Uñ #à,0×,<Ò,<ó#ó ˆD�Nô
 �MŠMð0ä(ôð
  $ˆDÔØ'×;Ñ;Ó=ˆDŒNà$Œà ŒØ!2Ör   c                óv  € . p. pVP                   pVP                  P                  pV P                  ;'       g    V P                  pV FÙ  w  r‰\        V\        4      '       d@   V! V P                  4      : RV! V4      : 2p
V! V P                  4      : RV! V	4      : 2pMiVP                  P                  V P                  W€P                  V	4      w  r‰VP                  V4      w  rÍWÍ,          p
VP                  V	4      w  rïWï,          pVP                  V
 RV 24       KÛ  	  V P                  P                  V P                  V P                  4      pV'       d>   VP                  V4      w  ppVP                  RV,          4       VP                  V4       V P                  '       dI    VP                  V P                  4      w  ppVP                  RV,          4       VP                  V4       V'       g>   \#        V P                  RV P                  4      p\%        RVP&                  ,          4      hRP)                  V4      pV P                  V P*                  8X  d   RMRV P                  ,          pV P,                  : R	V! V P*                  4      : V: R
V: R2pVV3#   \          d     LÂi ; i)zy
Generate the full
   LEFT OUTER JOIN sometable ON sometable.somecol = othertable.othercol, params
clause for this join.
Ú.z = z(%s)ÚfieldzaJoin generated an empty ON clause. %s did not yield either joining columns or extra restrictions.z AND Ú ú %sÚ z ON (Ú))Úquote_name_unless_aliasÚopsÚ
quote_namer0   r2   Ú
isinstanceÚstrr,   r-   Úprepare_join_on_clauseÚcompileÚappendr6   Úget_extra_restrictionÚextendr8   r   ÚgetattrÚ
ValueErrorÚ	__class__Újoinr+   r.   )r   ÚcompilerÚ
connectionÚjoin_conditionsÚparamsÚqnÚqn2r0   ÚlhsÚrhsÚlhs_full_nameÚrhs_full_nameÚlhs_sqlÚ
lhs_paramsÚrhs_sqlÚ
rhs_paramsÚ
extra_condÚ	extra_sqlÚextra_paramsÚdeclared_fieldÚon_clause_sqlÚ	alias_strÚsqls   &&&                    r   Úas_sqlÚJoin.as_sqlX   sg  € ð ˆØˆØ×-Ñ-ˆØ�n‰n×'Ñ'ˆð ×&Ñ&×8Ð8¨$¯.©.ˆÛ#‰HˆCÜ˜#œs×#Ò#ñ ,.¨d×.?Ñ.?Ö+@Á#ÀcÅ(Ð K�Ù+-¨d×.>Ñ.>Ö+?ÁÀSÅÐ J‘à%Ÿ>™>×@Ñ@Ø×%Ñ% s×,<Ñ,<¸có‘�ð '/×&6Ñ&6°sÓ&;Ñ#�Ø 'Õ 4�Ø&.×&6Ñ&6°sÓ&;Ñ#�Ø 'Õ 4�Ø×"Ñ" m _°C¸°Ð#GÖHñ $ð$ —_‘_×:Ñ:Ø×Ñ˜d×/Ñ/ó
ˆ
÷ Ø&.×&6Ñ&6°zÓ&BÑ#ˆI�|Ø×"Ñ" 6¨IÕ#5Ô6Ø�M‰M˜,Ô'Ø×!×!Ð!ð,Ø*2×*:Ñ*:¸4×;QÑ;QÓ*RÑ'�	˜<ð  ×&Ñ& v°	Õ'9Ô:Ø—‘˜lÔ+ßä$ T§_¡_°g¸t¿¹ÓOˆNÜð9Ø;I×;SÑ;SõTóð ð  Ÿ™ _Ó5ˆà×"Ñ" d§o¡oÔ5‰B¸EÀD×DTÑDTÕ<Tð 	ð �NŒNÙˆt�‰ÕÛÛð	
ˆð �Fˆ{Ðøô- !ô Ùðús   Æ.J* Ê*J8Ê7J8c           
     ór  € VP                  V P                  V P                  4      pVP                  V P                  V P                  4      pV P                  e   V P                  P	                  V4      pMR pV P                  V P                  VVV P                  V P                  V P                  VR7      # )N)r8   )
Úgetr,   r-   r8   Úrelabeled_clonerM   r+   r.   r6   r7   )r   Ú
change_mapÚnew_parent_aliasÚnew_table_aliasr8   s   &&   r   rh   ÚJoin.relabeled_cloneš   sŸ   € Ø%Ÿ>™>¨$×*;Ñ*;¸T×=NÑ=NÓOÐØ$Ÿ.™.¨×)9Ñ)9¸4×;KÑ;KÓLˆØ×!Ñ!Ò-Ø $× 6Ñ 6× FÑ FÀzÓ RÑà $ÐØ�~‰~Ø�O‰OØØØ�N‰NØ�O‰OØ�M‰MØ/ð ó 
ð 	
r   c                ót   € V P                   V P                  V P                  V P                  V P                  3# r	   )rM   r+   r,   r6   r8   ©r   s   &r   ÚidentityÚJoin.identity«   s5   € ð �N‰NØ�O‰OØ×ÑØ�O‰OØ×"Ñ"ð
ð 	
r   c                ól   € \        V\        4      '       g   \        # V P                  VP                  8H  # r	   )rD   r!   ÚNotImplementedro   ©r   Úothers   &&r   Ú__eq__ÚJoin.__eq__µ   s(   € Ü˜%¤×&Ò&Ü!Ð!Ø�}‰} §¡Ñ.Ð.r   c                ó,   € \        V P                  4      # r	   ©Úhashro   rn   s   &r   Ú__hash__ÚJoin.__hash__º   ó   € Ü�D—M‘MÓ"Ð"r   c                ó>   € V P                  / 4      p\        Vn        V# r	   )rh   r   r.   ©r   Únews   & r   ÚdemoteÚJoin.demote½   s   € Ø×"Ñ" 2Ó&ˆÜˆŒØˆ
r   c                ó>   € V P                  / 4      p\        Vn        V# r	   )rh   r   r.   r~   s   & r   ÚpromoteÚJoin.promoteÂ   s   € Ø×"Ñ" 2Ó&ˆÜˆŒØˆ
r   )	r8   r2   r6   r0   r.   r7   r,   r-   r+   r	   )r   r   r   r   r   r   rd   rh   Úpropertyro   ru   rz   r€   rƒ   r   r   r   s   @r   r!   r!      sI   ø‡ € ñô$%3òN@òD
ð" ñ
ó ð
ò/ò
#ò÷
ð r   r!   c                   ó^   a € ] tR t^Èt o RtRtRtRtR tR t	R t
]R 4       tR tR tR	tV tR# )
Ú	BaseTablez®
The BaseTable class is used for base table references in FROM clause. For
example, the SQL "foo" in
    SELECT * FROM "foo" WHERE somecond
could be generated by this class.
Nc                ó   € Wn         W n        R # r	   )r+   r-   )r   r+   Úaliass   &&&r   r   ÚBaseTable.__init__Ô   s   € Ø$ŒØ Ör   c                ó¬   € V P                   V P                  8X  d   R MRV P                   ,          pVP                  V P                  4      pWC,           . 3# )r=   r>   )r-   r+   rA   )r   rO   rP   rb   Úbase_sqls   &&&  r   rd   ÚBaseTable.as_sqlØ   sL   € à×"Ñ" d§o¡oÔ5‰B¸EÀD×DTÑDTÕ<Tð 	ð ×3Ñ3°D·O±OÓDˆØÕ# RÐ'Ð'r   c                ó‚   € V P                  V P                  VP                  V P                  V P                  4      4      # r	   )rM   r+   rg   r-   )r   ri   s   &&r   rh   ÚBaseTable.relabeled_cloneß   s3   € Ø�~‰~Ø�O‰O˜ZŸ^™^¨D×,<Ñ,<¸d×>NÑ>NÓOó
ð 	
r   c                óH   € V P                   V P                  V P                  3# r	   )rM   r+   r-   rn   s   &r   ro   ÚBaseTable.identityä   s   € à�~‰~˜tŸ™°×0@Ñ0@Ð@Ð@r   c                ól   € \        V\        4      '       g   \        # V P                  VP                  8H  # r	   )rD   r‡   rr   ro   rs   s   &&r   ru   ÚBaseTable.__eq__è   s(   € Ü˜%¤×+Ò+Ü!Ð!Ø�}‰} §¡Ñ.Ð.r   c                ó,   € \        V P                  4      # r	   rx   rn   s   &r   rz   ÚBaseTable.__hash__í   r|   r   )r-   r+   )r   r   r   r   r   r.   r,   r8   r   rd   rh   r…   ro   ru   rz   r   r   r   s   @r   r‡   r‡   È   sP   ø‡ € ñð €IØ€LØÐò!ò(ò
ð
 ñAó ðAò/÷
#ð #r   r‡   )r   r3   Údjango.core.exceptionsr   Údjango.db.models.sql.constantsr   r   Údjango.utils.deprecationr   Ú	Exceptionr   r   r!   r‡   r   r   r   Ú<module>rš      sE   ðñó
 å 0ß 8Ý =ô
/�	ô 
/÷	ñ 	÷gñ g÷T&#ó &#r   