§
    eŠtjˆÁ ã                  óF  — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d d	lm
Z
 d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z# dd lm$Z$ dd!lm%Z% dd"lm&Z& dd#lmZ dd$l&m'Z' dd%l&m(Z( dd&l&m)Z) dd#l&mZ* dd'l&m+Z+ dd(l,m-Z- dd)l,m.Z. dd*l,m/Z/ dd+l,m0Z0 dd,l1m2Z2 dd-l1m3Z3 dd.l1m4Z4 dd/l1m5Z5 dd0l1m6Z6 dd1l1m7Z7 dd2l8m9Z9 dd3l:m;Z; dd4l:m<Z< dd5l=m>Z> dd6l=m?Z? dd7l=m@Z@ dd8l=mAZA dd9l=mBZB dd:l=mCZC dd;l=mDZD dd<l=mEZE dd=lFmGZG errdd>lHmIZI dd?lHmJZJ dd@lmKZK ddAlLmMZM ddBlNmOZO ddClPmQZQ ddDlPmRZR ddElSmTZT ddFlUmVZV ddGl,mWZW ddHlXmYZY ddIl8mZZZ ddJl:m[Z[ ddKl=m\Z\ ddLl=m]Z] ddMl=m^Z^ ddNl=m_Z_ ddOl=m`Z` ddPlambZb  edQe¬R¦  «        Zcejd        Ze ejf        ¦   «         ZgeCjh        Zh G dS„ dT¦  «        Zi ejf        dUdVi¦  «        Zj G dW„ dXe4¦  «        Zk G dY„ dZek¦  «        Zl G d[„ d\ek¦  «        Zm G d]„ d^¦  «        Zn G d_„ d`en¦  «        Zo G da„ dben¦  «        Zpe&j        j4         q                    dcdd¦  «         G de„ dfem¦  «        ¦   «         Zr G dg„ dhe;e6eEe-         ¦  «        Zse&j        j4         q                    dcdi¦  «         G dj„ dkele>¦  «        ¦   «         Zte&j        j4         q                    dcdl¦  «         G dm„ dnemeD¦  «        ¦   «         Zu	 	 d‘d’dx„Zvd“d|„Zwd“d}„Zx	 d”d•d‚„Zy G dƒ„ d„¦  «        Zz G d…„ d†ez¦  «        Z{ G d‡„ dˆez¦  «        Z| G d‰„ dŠez¦  «        Z} G d‹„ dŒe}¦  «        Z~ G d�„ dŽe}¦  «        Z G d�„ d�e¦  «        Z€dS )–é    )ÚannotationsN)ÚAny)Úcast)ÚDict)ÚIterable)ÚList)ÚOptional)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Ú
interfaces)Úloading)Ú_is_aliased_class)ÚORMColumnDescription)ÚORMColumnsClauseRole)ÚPathRegistry)Ú_entity_corresponds_to)Ú_ORMJoin)Ú_TraceAdaptRole)ÚAliasedClass)ÚBundle)Ú
ORMAdapter)ÚORMStatementAdapteré   )Úexc)Úfuture)Úinspect)Úsql)Úutil)Ú	coercions)Ú
expression)Úroles)Úvisitors)Ú_TP)Úis_dml)Úis_insert_update)Úis_select_base)Ú_select_iterables)ÚCacheableOptions)ÚCompileState)Ú
Executable)Ú
Generative)ÚOptions)Ú
UpdateBase)ÚGroupedElement)Ú
TextClause)ÚCompoundSelectState)ÚLABEL_STYLE_DISAMBIGUATE_ONLY)ÚLABEL_STYLE_NONE)ÚLABEL_STYLE_TABLENAME_PLUS_COL)ÚSelect)ÚSelectLabelStyle)ÚSelectState)ÚTypedReturnsRows)ÚInternalTraversal)Ú_InternalEntityType)ÚOrmExecuteOptionsParameter)ÚPostLoad)ÚMapper)ÚQuery)Ú_BindArguments)ÚSession)ÚResult)Ú_CoreSingleExecuteParams)Ú_ColumnsClauseArgument)ÚSQLCompiler)Ú_DMLTableElement)ÚColumnElement)Ú_JoinTargetElement)Ú_LabelConventionCallable)Ú_SetupJoinsElement)ÚExecutableReturnsRows)Ú
SelectBase)Ú
TypeEngineÚ_T)Úboundc                  ód   — e Zd ZU dZded<   ded<   ded<    G d„ d	e¦  «        Z	 	 ddd„Zdd„Zd
S )ÚQueryContext)Útop_level_contextÚcompile_stateÚqueryÚuser_passed_queryÚparamsÚload_optionsÚbind_argumentsÚexecution_optionsÚsessionÚ	autoflushÚpopulate_existingÚinvoke_all_eagersÚversion_checkÚrefresh_stateÚcreate_eager_joinsÚpropagated_loader_optionsr   ÚrunidÚpartialsÚpost_load_pathsÚidentity_tokenÚ	yield_perÚloaders_require_bufferingÚloaders_require_uniquingÚintrf   zDict[PathRegistry, PostLoad]rh   ÚORMCompileStaterW   c                  ó>   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdS )ú!QueryContext.default_load_optionsFTN)Ú__name__Ú
__module__Ú__qualname__Ú_only_return_tuplesÚ_populate_existingÚ_version_checkÚ_invoke_all_eagersÚ
_autoflushÚ_identity_tokenÚ
_yield_perÚ_refresh_stateÚ_lazy_loaded_fromÚ_legacy_uniquingÚ_sa_top_level_orm_contextÚ_is_user_refresh© ó    úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/orm/context.pyÚdefault_load_optionsrp   †   sS   € € € € € Ø#ÐØ"ÐØˆØ!ÐØˆ
ØˆØˆ
ØˆØ ÐØ ÐØ$(Ð!Ø ÐÐÐr�   rƒ   Nr/   Ú	statementú2Union[Select[Any], FromStatement[Any], UpdateBase]rY   rZ   rG   r^   rE   r[   úQUnion[Type[QueryContext.default_load_options], QueryContext.default_load_options]r]   ú$Optional[OrmExecuteOptionsParameter]r\   úOptional[_BindArguments]c	                ó$  ‡ — |‰ _         |pt          ‰ _        |pt          ‰ _        |‰ _        |‰ _        |‰ _        |‰ _        d‰ _        d‰ _	        |‰ _
        |j        ‰ _        |j        j        }	|j        }
t          ˆ fd„t!          |	|
¦  «        D ¦   «         ¦  «        ‰ _        t%          |j        ¦  «        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j         ‰ _!        d S )NFc              3  óX   •K  — | ]$\  }}|j         ¯|                     ‰|¦  «        V — Œ%d S ©N)Úpropagate_to_loadersÚ'_adapt_cached_option_to_uncached_option)Ú.0ÚoptÚuncached_optÚselfs      €r‚   ú	<genexpr>z(QueryContext.__init__.<locals>.<genexpr>Æ   sT   øè è € ð /
ð /
á!��\ØÔ'ð/
Ø×7Ò7¸¸lÑKÔKð/
ð /
ð /
ð /
ð /
ð /
r�   )"r[   Ú_EMPTY_DICTr]   r\   rW   rX   rY   r^   rk   rl   rZ   r~   rV   Úselect_statementÚ_with_optionsÚtupleÚzipre   Údictr   rx   r_   ru   r`   rw   ra   rv   rb   r{   rc   rz   rj   ry   ri   )r‘   rW   r„   rY   rZ   r^   r[   r]   r\   Úcached_optionsÚuncached_optionss   `          r‚   Ú__init__zQueryContext.__init__”   s'  ø€ ð$ )ˆÔØ!2Ð!AµkˆÔØ,Ð;µˆÔØ*ˆÔØˆŒ
ð "3ˆÔàˆŒØ).ˆÔ&Ø(-ˆÔ%ØˆŒØ!-Ô!GˆÔà&Ô7ÔEˆØ,Ô:Ðõ */ð /
ð /
ð /
ð /
å%(¨Ð9IÑ%JÔ%Jð/
ñ /
ô /
ñ *
ô *
ˆÔ&õ ˜}Ô7Ñ8Ô8ˆŒà%Ô0ˆŒØ!-Ô!@ˆÔØ!-Ô!@ˆÔØ)Ô8ˆÔØ)Ô8ˆÔØ%Ô0ˆŒØ*Ô:ˆÔÐÐr�   Úreturnc                ó   — | j         p| S r‹   )rV   ©r‘   s    r‚   Ú_get_top_level_contextz#QueryContext._get_top_level_contextÖ   s   € ØÔ%Ð-¨Ð-r�   )NN)rW   r/   r„   r…   rY   r…   rZ   rG   r^   rE   r[   r†   r]   r‡   r\   rˆ   )rœ   rU   )	rq   rr   rs   Ú	__slots__Ú__annotations__r2   rƒ   r›   rŸ   r€   r�   r‚   rU   rU   f   s§   € € € € € € ð€Ið6 €J€J�JØ1Ð1Ð1Ñ1Ø"Ð"Ð"Ñ"ð!ð !ð !ð !ð !˜wñ !ô !ð !ð: CGØ37ð!@;ð @;ð @;ð @;ð @;ðD.ð .ð .ð .ð .ð .r�   rU   Ú _result_disable_adapt_to_contextTc                  ó~   ‡ — e Zd ZdZd„ Zedˆ fd„¦   «         Zed„ ¦   «         Zedd„¦   «         Zed„ ¦   «         Z	ˆ xZ
S )ÚAbstractORMCompileStateFc               ó’  — i | _         |€i | _        |sJ ‚d S |j        x| _        }|r/d|d<   |r&|j        D ]}|j        r|                     | ¦  «         Œd S |                     dd¦  «        rd S |j        d         }	 |d         }|j        D ]%}|j        r|j        r|                     | ¦  «         Œ&n# t          $ r Y nw xY wd|d<   d S )NTÚtoplevel_ormFr   Ú
selectable)
r   Úglobal_attributesÚ_global_attributesr•   Ú_is_criteria_optionÚprocess_compile_stateÚgetÚstackÚ_is_compile_stateÚKeyError)	r‘   r„   ÚcompilerÚtoplevelÚprocess_criteria_for_toplevelÚgar�   Ústack_0Útoplevel_stmts	            r‚   Ú_init_global_attributesz/AbstractORMCompileState._init_global_attributesâ   s7  € ð ˆŒàÐð &(ˆDÔ"ØˆOˆO�8ØˆFà*2Ô*EÐEˆDÔ" Ràð 
	Ø!%ˆBˆ~Ñà,ð 8Ø$Ô2ð 8ð 8�CØÔ.ð 8Ø×1Ò1°$Ñ7Ô7Ð7øàˆFØ�VŠV�N EÑ*Ô*ð 	ØˆFà”. Ô#ˆð	4Ø# LÔ1ˆMð %Ô2ð 4ð 4�ØÔ(ð 4¨SÔ-Dð 4Ø×-Ò-¨dÑ3Ô3Ð3øð4øõ ð 	ð 	ð 	ØˆDð	øøøð "ˆˆ>ÑÐÐs   Á<B2 Â2
B?Â>B?r„   r0   r°   rI   Úkwr   rœ   r/   c                ó:   •—  t          ¦   «         j        ||fi |¤ŽS )aÇ  Create a context for a statement given a :class:`.Compiler`.

        This method is always invoked in the context of SQLCompiler.process().

        For a Select object, this would be invoked from
        SQLCompiler.visit_select(). For the special FromStatement object used
        by Query to indicate "Query.from_statement()", this is called by
        FromStatement._compiler_dispatch() that would be called by
        SQLCompiler.process().
        )ÚsuperÚcreate_for_statement)Úclsr„   r°   r·   Ú	__class__s       €r‚   rº   z,AbstractORMCompileState.create_for_statement	  s&   ø€ ð" ,�u‰wŒwÔ+¨I°xÐFÐFÀ2ÐFÐFÐFr�   c                ó   — t          ¦   «         ‚r‹   ©ÚNotImplementedError)r»   r^   r„   rZ   r]   r\   Úis_pre_events          r‚   Úorm_pre_session_execz,AbstractORMCompileState.orm_pre_session_exec  ó   € õ "Ñ#Ô#Ð#r�   rF   c                ój   — |                      ||pi |¬¦  «        }|                      ||||||¦  «        S )N)r]   )ÚexecuteÚorm_setup_cursor_result)r»   r^   r„   rZ   r]   r\   ÚconnÚresults           r‚   Úorm_execute_statementz-AbstractORMCompileState.orm_execute_statement(  sT   € ð —’Ø�v�| Ð7Hð ñ 
ô 
ˆð ×*Ò*ØØØØØØñ
ô 
ð 	
r�   c                ó   — t          ¦   «         ‚r‹   r¾   ©r»   r^   r„   rZ   r]   r\   rÇ   s          r‚   rÅ   z/AbstractORMCompileState.orm_setup_cursor_result>  rÂ   r�   )r„   r0   r°   rI   r·   r   rœ   r/   )rœ   rF   )rq   rr   rs   Úis_dml_returningr¶   Úclassmethodrº   rÁ   rÈ   rÅ   Ú__classcell__©r¼   s   @r‚   r¤   r¤   ß   s»   ø€ € € € € ØÐð%"ð %"ð %"ðN ðGð Gð Gð Gð Gñ „[ðGð$ ð	$ð 	$ñ „[ð	$ð ð
ð 
ð 
ñ „[ð
ð* ð	$ð 	$ñ „[ð	$ð 	$ð 	$ð 	$ð 	$r�   r¤   c                  ó>   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         ZdS )ÚAutoflushOnlyORMCompileStatez>ORM compile state that is a passthrough, except for autoflush.c                óš   — t           j                             ddh||j        ¦  «        \  }}|s|j        r|                     ¦   «          ||fS )NÚ_sa_orm_load_optionsr_   )rU   rƒ   Úfrom_execution_optionsÚ_execution_optionsrx   )r»   r^   r„   rZ   r]   r\   rÀ   r[   s           r‚   rÁ   z1AutoflushOnlyORMCompileState.orm_pre_session_execN  sm   € õ Ô-×DÒDØ"àðð ØÔ(ñ
ô 
ñ	
ØØð ð 	! Ô 7ð 	!Ø×ÒÑ Ô Ð àÐ+Ð+Ð+r�   c                ó   — |S r‹   r€   rÊ   s          r‚   rÅ   z4AutoflushOnlyORMCompileState.orm_setup_cursor_resultk  s	   € ð ˆr�   N)rq   rr   rs   Ú__doc__rÌ   rÁ   rÅ   r€   r�   r‚   rÐ   rÐ   K  sN   € € € € € ØHÐHàð,ð ,ñ „[ð,ð8 ð	ð 	ñ „[ð	ð 	ð 	r�   rÐ   c                  ó˜  — e Zd ZU  G d„ de¦  «        Zded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   eZded<   dZd„ Z	e
d8d&„¦   «         Ze
d9d*„¦   «         Zd+„ Ze
d:d/„¦   «         Ze
d0„ ¦   «         Ze
d1„ ¦   «         Ze
d2„ ¦   «         Zed3„ ¦   «         Zd4„ Zd5„ Ze
d6„ ¦   «         Zd7S );rn   c                  óî   — e Zd Zdej        fdej        fdej        fdej        fdej        fdej        fdej        fdej        fd	ej        fd
ej        fdej        fgZdZdZ	dZ
eZdZdZdZdZdZdZdZdS )ú'ORMCompileState.default_compile_optionsÚ_use_legacy_query_styleÚ_for_statementÚ_bake_okÚ_current_pathÚ_enable_single_critÚ_enable_eagerloadsÚ_only_load_propsÚ_set_base_aliasÚ_for_refresh_stateÚ_render_for_subqueryÚ_is_starFTN)rq   rr   rs   r>   Ú
dp_booleanÚdp_has_cache_keyÚdp_plain_objÚ_cache_key_traversalrÚ   rÛ   rÜ   Ú_path_registryrÝ   rÞ   rß   rà   rá   râ   rã   rä   r€   r�   r‚   Údefault_compile_optionsrÙ   y  sÛ   € € € € € à&Ð(9Ô(DÐEØÐ0Ô;Ð<ØÐ*Ô5Ð6ØÐ/Ô@ÐAØ"Ð$5Ô$@ÐAØ!Ð#4Ô#?Ð@ØÐ!2Ô!?Ð@ØÐ 1Ô <Ð=Ø!Ð#4Ô#?Ð@Ø#Ð%6Ô%AÐBØÐ*Ô5Ð6ð 
Ðð& #(Ðð
 ˆàˆØ&ˆØ"ÐØ!ÐØÐØˆØ"ÐØ$ÐØˆˆˆr�   rê   zDict[Any, Any]r   r¨   r…   r„   r”   úList[_QueryEntity]Ú	_entitiesz%Dict[_InternalEntityType, ORMAdapter]Ú_polymorphic_adaptersz=Union[Type[default_compile_options], default_compile_options]Úcompile_optionszOptional[_QueryEntity]Ú_primary_entityÚboolÚuse_legacy_query_stylerM   Ú_label_conventionzList[ColumnElement[Any]]Úprimary_columnsÚsecondary_columnszSet[ColumnElement[Any]]Údedupe_columnszList[Tuple[Any, ...]]rd   r   Úcurrent_pathFc                ó   — t          ¦   «         ‚r‹   r¾   )r‘   Úargr·   s      r‚   r›   zORMCompileState.__init__µ  ó   € Ý!Ñ#Ô#Ð#r�   r0   r°   rI   r·   r   rœ   c                óL   —  | j         t          d|¦  «        f|j         |dœ|¤ŽS )NúUnion[Select, FromStatement])r±   r°   )Ú_create_orm_contextr   r­   )r»   r„   r°   r·   s       r‚   rº   z$ORMCompileState.create_for_statement¸  sH   € ð 'ˆsÔ&ÝÐ/°Ñ;Ô;ð
à!œÐ'Øð
ð 
ð ð	
ð 
ð 	
r�   rû   r±   úOptional[SQLCompiler]c               ó   — t          ¦   «         ‚r‹   r¾   )r»   r„   r±   r°   r·   s        r‚   rü   z#ORMCompileState._create_orm_contextÆ  s   € õ "Ñ#Ô#Ð#r�   c                ót   — | j         }||vr,|                     |¦  «         |                     |¦  «         d S d S r‹   )rõ   ÚaddÚappend)r‘   ÚobjÚcol_collectionÚdedupes       r‚   Ú_append_dedupe_col_collectionz-ORMCompileState._append_dedupe_col_collectionÑ  sF   € ØÔ$ˆØ�fÐÐØ�JŠJ�s‰OŒOˆOØ×!Ò! #Ñ&Ô&Ð&Ð&Ð&ð Ðr�   Úlabel_styler;   Úlegacyc                ó:   — |rdd„}|S t          j        |¦  «        S )Nc                ó*   — |r|S t          | d¦  «        S )NÚkey)Úgetattr)ÚcolÚcol_names     r‚   Únamez7ORMCompileState._column_naming_convention.<locals>.nameÝ  s   € Øð /Ø#�Oå" 3¨Ñ.Ô.Ð.r�   r‹   )r<   Ú_column_naming_convention)r»   r  r  r  s       r‚   r  z)ORMCompileState._column_naming_convention×  s9   € ð ð 
	Fð/ð /ð /ð /ð ˆKåÔ8¸ÑEÔEÐEr�   c                ó    — t          |¦  «        S r‹   )Ú_column_descriptions©r»   r„   s     r‚   Úget_column_descriptionsz'ORMCompileState.get_column_descriptionsç  s   € å# IÑ.Ô.Ð.r�   c                ó¾  — t           j                             dh d£||j        ¦  «        \  }}d|v r-|d         }|j        j                             |j        |¦  «        }|st          }n|                     t          ¦  «        }|j	        r|                     d|j	        i¦  «        }t          |j        dd ¦  «        rKt          |j        j        ¦  «        dk    r.|                     dd¦  «        �|                     d d	d
