+
    i                    r   R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIH t  ^RIH!t! ^RI"H#t# ^RI"H$t$ ^RIH%t% ^RIH&t& ^RI'H(t( ]'       d7   ^R I)H*t* ^R!I)H+t+ ^R"IH,t, ^R#IH-t- ^R$IH.t. ^R%IH/t/ ^R&IH0t0 ^R'IH1t1 ^R(IH2t2 ]&Pf                  ! R)R*4      t4R+ R, lt5]R-]6]]]6R.3,          ,          ]
]6,          3,          t7]R/]6]6]
]6,          3,          t8]R0]6R.]
]6,          3,          t9]]7,          t: ! R1 R2]4      t;R3 R4 lt<]R^R5 R6 ll4       t=]R7 R8 l4       t=R_R9 R: llt=R; t>R< R= lt?R> t@R? tAR@ tBRA tCRB tDRC tERD tFRE RF ltGRG tH]R`RH RI ll4       tI]RJ RK l4       tIRaRL RM lltI]R`RN RO ll4       tJ]RP RQ l4       tJRaRR RS lltJ ! RT RU]P^                  ],          4      tKRV RW ltLRX tMRY RZ ltNR[ tOR\ tPR] tQR# )bziFunctions used by compiler.py to determine the parameters rendered
within INSERT and UPDATE statements.

)annotationsN)Any)Callable)cast)Dict)Iterable)List)MutableMapping)
NamedTuple)Optional)overload)Sequence)Set)Tuple)TYPE_CHECKING)Union)	coercions)dml)elements)roles)_DefaultDescriptionTuple)isinsert)ColumnClause)default_is_clause_element)default_is_sequence)Select)TableClause)exc)util)Literal)_BindNameForColProtocol)SQLCompiler)_DMLColumnElement)DMLState)
ValuesBase)ColumnElement)KeyedColumnElement)_SQLExprDefault)ColumnREQUIREDa8  
Placeholder for the value within a :class:`.BindParameter`
which is required to be present when the statement is passed
to :meth:`_engine.Connection.execute`.

This symbol is typically used when a :func:`_expression.insert`
or :func:`_expression.update` statement is compiled without parameter
values present.

c                    V ^8  d   QhRRRR/# )   cColumnElement[Any]returnColumnClause[Any] )formats   "|C:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\sql\crud.py__annotate__r3   J   s      ( ->     c                f    \        V \        4      '       g   \        P                  ! R V : 24      hV # )z5Can't create DML statement against column expression )
isinstancer   r   CompileError)r,   s   &r2   _as_dml_columnr8   J   s3    a&&CA5I
 	
 Hr4   r-   r'   KeyedColumnElement[Any]r/   c                  V    ] tR t^jt$ R]R&   R]R&   RtR]R&   RtR]R&   R	tR
]R&   RtR	# )_CrudParamszList[_CrudParamElementStr]single_params$List[Sequence[_CrudParamElementStr]]all_multi_paramsFboolis_default_metavalue_onlyuse_insertmanyvaluesNzOptional[Sequence[Column[Any]]]use_sentinel_columnsr0   )	__name__
__module____qualname____firstlineno____annotations__r@   rA   rB   __static_attributes__r0   r4   r2   r;   r;   j   s0    --::&+t+!&$&<@9@r4   r;   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r+   compilerr!   stmtr$   compile_stater#   toplevelr?   kwr   r.   r;   r0   )r1   s   "r2   r3   r3   r   sL     } }}
} } 	}
 } }r4   c                ,  a . V n         . V n        . V n        . V n        VP	                  RR4      pVe   VP                  RR4       RV9  g   Q R4       h\        WV4      w  oppWpn        VP                  '       d)   VP                  '       d   \        P                  ! R4      hVP                  '       d"   \        V VVRVSVRRVV4       \        . . 4      # V P                  f   VP                   '       dy   \        VP"                  P$                   Uu. uFM  pVP&                  '       d   K  VV P(                  P+                  V4      \-        WRRR7      VP.                  33NKO  	  up. 4      # \1        V4      '       d_   VP2                  '       dM   VP4                  p	V	f   Q hV	^ ,          p
\7        V
P9                  4       4      pV
 Uu0 uF  pS! V4      kK  	  ppMVP:                  '       d7   VP<                  p
VP:                  pV
f   Q hV
 Uu0 uF  pS! V4      kK  	  ppMRVP<                  '       d>   VP<                  p
\7        V
P9                  4       4      pV
 Uu0 uF  pS! V4      kK  	  ppMR;rV P                  f   / pMcV'       d6   Vf   Q hV P                   Uu/ uF  pW9  g   K  S! V4      \>        bK  	  ppM&V P                   Uu/ uF  pS! V4      \>        bK  	  pp. pVe   \A        V VVVSVV4       / p\B        PD                  ! V4      '       d&   VPF                  '       d   \I        V VVVVVVVV4	       \1        V4      '       dA   VPJ                  '       d/   VP2                  '       d   Q h\M        V VVVVSVVVVV4       RpRpM\O        V VVVVSVVVVV4      w  ppV'       Ed   V'       Ed   \Q        V4      PS                  V3R	 lV 4       4      PU                  V4      pV'       EdX   \B        PD                  ! V4      '       Ed   \Q        R
 V 4       4      PU                  VPV                  .4      pVPU                  VPX                  4      pV'       dn   VPF                  '       d   V PZ                  '       gJ   V PZ                  '       g   RpMRp\        P                  ! V RRP]                  R V 4       4       R24      hV'       dD   V PZ                  '       g   Q h\        P                  ! RRP]                  R V 4       4       24      h\        P                  ! RRP]                  R V 4       4      ,          4      hRp\1        V4      '       dW   VP2                  '       dE   VPJ                  '       d   Q h\_        V VV\a        RV4      \a        RS4      V4      p\        VV4      # V'       g   V Pb                  '       d   V Pd                  Pf                  '       dv   \i        VP"                  P$                  ^ ,          4      V P(                  P+                  VP"                  P$                  ^ ,          4      V Pd                  Pj                  R3.pRp\        V. VVVR7      # u upi u upi u upi u upi u upi u upi )a9  create a set of tuples representing column/string pairs for use
