+
    ‡)Ùj  ã                   ó–   € R t ^ RIHt ^ RIHtHtHt ^ RIHt . ROt	 ! R R]4      t
 ! R	 R]4      t ! R
 R]4      t ! R R]4      tR# )zR
Query subclasses which provide extra functionality beyond simple data retrieval.
)Ú
FieldError)ÚGET_ITERATOR_CHUNK_SIZEÚ
NO_RESULTSÚ	ROW_COUNT)ÚQueryÚDeleteQueryÚUpdateQueryÚInsertQueryÚAggregateQueryc                   ó4   a € ] tR t^t o RtRtR tR tRtV t	R# )r   zA DELETE SQL query.ÚSQLDeleteCompilerc                óˆ   € WP                   V,          /V n         W n        V P                  V4      P                  \        4      # ©N)Ú	alias_mapÚwhereÚget_compilerÚexecute_sqlr   )ÚselfÚtabler   Úusings   &&&&ÚX/var/www/eggtrainer/venv/lib/python3.14/site-packages/django/db/models/sql/subqueries.pyÚdo_queryÚDeleteQuery.do_query   s6   € Ø§¡°Õ!6Ð7ˆŒØŒ
Ø× Ñ  Ó'×3Ñ3´IÓ>Ð>ó    c                óp  € ^ pV P                  4       P                  p\        ^ \        V4      \        4       F{  pV P                  4        V P                  VP                   R2WV\        ,            4       W0P                  V P                  4       P                  V P                  VR7      ,          pK}  	  V# )zš
Set up and execute delete queries for all the objects in pk_list.

More than one physical query may be executed if there are a
lot of values in pk_list.
Ú__in)r   )Úget_metaÚpkÚrangeÚlenr   Úclear_whereÚ
add_filterÚattnamer   Údb_tabler   )r   Úpk_listr   Únum_deletedÚfieldÚoffsets   &&&   r   Údelete_batchÚDeleteQuery.delete_batch   s    € ð ˆØ—‘“×"Ñ"ˆÜ˜Aœs 7›|Ô-DÖEˆFØ×ÑÔØ�O‰OØ—=‘=�/ Ð&Ø Ô*AÕ!AÐBôð Ÿ=™=Ø—‘“×(Ñ(¨$¯*©*¸Eð )ó õ ŠKñ Fð Ðr   )r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úcompilerr   r(   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s   ø‡ € Ùà"€Hò?÷
ð r   c                   ój   a a€ ] tR t^0t oRtRtV 3R ltR tV 3R ltR t	R t
R tR	 tR
 tRtVtV ;t# )r   zAn UPDATE SQL query.ÚSQLUpdateCompilerc                óH   <€ \         SV `  ! V/ VB  V P                  4        R # r   )ÚsuperÚ__init__Ú_setup_query)r   ÚargsÚkwargsÚ	__class__s   &*,€r   r7   ÚUpdateQuery.__init__5   s!   ø€ Ü‰Ò˜$Ð) &Ò)Ø×ÑÖr   c                ó0   € . V n         RV n        / V n        R# )zƒ