œ¦  «        }||d<   	 |j        d         }	|	r
|	j        |d<   n# t"          $ r J d¦   «         ‚w xY w|s|j        r|                     ¦   «          ||fS )NrÒ   >   r_   rj   ri   r`   Úsa_top_level_orm_contextr  rj   rÝ   é
   Úcompiled_cacheTz#excess depth for ORM loader options)r  Ú_cache_disable_reasonÚclauseÚplugin_subjectÚmapperFz0statement had 'orm' plugin but no plugin_subject)rU   rƒ   rÓ   rÔ   rX   Ú
merge_withr]   Ú_orm_load_exec_optionsÚunionrz   r  Ú_compile_optionsÚlenrÝ   r¬   Ú_propagate_attrsr  r¯   rx   )
r»   r^   r„   rZ   r]   r\   rÀ   r[   Úctxr  s
             r‚   rÁ   z$ORMCompileState.orm_pre_session_execë  så  € õ Ô-×DÒDØ"ðð ð ð ØÔ(ñ
ô 
ñ	
ØØð( &Ð):Ð:Ð:Ø#Ð$>Ô?ˆCØ #¤	Ô <× GÒ GØÔ%Ð'8ñ!ô !Ðð !ð 	PÝ 6ÐÐà 1× 7Ò 7Õ8NÑ OÔ OÐð Ô"ð 	Ø 1× 7Ò 7Ø˜lÔ5Ð6ñ!ô !Ðõ
 �IÔ.°ÀÑFÔFð	å�IÔ.Ô<Ñ=Ô=ÀÒBÐBØ!×%Ò%Ð&6¸Ñ=Ô=ÐIð "×'Ò'à*.ð2-ðð ñô ð ð $-ˆ�xÑ ð	AØ&Ô7Ð8HÔIˆNð ð AØ+9Ô+@�˜xÑ(øøõ	 ð 	Mð 	Mð 	MØLÐLÑLÔL�5ð	Møøøð ð 	! Ô 7ð 	!Ø×ÒÑ Ô Ð àÐ+Ð+Ð+s   ÄD& Ä&D;c           
     óÚ   — |j         }|j        j        }|                     dt          j        ¦  «        }	|j        j        r|S t	          ||||||	||¦  «        }
t          j	        ||
¦  «        S )NrÒ   )
ÚcontextÚcompiledrW   r¬   rU   rƒ   rî   rä   r   Ú	instances)r»   r^   r„   rZ   r]   r\   rÇ   Úexecution_contextrW   r[   Úquerycontexts              r‚   rÅ   z'ORMCompileState.orm_setup_cursor_resultE  s‡   € ð #œNÐØ)Ô2Ô@ˆð )×,Ò,Ø"¥LÔ$Eñ
ô 
ˆð Ô(Ô1ð 	ØˆMå#ØØØØØØØØñ	
ô 	
ˆõ Ô  ¨Ñ6Ô6Ð6r�   c                ó$   — d„ | j         D ¦   «         S )zºreturn all _MapperEntity objects in the lead entities collection.

        Does **not** include entities that have been replaced by
        with_entities(), with_only_columns()

        c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   ©Ú
isinstanceÚ_MapperEntity©rŽ   Úents     r‚   ú
<listcomp>z9ORMCompileState._lead_mapper_entities.<locals>.<listcomp>r  s7   € ð 
ð 
ð 
Ø­Z¸½]Ñ-KÔ-Kð
Øð
ð 
ð 
r�   )rì   rž   s    r‚   Ú_lead_mapper_entitiesz%ORMCompileState._lead_mapper_entitiesj  s%   € ð
ð 
Øœ>ð
ñ 
ô 
ð 	
r�   c           
     óæ   — |j         se|j        j        | j        vrT|j                             ¦   «         D ]<}|                      |t          t          j        ||j	        |¬¦  «        ¦  «         Œ9dS dS dS )a5  given MapperEntity or ORMColumnEntity, setup polymorphic loading
        if called for by the Mapper.

        As of #8168 in 2.0.0rc1, polymorphic adapters, which greatly increase
        the complexity of the query creation process, are not used at all
        except in the quasi-legacy cases of with_polymorphic referring to an
        alias and/or subquery. This would apply to concrete polymorphic
        loading, and joined inheritance where a subquery is
        passed to with_polymorphic (which is completely unnecessary in modern
        use).

        )Úequivalentsr§   N)
Úis_aliased_classr  Úpersist_selectablerí   Úiterate_to_rootÚ"_mapper_loads_polymorphically_withr   r   ÚWITH_POLYMORPHIC_ADAPTERÚ_equivalent_columns)r‘   Úext_infor§   Úmps       r‚   Ú _create_with_polymorphic_adapterz0ORMCompileState._create_with_polymorphic_adapterv  s¨   € ð Ô)ð	à”Ô2ØÔ-ð.ð .ð ”o×5Ò5Ñ7Ô7ð 	ð 	�Ø×7Ò7ØÝÝ'Ô@ØØ$&Ô$:Ø#-ð	ñ ô ñô ð ð ð	ð 	ð.ð .ð	ð 	r�   c                ó€   — |j         p|gD ]2}|| j        |<   |                     ¦   «         D ]}|| j        |j        <   ŒŒ3d S r‹   )Ú_with_polymorphic_mappersrí   r6  Úlocal_table)r‘   r  ÚadapterÚm2Úms        r‚   r7  z2ORMCompileState._mapper_loads_polymorphically_with“  sk   € ØÔ2Ð>°v°hð 	Dð 	DˆBØ-4ˆDÔ& rÑ*à×'Ò'Ñ)Ô)ð Dð D�Ø<C�Ô*¨1¬=Ñ9Ð9ðDð	Dð 	Dr�   c                ó    — t          d¦  «        ‚)Nz0this method only works for ORMSelectCompileStater¾   )r»   rX   r  s      r‚   Ú_create_entities_collectionz+ORMCompileState._create_entities_collectionš  s   € å!Ø>ñ
ô 
ð 	
r�   N)r„   r0   r°   rI   r·   r   rœ   rn   )
r„   rû   r±   rð   r°   rý   r·   r   rœ   rn   )r  r;   r  rð   rœ   rM   )rq   rr   rs   r.   rê   r¡   ré   rö   Ú_has_mapper_entitiesr›   rÌ   rº   rü   r  r  r  rÁ   rÅ   Úpropertyr1  r<  r7  rD  r€   r�   r‚   rn   rn   x  sF  € € € € € € ð#ð #ð #ð #ð #Ð"2ñ #ô #ð #ðJ ÐÐÑØ%Ð%Ð%Ñ%àAÐAÐAÑAØHÐHÐHÑHØ!Ð!Ð!Ñ!Ø@Ð@Ð@Ñ@ðð ð ñ ð ,Ð+Ð+Ñ+Ø Ð Ð Ñ Ø/Ð/Ð/Ñ/Ø-Ð-Ð-Ñ-Ø/Ð/Ð/Ñ/Ø+Ð+Ð+Ñ+ðð ð ñ ð "0€LÐ/Ð/Ð/Ñ/Ø Ðð$ð $ð $ð ð
ð 
ð 
ñ „[ð
ð ð$ð $ð $ñ „[ð$ð'ð 'ð 'ð ðFð Fð Fñ „[ðFð ð/ð /ñ „[ð/ð ðW,ð W,ñ „[ðW,ðr ð"7ð "7ñ „[ð"7ðH ð	
ð 	
ñ „Xð	
ðð ð ð:Dð Dð Dð ð
ð 
ñ „[ð
ð 
ð 
r�   rn   c                  ó(   — e Zd ZdZdZd„ Zd„ Zd„ ZdS )Ú_DMLReturningColFilterzûa base for an adapter used for the DML RETURNING cases

    Has a subset of the interface used by
    :class:`.ORMAdapter` and is used for :class:`._QueryEntity`
    instances to set up their columns as used in RETURNING for a
    DML statement.

    )r  ÚcolumnsÚ__weakref__c                óŽ   — |�|j         |j         ur|| _        n|| _        t          j        | j        ¦  «        x| _        | _        d S r‹   )r?  r  r$   ÚWeakPopulateDictÚadapt_check_presentrI  )r‘   Útarget_mapperÚimmediate_dml_mappers      r‚   r›   z_DMLReturningColFilter.__init__­  sY   € à Ð,ØÔ)Ø'Ô3ð4ð 4ð /ˆDŒKˆKð (ˆDŒKÝ&*Ô&;ØÔ$ñ'
ô '
ð 	
ˆŒ�t”|�|�|r�   c                ój   — t          j        |¦  «        D ]}|                      |¦  «        }|�|c S Œd S r‹   )Úsql_utilÚ_find_columnsrM  )r‘   r  Ú	as_filterÚccÚc2s        r‚   Ú__call__z_DMLReturningColFilter.__call__¼  sI   € ÝÔ(¨Ñ-Ô-ð 	ð 	ˆBØ×)Ò)¨"Ñ-Ô-ˆBØˆ~Ø�
�
�
ð ð �4r�   c                ó   — t          ¦   «         ‚r‹   r¾   )r‘   r  s     r‚   rM  z*_DMLReturningColFilter.adapt_check_presentÄ  rù   r�   N)rq   rr   rs   rÖ   r    r›   rV  rM  r€   r�   r‚   rH  rH  ¡  sR   € € € € € ðð ð 5€Ið
ð 
ð 
ðð ð ð$ð $ð $ð $ð $r�   rH  c                  ó   — e Zd ZdZd„ ZdS )Ú _DMLBulkInsertReturningColFiltera[  an adapter used for the DML RETURNING case specifically
    for ORM bulk insert (or any hypothetical DML that is splitting out a class
    hierarchy among multiple DML statements....ORM bulk insert is the only
    example right now)

    its main job is to limit the columns in a RETURNING to only a specific
    mapped table in a hierarchy.

    c                óŒ   — | j         }|j                             |d ¦  «        }|€d S |j        j                             |¦  «        S r‹   )r  Ú_columntopropertyr¬   r?  ÚcÚcorresponding_column©r‘   r  r  Úprops       r‚   rM  z4_DMLBulkInsertReturningColFilter.adapt_check_presentÓ  sE   € Ø”ˆØÔ'×+Ò+¨C°Ñ6Ô6ˆØˆ<Ø�4ØÔ!Ô#×8Ò8¸Ñ=Ô=Ð=r�   N©rq   rr   rs   rÖ   rM  r€   r�   r‚   rY  rY  È  s-   € € € € € ðð ð>ð >ð >ð >ð >r�   rY  c                  ó   — e Zd ZdZd„ ZdS )Ú"_DMLUpdateDeleteReturningColFiltera_  an adapter used for the DML RETURNING case specifically
    for ORM enabled UPDATE/DELETE

    its main job is to limit the columns in a RETURNING to include
    only direct persisted columns from the immediate selectable, not
    expressions like column_property(), or to also allow columns from other
    mappers for the UPDATE..FROM use case.

    c                óŒ   — | j         }|j                             |d ¦  «        }|�|j        j                             |¦  «        S |S r‹   )r  r[  r¬   r5  r\  r]  r^  s       r‚   rM  z6_DMLUpdateDeleteReturningColFilter.adapt_check_presentæ  sJ   € Ø”ˆØÔ'×+Ò+¨C°Ñ6Ô6ˆØÐð Ô,Ô.×CÒCÀCÑHÔHÐHð ˆ