in an INSERT or UPDATE statement.

Also generates the Compiled object's postfetch, prefetch, and
returning column collections, used for default handling and ultimately
populating the CursorResult's prefetch_cols() and postfetch_cols()
collections.

visiting_cteNaccumulate_bind_namesz;Don't know how to handle insert within insert without a CTEzVCan't compile statement that includes returning() and return_defaults() simultaneouslyT)requiredFc              3  8   <"   T F  w  rS! V4      x  K  	  R # 5iNr0   ).0kv_column_as_keys   &  r2   	<genexpr>#_get_crud_params.<locals>.<genexpr>K  s     N8M.++8Ms   c              3     "   T F;  w  r\        V\        4      '       g   K  VP                  f   K-  VP                  x  K=  	  R # 5irT   )r6   r   table)rU   r,   rW   s   &  r2   rY   rZ   Q  s5      ' 5!!\2 78ww AGG 5s   AAAz<Backend does not support additional tables in the SET clausez/Statement is not a multi-table UPDATE statementz'; cannot include columns from table(s) , c              3  B   "   T F  pR VP                    R 2x  K  	  R# 5i'NdescriptionrU   ts   & r2   rY   rZ   l  s%      &A/?! )*!--&:/?   z in SET clausez7Multi-table UPDATE statement does not include table(s) c              3  B   "   T F  pR VP                    R 2x  K  	  R# 5ir_   ra   rc   s   & r2   rY   rZ   w  s$      &8%6 #$AMM?! 4%6re   zUnconsumed column names: %sc              3  (   "   T F  q: x  K
  	  R # 5irT   r0   )rU   r,   s   & r2   rY   rZ     s     8%QQ[%s   Sequence[_CrudParamElementStr]Callable[..., str])r@   rA   rB   r0   )6	postfetchinsert_prefetchupdate_prefetchimplicit_returninggetpop_key_getters_for_crud_column_get_bind_name_for_col
_returning_return_defaultsr   r7   isdelete_setup_delete_return_defaultsr;   column_keys_no_parametersr\   columns_omit_from_statementspreparerformat_column_create_bind_paramkey_compile_state_isinsert_has_multi_parameters_multi_parameterslistitems_ordered_values_dict_parametersr)   !_get_stmt_parameter_tuples_paramsr   isupdateis_multitable_get_update_multitable_params_select_names_scan_insert_from_select_cols
_scan_colssetintersection
difference	dml_table_extra_froms'render_table_with_column_in_update_fromjoin_extend_values_for_multiparamsr   for_executemanydialectsupports_default_metavaluer8   default_metavalue_token)rJ   rK   rL   rM   rN   rP   _getattr_col_key_col_bind_namer,   mpspdstmt_parameter_tuplesr}   spd_str_key
parametersvaluescheck_columnsrA   rB   checktables_mentionedmulti_not_in_frompreambler@   multi_extended_valuesrX   s   &&&&,                    @r2   _get_crud_paramsr   r   s   P H!H!H"$H66.$/L
 	&-r)EDE) 	%X]C	 '5#4000/
 	

 %	
 2r"" #(D(D(D ++	 ,A..%%33A6&xD4HUUH	 ,	 
 	
( 	 ..///,,~~e $SYY[ 169:cs~c*c:		&	&	&,, - = =69:cs~c*c:		'	'	',, $SYY[ 169:cs~c*c:.22 #
	&&&  ++
+% *N3)+ 	 

 6>5I5I
5IcN3)5I 	 

 *,F()!	
 35M ||M""}'B'B'B%!
	
 }--$2D2D2D !66666%	
  %#5?6
22 z++
O\N8MNNZ& 	
 5||M**#& ' 5' $ *m5567	 ! %5$?$?!..%! $%333#KKK#KKK7 ! N ! **#* %; II &A/?&A A; (	+  '#KKKKK**$ !II &8%6&8 8  ""-998%88: 
 !& 	 ../// %%%%% >0 %~6
!
 6#899$$$777 tzz11!45!!//

0B0B10EF  88	
 %)!
";11 u	4 ;
 ; ;

s0   Y8-:Y8
Y=Z!Z%Z2ZZc               <    V ^8  d   QhRRRRRRRRR	R
RRRR
RRRR/	# )r+   rJ   r!   colr-   valuer   processLiteral[True]rR   r?   nameOptional[str]force_anonymousrN   r.   strr0   )r1   s   "r2   r3   r3     sb     	 				 	 		
 	 	 	 	 		r4   c                    R # rT   r0   )rJ   r   r   r   rR   r   r   rN   s   &&&&&&&,r2   r|   r|     s     r4   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r+   rJ   r!   r   r-   r   r   rN   r.   r   r0   )r1   s   "r2   r3   r3     s:      	  	
 	r4   c                    R # rT   r0   )rJ   r   r   rN   s   &&&,r2   r|   r|          r4   c               <    V ^8  d   QhRRRRRRRRR	RR