Run on initialization and at the end of chaining. Any attributes that
would normally be set in __init__() should go here instead.
N)ÚvaluesÚrelated_idsÚrelated_updates)r   s   &r   r8   ÚUpdateQuery._setup_query9   s   € ð
 ˆŒØˆÔØ!ˆÖr   c                ób   <€ \         SV `  4       pV P                  P                  4       Vn        V# r   )r6   Úcloner@   Úcopy)r   Úobjr;   s   & €r   rC   ÚUpdateQuery.cloneB   s*   ø€ Ü‰g‰m‹oˆØ"×2Ñ2×7Ñ7Ó9ˆÔØˆ
r   c                ó  € V P                  V4       \        ^ \        V4      \        4       FV  pV P	                  4        V P                  RWV\        ,            4       V P                  V4      P                  \        4       KX  	  R# )é    Úpk__inN)	Úadd_update_valuesr   r   r   r    r!   r   r   r   )r   r$   r>   r   r'   s   &&&& r   Úupdate_batchÚUpdateQuery.update_batchG   sl   € Ø×Ñ˜vÔ&Ü˜Aœs 7›|Ô-DÖEˆFØ×ÑÔØ�O‰OØ˜'¨6Ô4KÕ+KÐLôð ×Ñ˜eÓ$×0Ñ0´Ö<ó Fr   c                óØ  € . pVP                  4        EFC  w  r4V P                  4       P                  V4      pVP                  ;'       d    VP                  '       * '       * ;'       g    VP                  '       * pVP
                  P                  P                  pVP                  R8X  d(   VP                  P                  '       d   \        R4      hV'       d%   VP                  '       d%   VP                  '       d   \        RV,          4      hWpP                  4       P                  Jd   V P                  WuV4       EK0  VP                  WWV34       EKF  	  V P                  V4      # )z‘
Convert a dictionary of field name to value mappings into an update
query. This is the entry point for the public update() method on
querysets.
r   z:Composite primary key fields must be updated individually.zMCannot update model field %r (only non-relations and foreign keys permitted).)Úitemsr   Ú	get_fieldÚauto_createdÚconcreteÚmodelÚ_metaÚconcrete_modelÚnameÚis_composite_pkr   Úis_relationÚmany_to_manyÚadd_related_updateÚappendÚadd_update_fields)r   r>   Ú
values_seqrU   Úvalr&   ÚdirectrR   s   &&      r   rJ   ÚUpdateQuery.add_update_valuesP   s$  € ð ˆ
ØŸ™Ÿ‰IˆDØ—M‘M“O×-Ñ-¨dÓ3ˆEà×'Ñ'×>Ð>°·±Ô,>Ô?×UÐUÀuÇ~Á~ÔCUð ð —K‘K×%Ñ%×4Ñ4ˆEØ�z‰z˜TÔ! e§k¡k×&A×&AÐ&AÜ ØPóð ÷ ˜e×/×/Ð/°E×4F×4FÐ4FÜ ð/Ø16õ7óð ð ŸM™M›O×:Ñ:Ó:Ø×'Ñ'¨°cÔ:ÚØ×Ñ˜u¨SÐ1×2ñ% (ð& ×%Ñ% jÓ1Ð1r   c                óÌ   € V F]  w  r#pVP                   '       d   K  \        VR4      '       d   VP                  V RRR7      pV P                  P	                  W#V34       K_  	  R# )zÓ
Append a sequence of (field, model, value) triples to the internal list
that will be used to generate the UPDATE query. Might be more usefully
called add_update_targets() to hint at the extra information here.
Úresolve_expressionFT)Úallow_joinsÚfor_saveN)Ú	generatedÚhasattrra   r>   rZ   )r   r\   r&   rR   r]   s   &&   r   r[   ÚUpdateQuery.add_update_fieldsl   s[   € ó ",ÑˆE˜#à��ˆÙÜ�sÐ0×1Ò1à×,Ñ,¨T¸uÈtÐ,ÓT�Ø�K‰K×Ñ ¨cÐ2Ö3ó ",r   c                ób   € V P                   P                  V. 4      P                  VRV34       R# )z†
Add (name, value) to an update query for an ancestor model.

Update are coalesced so that only one update query per ancestor is run.
N)r@   Ú
setdefaultrZ   )r   rR   r&   Úvalues   &&&&r   rY   ÚUpdateQuery.add_related_update{   s,   € ð 	×Ñ×'Ñ'¨¨rÓ2×9Ñ9¸5À$ÈÐ:NÖOr   c                ó  € V P                   '       g   . # . pV P                   P                  4        FX  w  r#\        V4      pW4n        V P                  e$   VP                  RV P                  V,          4       VP                  V4       KZ  	  V# )zÁ
Return a list of query objects: one for each update required to an
ancestor model. Each query will have the same filtering conditions as
the current query but will only update a single table.
rI   )r@   rN   r   r>   r?   r!   rZ   )r   ÚresultrR   r>   Úquerys   &    r   Úget_related_updatesÚUpdateQuery.get_related_updatesƒ   s~   € ð ×#×#Ð#ØˆIØˆØ!×1Ñ1×7Ñ7Ö9‰MˆEÜ Ó&ˆEØ!ŒLØ×ÑÒ+Ø× Ñ  ¨4×+;Ñ+;¸EÕ+BÔCØ�M‰M˜%Ö ñ :ð ˆr   )r?   r@   r>   )r*   r+   r,   r-   r.   r/   r7   r8   rC   rK   rJ   r[   rY   rn   r0   r1   Ú__classcell__©r;   r2   s   @@r   r   r   0   s;   ù‡ € Ùà"€Hõò"õò
=ò2ò84òP÷ò r   c                   óP   a a€ ] tR t^•t oRtRRRRRR/V 3R lltR	R ltRtVtV ;t	# )
r	   ÚSQLInsertCompilerÚon_conflictNÚupdate_fieldsÚunique_fieldsc               ó”   <€ \         SV `  ! V/ VB  . V n        . V n        Wn        T;'       g    . V n        T;'       g    . V n        R # r   )r6   r7   ÚfieldsÚobjsrt   ru   rv   )r   rt   ru   rv   r9   r:   r;   s   &$$$*,€r   r7   ÚInsertQuery.__init__˜   sK   ø€ ô 	‰Ò˜$Ð) &Ò)ØˆŒØˆŒ	Ø&ÔØ*×0Ð0¨bˆÔØ*×0Ð0¨bˆÖr   c                ó*   € Wn         W n        W0n        R # r   )rx   ry   Úraw)r   rx   ry   r|   s   &&&&r   Úinsert_valuesÚInsertQuery.insert_values¢   s   € ØŒØŒ	ØŽr   )rx   ry   rt   r|   rv   ru   )F)
r*   r+   r,   r-   r/   r7   r}   r0   r1   rp   rq   s   @@r   r	   r	   •   s1   ù‡ € Ø"€Hð1Ø!%ð1Ø59ð1ØIM÷1÷ô r   c                   ó:   a a€ ] tR t^¨t oRtRtV 3R ltRtVtV ;t	# )r
   zi
Take another query as a parameter to the FROM clause and only select the
elements in the provided list.
ÚSQLAggregateCompilerc                ó2   <€ W n         \        SV `	  V4       R # r   )Úinner_queryr6   r7   )r   rR   r‚   r;   s   &&&€r   r7   ÚAggregateQuery.__init__°   s   ø€ Ø&ÔÜ‰Ñ˜Ör   )r‚   )
r*   r+   r,   r-   r.   r/   r7   r0   r1   rp   rq   s   @@r   r
   r
   ¨   s   ù‡ € ñð
 &€H÷ õ  r   N)r   r   r	   r
   )r.   Údjango.core.exceptionsr   Údjango.db.models.sql.constantsr   r   r   Údjango.db.models.sql.queryr   Ú__all__r   r   r	   r
   © r   r   Ú<module>r‰      sW   ðñõ .÷ñ õ
 -â
I€ô�%ô ô@b�%ô bôJ�%ô ô&
 �Uö 
 r   