r�   Nr`  r€   r�   r‚   rb  rb  Û  s-   € € € € € ðð ð
ð 
ð 
ð 
ð 
r�   rb  ÚormÚorm_from_statementc                  ó|   — e Zd ZU dZdZded<   ded<   dZded<   dZdZdZ	dZ
eZeZedd„¦   «         Zd„ Zd„ Zd„ ZdS )ÚORMFromStatementCompileStateNFÚFromStatementÚstatement_containerz)Union[SelectBase, TextClause, UpdateBase]Úrequested_statementzOptional[_DMLTableElement]Ú	dml_tabler„   rû   r±   rð   r°   rý   r·   r   rœ   c               óª  — |}t          |t          ¦  «        sJ ‚|�|j        rt          j        d¦  «        ‚|                      | ¦  «        }d |_        |j        j        |_	        |x|_
        |_        |j        x|_        }|j        r|j        |_        d|_        g |_        i |_        |j        |_        |j	        rVt          |t*          j        ¦  «        r<|j        s5|j        s.|j        t2          u r |                     t6          ¦  «        |_        n||_        |                     |j        s|j        s|j        nt2          |j	        ¦  «        |_        t>                                ||j!        |j        d¬¦  «         |j        j"        |_#        | $                    ||dd¬¦  «         |j%        r&|j%        D ]}|j&        r| '                    |¦  «         Œ|j(        r|j(        D ]\  }}	 ||¦  «         Œg |_)        g |_*        tW          ¦   «         |_,        g |_-        g |_.        d |_/        t          |j        t*          j0        ¦  «        rci |_1        |j        D ]}
|
 2                    |¦  «         Œdx|_3        |_4        d|_5        |j)        D ]}| 6                    |d|j7        ¬¦  «         Œ n+tq          tr          j:        |j        |j;        ¬¦  «        |_<        |S )NzšThe ORM FromStatement construct only supports being invoked as the topmost statement, as it is only intended to define how result rows should be returned.T©Úis_current_entitiesF)r²   r±   )Úwithin_columns_clauseÚadd_to_result_map)Úadapt_on_names)=r,  rh  r­   Úsa_excÚCompileErrorÚ__new__rï   r  rÚ   rñ   ri  r”   Úelementrj  r*   Útablerk  rË   rì   rí   rî   r&   rP   Ú_is_textualÚ_label_styler8   Úset_label_styler9   r„   r  rò   Ú_QueryEntityÚto_compile_stateÚ_raw_columnsrÝ   rö   r¶   r•   r®   r«   Ú_with_context_optionsró   rô   Úsetrõ   rd   Ú_fallback_from_clausesÚorder_byr5   Úextra_criteria_entitiesÚsetup_compile_stateÚ_ordered_columnsÚ_textual_ordered_columnsÚ_loose_column_name_matchingÚprocessÚ_add_to_result_mapr   r   ÚADAPT_FROM_STATEMENTÚ_adapt_on_namesÚ_from_obj_alias)r»   r„   r±   r°   r·   ri  r‘   r�   Úfnr
  Úentityr\  s               r‚   rü   z0ORMFromStatementCompileState._create_orm_context  sj  € ð (ÐåÐ-­}Ñ=Ô=Ð=Ð=Ð=àÐ H¤NÐÝÔ%ð=ñô ð ð �{Š{˜3ÑÔˆØ#ˆÔð  Ô0ÔHð 	Ô#ð <OÐNˆÔ  4Ô#8Ø/BÔ/JÐJˆÔ  9àÔð 	)Ø&œ_ˆDŒNØ$(ˆDÔ!àˆŒØ%'ˆÔ"à2ÔCˆÔð Ô'ð	'å˜9¥jÔ&;Ñ<Ô<ð	'ð Ô)ð	'ð Ô$ð		'ð
 Ô&Õ*:Ð:Ð:à&×6Ò6Ý.ñô ˆDŒNˆNð 'ˆDŒNà!%×!?Ò!?ð !Ô,ð&Ø5>Ô5Eð&�	Ô&Ð&å%àÔ'ñ"
ô "
ˆÔõ 	×%Ò%ØØÔ,ØŒNØ $ð	 	&ñ 	
ô 	
ð 	
ð 0Ô@ÔNˆÔà×$Ò$ØØØ*/Øð	 	%ñ 	
ô 	
ð 	
ð Ô,ð 	4Ø*Ô8ð 4ð 4�ØÔ(ð 4Ø×-Ò-¨dÑ3Ô3Ð3øàÔ4ð 	Ø.ÔDð ð ‘��CØ��4‘”��à!ˆÔØ!#ˆÔÝ!™eœeˆÔØ"$ˆÔØ&(ˆÔ#àˆŒå�d”n¥jÔ&;Ñ<Ô<ð %	ð ,.ˆDÔ(àœ.ð 1ð 1�Ø×*Ò*¨4Ñ0Ô0Ð0Ð0ð ðˆHÔ%¨Ô(Ið 48ˆHÔ0àÔ)ð ð �Ø× Ò ØØ*.Ø&.Ô&Að !ñ ô ð ð ðõ  $7ÝÔ4Ø”Ø2ÔBð$ñ $ô $ˆDÔ ð ˆr�   c                ó   — |S r‹   r€   ©r‘   ÚcolsÚcurrent_adapters      r‚   Ú_adapt_col_listz,ORMFromStatementCompileState._adapt_col_listŠ  ó   € Øˆr�   c                ó   — d S r‹   r€   rž   s    r‚   Ú_get_current_adapterz1ORMFromStatementCompileState._get_current_adapter�  s   € Øˆtr�   c                ó†  — | j         j                             dd¦  «        }| j         j        rt	          ||¦  «        }n+| j         j        s| j         j        rt          ||¦  «        }nd}| j        j	        r,t          | j        ¦  «        dk    rt          j        d¦  «        ‚| j        D ]}|                     | |¦  «         ŒdS )zused by BulkORMInsert, Update, Delete to set up a handler
        for RETURNING to return ORM objects and expressions

        r  Nr   úsCan't generate ORM query that includes multiple expressions at the same time as '*'; query for '*' alone if present)r„   r!  r¬   Ú	is_insertrY  Ú	is_updateÚ	is_deleterb  rî   rä   r   rì   rr  rs  Ú!setup_dml_returning_compile_state)r‘   Ú
dml_mapperrN  r@  rŒ  s        r‚   rš  z>ORMFromStatementCompileState.setup_dml_returning_compile_state�  s÷   € ð
 œÔ7×;Ò;Ø˜dñ
ô 
ˆð Œ>Ô#ð 		Ý6Ø˜zñô ˆGˆGð Œ^Ô%ð 	¨¬Ô)Að 	Ý8Ø˜zñô ˆGˆGð ˆGàÔÔ(ð 	­c°$´.Ñ.AÔ.AÀQÒ.FÐ.FÝÔ%ðJñô ð ð
 ”nð 	Dð 	DˆFØ×4Ò4°T¸7ÑCÔCÐCÐCð	Dð 	Dr�   )
r„   rû   r±   rð   r°   rý   r·   r   rœ   rg  )rq   rr   rs   rŠ  rE  r¡   rk  Ú_has_orm_entitiesÚmulti_row_eager_loadersÚeager_adding_joinsÚcompound_eager_adapterr“   r�  Úeager_joinsrÌ   rü   r‘  r”  rš  r€   r�   r‚   rg  rg  ó  sÂ   € € € € € € à€OØ Ðà&Ð&Ð&Ñ&ØBÐBÐBÑBØ,0€IÐ0Ð0Ð0Ñ0àÐØ#ÐØÐØ!Ðà)ÐØ€KàðCð Cð Cñ „[ðCðJð ð ðð ð ðDð Dð Dð Dð Dr�   rg  c                  ó4  ‡ — e Zd ZU dZdZej        Zej        Z	dZ
ded<   ded<   dej        fdej        fgej        z   Zed	ej        fgz   Zd
Z	 ddd„Zd„ Zed„ ¦   «         Zd„ Zˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zˆ xZS )rh  a*  Core construct that represents a load of ORM objects from various
    :class:`.ReturnsRows` and other classes including:

    :class:`.Select`, :class:`.TextClause`, :class:`.TextualSelect`,
    :class:`.CompoundSelect`, :class`.Insert`, :class:`.Update`,
    and in theory, :class:`.Delete`.

    re  Nú(Union[ExecutableReturnsRows, TextClause]ru  rð   r‰  r|  r  TÚentitiesú%Iterable[_ColumnsClauseArgument[Any]]c                ó   ‡ — ˆ fd„t          j        |¦  «        D ¦   «         ‰ _        |‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        |j        ‰ _        t          |¦  «        r|j
        nd ‰ _
        |‰ _        d S )Nc                óT   •— g | ]$}t          j        t          j        |‰d ¬¦  «        ‘Œ%S )T)Úapply_propagate_attrsÚpost_inspect)r%   Úexpectr'   ÚColumnsClauseRole)rŽ   r/  r‘   s     €r‚   r0  z*FromStatement.__init__.<locals>.<listcomp>Õ  sL   ø€ ð 
ð 
ð 
ð õ ÔÝÔ'ØØ&*Ø!ð	ñ ô ð
ð 
ð 
r�   )r$   Úto_listr|  ru  r*   Ú	is_selectr™  r—  r˜  r,   rx  r‰  )r‘   r£  ru  r‰  s   `   r‚   r›   zFromStatement.__init__Ï  s¤   ø€ ð
ð 
ð 
ð 
õ ”| HÑ-Ô-ð
ñ 
ô 
ˆÔð ˆŒØ”nˆŒØ Ô*ˆŒØ Ô*ˆŒØ Ô*ˆŒØ Ô*ˆŒå$2°7Ñ$;Ô$;ÐEˆGÔ Ð Àð 	Ôð  /ˆÔÐÐr�   c                óh   —  | j         | |fi |¤Ž}|j         }|r||_         |j        |j        fi |¤ŽS )z›provide a fixed _compiler_dispatch method.

        This is roughly similar to using the sqlalchemy.ext.compiler
        ``@compiles`` extension.

        )Ú_compile_state_factoryr­   rW   r†  r„   )r‘   r°   r·   rW   r±   s        r‚   Ú_compiler_dispatchz FromStatement._compiler_dispatché  sX   € ð 4˜Ô3°D¸(ÐIÐIÀbÐIÐIˆà”~Ð%ˆàð 	3Ø%2ˆHÔ"àˆxÔ Ô 7Ð>Ð>¸2Ð>Ð>Ð>r�   c                óp   — t          t          t          j        | ¦  «        ¦  «        j        } || ¦  «        S )a@  Return a :term:`plugin-enabled` 'column descriptions' structure
        referring to the columns which are SELECTed by this statement.

        See the section :ref:`queryguide_inspection` for an overview
        of this feature.

        .. seealso::

            :ref:`queryguide_inspection` - ORM background

        )r   ÚORMSelectCompileStater<   Úget_plugin_classr  )r‘   Úmeths     r‚   Úcolumn_descriptionsz!FromStatement.column_descriptionsú  s9   € õ Ý!¥;Ô#?ÀÑ#EÔ#Eñ
ô 
ä
!ð 	ð ˆt�D‰zŒzÐr�   c                ó   — | S r‹   r€   rž   s    r‚   Ú_ensure_disambiguated_namesz)FromStatement._ensure_disambiguated_names  r’  r�   c              +  ó²   •K  — t           j                             d„ | j        D ¦   «         ¦  «        E d {V —†  t	          ¦   «         j        di |¤ŽE d {V —† d S )Nc              3  ó$   K  — | ]}|j         V — Œd S r‹   )Ú_from_objects©rŽ   ru  s     r‚   r’   z-FromStatement.get_children.<locals>.<genexpr>  s6   è è € ð 1
ð 1
Ø&-ˆGÔ!ð1
ð 1
ð 1
ð 1
ð 1
ð 1
r�   r€   )Ú	itertoolsÚchainÚfrom_iterabler|  r¹   Úget_children)r‘   r·   r¼   s     €r‚   r¾  zFromStatement.get_children  s•   øè è € Ý”?×0Ò0ð 1
ð 1
Ø15Ô1Bð1
ñ 1
ô 1
ñ 
ô 
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð (•5‘7”7Ô'Ð-Ð-¨"Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r�   c                ó   — | j         j        S r‹   )ru  Ú_all_selected_columnsrž   s    r‚   rÀ  z#FromStatement._all_selected_columns  s   € àŒ|Ô1Ð1r�   c                óF   — t          | j        ¦  «        r| j        j        nd S r‹   )r*   ru  Ú_return_defaultsrž   s    r‚   rÂ  zFromStatement._return_defaults  s!   € å06°t´|Ñ0DÔ0DÐNˆtŒ|Ô,Ð,È$ÐNr�   c                óF   — t          | j        ¦  «        r| j        j        nd S r‹   )r*   ru  Ú
_returningrž   s    r‚   rÄ  zFromStatement._returning  s!   € å*0°´Ñ*>Ô*>ÐHˆtŒ|Ô&Ð&ÀDÐHr�   c                óF   — t          | j        ¦  «        r| j        j        nd S r‹   )r+   ru  Ú_inlinerž   s    r‚   rÆ  zFromStatement._inline!  s!   € å'7¸¼Ñ'EÔ'EÐOˆtŒ|Ô#Ð#È4ÐOr�   ©T)r£  r¤  ru  r¢  r‰  rð   ) rq   rr   rs   rÖ   Ú__visit_name__rg  rê   r  rº   r®  Ú_for_update_argr¡   r>   Údp_clauseelement_listÚdp_clauseelementr0   Ú_executable_traverse_internalsÚ_traverse_internalsræ   rè   Úis_from_statementr›   r¯  rF  r´  r¶  r¾  rÀ  rÂ  rÄ  rÆ  rÍ   rÎ   s   @r‚   rh  rh  ®  sŸ  ø€ € € € € € ðð ð *€Nà3ÔKÐà9ÔNÐà€Oà5Ð5Ð5Ñ5àÐÐÑð 
Ð*Ô@ÐAØ	Ð%Ô6Ð7ðð 	Ô1ñ2Ðð
 /Ø	Ð.Ô?Ð@ð2ñ Ðð Ðð !%ð	/ð /ð /ð /ð /ð4?ð ?ð ?ð" ðð ñ „Xðð"ð ð ð.ð .ð .ð .ð .ð ð2ð 2ñ „Xð2ð ðOð Oñ „XðOð ðIð Iñ „XðIð ðPð Pñ „XðPð Pð Pð Pð Pr�   rh  Úcompound_selectc                  ó   — e Zd ZdS )ÚCompoundSelectCompileStateN)rq   rr   rs   r€   r�   r‚   rÑ  rÑ  &  s   € € € € € ð 	€Dr�   rÑ  Úselectc                  óv  — e Zd ZdZeZdZdZdZdZ	dZ
dZdZdZdZdZed+d„¦   «         Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd,d„Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d „ Z$d!„ Z%d"„ Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*e+d'„ ¦   «         Z,e+d(„ ¦   «         Z-d)„ Z.d*„ Z/dS )-r±  r€   NFr„   rû   r±   rð   r°   rý   r·   r   rœ   c               óð  ‡
— |                       | ¦  «        Š
|}| j                             |j        ¦  «        |_        |j        r7|                     ¦   «         ‰
_        t          j        ¦   «         ‰
j        _        n|‰
_        |j        j	        ‰
_
        |j        j        ‰
_        g ‰
_        d ‰
_        i ‰
_        |j        ‰
_        |s‰
xj        dddœz  c_        ‰
j        r4‰
j        j        t$          u r!‰
j
        st&          ‰
_        nt*          ‰
_        n‰
j        j        ‰
_        |j        rˆ
fd„|j        D ¦   «         ‰
_        ‰
                     |j        ‰
j        ¦  «        ‰
_        t4                               ‰
|j        ‰
j        d¬¦  «         |j        j        ‰
_        d‰
_        ‰
                      |||d¬¦  «         |r|j!        s|j        rq|j        D ]>}|j!        D ]4}|j"        r+| #                    ‰
d„ ‰
j        |         D ¦   «         ¦  «         Œ5Œ?‰
j        j!        D ]}|j"        r| $                    ‰
¦  «         Œ|j%        r|j%        D ]\  }}	 |‰
¦  «         Œg ‰
_&        g ‰
_'        tQ          ¦   «         ‰
_)        i ‰
_*        i ‰
_+        g ‰
_,        g ‰
_-        ‰
 .                    d	„ |j/        D ¦   «         ¦  «        ‰
_0        ‰
 1                    ¦   «          te          j3        ‰
‰
j4        |fi |¤Ž ‰
S )
NFT)rß   rã   c           	     óX   •— i | ]&}|t                                ‰|j        g d ¬¦  «        “Œ'S )Frm  )rz  r{  r|  )rŽ   Úmemoized_entitiesr‘   s     €r‚   ú
<dictcomp>z=ORMSelectCompileState._create_orm_context.<locals>.<dictcomp>ƒ  sR   ø€ ð 
'ð 
'ð 
'ð &ð "¥<×#@Ò#@ØØ%Ô2ØØ(-ð	 $Añ $ô $ð
'ð 
'ð 
'r�   rm  r€   )r±   r²   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   r+  r.  s     r‚   r0  z=ORMSelectCompileState._create_orm_context.<locals>.<listcomp>´  s:   € ð ð ð à$'õ $.¨cµ=Ñ#AÔ#AðØ #ðð ð r�   c              3  ó$   K  — | ]}|j         V — Œd S r‹   )r§   )rŽ   Úinfos     r‚   r’   z<ORMSelectCompileState._create_orm_context.<locals>.<genexpr>×  s5   è è € ð 2
ð 2
Ø $ˆDŒOð2
ð 2
ð 2
ð 2
ð 2
ð 2
r�   )5rt  rê   Ú
safe_merger  rÔ   Ú_cloner”   r$   ÚimmutabledictrÛ   Úfor_statementrÚ   rñ   rì   rï   rí   rî   rx  ÚLABEL_STYLE_LEGACY_ORMr9   r  r7   Ú_memoized_select_entitiesÚ_memoized_entitiesr  rò   rz  r{  r|  rÝ   rö   Úeager_order_byr¶   r•   r®   Ú'process_compile_state_replaced_entitiesr«   r}  ró   rô   r~  rõ   r   r�  rd   r  Ú_normalize_fromsÚ	_from_objÚfrom_clausesÚ_setup_for_generater<   r›   r„   )r»   r„   r±   r°   r·   r”   rÖ  r�   r‹  r
  r‘   s             @r‚   rü   z)ORMSelectCompileState._create_orm_context@  sÇ  ø€ ð �{Š{˜3ÑÔˆà$Ðð &)Ô%@×%KÒ%KØÔ&ñ&
ô &
ˆ	Ô"ð Ô.ð 	5ð %5×$;Ò$;Ñ$=Ô$=ˆDÔ!Ý7;Ô7IÑ7KÔ7KˆDÔ!Ô4Ð4à$4ˆDÔ!ð .Ô>ÔMˆÔð Ô-ÔEð 	Ô#ð ˆŒØ#ˆÔØ%'ˆÔ"à/Ô@ˆÔàð 	ð Ð Ô Ø&+Ø(,ð%ð %ñ Ð Ô ð Ô'ð		BàÔ%Ô2Õ6LÐLÐLàÔ%ð AÝ#A�Ô Ð å#@�Ô Ð à#Ô4ÔAˆDÔàÔ5ð 	ð
'ð 
'ð 
'ð 
'ð %Ô>ð
'ñ 
'ô 
'ˆDÔ#ð  "&×!?Ò!?ØÔ" DÔ$?ñ"
ô "
ˆÔõ 	×%Ò%ØØÔ)ØŒNØ $ð	 	&ñ 	
ô 	
ð 	
ð -Ô=ÔKˆÔà ˆÔà×$Ò$ØØØØ*/ð	 	%ñ 	
ô 	
ð 	
ð ð 	4ØÔ*ð	4àÔ9ð	4ð "Ô;ðð Ø!à,Ô:ð ð �CØÔ,ð 
Ø×CÒCØ ðð à+/Ô+BØ$5ô,"ðñ ô ñ	ô 	ð 	øðð Ô,Ô:ð 4ð 4�ØÔ(ð 4Ø×-Ò-¨dÑ3Ô3Ð3øð Ô1ð 	Ø+ÔAð ð ‘��CØ��4‘”��à!ˆÔØ!#ˆÔÝ!™eœeˆÔØˆÔØ')ˆÔ$Ø"$ˆÔØ&(ˆÔ#ð !×1Ò1ð 2
ð 2
Ø(8Ô(Bð2
ñ 2
ô 2
ñ 
ô 
ˆÔð 	× Ò Ñ"Ô"Ð"åÔ˜T 4¤>°8ÐBÐB¸rÐBÐBÐBØˆr�   c                óL  — t          d¦  «         t          d| j        › �¦  «         | j        D ]õ}t          |t          ¦  «        rv|d         dk    rjt          dt          j        |d         ¦  «        › �¦  «         t          d| j        |         › �¦  «         t          d| j        |         j        › �¦  «         Œ�t          |t          ¦  «        rS|d         dk    rGt          d	t          j        |d         ¦  «        › �¦  «         t          d| j        |         › �¦  «         Œöd S )
Nz5
---------------------------------------------------
zcurrent path: r   Úloaderz
Loader:           r   z    Úpath_with_polymorphicz
With Polymorphic: )Úprintrö   r   r,  r–   r   ÚcoerceÚ__dict__)r‘   r
  s     r‚   Ú_dump_option_structz)ORMSelectCompileState._dump_option_structã  s4  € ÝÐGÑHÔHÐHÝÐ2˜tÔ0Ð2Ð2Ñ3Ô3Ð3Ø”?ð 	5ð 	5ˆCÝ˜#�uÑ%Ô%ð 5¨#¨a¬&°HÒ*<Ð*<ÝÐJ­\Ô-@ÀÀQÄÑ-HÔ-HÐJÐJÑKÔKÐKÝÐ3˜Tœ_¨SÔ1Ð3Ð3Ñ4Ô4Ð4ÝÐ<˜Tœ_¨SÔ1Ô:Ð<Ð<Ñ=Ô=Ð=Ð=Ý˜C¥Ñ'Ô'ð 5¨C°¬FÐ6MÒ,MÐ,MÝÐJ­\Ô-@ÀÀQÄÑ-HÔ-HÐJÐJÑKÔKÐKÝÐ3˜Tœ_¨SÔ1Ð3Ð3Ñ4Ô4Ð4øð	5ð 	5r�   c                ó*  ‡— | j         }d | _        d| _        | j        j        r|                      ¦   «          |j        D ]/}|j        r&|                      |j        | j	        |         ¦  «         Œ0|j        r |                      |j        | j
        ¦  «         |                      ¦   «         Š|j        r3|j        | _        ‰r%t          ˆfd„| j        D ¦   «         ¦  «        | _        ‰r$|j        dvr|                      |j        ‰¦  «        n|j        | _        |j        r%t          ˆfd„|j        D ¦   «         ¦  «        | _        ‰r6|j        dvr-|                      t'          j        |j        ¦  «        ‰¦  «        n|j        pd | _        | j        r1| j        d         j        }|                     | j        ¦  «        | _        |j        r!|                      |j        ‰¦  «        | _        nd| _        |j        | _        |j        r6t          t'          j        d„ |j        D ¦   «         ¦  «        ¦  «        | _        nK|j         �6t          t'          j        d„ |j         D ¦   «         ¦  «        ¦  «        | _!        n|j"        sd| _        |j#        | _#        | j        j$        r,tK          | j
        ¦  «        d	k    rtM          j'        d
¦  «        ‚| j
        D ]}| (                    | ¦  «         Œ| j)        D ]}|d         } || g|d	d …         ¢R Ž  Œ| j        j*        r|  +                    ¦   «          | j,        s*| j        j-        r