RRRRRRR/	# )r+   rJ   r!   r   r-   r   r   r   r?   rR   r   r   r   rN   r.   z'Union[str, elements.BindParameter[Any]]r0   )r1   s   "r2   r3   r3     sb      	  	
     -r4   c                    V'       d   R pMVf   VP                   p\        P                  ! WRVP                  VR7      pRVn        V'       d   VP
                  ! V 3/ VB # V# )N)type_rR   T)r}   r   BindParametertype_is_crud_compiler_dispatch)	rJ   r   r   r   rR   r   r   rN   	bindparams	   &&&&&&&, r2   r|   r|     s^     	ww&&388hI I++H;;;r4   c                \   R V9   pV'       gW   VP                   '       dE   \        VP                  \        P                  4      '       d   W0P
                  RVP                  3&   VP                  P                  '       d   VP                  VP                  4      pVP                  ! V 3/ VB # )rP   r   )
uniquer6   r}   r   _truncated_labeltruncated_namesr   _isnull_with_binary_element_typer   )rJ   r   r   r   rN   is_ctes   &&&&, r2   _handle_values_anonymous_paramr     s    ( r!F LLLuyy(";";<<=A  +uyy!9:zz //9##H333r4   c               (    V ^8  d   QhRRRRRRRR/# )	r+   rJ   r!   rK   r$   rL   r#   r.   zTuple[Callable[[Union[str, ColumnClause[Any]]], Union[str, Tuple[str, str]]], Callable[[ColumnClause[Any]], Union[str, Tuple[str, str]]], _BindNameForColProtocol]r0   )r1   s   "r2   r3   r3     s.     3< 3<3<!+3<<D3<3<r4   c                  aa \         P                  ! V4      '       dx   VP                  '       df   \        VP                  4      o\        P
                  ! \        P                  \        P                  4      oR  VV3R llpR V3R llpR V3R llpMJ\        P
                  ! \        P                  \        P                  4      p\        P                  ! R4      ;rEW4V3# )c                    V ^8  d   QhRRRR/# )r+   r}   zUnion[ColumnClause[Any], str]r.   Union[str, Tuple[str, str]]r0   )r1   s   "r2   r3   2_key_getters_for_crud_column.<locals>.__annotate__  s     	 	.	(	r4   c                   < S! V 4      p\        V R 4      '       d*   V P                  S9   d   V P                  P                  V3# V# )r\   )hasattrr\   r   )r}   str_key_et
c_key_roles   & r2   rX   4_key_getters_for_crud_column.<locals>._column_as_key  s>     !oGsG$$c)9		00r4   c                    V ^8  d   QhRRRR/# )r+   r   r/   r.   r   r0   )r1   s   "r2   r3   r   $  s     	 	"	(	r4   c                   < V P                   S9   d#   V P                   P                  V P                  3# V P                  # rT   )r\   r   r}   r   r   s   &r2   r   6_key_getters_for_crud_column.<locals>._getattr_col_key$  s1     yyC		00wwr4   c                    V ^8  d   QhRRRR/# )r+   r   r/   r.   r   r0   )r1   s   "r2   r3   r   ,  s     	 	 1 	c 	r4   c                   < V P                   S9   dV   \        '       d#   \        V P                   \        4      '       g   Q hV P                   P                  : R V P
                  : 2# V P
                  # )_)r\   r   r6   r   r   r}   r   s   &r2   r   4_key_getters_for_crud_column.<locals>._col_bind_name,  sK    yyC =%cii===="%))..#''::wwr4   r}   )r   r   r   r   	functoolspartialr   expect_as_keyr   DMLColumnRoleoperator
attrgetter)rJ   rK   rL   rX   r   r   r   r   s   &&&   @@r2   rp   rp     s     ||M""}'A'A'A -,,-&&##U%8%8

	 		 		 	 #**##U%8%8
 -5,?,?,FF^;;r4   c           	        VP                    Uu. uF%  qP                  P                  V! V4      ,          NK'  	  ppV P                  R,          R,          VJ g   Q hVP                  V P                  R,          R&   . pVP
                  '       dt   \        V4      pVP                  P                   FN  pW9  g   K  VP                  '       g   K  VP                  P                  '       d   K=  VP                  V4       KP  	  V Fg  pV! V4      pVV9   dI   VV9  dB   VP                  V4       VP                  VV P                  P                  V4      RR	34       KZ  \        WVW4       Ki  	  V'       d   VP                  V4       V P                  R,          R,          p\!        V\"        4      '       g1   \$        P&                  ! RRP)                  R V 4       4       R24      hVP+                  4       p\-        VP.                  4      V UUu. uF
  w   pppVNK  	  upp,           Vn        VV P                  R,          R&   R# R# u upi u uppi )
   