J d¦   «         ‚tM          j.        d¦  «        ‚| j        st_          | j0        ¦  «        | _        | j        du rd | _        | j1        r(| j2        r!| j3        r|  4                    ¦   «         | _        n|  5                    ¦   «         | _        | j6        r9|  7                    ¦   «         }|�%| j         8                    d|i¦  «        | _        d S d S d S )Nr€   c              3  ó0   •K  — | ]} ‰|d ¦  «        V — ŒdS ©TNr€   ©rŽ   Úcritr�  s     €r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>	  sC   øè è € ð -ð -àð $�O D¨$Ñ/Ô/ð-ð -ð -ð -ð -ð -r�   ©NFc              3  ó8   •K  — | ]}‰r ‰|d ¦  «        n|V — ŒdS rñ  r€   rò  s     €r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>  sM   øè è € ð *ð *àð 0?ÐH��  dÑ+Ô+Ð+ÀDð*ð *ð *ð *ð *ð *r�   r   c              3  óF   K  — | ]}|�t          j        |¦  «        nd V — Œd S r‹   ©rQ  Úsurface_selectables©rŽ   Úss     r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>7  óJ   è è € ð &ð &àð 89°}•HÔ0°Ñ3Ô3Ð3È$ð&ð &ð &ð &ð &ð &r�   c              3  óF   K  — | ]}|�t          j        |¦  «        nd V — Œd S r‹   r÷  rù  s     r‚   r’   z<ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>>  rû  r�   r‹   r   r–  Fz,no columns were included in _only_load_propsz4Query contains no columns with which to SELECT from.Ú
deepentity)9r”   r„   Ú_join_entitiesrî   rá   Ú_set_select_from_aliasrà  Ú_setup_joinsÚ_joinrá  rì   r”  Ú_where_criteriar–   Ú_order_by_clausesr‘  r€  Ú_having_criteriaÚ_group_by_clausesr$   Úflatten_iteratorÚgroup_byrâ  ræ  Ú_target_adapterÚcopy_and_processÚ_distinct_onÚdistinct_onÚ	_distinctÚdistinctÚ
_correlateÚ	correlateÚ_correlate_exceptÚcorrelate_exceptÚ_auto_correlaterÉ  rä   r   rr  rs  r‚  rd   rÞ   Ú_adjust_for_extra_criteriaró   rà   ÚInvalidRequestErrorÚlistr  r�  rž  Ú_should_nest_selectableÚ_compound_eager_statementÚ_simple_statementrÞ  Ú_mapper_zeroÚ	_annotate)	r‘   rX   rÖ  r@  rŒ  ÚrecÚstrategyÚezeror�  s	           @r‚   rç  z)ORMSelectCompileState._setup_for_generateï  s  ø€ ØÔ%ˆàˆŒØ ˆÔàÔÔ/ð 	*à×'Ò'Ñ)Ô)Ð)à!&Ô!@ð 	ð 	ÐØ Ô-ð Ø—
’
Ø%Ô2ØÔ+Ð,=Ô>ñô ð øð
 Ôð 	;Ø�JŠJ�uÔ)¨4¬>Ñ:Ô:Ð:à×3Ò3Ñ5Ô5ˆàÔ ð 	Ø#(Ô#8ˆDÔ àð Ý',ð -ð -ð -ð -à $Ô 4ð-ñ -ô -ñ (ô (�Ô$ð ð)Ø#(Ô#:À-Ð#OÐ#Oð × Ò  Ô!8¸/ÑJÔJÐJàÔ(ð 	Œð Ô!ð 	Ý$)ð *ð *ð *ð *à!Ô2ð*ñ *ô *ñ %ô %ˆDÔ!ð ð1ð $)Ô#:À-Ð#OÐ#Oð × Ò ÝÔ% eÔ&=Ñ>Ô>Àñô ð ð Ô(Ð0¨Dð 	Œð Ôð 	PØÔ'¨Ô*Ô:ˆGØ")×":Ò":¸4Ô;NÑ"OÔ"OˆDÔàÔð 	"Ø#×3Ò3ØÔ" Oñ ô  ˆDÔÐð  "ˆDÔàœˆŒàÔð 	%õ #ÝÔ%ð &ð &à"Ô-ð&ñ &ô &ñ ô ñô ˆDŒNˆNð Ô$Ð0Ý$)ÝÔ%ð &ð &à"Ô4ð&ñ &ô &ñ ô ñ%ô %ˆDÔ!Ð!ð Ô&ð 	%Ø$ˆDŒNð  %Ô4ˆÔàÔÔ(ð 	­c°$´.Ñ.AÔ.AÀQÒ.FÐ.FÝÔ%ðJñô ð ð ”nð 	-ð 	-ˆFØ×&Ò& tÑ,Ô,Ð,Ð,àÔ*ð 	%ð 	%ˆCØ˜1”vˆHØˆH�TÐ$˜C   œGÐ$Ð$Ð$Ð$Ð$ð
 ÔÔ3ð 	.Ø×+Ò+Ñ-Ô-Ð-àÔ#ð 	ØÔ#Ô4ð MØLÐLÑLÔL�uåÔ,ØFñô ð ð Ô ð 	BÝ $ TÔ%@Ñ AÔ AˆDÔàŒ=˜EÐ!Ð!Ø ˆDŒMð Ô(ð	6àÔ'ð	6ð Ô,ð	6ð
 "×;Ò;Ñ=Ô=ˆDŒNˆNà!×3Ò3Ñ5Ô5ˆDŒNàÔð 	Ø×%Ò%Ñ'Ô'ˆEØÐ ð "&¤×!9Ò!9Ø! 5Ð)ñ"ô "�”��ð	ð 	à Ð r�   c                óê   — |                       | ¦  «        }g |_        d|_        i |_        |                     |j        |¦  «        |_        t                               ||j	        |j        d¬¦  «         |S )a  Creates a partial ORMSelectCompileState that includes
        the full collection of _MapperEntity and other _QueryEntity objects.

        Supports a few remaining use cases that are pre-compilation
        but still need to gather some of the column  / adaption information.

        NTrm  )
rt  rì   rï   rí   r  rx  rò   rz  r{  r|  )r»   rX   r  r‘   s       r‚   rD  z1ORMSelectCompileState._create_entities_collection|  s€   € ð �{Š{˜3ÑÔˆàˆŒØ#ˆÔØ%'ˆÔ"à!%×!?Ò!?ØÔ ñ"
ô "
ˆÔõ 	×%Ò%Ø�%Ô$ d¤nÈ$ð 	&ñ 	
ô 	
ð 	
ð ˆr�   c                ó0   — |j         }t          |d ¦  «        S r‹   )r   Ú_determine_last_joined_entity)r»   r„   Úsetup_joinss      r‚   Údetermine_last_joined_entityz2ORMSelectCompileState.determine_last_joined_entity–  s   € àÔ,ˆå,¨[¸$Ñ?Ô?Ð?r�   c              #  ó  K  — |j         D ]u}|j        rVd|j        v rM|j        d         }|j        s|j        st          |g¦  «        E d {V —† ŒDt          |j        ¦  «        E d {V —† Œ_t          |g¦  «        E d {V —† Œvd S )NÚentity_namespace)r|  Úis_selectableÚ_annotationsÚ	is_mapperr4  r-   Ú_all_column_expressions)r»   r„   ru  Úenss       r‚   Úall_selected_columnsz*ORMSelectCompileState.all_selected_columnsœ  sÏ   è è € à Ô-ð 	8ð 	8ˆGàÔ%ð
8à&¨'Ô*>Ð>Ð>àÔ*Ð+=Ô>�Ø”}ð N¨SÔ-Að NÝ0°'°Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;å0°Ô1LÑMÔMÐMÐMÐMÐMÐMÐMÐMÐMå,¨g¨YÑ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð	8ð 	8r�   c                ó„   — |                       t          j                             d„ |j        D ¦   «         ¦  «        ¦  «        S )Nc              3  óv   K  — | ]4}d |j         vr|j        n|j         d                               ¦   «         gV — Œ5dS )ÚparententityN)r&  r¹  Ú__clause_element__rº  s     r‚   r’   zAORMSelectCompileState.get_columns_clause_froms.<locals>.<genexpr>®  so   è è € ð *ð *ð ð &¨WÔ-AÐAÐAð Ô)Ð)ð  Ô,Ø*ôç,Ò,Ñ.Ô.ðð	*ð *ð *ð *ð *ð *r�   )rä  r»  r¼  r½  r|  r  s     r‚   Úget_columns_clause_fromsz.ORMSelectCompileState.get_columns_clause_froms«  sP   € à×#Ò#ÝŒO×)Ò)ð *ð *ð  )Ô5ð*ñ *ô *ñ ô ñ
ô 
ð 	
r�   c                óÖ   — t          j        t          j        ||¬¦  «        }t	          |j        |¦  «        }|j                             |j        |j	        |j
        |j        ¬¦  «         |S )N)r§  )r•   r}  rÔ   r!  )r%   r©  r'   ÚReturnsRowsRolerh  r|  rí  Úupdater•   r}  rÔ   r!  )r»   r„   Úfrom_statementÚstmts       r‚   r3  z$ORMSelectCompileState.from_statement¼  sw   € å"Ô)ÝÔ!ØØ"+ð
ñ 
ô 
ˆõ ˜YÔ3°^ÑDÔDˆàŒ×ÒØ#Ô1Ø"+Ô"AØ(Ô;Ø&Ô7ð	 	ñ 	
ô 	
ð 	
ð ˆr�   c                óÞ   — | j         }| j        j        sJ ‚t          |j        ¦  «        dk    sJ ‚|                      |j        d         ¦  «        }|r| xj        ddiz  c_        || _        dS dS )ú used only for legacy Query casesr   r   rÞ   FN)r”   rî   rá   r   rå  Ú_get_select_from_alias_from_objrŠ  )r‘   rX   r@  s      r‚   rÿ  z,ORMSelectCompileState._set_select_from_aliasÎ  s�   € ð Ô%ˆàÔ#Ô3Ð3Ð3Ð3Ý�5”?Ñ#Ô# qÒ(Ð(Ð(Ð(à×6Ò6°u´ÀqÔ7IÑJÔJˆØð 	+ØÐ Ô Ð%:¸EÐ$BÑBÐ Ô Ø#*ˆDÔ Ð Ð ð	+ð 	+r�   c                ób  — |}d|j         v r|j         d         }t          |d¦  «        r"|j        st          j        d¦  «        ‚|j        S t          |j        t          j        j	        ¦  «        r@|  
                    ¦   «         }||j        u sJ ‚t          t          j        |j        |¬¦  «        S dS )r6  r-  r  zPA selectable (FromClause) instance is expected when the base alias is being set.©r3  N)r&  Úhasattrr4  rr  ÚArgumentErrorÚ_adapterr,  r§   r#   ÚAliasedReturnsRowsÚ_all_equivsr   r   ÚLEGACY_SELECT_FROM_ALIAS)r‘   Úfrom_objrÚ  Úequivss       r‚   r7  z5ORMSelectCompileState._get_select_from_alias_from_objÛ  sÏ   € ð ˆà˜TÔ.Ð.Ð.ØÔ$ ^Ô4ˆDå�4˜Ñ"Ô"ð 	ØÔ(ð %ÝÔ*ðAñô ð ð
 ”}Ð$å˜œ­¬Ô)JÑKÔKð 		Ø×%Ò%Ñ'Ô'ˆFØ˜4œ?Ð*Ð*Ð*Ð*Ý&ÝÔ8Ø”Ø"ðñ ô ð ð �4r�   c                ó&   — | j         d         j        S )z8return the Mapper associated with the first QueryEntity.r   )rì   r  rž   s    r‚   r  z"ORMSelectCompileState._mapper_zero÷  s   € àŒ~˜aÔ Ô'Ð'r�   c                ó~   — | j         D ]}d|j        v r|j        d         c S Œ| j        D ]}|j        r	|j        c S ŒdS )z›Return the 'entity' (mapper or AliasedClass) associated
        with the first QueryEntity, or alternatively the 'select from'
        entity if specified.r-  N)ræ  r&  rì   Úentity_zero)r‘   r/  Úqents      r‚   Ú_entity_zeroz"ORMSelectCompileState._entity_zeroû  st   € ð
 Ô$ð 	8ð 	8ˆCØ Ô!1Ð1Ð1ØÔ'¨Ô7Ð7Ð7Ð7ð 2à”Nð 	(ð 	(ˆDØÔð (ØÔ'Ð'Ð'Ð'ð(ð ˆtr�   c                ój   — | j         | j        gk    rt          j        d|z  ¦  «        ‚| j        j        S )Nz4%s() can only be used against a single mapped class.)rì   rï   rr  r  rD  )r‘   Úmethnames     r‚   Ú_only_full_mapper_zeroz,ORMSelectCompileState._only_full_mapper_zero	  sE   € ØŒ>˜dÔ2Ð3Ò3Ð3ÝÔ,ð)Ø+3ñ4ñô ð ð Ô#Ô/Ð/r�   c                ó†   — t          | j        ¦  «        dk    rt          j        |pd¦  «        ‚|                      ¦   «         S )Nr   z8This operation requires a Query against a single mapper.)r   rì   rr  r  rF  )r‘   Ú	rationales     r‚   Ú_only_entity_zeroz'ORMSelectCompileState._only_entity_zero  sM   € ÝˆtŒ~ÑÔ Ò"Ð"ÝÔ,Øð +ð+ñô ð ð
 × Ò Ñ"Ô"Ð"r�   c                ó  — i }| j                              ¦   «         D ]0}d„ |D ¦   «         D ]!}|                     |j        j        ¦  «         Œ"Œ1d„ | j        D ¦   «         D ]!}|                     |j        j        ¦  «         Œ"|S )Nc                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   r+  r.  s     r‚   r0  z5ORMSelectCompileState._all_equivs.<locals>.<listcomp>  s8   € ð ð ð àÝ˜c¥=Ñ1Ô1ðØðð ð r�   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS r€   r+  r.  s     r‚   r0  z5ORMSelectCompileState._all_equivs.<locals>.<listcomp>%  s7   € ð 
ð 
ð 
Ø­Z¸½]Ñ-KÔ-Kð
Øð
ð 
ð 
r�   )rá  Úvaluesr2  r  r9  rì   )r‘   rA  rÖ  r/  s       r‚   r>  z!ORMSelectCompileState._all_equivs  sº   € Øˆà!%Ô!8×!?Ò!?Ñ!AÔ!Að 	>ð 	>Ððð à,ðñ ô ð >ð >�ð
 —’˜cœjÔ<Ñ=Ô=Ð=Ð=ð>ð
ð 
Øœ>ð
ñ 
ô 
ð 	:ð 	:ˆCð �MŠM˜#œ*Ô8Ñ9Ô9Ð9Ð9Øˆr�   c           	     óš  ‡ — ‰ j         r,d„ ‰ j         D ¦   «         }t          j        ‰ j        |¦  «        }ng }d } ‰ j        ‰ j        ˆ fd„|D ¦   «         z   ‰ j        ‰ j        ‰ j        ‰ j        ‰ j         f‰ j	        ‰ j
        j        ‰ j
        j        ‰ j        ‰ j        dœ‰ j        ¤Ž}|                     ¦   «         }‰                      ¦   «         }t%          t&          j        ||¬¦  «        ‰ _        t-          j        |g‰ j        z   Ž }‰ j        |_        ‰ j	        �‰ j	        j        €‰ j	        |_	        |}‰ j                             ¦   «         D ]}t          j        |||j        ¦  «        }Œ|j                              ||¦  «         |r+ |j         j         |g‰ j         !                    |¦  «        ¢R Ž   |j         j         |g‰ j"        ¢R Ž  |S )Nc                ó^   — g | ]*}t          |t          j        j        ¦  «        r|j        n|‘Œ+S r€   )r,  r#   ÚelementsÚ_label_referenceru  )rŽ   Úelems     r‚   r0  zCORMSelectCompileState._compound_eager_statement.<locals>.<listcomp>7  sG   € ð "ð "ð "ð õ " $­¬Ô(EÑFÔFð�D”L�Làð	"ð "ð "r�   c                ó&   •— g | ]}|‰j         v¯|‘ŒS r€   )rõ   )rŽ   r\  r‘   s     €r‚   r0  zCORMSelectCompileState._compound_eager_statement.<locals>.<listcomp>K  s&   ø€ ÐLÐLÐL�Q¨q¸Ô8KÐ/KÐ/KˆqÐ/KÐ/KÐ/Kr�   ©Ú
for_updateÚhintsÚstatement_hintsr  r  r9  )#r€  rQ  Ú expand_column_list_from_order_byró   Ú_select_statementræ  r  r  r  rÉ  r”   Ú_hintsÚ_statement_hintsr  r  Ú_select_argsÚaliasr>  r   r   ÚCOMPOUND_EAGER_STATEMENTrŸ  r!   rÒ  rô   rx  Úofr   rP  Úsplice_joinsÚstop_onÚselect_fromÚnon_generativer	  râ  )r‘   Úunwrapped_order_byÚorder_by_col_exprÚinnerrA  r„   Úfrom_clauseÚ
eager_joins   `       r‚   r  z/ORMSelectCompileState._compound_eager_statement+  sN  ø€ ð
 Œ=ð 	&ð"ð "ð !œMð"ñ "ô "Ðõ !)Ô IØÔ$Ð&8ñ!ô !ÐÐð !#ÐØ!%Ðð '�Ô&ØÔ ØLÐLÐLÐLÐ+ÐLÑLÔLñMàÔØÔ ØÔ!ØÔØŒMð
ð Ô+ØÔ'Ô.Ø Ô1ÔBØ”nØ!Ô2ð
ð 
ð Ôð
ð 
ˆð  —’‘”ˆà×!Ò!Ñ#Ô#ˆå&9ÝÔ4°eÈð'
ñ '
ô '
ˆÔ#õ ”MØˆg˜Ô.Ñ.ð
ˆ	ð "&Ô!1ˆ	Ôð Ô Ð,ØÔ$Ô'Ð/à(,Ô(<ˆIÔ%àˆØÔ*×1Ò1Ñ3Ô3ð 	ð 	ˆJõ #Ô/Ø˜Z¨Ô);ñô ˆKˆKð 	Ô×,Ò,¨Y¸ÑDÔDÐDàð 	Ø-ˆIÔÔ-ØðàÔ,×=Ò=Ø&ñô ðð ð ð ð 	*ˆ	ÔÔ)¨)ÐJ°dÔ6IÐJÐJÐJÐJØÐr�   c           	     óz  —  | j         | j        | j        z   t          | j        ¦  «        t          | j                             ¦   «         ¦  «        z   | j        | j        | j	        | j
        f| j        | j        j        | j        j        | j        | j        dœ| j        ¤Ž}| j        r |j
        j        |g| j        ¢R Ž  |S )NrW  )r\  ró   rô   r–   ræ  r   rP  r  r  r  r€  rÉ  r”   r]  r^  r  r  r_  râ  rf  )r‘   r„   s     r‚   r  z'ORMSelectCompileState._simple_statement†  sÖ   € Ø*�DÔ*ØÔ  4Ô#9Ñ9Ý�$Ô#Ñ$Ô$¥u¨TÔ-=×-DÒ-DÑ-FÔ-FÑ'GÔ'GÑGØÔ ØÔ!ØÔØŒMð
ð Ô+ØÔ'Ô.Ø Ô1ÔBØ”nØ!Ô2ð
ð 
ð Ôð
ð 
ˆ	ð Ôð 	OØ-ˆIÔÔ-¨iÐN¸$Ô:MÐNÐNÐNÐNØÐr�   c                ó6  — t          j        |||¬¦  «        }|r||_        |r||_        |r|xj        t          |¦  «        z  c_        |r |j        j        |g|¢R Ž  n|r|j                             |¦  «         |r|xj        t          |¦  «        z  c_        ||_	        ||_
        ||_        ||_        ||_        ||_        |r||_        |r||_        ||_        |r||_        |	r|	|_        |
r |j        j        |g|
¢R Ž  |� |j        j        |g|¢R Ž  |S )N)r|  rå  rx  )r:   Ú_create_raw_selectr  r  r  r–   r  rf  r  Ú_limit_clauseÚ_offset_clauseÚ_fetch_clauseÚ_fetch_clause_optionsÚ_independent_ctesÚ_independent_ctes_optsÚ	_prefixesÚ	_suffixesrÉ  r]  r^  r  r  )r‘   Úraw_columnsr@  Úwhere_criteriaÚhaving_criteriar  r€  rX  rY  rZ  r  r  Úlimit_clauseÚoffset_clauseÚfetch_clauseÚfetch_clause_optionsr  r  ÚprefixesÚsuffixesr  Úindependent_ctesÚindependent_ctes_optsr„   s                           r‚   r\  z'ORMSelectCompileState._select_statementš  s©  € õ2 Ô-Ø$ØØ$ð
ñ 
ô 
ˆ	ð ð 	7Ø(6ˆIÔ%Øð 	9Ø)8ˆIÔ&àð 	;ØÐ'Ô'­5°©?¬?Ñ:Ð'Ô'àð 	9Ø-ˆIÔÔ-¨iÐF¸+ÐFÐFÐFÐFÐFØð 	9ØÔ×-Ò-¨iÑ8Ô8Ð8àð 	;ØÐ'Ô'­5°©?¬?Ñ:Ð'Ô'à".ˆ	ÔØ#0ˆ	Ô Ø".ˆ	ÔØ*>ˆ	Ô'Ø&6ˆ	Ô#Ø+@ˆ	Ô(àð 	+Ø"*ˆIÔàð 	+Ø"*ˆIÔà$.ˆ	Ô!àð 	%Ø$ˆIÔØð 	9Ø)8ˆIÔ&àð 	FØ.ˆIÔÔ.¨yÐE¸9ÐEÐEÐEÐEàÐ'Ø5ˆIÔ&Ô5ØðØ,ðð ð ð ð Ðr�   c                óh  — d|j         v r?|j         d         }| j                             |d ¦  «        }|r|                     |¦  «        S t	          |t
          j        ¦  «        r|}nt          |d¦  «        r|j        }nd S | j                             |d ¦  «        }|r|                     |¦  «        S d S )Nr-  rv  )	r&  rí   r¬   Úadapt_clauser,  r&   Ú
FromClauser:  rv  )r‘   ru  Úsearchr`  s       r‚   Ú_adapt_polymorphic_elementz0ORMSelectCompileState._adapt_polymorphic_elementç  sË   € Ø˜WÔ1Ð1Ð1ØÔ)¨.Ô9ˆFØÔ.×2Ò2°6¸4Ñ@Ô@ˆEØð 3Ø×)Ò)¨'Ñ2Ô2Ð2å�g�zÔ4Ñ5Ô5ð 	ØˆFˆFÝ�W˜gÑ&Ô&ð 	Ø”]ˆFˆFà�4àÔ*×.Ò.¨v°tÑ<Ô<ˆØð 	/Ø×%Ò% gÑ.Ô.Ð.ð	/ð 	/r�   c                ó(   ‡— ‰rˆfd„|D ¦   «         S |S )Nc                ó(   •— g | ]} ‰|d ¦  «        ‘ŒS rÇ  r€   )rŽ   Úor�  s     €r‚   r0  z9ORMSelectCompileState._adapt_col_list.<locals>.<listcomp>û  s%   ø€ Ð;Ð;Ð;°�O�O A tÑ,Ô,Ð;Ð;Ð;r�   r€   rŽ  s     `r‚   r‘  z%ORMSelectCompileState._adapt_col_listù  s*   ø€ Øð 	Ø;Ð;Ð;Ð;°dÐ;Ñ;Ô;Ð;àˆKr�   c                ó´   ‡— g Š| j         r!‰                     d| j         j        f¦  «         | j        r‰                     d| j        f¦  «         ‰sd S ˆfd„}|S )NTFc                ó:   •— ˆfd„}t          j        | i |¦  «        S )Nc                óf   •— d| j         v pd| j         v }‰D ]\  }}|s|r || ¦  «        }|�|c S Œd S )NÚ
_orm_adaptr-  )r&  )rU  Úis_orm_adaptÚalways_adaptr@  ÚeÚadapterss        €r‚   ÚreplacezRORMSelectCompileState._get_current_adapter.<locals>._adapt_clause.<locals>.replace   sn   ø€ à  DÔ$5Ð5ð ;Ø%¨Ô):Ð:ð ð .6ð %ð %Ñ)�L 'Ø#ð % |ð %Ø#˜G D™MœM˜Ø˜=Ø#$˜H˜H˜Høð	%ð %r�   )r(   Úreplacement_traverse)r  rS  r’  r‘  s      €r‚   Ú_adapt_clausezAORMSelectCompileState._get_current_adapter.<locals>._adapt_clause  s3   ø€ ð	%ð 	%ð 	%ð 	%ð 	%õ Ô0°¸¸WÑEÔEÐEr�   )rŠ  r  r’  rí   r†  )r‘   r”  r‘  s     @r‚   r”  z*ORMSelectCompileState._get_current_adapterÿ  s—   ø€ ØˆàÔð 	ð �OŠOàØÔ(Ô0ðñô ð ð Ô%ð 	FØ�OŠO˜U DÔ$CÐDÑEÔEÐEàð 	Ø�4ð	Fð 	Fð 	Fð 	Fð 	Fð" Ðr�   c           
     óº  — |D �]Ö\  }}}}|d         }|d         }t          |¦  «        }|�t          |¦  «        }t          |t          j        ¦  «        r|�t	          j        d¦  «        ‚|}d }nd|j        v r|j        d         }|€+|j        s$t          |d¦  «        st	          j	        d¦  «        ‚t          |t          j        ¦  «        ræt          |dd ¦  «        }	|€?|	r|	}n:|j        }	 |j        }n*# t          $ r}
t	          j	        d|z  ¦  «        |
‚d }
~
ww xY w|j        }|j        }t          |t          j        ¦  «        s|}|||j        f| j        v r�ŒY|�T||urP|j                             dd ¦  «        |ur3t	          j        d	|j                             d|¦  «        ›d
|›�¦  «        ‚n|�d }|}nd x}}|                      |||||||¦  «         �ŒØd S )NÚisouterÚfullzUNo 'on clause' argument may be passed when joining to a relationship path as a targetr-  r  z9Expected mapped entity or selectable/table as join targetÚ_of_typez0Join target %s does not refer to a mapped entityzexplicit from clause z4 does not match left side of relationship attribute )r"   r,  r   ÚPropComparatorrr  r  r&  r%  r:  r;  r  rF  rŒ  ÚAttributeErrorÚ_parententityr   ÚQueryableAttributer
  Ú_already_joined_edgesr¬   Ú_join_left_to_right)r‘   ÚargsÚentities_collectionÚrightÚonclauseÚfrom_Úflagsr–  r—  Úof_typeÚerrÚleftr_  s                r‚   r  zORMSelectCompileState._join/  s¡  € Ø-1ð Z	ñ Z	Ñ)ˆE�8˜U EØ˜IÔ&ˆGØ˜”=ˆDå˜E‘N”NˆEØÐ#Ý" 8Ñ,Ô,�å˜%¥Ô!:Ñ;Ô;ð 
;ØÐ'Ý Ô4ð=ñô ð ð
 !�Ø��Ø 5Ô#5Ð5Ð5ØÔ*¨>Ô:�àÐØÔ*ð µ7¸5À(Ñ3KÔ3Kð Ý Ô.ð:ñô ð õ
 ˜(¥JÔ$=Ñ>Ô>ð 3#õ " (¨J¸Ñ=Ô=�à�=Øð 'Ø '˜˜à (Ô 1˜ð'Ø$)¤L˜E˜EøÝ-ð 'ð 'ð 'Ý"(Ô"6ð!0Ø27ñ!8ñ#ô #ð $'ð'øøøøð'øøøð  Ô-�àÔ(�Ý! (­JÔ,IÑJÔJð $Ø#�Hð ˜% ¤Ð*¨dÔ.HÐHÐHÙàÐ$à TÐ)Ð)Ø!Ô.×2Ò2°>À4ÑHÔHØ#ð$ð $õ %Ô8Ð8ð !&Ô 2× 6Ò 6°~ÀuÑ MÔ MÐ MÐ MØ ( ð	ñô ð øð Ð"Ø�Ø��ð #Ð"��tð ×$Ò$Ø#ØØØØØØñô ð ñ ðeZ	ð Z	s   Ã-C5Ã5
DÃ?DÄDc           	     ót  — |€!|�J ‚|                       ||||¦  «        \  }}}	n|                      ||¦  «        \  }}	||u rt          j        d|›d|›d�¦  «        ‚|                      ||||¦  «        \  }
}}|
j        s|                      |
¦  «        }nd}|�M| j        |         }| j        d|…         t          ||||||¬¦  «        gz   | j        |dz   d…         z   | _        dS |	�+t          ||	         t          ¦  «        sJ ‚||	         j        }n|}| j        t          ||
||||¬¦  «        gz   | _        dS )zÆgiven raw "left", "right", "onclause" parameters consumed from
        a particular key within _join(), add a real ORMJoin object to
        our _from_obj list (or augment an existing one)

        NzCan't construct a join from z to z, they are the same entityr€   )r–  r—  Ú_extra_criteriar   )Ú"_join_determine_implicit_left_sideÚ_join_place_explicit_left_siderr  r  Ú _join_check_and_adapt_right_sider%  Ú_get_extra_criteriaræ  r   r,  r-  r§   )r‘   r   r§  r¡  r¢  r_  Ú	outerjoinr—  Úreplace_from_obj_indexÚuse_entity_indexÚr_infoÚextra_criteriaÚleft_clauses                r‚   rž  z)ORMSelectCompileState._join_left_to_rightŒ  só  € ð  ˆ<ð �<�<�<ð
 ×7Ò7Ø# T¨5°(ñô ñ	ØØ&Ø Ð ð ×3Ò3Ð4GÈÑNÔNñØ&Ø ð �5ˆ=ˆ=ÝÔ,Ð,à)-¨¨¨u¨u¨uð6ñô ð ð #'×"GÒ"GØ�%˜ 4ñ#