selectableinsert_from_selectNz_Can't extend statement for INSERT..FROM SELECT to include additional default-holding column(s) r]   c              3  @   "   T F  w  r p\        V4      x  K  	  R # 5irT   )repr)rU   r   r}   s   &  r2   rY   0_scan_insert_from_select_cols.<locals>.<genexpr>u  s     LOLAAqd3iiOs   z~.  Convert the selectable to a subquery() first, or pass include_defaults=False to Insert.from_select() to skip these columns.r0   )r   r\   r,   stackselect#include_insert_from_select_defaultsr   rx   defaultis_sentinelappendro   rz   r{   &_append_param_insert_select_hasdefaultextendr6   r   r   r7   r   	_generater   _raw_columns)rJ   rK   rL   r   r   rX   r   r   r   rM   rN   r   colsadd_select_colscol_setr   r,   col_keyins_from_selectr   exprs   &&&&&&&&&&&          r2   r   r   =  s	    <@;M;MN;M4JJLL-..;MDN>>"l+t333/3{{HNN2+,68O///d)::%%C "KKK///C  &  "1%j WM%ANN7#MM1h//==a@$KL2?  o&"..,-AB/622""8 IILOLL	  *335'+O,H,H'I&5M
&5]Q4DoM
 (
$ 4Cr/0% G OdM
s   +IIc                  a \        WW)4      w  ppppppVP                  '       g   VP                  '       g   Q hVP                  '       d   VP                   Uu. uF  pV! V4      NK  	  pp\	        V4      pV Uu. uFU  p\        V\        4      '       g   K  VVP                  P                  9   g   K8  VP                  P                  V,          NKW  	  upVP                  P                   Uu. uF  pVP                  V9  g   K  VNK  	  up,           pMVP                  P                  p\        V4      pV'       d@   VP                  '       g.   VP                  P                  pV P                  P                  pMR ;ppVP                   '       d   \	        VP                   4      pM
\	        4       pV P"                  pV EF  pV! V4      pVV9   d"   VV9  d   \%        V VVVVVVVVVVVVV
4       EMqV'       EdF   VP&                  '       d/   V'       d'   V'       d   \)        WVW4       EM7\+        WVW4       EM(VP,                  e0   VP,                  P.                  '       d   Ve   \1        WVWV
4       MVP2                  eP   V'       d   VV9   d   VP5                  V4       MVP&                  '       g   V P6                  P5                  V4       MV'       d   VV9   d   VP5                  V4       MmVP&                  '       d8   VVP                  P                  Jd   VP8                  '       g   \;        V4       M#VP                  '       d   \=        V VVVVVV
4       VV9   g   EK  VV9  g   EK  VP5                  V4       EK  	  V'       d7   VP?                  V4      oVPA                  V3R lVP                    4       4       VV3# u upi u upi u upi )Nc              3  :   <"   T F  pVS9   g   K  Vx  K  	  R # 5irT   r0   )rU   r,   remaining_supplementals   & r2   rY   _scan_cols.<locals>.<genexpr>0  s#      +
1** A1s   	
)!_get_returning_modifiersr   r   _parameter_orderingr   r6   r   r\   r,   r}   rx   r~   r   _autoincrement_columnr   #insert_null_pk_still_autoincrements_supplemental_returningrm   _append_param_parameterprimary_key!_append_param_insert_pk_returning$_append_param_insert_pk_no_returningr   r   _append_param_insert_hasdefaultserver_defaultr   rj   nullable"_warn_pk_with_no_anticipated_value_append_param_updater   r   )rJ   rK   rL   r   r   rX   r   r   r   rM   rN   need_pksrm   implicit_return_defaultspostfetch_lastrowidrA   rB   r}   parameter_orderingordered_keysr,   r   r   autoincrement_colr   supplemental_returningcompiler_implicit_returningr   r   s   &&&&&&&&&&&                 @r2   r   r     s   ( 	!I  !!!]%;%;%;;;(((+8+L+L
+LCN3+L 	 
 -. *
)#s# (+tzz||(; DJJLL)
 

B1\(AQQB	C zz!!&}5H;;; !JJ<<@@ 	, CGF?###!$T%A%A!B!$"*"="=
  #1%j WM%A $"(#!3( X }}}
 &
 6 6 9 6 & yy,,,(43 +CR !!- ,5M0M/66q9&&--a0)a3K.K+2215 TZZ===


215### !( ''44'..q1S V  "8!B!B'"
 	$** +
11+
 	
& !"677Q

 Cs$   O=OO7!O2O!