ô #
Ñˆ��xð Ô#ð 	 Ø!×5Ò5°fÑ=Ô=ˆNˆNàˆNà!Ð-ð Ô+Ð,BÔCˆKð Ô!Ð"9Ð#9Ð"9Ô:åØ#ØØ Ø )Ø!Ø(6ðñ ô ð	ñ
ð Ô#Ð$:¸QÑ$>Ð$@Ð$@ÔAñBð ÔÐÐð   Ð+õ "Ø'Ð(8Ô9½=ñô ð ð ð ð 2Ð2BÔCÔN��à"�à $Ô 1ÝØØØØ%ØØ$2ðñ ô ð	5ñ 	!ˆDÔÐÐr�   c                ó’  — t          |¦  «        }dx}}| j        r‰t          j        | j        |j        |¦  «        }t          |¦  «        dk    r|d         }| j        |         }�n_t          |¦  «        dk    rt          j        d¦  «        ‚t          j        d|›d�¦  «        ‚|�r	i }	t          |¦  «        D ]Q\  }
}|j	        }|€Œt          |¦  «        }||u rŒ#t          |t          ¦  «        r|
|f|	|j        <   ŒEd|f|	|j        <   ŒRt          |	                     ¦   «         ¦  «        }t          j        ||j        |¦  «        }t          |¦  «        dk    r|	||d                           \  }}nSt          |¦  «        dk    rt          j        d¦  «        ‚t          j        d|›d�¦  «        ‚t          j        d¦  «        ‚|||fS )z­When join conditions don't express the left side explicitly,
        determine if an existing FROM or entity in this query
        can serve as the left hand side.

        Nr   r   a  Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zDon't know how to join to z«. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zgNo entities to join from; please use select_from() to establish the left entity/selectable of this join)r"   ræ  rQ  Úfind_left_clause_to_join_fromr§   r   rr  r  Ú	enumerateÚentity_zero_or_selectabler,  r-  r  Úkeys)r‘   r   r§  r¡  r¢  r±  r¯  r°  ÚindexesÚ	potentialÚentity_indexr/  rŒ  Úent_infoÚall_clausess                  r‚   rª  z8ORMSelectCompileState._join_determine_implicit_left_sideï  sA  € õ& ˜‘”ˆà48Ð8ÐÐ!1àÔð O	õ Ô<ØÔ! 6Ô#4°hñô ˆGõ �7‰|Œ|˜qÒ Ð Ø)0°¬Ð&ØÔ(Ð)?Ô@�‘Ý�W‘” Ò!Ð!ÝÔ0ð5ñô ð õ Ô0Ð0ð
 9>¸¸ð	@ñô ð ð !ñ 2	ð ˆIÝ%.Ð/BÑ%CÔ%Cð Dð DÑ!�˜cØÔ6�Ø�>ØÝ" 6™?œ?�Ø˜vÐ%Ð%Øõ
 ˜c¥=Ñ1Ô1ð DØ1=¸vÐ0F�I˜cœnÑ-Ð-à6:¸F°^�I˜hÔ1Ñ2Ð2å˜yŸ~š~Ñ/Ô/Ñ0Ô0ˆKÝÔ<Ø˜VÔ.°ñô ˆGõ �7‰|Œ|˜qÒ Ð Ø)2°;¸wÀq¼zÔ3JÔ)KÑ&Ð  $ $Ý�W‘” Ò!Ð!ÝÔ0ð5ñô ð õ Ô0Ð0ð
 9>¸¸ð	@ñô ð õ Ô,ð1ñô ð ð Ð+Ð-=Ð=Ð=r�   c                óŒ  — dx}}t          |¦  «        }| j        rPt          j        | j        |j        ¦  «        }t          |¦  «        dk    rt          j        d¦  «        ‚|r|d         }|€U|rSt          |d¦  «        rCt          |¦  «        D ]3\  }}t          |t          ¦  «        r|                     |¦  «        r|} nŒ4||fS )zøWhen join conditions express a left side explicitly, determine
        where in our existing list of FROM clauses we should join towards,
        or if we need to make a new join, and if so is it from one of our
        existing entities.

        Nr   zrCan't identify which entity in which to assign the left side of this join.   Please use a more specific ON clause.r   r  )r"   ræ  rQ  Ú#find_left_clause_that_matches_givenr§   r   rr  r  r:  r¶  r,  r-  Úcorresponds_to)	r‘   r   r§  r¯  r°  Úl_infor¹  Úidxr/  s	            r‚   r«  z4ORMSelectCompileState._join_place_explicit_left_sideY  s  € ð2 59Ð8ÐÐ!1å˜‘”ˆØÔð 	4ÝÔBØÔ! 6Ô#4ñô ˆGõ �7‰|Œ|˜aÒÐÝÔ0ð!ñô ð ð ð 4Ø)0°¬Ð&ð #Ð*Ø#ð +å˜ Ñ)Ô)ð +õ &Ð&9Ñ:Ô:ð ð ‘��Sõ ˜c¥=Ñ1Ô1ð °c×6HÒ6HÈÑ6NÔ6Nð Ø'*Ð$Ø�Eøà%Ð'7Ð7Ð7r�   c           	     óÞ  — t          |¦  «        }t          |¦  «        }d}t          |dd¦  «        }|rp|j        st          |j        t
          j        ¦  «        rJ| j        p|j        gD ]:}	t          j
        |j        |	¦  «        rt          j
        |	|j        ¦  «        rd} nŒ;|r*|j        |j        u rt          j        d|j        z  ¦  «        ‚t          |dd¦  «        |j        t          |dd¦  «        }}
}|r6|r4|                     |j        ¦  «        st          j        d|›d|›�¦  «        ‚t          |d¦  «        r| xj        |fz  c_        d}|j        rÞ|r|j        }|
j        r#|                      ¦   «         }|� ||d¦  «        }n«|r©|
                     |j        ¦  «        s*t          j        d	|
j        ›d
|j        j        ›d�¦  «        ‚t          |
t
          j        ¦  «        r!t/          j        t2          j        |
¦  «        }
d}t7          ||
¦  «        }t9          j        d|z  dd¬¦  «         |o| o|}|s.|r,t7          |d¬¦  «        }d}t9          j        d|z  d¬¦  «         |rI|sJ ‚t?          t@          j!        t          |¦  «        |j"        ¬¦  «        }|  #                    ||¦  «         nK|j        sD|sB|j$        r;|  #                    |t?          t@          j%        ||j        |j"        ¬¦  «        ¦  «         t          |t
          j&        ¦  «        r"|                      ¦   «         }|r ||d¦  «        }|r| xj'        |||j(        ffz  c_'        t          |¦  «        ||fS )zútransform the "right" side of the join as well as the onclause
        according to polymorphic mapping translations, aliasing on the query
        or on the join, special cases where the right and left side have
        overlapping tables.

        Fr  NTz*Can't join table/selectable '%s' to itselfr4  zJoin target z9 does not correspond to the right side of join condition zSelectable 'z' is not derived from 'ú'zÕAn alias is being generated automatically against joined entity %s for raw clauseelement, which is deprecated and will be removed in a later release. Use the aliased() construct explicitly, see the linked example.z1.4Úxaj1)Úcode)Úflatz÷An alias is being generated automatically against joined entity %s due to overlapping tables.  This is a legacy pattern which may be deprecated in a later release.  Use the aliased(<entity>, flat=True) construct explicitly, see the linked example.Úxaj2r9  )r§   r3  ))r"   r  Úwith_polymorphicr,  r5  r&   ÚJoinræ  r§   rQ  Úselectables_overlaprr  r  Úcommon_parentr  r:  rþ  Úis_clause_elementÚ_is_lateralr”  Úis_derived_fromÚdescriptionrP   r%   r©  r'   ÚFromClauseRoler   r$   Úwarn_deprecatedÚwarnr   r   Ú DEPRECATED_JOIN_ADAPT_RIGHT_SIDEr9  r7  Ú#_has_aliased_polymorphic_fromclauseÚ#WITH_POLYMORPHIC_ADAPTER_RIGHT_JOINÚClauseElementr�  r
  )r‘   r§  r¡  r¢  r_  rÁ  r±  ÚoverlapÚright_mapperr@  Úright_selectableÚright_is_aliasedÚneed_adapterr�  Úaliased_entityr@  s                   r‚   r¬  z6ORMSelectCompileState._join_check_and_adapt_right_side›  s—  € õ ˜‘”ˆÝ˜‘”ˆàˆå˜v x°Ñ6Ô6ˆð ð 	ØÔ)ð	å˜,Ô9½:¼?ÑKÔKð	ð !Ô-ÐD°&Ô2CÐ1Dð ð �ÝÔ/ØÔ% xñô ð åÔ2Ø˜fÔ/ñô ðð
 #�GØ�Eøàð 	�vÔ(¨FÔ,=Ð=Ð=ÝÔ,Ø<ØÔ#ñ$ñô ð õ �F˜H dÑ+Ô+ØÔÝ�FÐ.°Ñ6Ô6ð )9Ð&ˆð ð	àð	ð !×.Ò.¨t¬{Ñ;Ô;ð	õ
 Ô,Ð,à9>¸¸ÀÀðJñô ð õ �6˜8Ñ$Ô$ð 	-ØÐÔ F 9Ñ,ÐÔàˆð Ô#ð 2	Øð +Ø#œ{�àÔ+ð .ð #'×";Ò";Ñ"=Ô"=�Ø"Ð.ð ,˜O¨E°4Ñ8Ô8�Eøàð #ð (×7Ò7Ø Ô3ñô ð 	õ !Ô4Ð4ð -Ô8Ð8Ð8Ø(Ô;ÔGÐGÐGðñô ð õ Ð.µ
Ô0EÑFÔFð (Ý'0Ô'7ÝÔ,Ð.>ñ(ô (Ð$ð $(�Lõ % \Ð3CÑDÔD�åÔ$ðDð
 #ñ#ð Øð	ñ 	ô 	ð 	ð &ÐJÐ.>Ð*>ÐJÀ7ˆàð 	 ð 	õ ! ¨TÐ2Ñ2Ô2ˆEØˆLåŒIð@ð
 COñOð ðñ ô ð ð ð &	ð  ÐÐ�<å ÝÔ@Ý˜‘”Ø(Ô<ðñ ô ˆGð ×3Ò3°LÀ'ÑJÔJÐJÐJàÔ(ð	à$ð	ð Ô@ð	ð ×3Ò3ØÝÝ#ÔGØ Ø+Ô6Ø ,Ô @ð	ñ ô ñô ð õ �h¥
Ô 8Ñ9Ô9ð 	;Ø"×7Ò7Ñ9Ô9ˆOØð ;Ø*˜?¨8°TÑ:Ô:�ð ð 	EØÐ&Ô&¨D°%¸¼Ð+BÐ*DÑDÐ&Ô&å�u‰~Œ~˜u hÐ.Ð.r�   c                óà   — | j         j        | j         j        | j        | j        | j         j        | j         j        | j        pd | j         j        | j         j	        | j         j
        | j         j        dœS )N)rz  r{  r  r  r~  r  r  r|  r}  r€  r�  )r”   ro  rp  r  r  ru  rv  r  rq  rr  rs  rt  rž   s    r‚   r_  z"ORMSelectCompileState._select_argsX	  sp   € ð !Ô1Ô?Ø!Ô2ÔAØœØÔ+ØÔ-Ô7ØÔ-Ô7ØœÐ-¨Ø Ô1Ô?àÔ%Ô;à $Ô 5Ô GàÔ%Ô<ð
ð 
ð 	
r�   c                óð   — | j         }|                     d¦  «        d upX|                     d¦  «        d upA|                     dd¦  «        p+|                     dd¦  «        p|                     dd¦  «        S )Nrz  r{  r  Fr  r€   r  )r_  r¬   )r‘   Úkwargss     r‚   r  z-ORMSelectCompileState._should_nest_selectablel	  s‚   € àÔ"ˆà�JŠJ�~Ñ&Ô&¨dÐ2ð -Ø�zŠz˜/Ñ*Ô*°$Ð6ð-à�zŠz˜* eÑ,Ô,ð-ð �zŠz˜-¨Ñ,Ô,ð-ð �zŠz˜* eÑ,Ô,ð	
r�   c                ó†   ‡ ‡— d‰j         f‰ j        v r.t          ˆˆ fd„‰ j        d‰j         f         D ¦   «         ¦  «        S dS )NÚadditional_entity_criteriac              3  óŒ   •K  — | ]>}|j         s	|j        ‰u ¯|                     ‰¦  «        ¯'|                     ‰¦  «        V — Œ?d S r‹   )Úinclude_aliasesrŒ  Ú_should_includeÚ_resolve_where_criteria)rŽ   Úaer:  r‘   s     €€r‚   r’   z<ORMSelectCompileState._get_extra_criteria.<locals>.<genexpr>|	  ss   øè è € ð ð àð Ô&ðð
 +-¬)°xÐ*?Ð*?Ø×&Ò& tÑ,Ô,ð +@ð	 ×*Ò*¨8Ñ4Ô4ð +@Ð*?Ð*?Ð*?ðð r�   r€   )r  r¨   r–   )r‘   r:  s   ``r‚   r­  z)ORMSelectCompileState._get_extra_criteriaw	  s{   øø€ à(ØŒOð
ð Ô#ð$ð $õ ð ð ð ð ð àÔ0Ø1°8´?ÐCôðñ ô ñ ô ð ð �2r�   c                ó~  — | j         D ]^}|j                             dd¦  «        }|r?|j        j        €d|j        f| j        v r#|| j        vr||j        r|j        ndf| j        |<   Œ_t          | j         
                    ¦   «         ¦  «        }|D ]­\  }}|| j        v rŒ|j        j        }| j        j        rg }n|                      |¦  «        }|�||fz  }|                      ¦   «         }|D ]O}|r|                     |¦  «        }|r#t#          j        |ddi¦  «        } ||d¦  «        }| xj        |fz  c_        ŒPŒ®dS )aà  Apply extra criteria filtering.

        For all distinct single-table-inheritance mappers represented in
        the columns clause of this query, as well as the "select from entity",
        add criterion to the WHERE
        clause of the given QueryContext such that only the appropriate
        subtypes are selected from the total results.

        Additionally, add WHERE criteria originating from LoaderCriteriaOptions
        associated with the global context.

        r-  Nrâ  r�  TF)ræ  r&  r¬   r  Ú_single_table_criterionr¨   r�  r4  r<  r~  rP  rþ  rî   râ   r­  r”  ÚtraverserQ  Ú_deep_annotater  )	r‘   Ú
fromclauser:  r…  r@  Úsingle_critrâ  r�  ró  s	            r‚   r  z0ORMSelectCompileState._adjust_for_extra_criteria‡	  s¶  € ð Ô+ð 	ð 	ˆJØ!Ô.×2Ò2°>À4ÑHÔHˆHð ðð ”OÔ;ÐGØ4°h´oÐFØÔ-ð.ð .ð  DÔ$@Ð@Ð@ð Ø)1Ô)BÐL�HÔ%Ð%Èð:�Ô,¨XÑ6øõ
 �TÔ1×8Ò8Ñ:Ô:Ñ;Ô;ˆà!'ð 	0ð 	0ÑˆH�gØ˜4Ô.Ð.Ð.Øà"œ/ÔAˆKàÔ#Ô6ð PØ-/Ð*Ð*à-1×-EÒ-EÀhÑ-OÔ-OÐ*àÐ&Ø*¨{¨nÑ<Ð*à"×7Ò7Ñ9Ô9ˆOØ2ð 0ð 0�Øð 2Ø"×+Ò+¨DÑ1Ô1�Dà"ð 8Ý#Ô2°4¸,ÈÐ9MÑNÔN�DØ*˜?¨4°Ñ7Ô7�DØÐ$Ô$¨¨Ñ/Ð$Ô$Ð$ð0ð	0ð 	0r�   )