O!c                D  a \        WW)4      v rpV'       g   R # VP                  '       d   V P                  P                  V4       VP                  '       dG   \        V P                  4      oV P                  P                  V3R lVP                   4       4       R # R # )Nc              3  8   <"   T F  qS9  g   K  Vx  K  	  R # 5irT   r0   )rU   r,   ir_sets   & r2   rY   0_setup_delete_return_defaults.<locals>.<genexpr>_  s      +
3!AA3s   
)r   _return_defaults_columnsrm   r   r   r   )rJ   rK   rL   r   r   rX   r   r   r   rM   rN   r   r  r  s   &&&&&&&&&&&  @r2   ru   ru   F  s     ,D,(Qa $$$$##**+CD###X001##** +
33+
 	
 $r4   c                8   VP                  V4      pVP                  R 4      RJpV P                  P                  W2P                  R7      p\        4       p\        P                  ! V4      '       d   V'       dK   VP                  '       d9   W;J d4   V	'       d	   RV n	        M#V'       d   V P                  P                  V4       \        V VV3RV\        J R\        V4      '       d   VP                  '       g	   V! V4      MRV! V4      ,          RVRV/VB pEMVP                   '       d   V'       dm   VP"                  f_   VP                  '       dM   W;J dH   V'       d   V P                  P                  V4       M#V P$                  P                  '       d   RV n	        \'        V VV3R\        V4      '       d   VP                  '       g	   V! V4      MRV! V4      ,          RV/VB pEMV P(                  ! VP+                  4       3RV/VB pVP,                  '       dG   V'       d#   W89   d   V P                  P                  V4       MV P.                  P                  V4       MVP                  '       dI   V'       d   V P                  P                  V4       MiV P$                  P                  '       d   RV n	        MEV'       d#   W89   d   V P                  P                  V4       MV P.                  P                  V4       V
P                  VVVV34       R# )	rP   N	use_tableTrR   r   z%s_m0rQ   r   )ro   rn   rz   r{   include_table_with_column_exprsr   r   _is_literalr   r	  rm   r   r|   r)   r~   r   _is_bind_parameterr   r   r   r   
self_groupr   rj   )rJ   rK   rL   r,   r   r   r   rm   r  r	  r   r  r   rN   r   has_visiting_cte	col_valueaccumulated_bind_namess   &&&&&&&&&&&&&&    r2   r   r   d  s     NN7#Evvn-T9!!//	BB 0 I (+uU##/&
 #/3,#++2215"
 h&	
 /}==$::: q! ~a00
 #9
 -
 
 
	!	!	!/#& "++2215!!555/3,.
 /}==$::: q! ~a00
 #9
 
   
"8
 
 !!!'A,I++2215 ""))!,}}}%//66q9%%99937H0)q/L++2215 ""))!,