r„   rû   r±   rð   r°   rý   r·   r   rœ   r±  r‹   )0rq   rr   rs   r�  r“   rá  rŠ  rE  rœ  r�  rž  rŸ  r  r  r  r  rÌ   rü   rî  rç  rD  r"  r*  r/  r3  rÿ  r7  r  rF  rI  rL  r>  r  r  r\  r†  r‘  r”  r  rž  rª  r«  r¬  rF  r_  r  r­  r  r€   r�   r‚   r±  r±  -  s¬  € € € € € àÐà$Ðà€OØ ÐàÐØ#ÐØÐØ!Ðà€IØÐØ€OØÐàð`ð `ð `ñ „[ð`ðD
5ð 
5ð 
5ðKð Kð KðZ ðð ñ „[ðð2 ð@ð @ñ „[ð@ð
 ð8ð 8ñ „[ð8ð ð
ð 
ñ „[ð
ð  ðð ñ „[ðð"+ð +ð +ðð ð ð8(ð (ð (ðð ð ð0ð 0ð 0ð#ð #ð #ð #ðð ð ð"Yð Yð Yðvð ð ð(Kð Kð KðZ/ð /ð /ð$ð ð ð.ð .ð .ð`[ð [ð [ðzað að aðFh>ð h>ð h>ðT@8ð @8ð @8ðD{/ð {/ð {/ðz ð
ð 
ñ „Xð
ð& ð
ð 
ñ „Xð
ðð ð ð 70ð 70ð 70ð 70ð 70r�   r±  FÚquery_or_select_stmtú#Union[Query, Select, FromStatement]rW   úOptional[ORMSelectCompileState]r  rð   rœ   úList[ORMColumnDescription]c                ó|   — |€t                                | |¬¦  «        }|}d„ d„ |j        D ¦   «         D ¦   «         }|S )N)r  c                óž   — g | ]J\  }}|j         |j        t          |d d¦  «        |j        |j        �|j        st          |dd¦  «        nddœ‘ŒKS )r4  FNrŒ  )r  ÚtypeÚaliasedÚexprrŒ  )Ú_label_namerô  r  rö  rD  rÍ  )rŽ   r/  Úinsp_ents      r‚   r0  z(_column_descriptions.<locals>.<listcomp>Ë	  s‚   € ð 	ð 	ð 	ñ ˆC�ð ”OØ”HÝ˜xÐ);¸UÑCÔCØ”Hð ”?Ð.Ø Ô2ð /õ ˜ (¨DÑ1Ô1Ð1ð ð	
ð 	
ð	ð 	ð 	r�   c                ó    — g | ]}||j         f‘ŒS r€   ©rD  )rŽ   Ú_ents     r‚   r0  z(_column_descriptions.<locals>.<listcomp>Ø	  s-   € ð 
ð 
ð 
Ø)-ˆT�4Ô#Ð$ð
ð 
ð 
r�   )r±  rD  rì   )rî  rW   r  r"  Úds        r‚   r  r  Á	  sq   € ð
 ÐÝ-×IÒIØ ¨ð Jñ 
ô 
ˆð €Cð	ð 	ð
ð 
Ø14´ð
ñ 
ô 
ð	ñ 	ô 	€Að" €Hr�   Úquery_or_augmented_selectúUnion[Query[Any], Select[Any]]ú"Optional[_InternalEntityType[Any]]c                ó®   — | }|j         r|j        }|�|S |j        r,d|j        d         j        v r|j        d         j        d         S t	          |¦  «        S )Nr-  r   )r   Ú_last_joined_entityrå  r&  Ú_entity_from_pre_ent_zero)rý  r‘   r  s      r‚   Ú_legacy_filter_by_entity_zeror  ß	  sj   € ð %€DØÔð 'Ø"Ô6ÐØÐ*Ø&Ð&à„~ð >˜.¨D¬N¸1Ô,=Ô,JÐJÐJØŒ~˜aÔ Ô-¨nÔ=Ð=å$ TÑ*Ô*Ð*r�   c                óÆ   — | }|j         sd S |j         d         }d|j        v r|j        d         S t          |t          ¦  «        r|j        S d|j        v r|j        d         S |S )Nr   r-  Úbundle)r|  r&  r,  r   rŒ  )rý  r‘   r/  s      r‚   r  r  î	  s~   € ð %€DØÔð Øˆtà
Ô
˜AÔ
€Cà˜Ô)Ð)Ð)ØÔ Ô/Ð/Ý	�CÕ-Ñ	.Ô	.ð ØŒzÐØ	�SÔ%Ð	%Ð	%ØÔ Ô)Ð)àˆ
r�   r!  úTuple[_SetupJoinsElement, ...]rD  ú=Optional[Union[_InternalEntityType[Any], _JoinTargetElement]]c                ój   — | sd S | d         \  }}}}t          |t          j        ¦  «        r|j        S |S )Néÿÿÿÿ)r,  r   rœ  rŒ  )r!  rD  Útargetr¢  r£  r¤  s         r‚   r   r   
  sM   € ð ð Øˆtà%0°¤_Ñ"€FˆH�e˜UåØÝÔ%ñô ð ð Œ}Ðàˆr�   c                  ó‚   — e Zd ZU dZdZded<   dZdZdZded<   ded	<   d
ed<   ded<   dd„Z	dd„Z
d„ Zed„ ¦   «         ZdS )rz  z:represent an entity column returned within a Query result.r€   rð   Úsupports_single_entityFzOptional[str]r÷  z!Union[Type[Any], TypeEngine[Any]]rô  z.Union[_InternalEntityType, ColumnElement[Any]]rö  zOptional[_InternalEntityType]rD  rW   rn   rœ   ÚNonec                ó   — t          ¦   «         ‚r‹   r¾   ©r‘   rW   s     r‚   r‚  z _QueryEntity.setup_compile_state#
  rù   r�   r@  ú Optional[_DMLReturningColFilter]c                ó   — t          ¦   «         ‚r‹   r¾   ©r‘   rW   r@  s      r‚   rš  z._QueryEntity.setup_dml_returning_compile_state&
  s   € õ
 "Ñ#Ô#Ð#r�   c                ó   — t          ¦   «         ‚r‹   r¾   )r‘   r$  rÇ   s      r‚   Úrow_processorz_QueryEntity.row_processor-
  rù   r�   c                óZ  — t          |¦  «        D �]\  }}|j        r,|j        r|                      ||j        ||¦  «         Œ2|j        }|j        rÁ|j        r@d|j        v rt          ||||¦  «         Œct           
                    ||j        |||¦  «         Œ‡|j                             dd¦  «        rt          ||||¦  «         Œµ|j        r$t           
                    ||j        |||¦  «         Œàt           
                    ||g|||¦  «         �Œ|j        rt          |||¦  «         �Œ|S )Nr-  r  F)r¶  Ú_is_lambda_elementÚ_is_sequencer{  Ú	_resolvedrÍ  r%  r&  r-  Ú_ColumnEntityÚ_for_columnsÚ_select_iterabler¬   Ú_BundleEntityÚ_is_clause_listÚ	is_bundle)r»   rW   r£  r   rn  rÂ  rŒ  s          r‚   r{  z_QueryEntity.to_compile_state0
  sº  € õ % XÑ.Ô.ð 9	Jñ 9	J‰KˆC�ØÔ(ð 
.ØÔ&ð 	.Ø×(Ò(Ø%ØÔ(Ø+Ø+ñ	ô ð ð à#Ô-�FàÔ'ð ,JØÔ'ð )Ø%¨Ô)<Ð<Ð<Ý%Ø)Ø"Ø/Ø/ñ	ô ð ð õ &×2Ò2Ø)Ø"Ô3Ø/ØØ/ñô ð ð ð Ô*×.Ò.¨x¸Ñ?Ô?ð Ý%Ø)Ø"Ø/Ø/ñ	ô ð ð ð  Ô/ð õ &×2Ò2Ø)Ø"Ô3Ø/ØØ/ñô ð ð õ &×2Ò2Ø)Ø#˜HØ/ØØ/ñô ð ñ ð Ô!ð JÝ˜m¨VÐ5HÑIÔIÐIùà"Ð"r�   N)rW   rn   rœ   r  ©rW   rn   r@  r  rœ   r  )rq   rr   rs   rÖ   r    r¡   Ú_non_hashable_valueÚ_null_column_typeÚuse_id_for_hashr‚  rš  r  rÌ   r{  r€   r�   r‚   rz  rz  
  sÀ   € € € € € € ØDÐDà€Ià Ð Ð Ñ àÐØÐØ€OàÐÐÑØ+Ð+Ð+Ñ+Ø8Ð8Ð8Ñ8Ø.Ð.Ð.Ñ.ð$ð $ð $ð $ð$ð $ð $ð $ð$ð $ð $ð ð>#ð >#ñ „[ð>#ð >#ð >#r�   rz  c                  ó²   — e Zd ZU dZdZded<   ded<   ded<   ded	<   d
ed<   ded<   d„ ZdZdZdZ	e
d„ ¦   «         Ze
d„ ¦   «         Zd„ Zd„ Zd„ Zdd„Zd„ ZdS )r-  z mapper/class/AliasedClass entity)
rö  r  rD  r4  ÚpathÚ_extra_entitiesr÷  r>  r§   Ú_polymorphic_discriminatorr?   rö  zMapper[Any]r  rD  rð   r4  r   r$  Ústrr÷  c                ó  — |                      | ¦  «         |r|j        €| |_        d|_        d|_        |j        d         }|j         |x}| _        |j        }|| _        |j	        x| _	        }| j        f| _
        |j        r|j        | _        n|j        j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        r|                     || j        ¦  «         d S d S )NTr-  )r  rï   rE  rœ  r&  Ú_post_inspectrD  rŒ  rö  r  r%  r4  r  r÷  Úclass_rq   ré   r$  r§   Úwith_polymorphic_mappersr>  Úpolymorphic_onr&  Ú _should_select_with_poly_adapterr<  )r‘   rW   rŒ  r   rn  r:  r  s          r‚   r›   z_MapperEntity.__init__‰
  s$  € ð 	×"Ò" 4Ñ(Ô(Ð(Øð 	3ØÔ,Ð4Ø04�Ô-Ø15ˆMÔ.Ø.2ˆMÔ+àÔ$ ^Ô4ˆØÔÐØ&,Ð,ˆ�4Ô#Ø”ˆàˆŒ	Ø'œÐ.ˆŒ�fà $¤	˜|ˆÔàÔ$ð 	6Ø'œ}ˆDÔÐà%œ}Ô5ˆDÔà (Ô 9ˆÔØÔ+ˆŒ	à"Ô-ˆŒØ)1Ô)JˆÔ&Ø*2Ô*AˆÔ'àÔ2ð 	Ø×:Ò:Ø˜$œ/ñô ð ð ð ð	ð 	r�   Tc                ó   — | j         j        S r‹   )r  r*  rž   s    r‚   rô  z_MapperEntity.type³
  s   € àŒ{Ô!Ð!r�   c                ó   — | j         S r‹   rú  rž   s    r‚   r·  z'_MapperEntity.entity_zero_or_selectable·
  s   € àÔÐr�   c                ó,   — t          | j        |¦  «        S r‹   )r   rD  ©r‘   rŒ  s     r‚   rÀ  z_MapperEntity.corresponds_to»
  s   € Ý% dÔ&6¸Ñ?Ô?Ð?r�   c                óÜ   — d }| j         s(|j        r |j                             | j        d ¦  «        }n| j        j        }|r%|j        r|                     |j        ¦  «        }n
|}n|j        }|S r‹   )r4  rí   r¬   r  rD  r<  rŠ  Úwrap)r‘   rW   r@  Úrets       r‚   Ú_get_entity_clausesz!_MapperEntity._get_entity_clauses¾
  s‡   € ØˆàÔ$ð 	0ØÔ2ð Ø'Ô=×AÒAØ”K ñô �øð Ô&Ô/ˆGàð 	0ØÔ,ð Ø—l’l =Ô#@ÑAÔA��à��àÔ/ˆCàˆ
r�   c                óL  — |j         }|                      |¦  «        }|j        r|r|                     |j        ¦  «        }n	|s|j        }|j        | u r|j        j        }|j        }nd x}}t          j	        | | j
        ||| j        |||| j        ¬¦	  «	        }|| j        | j        fS )N)Úonly_load_propsrc   Úpolymorphic_discriminator)rW   r5  rŸ  r3  rï   rî   rà   rc   r   Ú_instance_processorr  r$  r&  r÷  r%  )r‘   r$  rÇ   rW   r@  r7  rc   Ú	_instances           r‚   r  z_MapperEntity.row_processorÓ
  sÐ   € ØÔ-ˆØ×*Ò*¨=Ñ9Ô9ˆàÔ/ð 	;°Gð 	;Ø—l’l =Ô#GÑHÔHˆGˆGØð 	;Ø#Ô:ˆGàÔ(¨DÐ0Ð0Ø+Ô;ÔLˆOØ#Ô1ˆMˆMà.2Ð2ˆO˜måÔ/ØØŒKØØØŒIØØ+Ø'Ø&*Ô&Eð

ñ 

ô 

ˆ	ð ˜$Ô*¨DÔ,@Ð@Ð@r�   rW   rn   r@  r  rœ   r  c                ó†   — t          j        || j        | | j        ||j        | j        |j        j        | j        ¬¦	  «	         d S )N©rÉ  r7  r8  )	r   Ú_setup_entity_queryr  r$  ró   r>  rî   rà   r&  r  s      r‚   rš  z/_MapperEntity.setup_dml_returning_compile_stateð
  sV   € õ
 	Ô#ØØŒKØØŒIØØÔ)Ø!Ô;Ø)Ô9ÔJØ&*Ô&Eð
	
ñ 
	
ô 
	
ð 
	
ð 
	
ð 
	
r�   c                ól  — |                       |¦  «        }| j        j        }|€d| j        f|j        v r!| j        }||j        r|j        nd f|j        |<   t          j	        || j        | | j
        ||j        | j        |j        j        | j        ¬¦	  «	         |j                             | j        ¦  «         d S )Nrâ  r<  )r5  r  ré  r¨   rD  r4  r<  r�  r   r=  r$  ró   r>  rî   rà   r&  r  r  r§   )r‘   rW   r@  Úsingle_table_critr:  s        r‚   r‚  z!_MapperEntity.setup_compile_state  sÚ   € Ø×*Ò*¨=Ñ9Ô9ˆà œKÔ?ÐàÐ)Ø,¨d¬kÐ:ØÔ.ð/ð /ð Ô'ˆHàØ%-Ô%>ÐH�Ô!Ð!ÀDð?ˆMÔ1°(Ñ;õ
 	Ô#ØØŒKØØŒIØØÔ)Ø!Ô;Ø)Ô9ÔJØ&*Ô&Eð
	
ñ 
	
ô 
	
ð 
	
ð 	Ô,×3Ò3°D´OÑDÔDÐDÐDÐDr�   Nr  )rq   rr   rs   rÖ   r    r¡   r›   r  r   r"  rF  rô  r·  rÀ  r5  r  rš  r‚  r€   r�   r‚   r-  r-  r
  s  € € € € € € Ø*Ð*ð€Ið ÐÐÑØÐÐÑØ$Ð$Ð$Ñ$ØÐÐÑØÐÐÑØÐÐÑð#ð #ð #ðJ "ÐàÐØ€Oàð"ð "ñ „Xð"ð ð ð  ñ „Xð ð@ð @ð @ðð ð ð*Að Að Að:
ð 
ð 
ð 
ð"Eð Eð Eð Eð Er�   r-  c                  ó¼   — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   	 	 dd„Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
ed„ ¦   «         Zd„ Zdd„Zd„ ZdS ) r  r€   )r  rö  rô  r÷  rì   r  rë   rì   r   r  z	Type[Any]rô  r'  r÷  rð   r  rö  TNc           	     ó‚  — d|_         |j        d         }|r|j                             | ¦  «         n|                     | ¦  «         t	          |t
          j        t          j        f¦  «        r| 	                    ¦   «         }n|}|x| _
        | _        t          |¦  «        | _        |j        | _        g | _        |rs|j        D ]k}d|j        v rt!          ||||| ¬¦  «         Œ t	          |t"          ¦  «        rt!          ||||| ¬¦  «         ŒJt$                               ||g|d || ¬¦  «         Œl| j
        j        | _        d S )NTr  ©Úparent_bundle)rœ  r&  rì   r  r,  r   rœ  r   r™  r.  r  rö  rô  r  r÷  Úexprsr  r   Ú_ORMColumnEntityr  Úsingle_entityr  )r‘   rW   rö  r   rn  Úsetup_entitiesrC  r  s           r‚   r›   z_BundleEntity.__init__1  s•  € ð +/ˆÔ'àÔ  Ô*ˆØð 	-ØÔ#×*Ò*¨4Ñ0Ô0Ð0Ð0à×&Ò& tÑ,Ô,Ð,åØ•:Ô0µ*Ô2KÐLñ
ô 
ð 	ð ×,Ò,Ñ.Ô.ˆFˆFàˆFà"(Ð(ˆŒ�d”iÝ˜‘L”LˆŒ	Ø!œ;ˆÔØˆŒàð 	Øœð ð �Ø˜tÔ0Ð0Ð0Ý!Ø%ØØ+Ø+Ø&*ðñ ô ð ð õ   ¥fÑ-Ô-ð Ý!Ø%ØØ+Ø+Ø&*ðñ ô ð ð õ %×1Ò1Ø%Ø˜Ø+ØØ+Ø&*ð 2ñ ô ð ð ð '+¤kÔ&?ˆÔ#Ð#Ð#r�   c                ó&   — | j         }|�|j        S d S r‹   )rD  r  )r‘   r  s     r‚   r  z_BundleEntity.mapperl  s   € àÔ ˆØÐØ”<Ðà�4r�   c                ó4   — | j         D ]}|j        }|�|c S Œd S r‹   )rì   rD  ©r‘   r/  r  s      r‚   rD  z_BundleEntity.entity_zerot  s5   € à”>ð 	ð 	ˆCØ”OˆEØÐ Ø���ð !ð �4r�   c                ó   — dS rô  r€   r1  s     r‚   rÀ  z_BundleEntity.corresponds_to}  s	   € ð ˆur�   c                ó4   — | j         D ]}|j        }|�|c S Œd S r‹   )rì   r·  rJ  s      r‚   r·  z'_BundleEntity.entity_zero_or_selectable‚  s6   € à”>ð 	ð 	ˆCØÔ1ˆEØÐ Ø���ð !ð �4r�   c                óD   — | j         D ]}|                     |¦  «         Œd S r‹   )rì   r‚  )r‘   rW   r/  s      r‚   r‚  z!_BundleEntity.setup_compile_state‹  s4   € Ø”>ð 	3ð 	3ˆCØ×#Ò# MÑ2Ô2Ð2Ð2ð	3ð 	3r�   rW   rn   r@  r  rœ   r  c                ó,   — |                       |¦  «        S r‹   ©r‚  r  s      r‚   rš  z/_BundleEntity.setup_dml_returning_compile_state�  ó   € ð
 ×'Ò'¨Ñ6Ô6Ð6r�   c                ó¤   ‡‡— t          ˆˆfd„| j        D ¦   «         Ž \  }}}| j                             ‰j        ||¦  «        }|| j        | j        fS )Nc                ó<   •— g | ]}|                      ‰‰¦  «        ‘ŒS r€   )r  )rŽ   r/  r$  rÇ   s     €€r‚   r0  z/_BundleEntity.row_processor.<locals>.<listcomp>˜  s)   ø€ ÐKÐKÐK°Sˆc×Ò ¨Ñ0Ô0ÐKÐKÐKr�   )r—   rì   r  Úcreate_row_processorrX   r÷  r%  )r‘   r$  rÇ   ÚprocsÚlabelsÚextraÚprocs    ``    r‚   r  z_BundleEntity.row_processor–  sa   øø€ Ý"ØKÐKÐKÐKÐK¸D¼NÐKÑKÔKð 
Ñˆˆv�uð Œ{×/Ò/°´¸uÀfÑMÔMˆà�TÔ% tÔ';Ð;Ð;r�   rñ  r  )rq   rr   rs   r%  r    r¡   r›   rF  r  rD  rÀ  r·  r‚  rš  r  r€   r�   r‚   r  r    s  € € € € € € Ø€Oð€Ið "Ð!Ð!Ñ!Ø€N€N�NØ€O€O�OØÐÐÑØ Ð Ð Ñ Ø€L€L�Lð Øð9@ð 9@ð 9@ð 9@ðv ðð ñ „Xðð ðð ñ „Xððð ð ð
 ðð ñ „Xðð3ð 3ð 3ð7ð 7ð 7ð 7ð<ð <ð <ð <ð <r�   r  c                  ót   — e Zd ZdZe	 dd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
dS )	r  )Ú_fetch_columnÚ_row_processorÚraw_column_indexÚtranslate_raw_columnNc           
     óþ   — |D ]y}|j         }d|v r	|d         }	nt          j        |d¦  «        }	|	r7d|j         v rt          ||||	|||¬¦  «         ŒMt	          ||||	|||¬¦  «         Œdt          ||||||¬¦  «         Œzd S )Nr-  ri   rB  )r&  rQ  Úextract_first_column_annotationÚ_IdentityTokenEntityrE  Ú_RawColumnEntity)
r»   rW   rI  r   r[  rn  rC  Úcolumnr   Ú_entitys
             r‚   r  z_ColumnEntity._for_columns¨  sÿ   € ð ð &	ð &	ˆFØ Ô-ˆKØ Ð,Ð,Ø% nÔ5��å"ÔBØ˜Nñô �ð ð Ø# vÔ':Ð:Ð:Ý(Ø%ØØ+ØØ(Ø+Ø&3ðñ ô ð ð õ %Ø%ØØ+ØØ(Ø+Ø&3ðñ ô ð ð õ !Ø!ØØ'Ø$Ø'Ø"/ðñ ô ð ð ð?&	ð &	r�   c                ó   — | j         j        S r‹   )ra  rô  rž   s    r‚   rô  z_ColumnEntity.typeÚ  s   € àŒ{ÔÐr�   c                ó&   — | j         j        j         S r‹   )ra  rô  Úhashablerž   s    r‚   r   z!_ColumnEntity._non_hashable_valueÞ  s   € à”;Ô#Ô,Ð,Ð,r�   c                ó$   — | j         j        j        S r‹   )ra  rô  Ú_isnullrž   s    r‚   r!  z_ColumnEntity._null_column_typeâ  s   € àŒ{ÔÔ'Ð'r�   c                ó  — |j         }| j        �2| j        \  }}}| j        r||j        j        | j                 fz  }|||fS | j        �| j        }n;| j        }|j        r|j        j	        |         }|j
        r|                     ¦   «         }|j        r|j        j	        |         }|                     |¦  «        }|| j        | j        f}|| _        | j        r*| j        |j        j        | j                 fz   }|| j        |fS |S r‹   )rW   rZ  r\  rX   r|  r[  rY  ra  rŠ  rI  r&  Ú_deannotaterŸ  Ú_getterr÷  r%  )	r‘   r$  rÇ   rW   ÚgetterÚ
label_nameÚextra_entitiesra  r4  s	            r‚   r  z_ColumnEntity.row_processoræ  sB  € ØÔ-ˆð ÔÐ*Ø15Ô1DÑ.ˆF�J ØÔ(ð ØØ”MÔ.¨tÔ/DÔEð#ñ �ð ˜: ~Ð5Ð5ð ÔÐ)ØÔ'ˆFˆFð ”[ˆFð Ô,ð GØ&Ô6Ô>¸vÔF�àÔ"ð .ð  ×+Ò+Ñ-Ô-�àÔ/ð 	JØ"Ô9ÔAÀ&ÔIˆFà—’ Ñ'Ô'ˆØ�dÔ&¨Ô(<Ð<ˆØ!ˆÔàÔ$ð 	Ø!Ô1Ø”Ô*¨4Ô+@ÔAð5ñ ˆNð ˜4Ô+¨^Ð;Ð;àˆJr�   r‹   )rq   rr   rs   r    rÌ   r  rF  rô  r   r!  r  r€   r�   r‚   r  r     s¡   € € € € € ð€Ið ð ð/ð /ð /ñ „[ð/ðb ð ð  ñ „Xð ð ð-ð -ñ „Xð-ð ð(ð (ñ „Xð(ð0ð 0ð 0ð 0ð 0r�   r  c                  ó<   — e Zd ZdZdZdZdZ	 dd„Zd„ Zdd„Z	d„ Z
dS )r`  NF)rö  ra  r÷  r·  r%  c                óØ  — || _         || _        |d u| _        |j        r|xj        ddiz  c_        |r|j        rd | _        n)|r|j        | _        n|                     |¦  «        | _        |r|j	         
                    | ¦  «         n| 
                    | ¦  «         || _        | j        j        r| j        j        d         nd | _        | j         | j        f| _        d x| _        | _        d S )Nrä   Tr   )rö  r[  r\  rä   rî   Ú_is_text_clauser÷  Ú
_proxy_keyrò   rì   r  ra  r¹  r·  r%  rY  rZ  )r‘   rW   ra  r   r[  rn  rC  s          r‚   r›   z_RawColumnEntity.__init__&  s  € ð ˆŒ	Ø 0ˆÔØ$4¸DÐ$@ˆÔ!àŒ?ð 	@ØÐ)Ô)¨j¸$Ð-?Ñ?Ð)Ô)à"ð 	K fÔ&<ð 	KØ#ˆDÔÐàð KØ#)Ô#4�Ô Ð à#0×#BÒ#BÀ6Ñ#JÔ#J�Ô àð 	-ØÔ#×*Ò*¨4Ñ0Ô0Ð0Ð0à×&Ò& tÑ,Ô,Ð,àˆŒà,0¬KÔ,EÐOˆDŒKÔ% aÔ(Ð(È4ð 	Ô&ð !%¤	¨4¬;Ð7ˆÔØ37Ð7ˆÔ˜TÔ0Ð0Ð0r�   c                ó   — dS rô  r€   r1  s     r‚   rÀ  z_RawColumnEntity.corresponds_toJ  s   € Øˆur�   rW   rn   r@  r  rœ   r  c                ó,   — |                       |¦  «        S r‹   rO  r  s      r‚   rš  z2_RawColumnEntity.setup_dml_returning_compile_stateM  rP  r�   c                ó  — |                      ¦   «         }|r || j        d¦  «        }|€d S n| j        }|j        r|                     ¦   «         }|j                             |¦  «         |j                             |¦  «         || _        d S rô  )	r”  ra  r&  ri  rõ   r   ró   r  rY  )r‘   rW   r�  ra  s       r‚   r‚  z$_RawColumnEntity.setup_compile_stateT  s    € Ø'×<Ò<Ñ>Ô>ˆØð 	!Ø$�_ T¤[°%Ñ8Ô8ˆFØˆ~Ø�ð ð ”[ˆFàÔð 	*ð ×'Ò'Ñ)Ô)ˆFàÔ$×(Ò(¨Ñ0Ô0Ð0ØÔ%×,Ò,¨VÑ4Ô4Ð4Ø#ˆÔÐÐr�   r‹   r  )rq   rr   rs   rD  r  r  r    r›   rÀ  rš  r‚  r€   r�   r‚   r`  r`    sw   € € € € € Ø€KØ€FØ"Ðð€Ið ð"8ð "8ð "8ð "8ðHð ð ð7ð 7ð 7ð 7ð$ð $ð $ð $ð $r�   r`  c                  ó8   — e Zd ZdZdZdZ	 dd„Zd„ Zdd„Zd„ Z	dS )rE  zColumn/expression based entity.F)rö  r  ra  r÷  r·  rD  r%  Nc                ó˜  — |j         }|}	 |j        dd ¦  «        }
 |j        d|	¦  «        }|
r"t          |j        |
¦  «        | _        d| _        n|| _        |d u| _        || _        |r0|r|
r|
n|j        | _        n$| 	                    ||
¬¦  «        | _        nd | _        |	j
         |	x| _        x| _        }|	j        x| _        }|r|j                             | ¦  «         n|                     | ¦  «         d|_        || _        d x| _        | _        | j        | j        f| _        |j        r|                     ||j        ¦  «         d S d S )NÚ	proxy_keyÚproxy_ownerF)r  T)r&  r¬   r  rŒ  rö  r\  r[  rq  r÷  rò   r)  rD  r·  r  rì   r  rœ  ra  rY  rZ  r%  r-  r<  r§   )r‘   rW   ra  r   r-  r[  rn  rC  r   rb  Úorm_keyrx  r  r  s                 r‚   r›   z_ORMColumnEntity.__init__v  s§  € ð Ô)ˆàˆð "�+”/ +¨tÑ4Ô4ˆØ%�k”o m°WÑ=Ô=ˆØð 
	EÝ Ô 2°GÑ<Ô<ˆDŒIØ(-ˆDÔ%Ð%ð ˆDŒIØ(8ÀÐ(DˆDÔ%à 0ˆÔàð 	$Øð Ø.5Ð#L 7 7¸6Ô;L�Ô Ð à#0×#BÒ#BØ Wð $Cñ $ô $�Ô Ð ð  $ˆDÔàÔÐØDKÐKˆÔÐK˜4Ô9¸EØ&œ~Ð-ˆŒ�fàð 	-ØÔ#×*Ò*¨4Ñ0Ô0Ð0Ð0à×&Ò& tÑ,Ô,Ð,à*.ˆÔ'àˆŒà37Ð7ˆÔ˜TÔ0à $¤	¨4¬;Ð7ˆÔàÔ2ð 	Ø×:Ò:Ø�uÔ'ñô ð ð ð ð	ð 	r�   c                ó�   — t          |¦  «        r	|| j        u S t          | j        ¦  «         o|                     | j        ¦  «        S r‹   )r   rD  rÌ  r1  s     r‚   rÀ  z_ORMColumnEntity.corresponds_to¹  sV   € Ý˜VÑ$Ô$ð 	9à˜TÔ-Ð-Ð-å(ØÔ ñô ð ð 9à×&Ò& tÔ'7Ñ8Ô8ð9r�   rW   rn   r@  r  rœ   r  c                ó®   — | j         x| _        }|r ||d¦  «        }|�6|j                             |¦  «         |j                             |¦  «         d S d S rô  )ra  rY  rõ   r   ró   r  )r‘   rW   r@  ra  s       r‚   rš  z2_ORMColumnEntity.setup_dml_returning_compile_stateÂ  sn   € ð '+¤kÐ1ˆÔ˜VØð 	,Ø�W˜V UÑ+Ô+ˆFàÐØÔ(×,Ò,¨VÑ4Ô4Ð4ØÔ)×0Ò0°Ñ8Ô8Ð8Ð8Ð8ð Ðr�   c                óx  — |                      ¦   «         }|r+ || j        d¦  «        }|€|j        sJ ‚| j        | _        d S n| j        }| j        }| j        j        }|€d| j        f|j        v r||j        r|j	        nd f|j
        |<   |j        r|j        s|                     ¦   «         }t          | j        j        ¦  «                             |j        j        ¦  «        r|j                             |j        ¦  «         |j                             |¦  «         |j                             |¦  «         || _        d S )NFrâ  )r”  ra  rË   rY  rD  r  ré  r¨   r4  r<  r�  r&  Ú_expression_labelri  r~  r¹  Úintersectionr§   r  r  rõ   r   ró   )r‘   rW   r�  ra  r  r?  s         r‚   r‚  z$_ORMColumnEntity.setup_compile_stateÐ  sj  € Ø'×<Ò<Ñ>Ô>ˆØð 	!Ø$�_ T¤[°%Ñ8Ô8ˆFØˆ~Ø$Ô5Ð5Ð5Ð5Ø%)¤[�Ô"Ø�ð ð
 ”[ˆFàÔ ˆà œKÔ?ÐàÐ)Ø,¨d¬kÐ:ØÔ.ð/ð /ð Ø"'Ô"8ÐB�”�¸dð<ˆMÔ1°%Ñ8ð
 Ôð 	* vÔ'?ð 	*ð ×'Ò'Ñ)Ô)ˆFõ ˆtŒ{Ô(Ñ)Ô)×6Ò6ØÔÔ*ñ
ô 
ð 	Jð Ô0×7Ò7¸Ô8HÑIÔIÐIàÔ$×(Ò(¨Ñ0Ô0Ð0ØÔ%×,Ò,¨VÑ4Ô4Ð4Ø#ˆÔÐÐr�   r‹   r  )
rq   rr   rs   rÖ   r  r    r›   rÀ  rš  r‚  r€   r�   r‚   rE  rE  g  sw   € € € € € Ø)Ð)à"Ðð€Ið$ ðAð Að Að AðF9ð 9ð 9ð9ð 9ð 9ð 9ð)$ð )$ð )$ð )$ð )$r�   rE  c                  ó   — e Zd ZdZd„ Zd„ ZdS )r_  Fc                ó   — d S r‹   r€   r  s     r‚   r‚  z(_IdentityTokenEntity.setup_compile_stateÿ  s   € Øˆr�   c                ó,   ‡— ˆfd„}|| j         | j        fS )Nc                ó   •— ‰j         j        S r‹   )r[   ry   )Úrowr$  s    €r‚   rk  z2_IdentityTokenEntity.row_processor.<locals>.getter  s   ø€ ØÔ'Ô7Ð7r�   )r÷  r%  )r‘   r$  rÇ   rk  s    `  r‚   r  z"_IdentityTokenEntity.row_processor  s1   ø€ ð	8ð 	8ð 	8ð 	8ð 	8ð �tÔ'¨Ô)=Ð=Ð=r�   N)rq   rr   rs   r\  r‚  r  r€   r�   r‚   r_  r_  ü  s8   € € € € € Ø Ððð ð ð>ð >ð >ð >ð >r�   r_  rô  )rî  rï  rW   rð  r  rð   rœ   rñ  )rý  rþ  rœ   rÿ  r‹   )r!  r  rD  rÿ  rœ   r  )�Ú
__future__r   r»  Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   Ú r   r   r   Úbaser   r   r   Úpath_registryr   r$   r   r   r   r   r   r   r   r    rr  r!   r"   r#   r%   r&   r'   rQ  r(   Úsql._typingr)   r*   r+   r,   Úsql.baser-   r.   r/   r0   r1   r2   Úsql.dmlr3   Úsql.elementsr4   r5   Úsql.selectabler6   r7   r8   r9   r:   r;   r<   r=   Úsql.visitorsr>   Ú_typingr?   r@   rA   r  rB   rX   rC   r^   rD   rE   ÚenginerF   Úengine.interfacesrG   rH   Úsql.compilerrI   rJ   rK   rL   rM   rN   rO   rP   Úsql.type_apirQ   rR   Úrootré   rÝ  r“   rß  rU   r  r¤   rÐ   rn   rH  rY  rb  Ú
plugin_forrg  rh  rÑ  r±  r  r  r  r   rz  r-  r  r  r`  rE  r_  r€   r�   r‚   ú<module>r–     sO
  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø )Ð )Ð )Ð )Ð )Ð )Ø %Ð %Ð %Ð %Ð %Ð %Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø :Ð :Ð :Ð :Ð :Ð :Ø -Ð -Ð -Ð -Ð -Ð -Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ø (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,àð *Ø,Ð,Ð,Ð,Ð,Ð,Ø3Ð3Ð3Ð3Ð3Ð3Ø!Ð!Ð!Ð!Ð!Ð!ØÐÐÐÐÐØÐÐÐÐÐØ'Ð'Ð'Ð'Ð'Ð'Ø Ð Ð Ð Ð Ð ØÐÐÐÐÐØ<Ð<Ð<Ð<Ð<Ð<Ø4Ð4Ð4Ð4Ð4Ð4Ø*Ð*Ð*Ð*Ð*Ð*Ø*Ð*Ð*Ð*Ð*Ð*Ø,Ð,Ð,Ð,Ð,Ð,Ø3Ð3Ð3Ð3Ð3Ð3Ø9Ð9Ð9Ð9Ð9Ð9Ø3Ð3Ð3Ð3Ð3Ð3Ø6Ð6Ð6Ð6Ð6Ð6Ø+Ð+Ð+Ð+Ð+Ð+Ø)Ð)Ð)Ð)Ð)Ð)à€WˆT˜ÐÑÔ€ØÔ"€à ˆdÔ Ñ"Ô"€ð *Ô@Ð ðq.ð q.ð q.ð q.ð q.ñ q.ô q.ð q.ðh ,˜Ô+Ø'¨Ð.ñô Ð ð
i$ð i$ð i$ð i$ð i$˜lñ i$ô i$ð i$ðX*ð *ð *ð *ð *Ð#:ñ *ô *ð *ðZf
ð f
ð f
ð f
ð f
Ð-ñ f
ô f
ð f
ðR	$$ð $$ð $$ð $$ð $$ñ $$ô $$ð $$ðN>ð >ð >ð >ð >Ð'=ñ >ô >ð >ð&ð ð ð ð Ð)?ñ ô ð ð0 „Ô×!Ò! %Ð)=Ñ>Ô>ðwDð wDð wDð wDð wD ?ñ wDô wDñ ?Ô>ðwDðtuPð uPð uPð uPð uP�N JÐ0@ÀÔ0Eñ uPô uPð uPðp „Ô×!Ò! %Ð):Ñ;Ô;ð	ð 	ð 	ð 	ð 	Ø Ð"5ñ	ô 	ñ <Ô;ð	ð „Ô×!Ò! %¨Ñ2Ô2ðP0ð P0ð P0ð P0ð P0˜O¨[ñ P0ô P0ñ 3Ô2ðP0ðj, 6:Øðð ð ð ð ð<+ð +ð +ð +ðð ð ð ð* 7;ðð ð ð ð ð$\#ð \#ð \#ð \#ð \#ñ \#ô \#ð \#ð~iEð iEð iEð iEð iE�Lñ iEô iEð iEðX<ð <ð <ð <ð <�Lñ <ô <ð <ðDvð vð vð vð v�Lñ vô vð vðrK$ð K$ð K$ð K$ð K$�}ñ K$ô K$ð K$ð\R$ð R$ð R$ð R$ð R$�}ñ R$ô R$ð R$ðj
>ð 
>ð 
>ð 
>ð 
>Ð+ñ 
>ô 
>ð 
>ð 
>ð 
>r�   