MM1i(>?@r4   c           	        VP                   Ee   VP                   P                  '       d   V P                  P                  '       d   VP                   P                  '       d   V P                  P
                  '       gV   \        4       pVP                  VV P                  P                  V4      V P                  ! VP                   3RV/VB V34       V P                  P                  V4       R# VP                   P                  '       d   \        4       pVP                  VV P                  P                  V4      V P                  ! VP                   P                  P                  4       3RV/VB V34       V P                  P                  V4       R# VP                  VV P                  P                  V4      \        W3/ VB VP                   334       R# W!P"                  P$                  J g   VP&                  e   V P                  P                  V4       R# VP(                  '       g   \+        V4       R# R# )zCreate a primary key expression in the INSERT statement where
we want to populate result.inserted_primary_key and RETURNING
is available.

NrQ   )r   is_sequencer   supports_sequencesoptionalsequences_optionalr   r   rz   r{   r   rm   is_clause_elementargr  "_create_insert_prefetch_bind_paramr}   r\   r   r  r  r  )rJ   rK   r,   r   rN   r  s   &&&&& r2   r   r     s    	yy99   222II&&&'':::365& ))77: ((II2H !
 /	 ''..q1YY(((%(U"MM%%33A6$$		002.D 
 +	 ''..q1
 MM%%33A66xIbIUUH	 
jj..	.!2B2B2N##**1-ZZZ 	+1- r4   c           	        VP                   eq   VP                   P                  '       d   V P                  P                  '       d9   VP                   P                  '       d   V P                  P
                  '       d   W!P                  P                  J d   V P                  P                  '       g   VP                   e9   VP                   P                  '       d   V P                  P                  '       g+   VP                   fb   V P                  P                  '       dF   VP                  VV P                  P                  V4      \        W3/ VB VP                  334       R# VP                   fG   VP                  f9   VP                   '       g'   W!P                  P                  Jd   \#        V4       R# V P                  P                  '       d
   RV n        R# R# )aW  Create a primary key expression in the INSERT statement where
we want to populate result.inserted_primary_key and we cannot use
RETURNING.

Depending on the kind of default here we may create a bound parameter
in the INSERT statement and pre-execute a default generation function,
or we may use cursor.lastrowid if supported by the dialect.


NT)r   r  r   r   r!  r"  r\   r   r	  "preexecute_autoincrement_sequencesr   rz   r{   r%  r}   r  r  r  rJ   rK   r,   r   rN   s   &&&&&r2   r  r    sb    	
		 		%%%  333		***#++>>> 	
ZZ---   444 II)		--- ((;;; II% ((KKK 	!!//228E"E		
 	
		$


ZZ555 	+1-				-	-	-
 (,$ 
.r4   c           	        VP                   P                  '       Ed
   V P                  P                  '       d   VP                   P                  '       d   V P                  P
                  '       g   \        4       pVP                  VV P                  P                  V4      V P                  ! VP                   3R V/VB V34       V'       d$   W#9   d   V P                  P                  V4       R# VP                  '       g   V P                  P                  V4       R# R# R# R# VP                   P                  '       d   \        4       pVP                  VV P                  P                  V4      V P                  ! VP                   P                  P!                  4       3R V/VB V34       V'       d$   W#9   d   V P                  P                  V4       R# VP                  '       g   V P                  P                  V4       R# R# VP                  VV P                  P                  V4      \#        W3/ VB VP$                  334       R# )rQ   N)r   r  r   r   r!  r"  r   r   rz   r{   r   rm   r   rj   r#  r$  r  r%  r}   )rJ   rK   r,   r  r   rN   r  s   &&&&&& r2   r  r  c  s    	yy...		"""(*:*:*M*M*M/2u"MM%%33A6$$		.D 
 +	 (A,I++2215]]]""))!, ## +N /( 
	$	$	$!$!!//2  IIMM,,.*@ 
 '		
 $(E''..q1%%a(  	!!//228E"E		
r4   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r+   rJ   r!   rK   r$   r,   r/   r   zList[_CrudParamElementSQLExpr]rN   Dict[str, Any]r.   Noner0   )r1   s   "r2   r3   r3     sD     &
 &
&

&
 &
 +	&

 	&
 
&
r4   c           	        \        VP                  4      '       d   V P                  P                  '       d   VP                  P                  '       d   V P                  P
                  '       gI   VP                  VV P                  P                  V4      VP                  P                  4       R34       R# R# R# \        VP                  4      '       dS   VP                  VV P                  P                  V4      VP                  P                  P                  4       R34       R# VP                  VV P                  P                  V4      \        W3R R/VB VP                  334       R# )r   FNr0   )r   r   r   r   r!  r"  r   rz   r{   
next_valuer   r$  r  r%  r}   r(  s   &&&&&r2   r   r     s,    199%%...		"""(*:*:*M*M*MMM%%33A6II((*	 +N / 
#199	-	-!!//2		((*		
 	!!//22).24 		
r4   c           	        VP                   pVP                  Ee,   VP                  P                  '       Eg   VP                  P                  '       d   VP	                  VV P
                  P                  VVR7      V P                  ! VP                  P                  P                  4       3/ VB R34       V'       d$   W49   d   V P                  P	                  V4       R # V P                  P	                  V4       R # VP	                  VV P
                  P                  VVR7      \        W3/ VB VP                  334       R # VP                  eI   V'       d$   W49   d   V P                  P	                  V4       R # V P                  P	                  V4       R # V'       dL   VP                  '       g   VP                   '       g&   W49   d   V P                  P	                  V4       R # R # R # R # )Nr  r0   )r  onupdater  r#  r   rz   r{   r   r$  r  rm   rj   "_create_update_prefetch_bind_paramr}   server_onupdater  rs   )rJ   rL   rK   r,   r  r   rN   include_tables   &&&&&&& r2   r  r    s    "AAMzzajj&<&<&<::'''MM%%33"/ 4  $$QZZ^^%>%>%@GBG
 (A,I++2215""))!,MM%%33"/ 4  7xIbIUUH
 
			&#(E''..q1%%a( ***$2G2G2G)##**1- * 3H 	!r4   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r+   rJ   r!   r,   r-   r   r   rN   r   r.   r   r0   )r1   s   "r2   r3   r3     :        	
 	r4   c                    R # rT   r0   rJ   r,   r   rN   s   &&&,r2   r%  r%    r   r4   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r+   rJ   r!   r,   r-   r   zLiteral[False]rN   r   r.   zelements.BindParameter[Any]r0   )r1   s   "r2   r3   r3     :     & &&& & 	&
 !&r4   c                    R # rT   r0   r8  s   &&&,r2   r%  r%         #&r4   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r+   rJ   r!   r,   r-   r   r?   r   r   rN   r   r.   z'Union[elements.BindParameter[Any], str]r0   )r1   s   "r2   r3   r3     D        	
  -r4   c                ^    \        WR 3RVRV/VB pV P                  P                  V4       V# Nr   r   )r|   rk   r   rJ   r,   r   r   rN   params   &&&&, r2   r%  r%    F     T#*159;E ##A&Lr4   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r5  r0   )r1   s   "r2   r3   r3     r6  r4   c                    R # rT   r0   r8  s   &&&,r2   r1  r1    r   r4   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r:  r0   )r1   s   "r2   r3   r3     r;  r4   c                    R # rT   r0   r8  s   &&&,r2   r1  r1    r=  r4   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# r?  r0   )r1   s   "r2   r3   r3   #  r@  r4   c                ^    \        WR 3RVRV/VB pV P                  P                  V4       V# rB  )r|   rl   r   rC  s   &&&&, r2   r1  r1  #  rE  r4   c                      ] tR tRtRtR tR tR tR t]	P                  R R l4       t]	P                  R	 R
 l4       tRtR# )_multiparam_columni1  Tc                	    W n         R VP                  V^,           3,          V n        Wn        VP                  V n        VP                  V n        R# )%s_m%dN)indexr}   originalr   r   )selfrQ  rP  s   &&&r2   __init___multiparam_column.__init__4  s=    
x||UQY77 ''MM	r4   c                	    \        4       hrT   NotImplementedError)rR  otherrN   s   &&,r2   compare_multiparam_column.compare;      !##r4   c                	    \        4       hrT   rV  )rR  rN   s   &,r2   _copy_internals"_multiparam_column._copy_internals>  r[  r4   c                	    \        V\        4      ;'       d;    VP                  V P                  8H  ;'       d    VP                  V P                  8H  # rT   )r6   rM  r}   rQ  )rR  rX  s   &&r2   __eq___multiparam_column.__eq__A  sF    u01 0 0		TXX%0 0$--/	
r4   c                   V ^8  d   QhRR/# r+   r.   r   r0   )r1   s   "r2   r3   _multiparam_column.__annotate__I  s     K K,D Kr4   c                B    \         P                  ! V P                  4      # z1used by default.py -> _process_execute_defaults())r   _from_column_defaultr   rR  s   &r2   _default_description_tuple-_multiparam_column._default_description_tupleH  s     (<<T\\JJr4   c                   V ^8  d   QhRR/# rc  r0   )r1   s   "r2   r3   rd  O  s     L L-E Lr4   c                B    \         P                  ! V P                  4      # rf  )r   rg  r0  rh  s   &r2   _onupdate_description_tuple._multiparam_column._onupdate_description_tupleN  s     (<<T]]KKr4   )r   rP  r}   rQ  r   N)rC   rD   rE   rF   _is_multiparam_columnrS  rY  r]  r`  r   memoized_propertyri  rm  rH   r0   r4   r2   rM  rM  1  sT     "$$
 
K K
 
L Lr4   rM  c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r+   rJ   r!   rK   r$   r,   r9   rP  intrN   r+  r.   r   r0   )r1   s   "r2   r3   r3   U  sD     
 



 
 	

 	
 	
r4   c                   VP                   '       g   \        P                  ! R V,          4      h\        VP                   4      '       d6   V P                  ! VP                   P
                  P                  4       3/ VB # VP                   P                  '       d   V P                  ! VP                   3/ VB # \        W#4      p\        V\        P                  4      '       g   Q h\        W3RR/VB # )zINSERT value for column %s is explicitly rendered as a boundparameter in the VALUES clause; a Python-side value or SQL expression is requiredr   T)r   r   r7   r   r   r$  r  r  rM  r6   r   Insertr%  )rJ   rK   r,   rP  rN   r   s   &&&&& r2    _process_multiparam_default_bindru  U  s     999@BCD
 	

 
#199	-	-		 8 8 :AbAA	
			 		0R00 *$

++++1
#'
+-
 	
r4   c	                   T;'       g    R U	U
u/ uF+  w  r\         P                  ! \        P                  V	4      V
bK-  	  pp	p
VP                  p\        4       pVP                   EFy  pV'       * ;'       d!    VP                  P                  V4      '       * pVP                   EF5  p	W9   g   K  V'       d%   \        P                  ! R VP                   R24      hVP                  V4       WV! V	4      &   W,          pV P                  WR7      p\         P                  ! V4      '       d-   \!        V V	V3RV\"        J RV! V	4      /VB pV	P$                  3pMkVP&                  '       d   V! V	4      p\)        W	V3RV/VB pV3pM>V P*                  P-                  V	4       V P                  ! VP/                  4       3/ VB pRpVP-                  V	VVV34       EK8  	  EK|  	  V EFM  pVP                   EF8  p	W9   d   K  V	P0                  e   V	P0                  P2                  '       g   V	P0                  P4                  '       dv   VP-                  V	V P                  WR7      V P                  ! V	P0                  P6                  P/                  4       3/ VB R34       V P*                  P-                  V	4       K  VP-                  V	V P                  WR7      \9        W	3RV! V	4      /VB V	P$                  334       EK  V	P:                  f   EK  V P*                  P-                  V	4       EK;  	  EKP  	  R# u up
p	i )zdBackend does not support additional tables in the SET clause; cannot include columns from table(s) 'z' in SET clauser3  rR   r   Nr0   )r   expectr   r   r  r   r   r   is_derived_fromr,   r   r7   rb   addr   r  r|   r)   r}   r  r   rj   r   r  r0  r  r#  r$  r1  r2  )rJ   rK   rL   r   r   r   r   r   rN   r,   rD  normalized_paramsr3  affected_tablesrd   $we_shouldnt_be_here_if_columns_foundr   r  r  cbns   &&&&&&&&&           r2   r   r   v  s1    .3333HA 	,,a0%73  
 "AAMeO''
  ? ?!++;;A>> 	-
 A%7** MM? +%%   ##A&56.q12),$,,Q,L	((//.  "'(!2	
 ,A. E >?UUH*---(+C: U148:E /2V*&&--a0$,,U-=-=-?F2FE-/*q)U4JKLM  (f A%'

0F0F0F::///MM$,,Q,L$,, !

 9 9 ;?A 	 &&--a0MM$,,Q,L> (2@2CGI UUH	 "".""))!,9  ws   1L:c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r+   rJ   r!   rK   r$   rL   r#   initial_valuesrh   rX   ri   rN   r+  r.   r=   r0   )r1   s   "r2   r3   r3     sN     + ++
+ + 3	+
 '+ 	+ *+r4   c           
        TpV.pVP                  R 4      RJpVP                  p	V	f   Q h\        V	R,          4       EF  w  r. pVP                  4        UUu/ uF  w  rV! V4      VbK  	  pppV F  w  ppppVP                  V9   d   VP                  p\
        P                  ! W,          4      '       d4   \        V VW,          3RRVP                  V
^,           3,          RV/VB pM5V P                  ! W,          P                  4       3/ VB pM\        WWV4      pVP                  VVVV34       K  	  VP                  V4       EK  	  V# u uppi )rP   N:r   NNr   rO  r   )rn   r   	enumerater   r}   r   r  r|   r   r  ru  r   )rJ   rK   rL   r  rX   rN   values_0r   r  r   irow	extensionr}   rW   r   col_exprrD  accumulated_names	new_params   &&&&&&              r2   r   r     sc    HFvvn-T9		(	(B>>BrF#02	47IIK@K&#~c"A%K@7?3C5"3ww#~gg((22 2 ! '#''1q5)99	!
 )9! !I !) 0 01D1D1F M" MI<CB	 c8Y8IJK) 8@, 	i 7 $: M5 As   Ec           	     2   V EF  w  rxV! V4      p	V	e   VP                  W4       K%  V P                  WqP                  R7      p
\        P                  ! V4      '       d5   V P                  ! \
        P                  ! R WP                  R7      3/ VB pMjVP                  '       d8   VP                  P                  '       d   VP                  VP                  4      pV P                  ! VP                  4       3/ VB pVP                  WzVR34       EK  	  R # )Nrw  )r   r0   )
setdefaultr   r  r   r  r   r   r   r  r   r   r  r   )rJ   rL   r   r   rX   r   rN   rV   rW   colkeyr  s   &&&&&&&    r2   r   r   
  s     &"!!&,  ''!N!N ( H $$Q''$$**4&&AEG '''AFFNNN 33AFF;A$$Q\\^:r: MM12./= &r4   c                ,   V P                   pT;'       d    \        V4      ;'       d    VP                  '       * ;'       dl    V P                  '       * ;'       g)    VP                  ;'       d?    VP
                  ;'       d+    VP                  '       * ;'       d    VP                  '       * pT;'       d-    VP                  ;'       d    VP                  P                  RJpT;'       d    VP                  ;'       dv    VP                  P                  ;'       dX    VP                  ;'       dD    V'       * ;'       g5    VP                  ;'       g!    VP                  ;'       g    VP
                  pV'       d   Rp\        V4      '       d   T;'       d    VP
                  pT;'       g!    VP                  ;'       g    VP                   p	T;'       d?    V P                  ;'       d+    VP"                  ;'       d    T	;'       g    VP$                  p
RpV
'       d6   V	'       d.   VP&                  '       d   V P)                  VP                  4      pMVP*                  '       dX   VP
                  ;'       d?    VP                  P                  ;'       d!    VP                  ;'       d    VP,                  pRp
RpMoVP.                  '       dX   VP
                  ;'       d?    VP                  P                  ;'       d!    VP                  ;'       d    VP0                  pRp
RpMRpRp
RpV'       dI   VP2                  '       g!   \5        VP                  P6                  4      pM\5        VP2                  4      pMRpTT;'       g    TVVV
V3# )zdetermines RETURNING strategy, if any, for the statement.

This is where it's determined what we need to fetch from the
INSERT or UPDATE statement after it's invoked.

NF)r   r~   _inliner   insert_executemany_returningrs   rr   r   r	  r\   r   insert_returning_primary_tablerm   _supports_implicit_returningfavor_returning_over_lastrowidr   rA   !use_insertmanyvalues_wo_returning_sort_by_parameter_order_get_sentinel_column_for_tabler   update_returningrt   delete_returningr  r   r,   )rJ   rK   rL   rM   r   r  r	  rm   should_implicit_return_defaultsexplicit_returningrA   rB   r  s   &&&&         r2   r   r   4  s    G 	 		4 		4#M2		4 		4		4 		4 ((( P P44		4
 O9N9N		4 		4 		4 		4 333   	 	9 	9''	9 	9JJ,,D8  	 	
 	
 $$	
 	

 ((;;	
 	
 66	
 	
$ %$ %N(N(N % %22% %$$- 2 #}--884#8#8 	( , , ,, ,++ 	   (( ,,  #OOg&O&O 	  $ "---#+#J#J

$  
			!! ) ),,??) )::) ) ((	 	(  %#				!! ) ),,??) )::) ) ((	 	(  %#*/'$#&,,, (+4::<<'8$'*4+H+H'I$#'  	===  r4   c                   R V P                   P                  : RV P                  : RV P                   P                  : R2p\        V P                   P                  4      ^8  d
   VR,          p\
        P                  ! V4       R# )zColumn '.z6' is marked as a member of the primary key for table 'z', but has no Python-side or server-side default generator indicated, nor does it indicate 'autoincrement=True' or 'nullable=True', and no explicit value is passed.  Primary key columns typically may not store NULL.a0   Note that as of SQLAlchemy 1.1, 'autoincrement=True' must be indicated explicitly for composite (e.g. multicolumn) primary keys if AUTO_INCREMENT/SERIAL/IDENTITY behavior is expected for one of the columns in the primary key. CREATE TABLE statements are impacted by this change as well on most backends.N)r\   fullnamer   lenr   r   warn)r,   msgs   & r2   r  r    sb     77QVVQWW%5%5	7  177!#	
 	IIcNr4   ).FNF)TFNF).)TN)R__doc__
__future__r   r   r   typingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r    r   r   r   r   baser   r   r~   r   schemar   r   r   r   r   r   r   util.typingr   rJ   r    r!   r"   r#   r$   r%   r&   r'   r(   symbolr)   r8   r   _CrudParamElement_CrudParamElementStr_CrudParamElementSQLExpr_CrudParamSequencer;   r   r|   r   rp   r   r   ru   r   r   r  r  r   r  r%  r1  rM  ru  r   r   r   r   r  r0   r4   r2   <module>r     sP   #         !              * 4 " - '  #   !1%&',';;	 c$$% SM  SM  !SM  +, A* A}@
 
	 
	 
 
2#4L3<lBCJA8H
<rAj:.zJ,Z4
n&
R+.\ 
 
 
& 
& 
 
 
& 
&!L//4 !LH
Bc-L+\'0TFRr4   