ó
    Ñ]jä] ã                  óü  • % S r SSKJr  SSKrSSKJr  SSKrSSKJ	r	  SSK
r
SSKrSSKrSSKrSSKJr  SSKrSSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSKJ"r"  SSKJ#r#  SSKJ$r$  SSKJ%r%  SSK&J'r'  SSK&J(r(  SSK&J)r)  SSK&J*r*  SS K&J+r+  SS!K&J,r,  SS"K&J-r-  SS#K&J.r.  SS$K&J/r/  SS%K&J0r0  SS&K&J1r2  SS'K3J4r4  SS(K3J5r5  SS)K'J6r6  SS*K'J7r7  SS+K'J8r8  SS,K'J9r9  SS-K'J:r:  SS.K*J;r;  SS/K0J<r<  SS0K=J>r>  S1S2K&J?r?  S1S&K&J1r1  S1S3K1J@r@  S1S4KAJBrB  S1S5KAJCrC  S1S6KAJDrD  S1S7KAJErE  \RH                  (       GaJ  SS8KFJGrG  SS9K'JHrH  SS:K'JIrI  SS;K'JJrJ  SS<KKJLrL  SS=KMJNrN  SS>KOJPrP  SS?KOJQrQ  SS@KOJRrR  SSAKOJSrS  SSBKOJTrT  SSCK*JUrU  SSDK*JVrV  SSEK*JWrW  SSFK*JXrX  SSGK*JYrY  SSHK*JZrZ  SSIK*J[r[  SSJK*J\r\  SSKK*J]r]  SSLK*J^r^  SSMK+J_r_  SSNK.J`r`  SSOK.Jara  SSPK.Jbrb  SSQK.Jcrc  SSRK.Jdrd  SSSK.Jere  SSTK.Jfrf  SSUK.Jgrg  SSVK.Jhrh  SSWK/Jiri  SSXK/Jjrj  SSYK/Jkrk  SSZK/Jlrl  SS[K/Jmrm  SS\K/Jnrn  SS]K/Joro  SS^K/Jprp  SS_K/Jqrq  SS`KrJsrs  SSaKrJtrt  SSbKrJuru  SScKrJvrv  SSdK=Jwrw  S1SeKxJyry  S1SfKzJ{r{  S1SgKzJ|r|  S1ShKzJ}r}  S1SiKzJ~r~  S1SjKzJr  S1SkKzJ€r€  S1SlKzJ�r�  S1SmKzJ‚r‚  S1SnKzJƒrƒ  \So\„4   r…1 Spkr†\GR                  " Sq\GR                  5      r‰\GR                  " Sr\GR                  5      rŠ\‹" SSs5       V s1 s H  n \„" U 5      iM     sn GR                  St/5      r�\GR                  " Su\GR                  5      rŽ\GR                  " Su\GR                  5      r�\GR                  " Sv\GR                  5      r�\GR                  " Sw\GR"                  5      r’\GR                  " Sx\GR"                  5      r“Syr”\”SzS{S|S}S~S.r•0 \,GR,                  S€_\,GR.                  S�_\,GR0                  S‚_\,GR2                  Sƒ_\,GR4                  S„_\,GR6                  S…_\,GR8                  S†_\,GR:                  S‡_\,GR<                  Sˆ_\,GR>                  S‰_\,GR@                  SŠ_\,GRB                  S‹_\,GRD                  SŒ_\,GRF                  S�_\,GRH                  SŽ_\,GRJ                  S�_\,GRL                  S�_0 \,GRN                  S‘_\,GRP                  S’_\,GRR                  S“_\,GRT                  S”_\,GRV                  S•_\,GRX                  S–_\,GRZ                  S—_\,GR\                  S˜_\,GR^                  S™_\,GR`                  Sš_\,GRb                  S›_\,GRd                  Sœ_\,GRf                  S�_\,GRh                  Sž_\,GRj                  SŸ_\,GRl                  S _\,GRn                  S¡_E\,GRp                  S¢\,GRr                  S£\,GRt                  S¤\,GRv                  S¥\,GRx                  S¦\,GRz                  S§\,GR|                  S¨0Er¿\+GR€                  S©\+GR‚                  Sª\+GR„                  S«\+GR†                  S¬\+GRˆ                  S­\+GRŠ                  S®\+GRŒ                  S¯\+GRŽ                  S°\+GR�                  S±\+GR’                  S²\+GR”                  S³\+GR–                  S´\+GR˜                  Sµ\+GRš                  S¶0rÎS·\ÏS¸'   S¹SºS»S¼S½S¾S¿SÀSÁSÂSÃSÄSÅSÆSÇSÈ.rÐ\/GR¢                  GR¤                  SÉ\/GR¢                  GR¦                  SÊ\/GR¢                  GR¨                  SË\/GR¢                  GRª                  SÌ\/GR¢                  GR¬                  SÍ\/GR¢                  GR®                  SÎ0rØ " SÏ SÐ\5      rÙ " SÑ SÒ\C5      rÚSrÛSÓ\ÏSÔ'   SrÜSÕ\ÏSÖ'   S1rÝS×\ÏSØ'   SÙrÞSÚ\ÏSÛ'    " SÜ SÝ\E5      rß " SÞ Sß\ßSàSá9rà " Sâ Sã\5      rá " Sä Så\5      râ " Sæ Sç\5      rã " Sè Sé\@5      rä " Sê Së\	5      rå " Sì Sí\	5      ræ\ç" \æ5      u  rèrérêrë " Sî Sï\GRØ                  " SïSðSñ/5      5      rí " Sò Só5      rî " Sô Sõ\1GRÞ                  5      rð " Sö S÷\-GRâ                  \   \*GRä                  5      ró " Sø Sù\-GRâ                  \   \*GRä                  5      rô " Sú Sû\î5      rõ " Sü Sý\õ5      rö " Sþ Sÿ\î5      r÷ " GS  GS\ð5      rø " GS GS\ø5      rù " GS GS\C5      rú " GS GS\C5      rû " GS GS	5      rügs  sn f (
  a]  Base SQL and DDL compiler implementations.

Classes provided include:

:class:`.compiler.SQLCompiler` - renders SQL
strings

:class:`.compiler.DDLCompiler` - renders DDL
(data definition language) strings

:class:`.compiler.GenericTypeCompiler` - renders
type specification strings.

To generate user-defined SQL strings, see
:doc:`/ext/compiler`.

é    )ÚannotationsN)ÚIntEnum)Úperf_counter)ÚAny)ÚCallable)Úcast)ÚClassVar)ÚDict)Ú	FrozenSet)ÚIterable)ÚIterator)ÚList)ÚMapping)ÚMutableMapping)Ú
NamedTuple)ÚNoReturn)ÚOptional)ÚPattern)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚUnioné   )Úbase)Ú	coercions)Úcrud)Úelements)Ú	functions)Ú	operators)Úroles)Úschema)Ú
selectable)Úsqltypes)Úutil)Úis_column_element)Úis_dml)Ú	_de_clone)Ú_from_objects)Ú
_NONE_NAME)Ú _SentinelDefaultCharacterization)ÚNO_ARG)Úquoted_name)Ú	TupleType)Úprefix_anon_mapé   )Úexc)ÚFastIntFlag)ÚLiteral)ÚProtocol)ÚSelf)Ú	TypedDict)Ú_AnnotationDict)Ú_AmbiguousTableNameMap)ÚCompileState)Ú
Executable)ÚCacheKey)ÚExecutableDDLElement)ÚInsert)ÚUpdate)Ú
UpdateBase)ÚUpdateDMLState)Ú
ValuesBase)Ú_truncated_label)ÚBinaryExpression)ÚBindParameter)ÚClauseElement)ÚColumnClause)ÚColumnElement)ÚFalse_)ÚLabel)ÚNull)ÚTrue_)ÚFunction)ÚCheckConstraint)ÚColumn)Ú
Constraint)ÚForeignKeyConstraint)ÚIdentityOptions)ÚIndex)ÚPrimaryKeyConstraint)ÚTable)ÚUniqueConstraint)Ú_ColumnsClauseElement)ÚAliasedReturnsRows)ÚCompoundSelectState)ÚCTE)Ú
FromClause)ÚNamedFromClause)ÚReturnsRows)ÚSelect)ÚSelectState)Ú_BindProcessorType)ÚTypeDecorator)Ú
TypeEngine)ÚUserDefinedType)Ú	Visitable)ÚCursorResultMetaData)Ú_CoreSingleExecuteParams)Ú_DBAPIAnyExecuteParams)Ú_DBAPIMultiExecuteParams)Ú_DBAPISingleExecuteParams)Ú_ExecuteOptions)Ú_GenericSetInputSizesType)Ú_MutableCoreSingleExecuteParams)ÚDialect)ÚSchemaTranslateMapTyper[   >^   ÚasÚdoÚinÚisÚonÚorÚtoÚallÚandÚanyÚascÚendÚforÚnewÚnotÚoffÚoldÚsetÚbothÚcaser   ÚdescÚelseÚfromÚfullÚintoÚjoinÚleftÚlikeÚnullÚonlyÚsomeÚthenÚtrueÚuserÚwhenÚarrayÚcheckÚcrossÚfalseÚgrantÚgroupÚilikeÚinnerÚlimitÚorderÚouterÚrightÚtableÚunionÚusingÚwhereÚbinaryÚcolumnÚcreateÚexceptÚfreezeÚhavingÚisnullÚoffsetÚselectÚuniqueÚanalyseÚanalyzeÚbetweenÚcollateÚdefaultÚforeignÚleadingÚnaturalÚnotnullÚplacingÚprimaryÚsimilarÚverboseÚdistinctÚoverlapsÚtrailingÚ	initiallyÚ	intersectÚ	localtimeÚ	symmetricÚ
asymmetricÚ
constraintÚ
deferrableÚ
referencesÚcurrent_dateÚcurrent_roleÚcurrent_timeÚcurrent_userÚsession_userÚauthorizationÚlocaltimestampÚcurrent_timestampz^[A-Z0-9_$]+$z^[A-Z0-9_ $]+$é
   Ú$z5^(?:RESTRICT|CASCADE|SET NULL|NO ACTION|SET DEFAULT)$z^(?:DEFERRED|IMMEDIATE)$z%(?<![:\w\$\x5c]):([\w\$]+)(?![:\w\$])z\x5c(:[\w\$]*)(?![:\w\$])z%%(%(name)s)sÚ?z%%sz:[_POSITION]z$[_POSITION]z	:%(name)s)ÚpyformatÚqmarkÚformatÚnumericÚnumeric_dollarÚnamedú AND z OR z + z * z - ú % Ú-z < z <= z != z > z >= z = z IS DISTINCT FROM z IS NOT DISTINCT FROM z || z MATCH z NOT MATCH z IN z NOT IN ú, ú FROM ú AS ú IS z IS NOT z	 COLLATE zEXISTS ú	DISTINCT zNOT zANY zALL z DESCz ASCz NULLS FIRSTz NULLS LASTz ^ z | z & Ú~z << z >> ÚcoalesceÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMPÚCURRENT_USERÚ	LOCALTIMEÚLOCALTIMESTAMPÚrandomÚsysdateÚSESSION_USERÚUSERÚCUBEÚROLLUPzGROUPING SETSzDict[Type[Function[Any]], str]Ú	FUNCTIONSÚmonthÚdayÚyearÚsecondÚhourÚdoyÚminuteÚquarterÚdowÚweekÚepochÚmillisecondsÚmicrosecondsÚtimezone_hourÚtimezone_minute)rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   ÚUNIONz	UNION ALLÚEXCEPTz
EXCEPT ALLÚ	INTERSECTzINTERSECT ALLc                  óH   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'   S
rg)ÚResultColumnsEntryim  zþTracks a column expression that is expected to be represented
in the result rows for this statement.

This normally refers to the columns clause of a SELECT statement
but may also refer to a RETURNING clause, as well as for dialect-specific
emulations.

ÚstrÚkeynameÚnameúTuple[Any, ...]ÚobjectsúTypeEngine[Any]Útype© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r  ó    ÚT/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/sql/compiler.pyrÿ   rÿ   m  s1   ‡ ñð ƒLØ;à
ƒIØ%àÓðð Óòr  rÿ   c                  ó2   • \ rS rSr          SS jrSrg)Ú_ResultMapAppenderiŒ  c                ó   • g ©Nr  ©Úselfr  r  r  Útype_s        r  Ú__call__Ú_ResultMapAppender.__call__�  s   € ð r  r  N)
r  r   r  r   r  zSequence[Any]r  r  ÚreturnÚNone©r	  r
  r  r  r  r  r  r  r  r  r  Œ  s7   † ðàðð ðð ð	ð
 ðð 
÷r  r  z
Literal[0]ÚRM_RENDERED_NAMEz
Literal[1]ÚRM_NAMEz
Literal[2]Ú
RM_OBJECTSé   z
Literal[3]ÚRM_TYPEc                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg)	Ú_BaseCompilerStackEntryiž  zSet[FromClause]Úasfrom_fromsÚcorrelate_fromsr]   r$   r  N©r	  r
  r  r  r  r  r  r  r  r$  r$  ž  s   ‡ Ø!Ó!Ø$Ó$ØÖr  r$  c                  óH   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)Ú_CompilerStackEntryi¤  r:   Úcompile_stateÚboolÚneed_result_map_for_nestedÚneed_result_map_for_compoundr]   Úselect_0úSelect[Any]Úinsert_from_selectr  Nr'  r  r  r  r)  r)  ¤  s    ‡ ØÓØ $Ó$Ø"&Ó&ØÓØ#Ö#r  r)  F)Útotalc                  ó~   • \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    S\S'    \SS j5       r\SS j5       rSr	g)ÚExpandedStatei¬  a�  represents state to use when producing "expanded" and
"post compile" bound parameters for a statement.

"expanded" parameters are parameters that are generated at
statement execution time to suit a number of parameters passed, the most
prominent example being the individual elements inside of an IN expression.

"post compile" parameters are parameters where the SQL literal value
will be rendered into the SQL statement at execution time, rather than
being passed as separate parameters to the driver.

To create an :class:`.ExpandedState` instance, use the
:meth:`.SQLCompiler.construct_expanded_state` method on any
:class:`.SQLCompiler` instance.

r   Ú	statementrf   Ú
parametersú%Mapping[str, _BindProcessorType[Any]]Ú
processorsúOptional[Sequence[str]]ÚpositiontupzMapping[str, List[str]]Úparameter_expansionc                óˆ   ^ • T R                   c  [        R                  " S5      e[        U 4S jT R                    5       5      $ )zbTuple of positional parameters, for statements that were compiled
using a positional paramstyle.

z.statement does not use a positional paramstylec              3  óB   >#   • U  H  nTR                   U   v •  M     g 7fr  ©r5  )Ú.0Úkeyr  s     €r  Ú	<genexpr>Ú6ExpandedState.positional_parameters.<locals>.<genexpr>á  s   øé € ÐFÒ5E¨c�T—_‘_ SÖ)Ò5Eùs   ƒ)r9  r2   ÚInvalidRequestErrorÚtuple©r  s   `r  Úpositional_parametersÚ#ExpandedState.positional_parameters×  s@   ø€ ð ×ÑÑ#Ü×)Ò)Ø@óð ô ÔF°T×5EÒ5EÓFÓFÐFr  c                ó   • U R                   $ )z.synonym for :attr:`.ExpandedState.parameters`.r=  rD  s    r  Úadditional_parametersÚ#ExpandedState.additional_parametersã  s   € ð �‰Ðr  r  N)r  r  )r  rf   )
r	  r
  r  r  r  r  ÚpropertyrE  rH  r  r  r  r  r3  r3  ¬  si   ‡ ñð" ƒNØ=à(Ó(ðð 6Ó5Ø+à(Ó(ðð 1Ó0ðð ó	Gó ð	Gð óó ór  r3  c                  óÈ   • \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    SrS\S'    SrS\S'    SrS\S'    Sr	S	\S'    Sr
S\S'    SrS\S'    SrS\S'    SrS\S'   Srg)Ú_InsertManyValuesié  a  represents state to use for executing an "insertmanyvalues" statement.

The primary consumers of this object are the
:meth:`.SQLCompiler._deliver_insertmanyvalues_batches` and
:meth:`.DefaultDialect._deliver_insertmanyvalues_batches` methods.

.. versionadded:: 2.0

r+  Úis_default_exprr   Úsingle_values_exprzList[crud._CrudParamElementStr]Úinsert_crud_paramsÚintÚnum_positional_params_countedFÚsort_by_parameter_orderÚincludes_upsert_behaviorsNúOptional[Sequence[Column[Any]]]Úsentinel_columnsr   Únum_sentinel_columnsr8  Úsentinel_param_keysÚimplicit_sentinelÚhas_upsert_bound_parametersÚembed_values_counterr  )r	  r
  r  r  r  r  rR  rS  rU  rV  rW  rX  rY  rZ  r  r  r  r  rL  rL  é  sÉ   ‡ ñð Óðð
 Óðð 8Ó7ØMà#&Ó&ð
ð %*Ð˜TÓ)ðð ',Ð˜tÓ+ðð 9=ÐÐ5Ó<ðð !"Ð˜#Ó!ðð 48ÐÐ0Ó7ðð  $Ð�tÓ#ð	ð ).Ð Ó-ð
ð "'Ð˜$Ó&ò	r  rL  c                  ó~   • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   Srg)Ú_InsertManyValuesBatchim  aW  represents an individual batch SQL statement for insertmanyvalues.

This is passed through the
:meth:`.SQLCompiler._deliver_insertmanyvalues_batches` and
:meth:`.DefaultDialect._deliver_insertmanyvalues_batches` methods out
to the :class:`.Connection` within the
:meth:`.Connection._exec_insertmany_context` method.

.. versionadded:: 2.0.10

r   Úreplaced_statementrg   Úreplaced_parametersú#Optional[_GenericSetInputSizesType]Úprocessed_setinputsizesz#Sequence[_DBAPISingleExecuteParams]ÚbatchzSequence[Tuple[Any, ...]]Úsentinel_valuesrP  Úcurrent_batch_sizeÚbatchnumÚtotal_batchesr+  Úrows_sortedÚis_downgradedr  Nr  r  r  r  r\  r\  m  sD   ‡ ñ
ð ÓØ/Ó/Ø@Ó@Ø.Ó.Ø.Ó.ØÓØƒMØÓØÓØÖr  r\  c                  óJ   • \ rS rSrSrSrSrSrSr\\-  \-  r	\\	-  r
SrSrS	rg
)ÚInsertmanyvaluesSentinelOptsi†  z[bitflag enum indicating styles of PK defaults
which can work as implicit sentinel columns

r   r1   é   é   é   é@   r  N)r	  r
  r  r  r  ÚNOT_SUPPORTEDÚAUTOINCREMENTÚIDENTITYÚSEQUENCEÚANY_AUTOINCREMENTÚ_SUPPORTED_OR_NOTÚUSE_INSERT_FROM_SELECTÚRENDER_SELECT_COL_CASTSr  r  r  r  ri  ri  †  sE   † ñð
 €MØ€MØ€HØ€Hà%¨Ñ0°8Ñ;ÐØ%Ð(9Ñ9ÐàÐØ Ór  ri  c                  ó$   • \ rS rSrSr Sr SrSrg)ÚCompilerStatei˜  r   r   r1   r  N)r	  r
  r  r  Ú	COMPILINGÚSTRING_APPLIEDÚNO_STATEMENTr  r  r  r  rw  rw  ˜  s    † Ø€IØ=à€Nðð €Lòr  rw  c                  ó4   • \ rS rSrSrSr Sr Sr \\-  rSr	g)ÚLintingi¨  z’represent preferences for the 'SQL linting' feature.

this feature currently includes support for flagging cartesian products
in SQL statements.

r   r   r1   r  N)
r	  r
  r  r  r  Ú
NO_LINTINGÚCOLLECT_CARTESIAN_PRODUCTSÚWARN_LINTINGÚFROM_LINTINGr  r  r  r  r|  r|  ¨  s5   † ñð €JØà!"Ððð €LØ2à-°Ñ<€Lòr  r|  c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	Ú
FromLinteriÄ  zGrepresents current state for the "cartesian product" detection
feature.Nc                ó  ^	• U R                   nU(       d  g[        U R                  5      n[        U5      nUb  UnUR                  U5        OUR	                  5       n[
        R                  " U/5      nU(       a~  U(       aw  UR                  5       m	UR                  T	5        U Vs1 s H  nT	U;   d  M  UiM     nnUR                  U	4S jU 5       5        UR                  U5        U(       a	  U(       a  Mw  U(       a  XE4$ gs  snf )N©NNc              3  óT   >#   • U  H  oUR                  T5      (       +    v •  M     g 7fr  )Úindex)r>  ÚedgeÚnodes     €r  r@  Ú"FromLinter.lint.<locals>.<genexpr>ä  s    øé € ÐNÂI¸D d§j¡j°Ó&6Ô"6Ö7ÂIùó   ƒ%()Úfromsr€   ÚedgesÚremoveÚpopÚcollectionsÚdequeÚpopleftÚdiscardÚ
extendleftÚdifference_update)
r  Ústartr‹  rŒ  Úthe_restÚ
start_withÚstackr‡  Ú	to_removerˆ  s
            @r  ÚlintÚFromLinter.lintÈ  sÚ   ø€ Ø—
‘
ˆÞØä�D—J‘J“ˆÜ�u“:ˆàÑØˆJØ�O‰O˜JÕ'à!Ÿ™›ˆJä×!Ò! : ,Ó/ˆæžØ—=‘=“?ˆDØ×Ñ˜TÔ"ñ +0Ó@ª% $°4¸4±<Ÿ©%ˆIÐ@ð ×ÑÔNÁIÓNÔNØ×#Ñ# IÔ.ö Ÿ˜ö  ØÐ'Ð'àùò As   Â'
DÂ5Dc                óð   ^ • T R                  5       u  p#U(       a\  UnU(       aR  SnSR                  U 4S jU 5       5      nUR                  UUT R                  U   S9n[        R
                  " U5        g g g )Nz£{stmt_type} statement has a cartesian product between FROM element(s) {froms} and FROM element "{start}".  Apply join condition(s) between each element to resolve.rØ   c              3  óJ   >#   • U  H  nS TR                   U    S 3v •  M     g7f)Ú"N)r‹  )r>  Úfrom_r  s     €r  r@  Ú"FromLinter.warn.<locals>.<genexpr>ú  s'   øé € ð &Ú:?°�a˜Ÿ
™
 5Ñ)Ð*¨!Õ,º%ùó   ƒ #)Ú	stmt_typer‹  r•  )rš  rˆ   rÑ   r‹  r&   Úwarn)r  r¢  r–  r—  r‹  ÚtemplateÚ	froms_strÚmessages   `       r  r£  ÚFromLinter.warní  s„   ø€ Ø#Ÿy™y›{Ñˆö ØˆEÞð7ð ð !ŸI™Iô &Ù:?ó&ó �	ð #Ÿ/™/Ø'Ø#ØŸ*™* ZÑ0ð *ð �ô —	’	˜'Õ"ð! ð r  r  r  )ÚSELECT)r	  r
  r  r  r  rš  r£  r  r  r  r  r‚  r‚  Ä  s   † ñô#÷J#r  r‚  r‹  rŒ  c                  óÖ  ^ • \ rS rSr% SrSrS\S'    SrS\S'    S	\S
'    SrSr	Sr
S\S'   SrS\S'   SrS\S'   \R                  rS\S'    S\S'   \R                  rS\S'   SrS\S'    SrS\S'    SrS\S'    S\S'    SS\R(                  " 5       4         S*S jjrS+U 4S  jjr\S! 5       rS" rS# r\S,S$ j5       rS-S% jrS.S& jr   S/       S0S' jjr\S( 5       r S)r!U =r"$ )1ÚCompiledi  aá  Represent a compiled SQL or DDL expression.

The ``__str__`` method of the ``Compiled`` object should produce
the actual text of the statement.  ``Compiled`` objects are
specific to their underlying database dialect, and also may
or may not be specific to the columns referenced within a
particular set of bind parameters.  In no case should the
``Compiled`` object be dependent on the actual values of those
bind parameters, even though it may reference those values as
defaults.
NúOptional[ClauseElement]r4  Ú r   Ústringrw  ÚstateFzOptional[CursorResultMetaData]Ú_cached_metadataz"Optional[List[ResultColumnsEntry]]Ú_result_columnsú Optional[SchemaTranslateMapType]Úschema_translate_maprj   Úexecution_optionsÚIdentifierPreparerÚpreparerr8   Ú_annotationszOptional[CompileState]r*  Údml_compile_stateúOptional[CacheKey]Ú	cache_keyÚfloatÚ	_gen_timec                óÎ  • Xl         U R                   R                  U l        U(       a&  X0l        U R                  R	                  U5      U l        Ubð  [
        R                  U l        X l        UR                  U l
        UR                  U l        U R                  (       a3  [        (       a  [        U[        5      (       d   eUR                  U l        U R"                  " U R                  40 UD6U l        U(       a0  Uc   eU R                  R'                  U R$                  U5      U l        [
        R(                  U l        O[
        R*                  U l        [-        5       U l        g)a³  Construct a new :class:`.Compiled` object.

:param dialect: :class:`.Dialect` to compile against.

:param statement: :class:`_expression.ClauseElement` to be compiled.

:param schema_translate_map: dictionary of schema names to be
 translated when forming the resultant SQL

 .. seealso::

    :ref:`schema_translating`

:param compile_kwargs: additional kwargs that will be
 passed to the initial call to :meth:`.Compiled.process`.


N)ÚdialectÚidentifier_preparerrµ  r²  Ú_with_schema_translaterw  rx  r®  r4  Úsupports_executionÚcan_executer¶  r   Ú
isinstancer;   Ú_execution_optionsr³  Úprocessr­  Ú_render_schema_translatesry  rz  r   r»  ©r  r½  r4  r²  Úrender_schema_translateÚcompile_kwargss         r  Ú__init__ÚCompiled.__init__Z  s  € ð4 ŒØŸ™×8Ñ8ˆŒÞØ(<Ô%Ø ŸM™M×@Ñ@Ø$óˆDŒMð Ñ Ü&×0Ñ0ˆDŒJØ&ŒNØ(×;Ñ;ˆDÔØ )× 6Ñ 6ˆDÔØ××ß ’=Ü% i´×<Ñ<Ð<Ð<Ø)2×)EÑ)E�Ô&ØŸ,š, t§~¡~ÑH¸ÑHˆDŒKæ&Ø+Ñ7Ð7Ð7Ø"Ÿm™m×EÑEØ—K‘KÐ!5ó�”ô '×5Ñ5ˆD�Jä&×3Ñ3ˆDŒJä%›ˆ�r  c                ó@   >• U R                  5         [        TU ]	  5       $ r  )Ú_init_compiler_clsÚsuperÚ__init_subclass__)ÚclsÚ	__class__s    €r  rÎ  ÚCompiled.__init_subclass__“  s   ø€ Ø×ÑÔ Ü‰wÑ(Ó*Ð*r  c                ó   • g r  r  ©rÏ  s    r  rÌ  ÚCompiled._init_compiler_cls—  s   € àr  c                óˆ   • U R                   (       a  UR                  XU5      $ [        R                  " U R                  5      er  )rÁ  Ú_execute_compiledr2   ÚObjectNotExecutableErrorr4  )r  Ú
connectionÚdistilled_paramsr³  s       r  Ú_execute_on_connectionÚCompiled._execute_on_connection›  s=   € ð ××Ø×/Ñ/ØÐ(9óð ô ×.Ò.¨t¯~©~Ó>Ð>r  c                óD   • [         R                  " U [        U5      5      Uer  ©r2   ÚUnsupportedCompilationErrorr  ©r  ÚelementÚerrÚkws       r  Úvisit_unsupported_compilationÚ&Compiled.visit_unsupported_compilation¥  s   € Ü×-Ò-¨d´D¸³MÓBÈÐKr  c                ó   • [        5       e)z€Return a Compiled that is capable of processing SQL expressions.

If this compiler is one, it would likely just return 'self'.

©ÚNotImplementedErrorrD  s    r  Úsql_compilerÚCompiled.sql_compiler¨  s   € ô "Ó#Ð#r  c                ó(   • UR                   " U 40 UD6$ r  ©Ú_compiler_dispatch)r  ÚobjÚkwargss      r  rÄ  ÚCompiled.process²  s   € Ø×%Ò% dÑ5¨fÑ5Ð5r  c                óV   • U R                   [        R                  L a  U R                  $ g)z3Return the string text of the generated SQL or DDL.r¬  )r®  rw  ry  r­  rD  s    r  Ú__str__ÚCompiled.__str__µ  s#   € ð �:‰:œ×5Ñ5Ò5Ø—;‘;Ðàr  c                ó   • [        5       e)zÂReturn the bind params for this compiled object.

:param params: a dict of string/object pairs whose values will
               override bind values compiled in to the
               statement.
ræ  ©r  ÚparamsÚextracted_parametersÚescape_namess       r  Úconstruct_paramsÚCompiled.construct_params½  s   € ô "Ó#Ð#r  c                ó"   • U R                  5       $ )z0Return the bind params for this compiled object.©rø  rD  s    r  rõ  ÚCompiled.paramsÌ  s   € ð ×$Ñ$Ó&Ð&r  )
r¶  r»  rÁ  r½  r³  rµ  r²  r®  r4  r­  )
r½  rm   r4  r«  r²  r±  rÇ  r+  rÈ  úMapping[str, Any])r  r  ©r  ÚSQLCompiler)rí  rd   rî  r   r  r   ©r  r   ©NNT©rõ  ú"Optional[_CoreSingleExecuteParams]rö  ú&Optional[Sequence[BindParameter[Any]]]r÷  r+  r  z)Optional[_MutableCoreSingleExecuteParams])#r	  r
  r  r  r  r4  r  r­  Úis_sqlÚis_ddlr¯  r°  r²  r&   Ú
EMPTY_DICTr³  r¶  r*  r·  r¹  ÚimmutabledictrÉ  rÎ  ÚclassmethodrÌ  rÚ  rã  rJ  rè  rÄ  rñ  rø  rõ  r  Ú__classcell__©rÐ  s   @r  rª  rª    s   ø‡ ñ
ð *.€IÐ&Ó-ØØ€FˆCÓØ4àÓØ-à€FØ€Fà7;ÐÐ4Ó;à:>€OÐ7Ó>à=AÐÐ:ÓAà)-¯©Ð�Ó8ðð
 !Ó à$(§O¡O€L�/Ó3à,0€MÐ)Ó0ðð 15ÐÐ-Ó4ð	ð %)€IÐ!Ó(ð	ð Óðð BFØ(-Ø,0×,>Ò,>Ó,@ð7(àð7(ð +ð7(ð ?ð	7(ð
 "&ð7(ð *õ7(÷r+ð ñó ðò?òLð ó$ó ð$ô6ôð 6:ØGKØ!ð	$à2ð$ð Eð$ð ð	$ð
 
3õ$ð ñ'ó ö'r  rª  c                  óJ   • \ rS rSrSrSrS	S jrS
S jr        SS jrSr	g)ÚTypeCompileriÒ  z2Produces DDL specification for TypeEngine objects.z	visit_\w+c                ó   • Xl         g r  ©r½  )r  r½  s     r  rÉ  ÚTypeCompiler.__init__×  s   € Ø�r  c                óØ   • UR                   (       aG  U R                  R                  UR                   ;   a#  UR                   U R                  R                     nUR                  " U 40 UD6$ r  )Ú_variant_mappingr½  r  rì  ©r  r  râ  s      r  rÄ  ÚTypeCompiler.processÚ  sS   € à×"×"Ø—‘×!Ñ! U×%;Ñ%;Ó;à×*Ñ*¨4¯<©<×+<Ñ+<Ñ=ˆEØ×'Ò'¨Ñ3°Ñ3Ð3r  c                ó0   • [         R                  " X5      Uer  )r2   rÞ  rß  s       r  rã  Ú*TypeCompiler.visit_unsupported_compilationâ  s   € ô ×-Ò-¨dÓ<À#ÐEr  r  N)r½  rm   )r  r  râ  r   r  r   )rà  r   rá  Ú	Exceptionrâ  r   r  r   )
r	  r
  r  r  r  Úensure_kwargrÉ  rÄ  rã  r  r  r  r  r  r  Ò  s>   † Ù<à€Lôô4ðFØðFØ!*ðFØ25ðFà	÷Fr  r  c                  óP   • \ rS rSrSrSrSrSS jr\S 5       r	\S 5       r
S rS	rg
)Ú_CompileLabeliê  z;lightweight label object which acts as an expression.Label.Úlabel©rà  r  Ú
_alt_namesc                ó2   • Xl         X l        U4U-   U l        g r  r  )r  Úcolr  Ú	alt_namess       r  rÉ  Ú_CompileLabel.__init__ò  s   € ØŒØŒ	Ø˜& 9Ñ,ˆ�r  c                ó.   • U R                   R                  $ r  ©rà  Ú	proxy_setrD  s    r  r$  Ú_CompileLabel.proxy_set÷  ó   € à�|‰|×%Ñ%Ð%r  c                ó.   • U R                   R                  $ r  ©rà  r  rD  s    r  r  Ú_CompileLabel.typeû  ó   € à�|‰|× Ñ Ð r  c                ó   • U $ r  r  ©r  râ  s     r  Ú
self_groupÚ_CompileLabel.self_groupÿ  ó   € Øˆr  )r  rà  r  N)r  )r	  r
  r  r  r  Ú__visit_name__Ú	__slots__rÉ  rJ  r$  r  r-  r  r  r  r  r  r  ê  sD   † ñ Fà€NØ/€Iô-ð
 ñ&ó ð&ð ñ!ó ð!õr  r  c                  óR   • \ rS rSrSrSrSrS r\S 5       r	\S 5       r
S rS	 rS
rg)Úilike_case_insensitivei  z÷produce a wrapping element for a case-insensitive portion of
an ILIKE construct.

The construct usually renders the ``lower()`` function, but on
PostgreSQL will pass silently with the assumption that "ILIKE"
is being used.

.. versionadded:: 2.0

Úilike_case_insensitive_operand©rà  Ú
comparatorc                ó2   • Xl         UR                  U l        g r  r5  )r  rà  s     r  rÉ  Úilike_case_insensitive.__init__  s   € ØŒØ!×,Ñ,ˆ�r  c                ó.   • U R                   R                  $ r  r#  rD  s    r  r$  Ú ilike_case_insensitive.proxy_set  r&  r  c                ó.   • U R                   R                  $ r  r(  rD  s    r  r  Úilike_case_insensitive.type  r*  r  c                ó   • U $ r  r  r,  s     r  r-  Ú!ilike_case_insensitive.self_group   r/  r  c                óJ   • [        U R                  R                  U5      5      $ r  )r3  rà  Ú_with_binary_element_type)r  r  s     r  r@  Ú0ilike_case_insensitive._with_binary_element_type#  s!   € Ü%Ø�L‰L×2Ñ2°5Ó9ó
ð 	
r  )r6  rà  N)r	  r
  r  r  r  r0  r1  rÉ  rJ  r$  r  r-  r@  r  r  r  r  r3  r3    sJ   † ñ	ð 6€NØ'€Iò-ð ñ&ó ð&ð ñ!ó ð!òõ
r  r3  c                  ó’  • \ rS rSr% Sr\r\R                  " SSSSSSSSS.5      r	S	\
S
'    S\
S'   S	\
S'   Sr\rSrS\
S'   SrS\
S'   SrS\
S'    S\
S'    SrS\
S'    SrS\
S'    SrS\
S'    SrS\
S'   S\
S'    S \
S!'    S"\
S#'    SrS\
S$'    SrS\
S%'    SrS\
S&'    S'\
S('    S'\
S)'    S'\
S*'    S+\
S,'    SrS\
S-'    SrS\
S.'    SrS\
S/'    SrS\
S0'    SrS\
S1'    SrS\
S2'    SrS3\
S4'    SrS5\
S6'    Sr S7\
S8'   Sr!S9\
S:'   Sr"S;\
S<'   \#" 5       r$S=\
S>'    \#" 5       r%S=\
S?'    \RL                  r'S@\
SA'    Sr( Sr) Sr*SB\
SC'    Sr+S7\
SD'    Sr,S7\
SE'   Sr-S7\
SF'   Sr.S\
SG'   SH\
SI'   SJ\
SK'   SL\
SM'   S\
SN'   \/R`                  " SO5      r1\/R`                  " SP5      r2\/R`                  " \2Rf                   SQ\1Rf                   35      r4\5SR 5       r6\5SS 5       r7SSS\8S4               GSSU jjr9\:GSSV j5       r;\Rx                  GS	SW j5       r=\:SX 5       r>\:SY 5       r?\:SZ 5       r@\R‚                  GS
S[ j5       rB\R†                  GSS\ j5       rD\ERŒ                  S] 5       rGS^ rHS_ rI\R‚                    GSS` j5       rJSa rK\:GSSb j5       rL  GS     GSSc jjrM      GS             GSSd jjrN\R†                  Se 5       rO\:Sf 5       rP GS     GSSg jjrQ\R¤                  " Sh5      Si 5       rSSj\
Sk'   \R‚                  GSSl j5       rT\R‚                  \R¤                  " Sm5      Sn 5       5       rU\R‚                  \R¤                  " Sm5      So 5       5       rVGSSp jrWSq rXGSSr jrYSs rZ GSSt jr[ GSSu jr\     GSSv jr]Sw r^Sx r_    GS             GSSy jjr`Sz raS{ rbS| rcS} rdS~ reS rfGSS€ jrg GSS� jrhGSS‚ jriGSSƒ jrjGSS„ jrkS… rlS† rmS‡ rnSˆ roS‰ rpSŠ rqS‹ rrSŒ rsS� rtSŽ ruS� rvS� rwS‘ rxS’ ry GS       GSS“ jjrzS” r{S• r|GSS– jr} GS S— jr~S˜ rS™ r€ GS!Sš jr�S› r‚Sœ rƒS� r„Sž r…SŸ r†S  r‡S¡ rˆS¢ r‰ GSS£ jrŠS¤ r‹    GS"S¥ jrŒS¦ r�S§ rŽS¨ r�S© r�Sª r‘ GS         GS#S« jjr’S¬ r“S­ r”\R‚                  S® 5       r•S¯ r–S° r—S± r˜S² r™S³ ršS´ r›Sµ rœS¶ r�S· ržS¸ rŸS¹ r Sº r¡S» r¢S¼ r£S½ r¤S¾ r¥S¿ r¦SÀ r§SÁ r¨        GS$SÂ jr©        GS$SÃ jrª        GS$SÄ jr«      GS%SÅ jr¬SÆ r­\®S4SÇ jr¯      GS&SÈ jr°SÉ r±      GS'SÊ jr²GS(SË jr³      GS)                 GS*SÌ jjr´SÍ rµSSSSS\¶GRn                  " S5      4                 GS+SÎ jjr¸SÏ r¹SÐ rº        GS,SÑ jr»SÒ r¼SÓ r½GSSÔ jr¾SÕ r¿ GS-SÖ jrÀS× rÁSØ rÂ          GS.SÙ jrÃ GSSÚ jrÄ       GS/SÛ jrÅSÜ rÆSÝ rÇ      GS0SÞ jrÈSß rÉSà rÊSá\
Sâ'   \ËGR˜                  (       d"  \R                  " Sã\#" 5       4Sä\#" 5       4/5      rÍ GSSå jrÎSrÏST\
Sæ'           GS1Sç jrÐ    GS2Sè jrÑSé rÒSê rÓSë rÔ  GSSì jrÕSí rÖGS3Sî jr×Sï rØSð rÙSñ rÚ          GS4Sò jrÛSó rÜ   GS5Sô jrÝ        GS6Sõ jrÞGS Sö jrßS÷ rà\R                  " \áGRÄ                  \ãGRÈ                  \áGRÊ                  \ãGRÈ                  \áGRÌ                  \ãGRÈ                  \áGRÎ                  \ãGRÎ                  \áGRÐ                  \ãGRÐ                  05      ré\éGRÕ                  \áGRÌ                  \ãGRÖ                  05      rì    GS7Sø jrí                GS8Sù jrî GS9Sú jrïSû rðSü rñSý ròSþ ró GS       GS:Sÿ jjrôGS  rõGS röGSGS jr÷GS røGS rùGS rúGSrûg(;  rÿ  i)  zvDefault implementation of :class:`.Compiled`.

Compiles :class:`_expression.ClauseElement` objects into SQL strings.

ÚPÚAÚZÚCÚ_)Ú%Ú(Ú)Ú:Ú.Ú[Ú]Ú zClassVar[Mapping[str, str]]Úbindname_escape_characterszClassVar[Pattern[str]]Ú_bind_translate_reÚ_bind_translate_charsTFr+  ÚisdeleteÚisinsertÚisupdatezOptional[List[Column[Any]]]Ú	postfetchr  zSequence[Column[Any]]Úinsert_prefetchÚupdate_prefetchNú&Optional[Sequence[ColumnElement[Any]]]Úimplicit_returningÚisplaintextzDict[str, BindParameter[Any]]ÚbindszDict[BindParameter[Any], str]Ú
bind_nameszList[_CompilerStackEntry]r˜  Úreturning_precedes_valuesÚ'render_table_with_column_in_update_fromÚansi_bind_rulesr   ÚbindtemplateÚcompilation_bindtemplateÚ_numeric_binds_identifier_charzList[ResultColumnsEntry]r°  Ú_textual_ordered_columnsÚ_ad_hoc_textualÚ_ordered_columnsÚ_loose_column_name_matchingÚ_numeric_bindsÚ_render_postcompilezOptional[ExpandedState]Ú_post_compile_expanded_stateúOptional[str]Ú_pre_expanded_stringúOptional[List[str]]Ú_pre_expanded_positiontupzOptional[_InsertManyValues]Ú_insertmanyvaluesz!Optional[crud._CrudParamSequence]Ú_insert_crud_paramszFrozenSet[BindParameter[Any]]Úliteral_execute_paramsÚpost_compile_paramszutil.immutabledict[str, str]Úescaped_bind_nameszbOptional[Tuple[Dict[BindParameter[Any], List[BindParameter[Any]]], Dict[str, BindParameter[Any]]]]Ú_cache_key_bind_matchr9  Ú_values_bindparamÚ_visited_bindparamÚinlinez"Optional[MutableMapping[CTE, str]]ÚcteszDict[Tuple[int, str], CTE]Úctes_by_level_namez/Dict[CTE, Tuple[int, str, selectable._CTEOpts]]Úlevel_name_by_cteÚctes_recursivez"__\[POSTCOMPILE_(\S+?)(~~.+?~~)?\]z%\(([^)]+?)\)sÚ|c                ó$   • U R                  5         g r  )Ú_init_bind_translaterÓ  s    r  rÌ  ÚSQLCompiler._init_compiler_clsR  s   € à× Ñ Õ"r  c                óÂ   • [         R                  " SR                  U R                  5      5      n[         R                  " SU S35      U l        U R                  U l        g )Nr¬  rM  rN  )ÚreÚescaperˆ   rP  ÚcompilerQ  rR  )rÏ  Úregs     r  r~  Ú SQLCompiler._init_bind_translateV  sF   € ä�iŠi˜Ÿ™ × >Ñ >Ó?Ó@ˆÜ!#§¢¨a°¨u°A¨JÓ!7ˆÔØ$'×$BÑ$BˆÕ!r  r   c                ó  • X@l         X0l        U(       a=  US    V	s0 s H  o™R                  U	_M     n
n	US    V	s0 s H  o™U	/_M     nn	Xº4U l        XPl        X`l        0 U l        [        R                  " 5       U l	        / U l
        / U l        UR                  U l        U R                  (       aN  UR                  R                  S5      =U l        nU(       a  UR                  S:X  a  SOSU l        ["        U l        O[&        UR                     U l        SU l        UR*                  =(       d    UR,                  U l        [/        5       U l        0 U l        0 U l        [6        R8                  " XU40 UD6  U R:                  (       d"  U R<                  (       d  U R>                  (       aÔ  [@        (       a  [C        U[D        5      (       d   eU R:                  (       d  U R<                  (       a�  [@        (       a  [C        U[F        5      (       d   eURH                  (       a  SU l%        OUU R                  (       aD  U R:                  (       a,  U RL                  RN                  (       a  URP                  (       a  SU l%        [&        UR                     U l)        U(       aP  U RT                  RW                  URT                  RY                  5        VVs0 s H  u  pÞUS;  d  M  XÞ_M     snn5        U RZ                  [\        R^                  L av  U R                  (       a2  U R                  (       a  U Ra                  5         OU Rc                  5         U Rd                  (       a!  U Rg                  S	SS
9nU Ri                  USS9  gggs  sn	f s  sn	f s  snnf )a  Construct a new :class:`.SQLCompiler` object.

:param dialect: :class:`.Dialect` to be used

:param statement: :class:`_expression.ClauseElement` to be compiled

:param column_keys:  a list of column names to be compiled into an
 INSERT or UPDATE statement.

:param for_executemany: whether INSERT / UPDATE statements should
 expect that they are to be invoked in an "executemany" style,
 which may impact how the statement will be expected to return the
 values of defaults and autoincrement / sequences and similar.
 Depending on the backend and driver in use, support for retrieving
 these values may be disabled which means SQL expressions may
 be rendered inline, RETURNING may not be rendered, etc.

:param kwargs: additional keyword arguments to be consumed by the
 superclass.

r   rÒ   rÓ   rÍ   rK  NT>   r®  r½  rµ  Ú
positionalra  rh  rb  F©r÷  Ú_no_postcompile)Ú_populate_self)5Úcolumn_keysr¹  r?  rt  Úfor_executemanyÚlintingr\  r&   Úcolumn_dictr]  r˜  r°  r‡  Ú
paramstyleÚ
startswithrh  rc  Ú_pyformat_templaterb  ÚBIND_TEMPLATESrx  Úlabel_lengthÚmax_identifier_lengthr0   Úanon_mapÚtruncated_namesÚ_truncated_countersrª  rÉ  rT  rU  rS  r   rÂ  r@   rB   Ú_inlinerw  r½  Úinsert_executemany_returningÚ_return_defaultsra  Ú__dict__ÚupdateÚitemsr®  rw  ry  Ú_process_numericÚ_process_positionalri  rø  Ú#_process_parameters_for_postcompile)r  r½  r4  r¹  r‹  rŒ  r�  Ú_supporting_againstrî  ÚbÚcksmÚckbmÚnbÚkÚvr5  s                   r  rÉ  ÚSQLCompiler.__init__\  sà  € ð@ 'Ôà"ŒæØ&/°¢lÓ3¢l —E‘E˜1’H¡lˆDÐ3Ø$-¨a¢LÓ1¢L˜q˜�s’F¡LˆDÐ1Ø*.¨ˆDÔ&ð
  /ÔàŒð ˆŒ
ô ×*Ò*Ó,ˆŒð ˆŒ
à!ˆÔð "×,Ñ,ˆŒØ�?�?Ø'.×'9Ñ'9×'DÑ'DÀYÓ'OÐOˆDÔ "Þà"×-Ñ-Ð1AÓA‘CÀsð Ô3ô -?ˆDÕ)ä,:¸7×;MÑ;MÑ,NˆDÔ)àˆŒ	ð × Ñ ×A G×$AÑ$Að 	Ôô (Ó)ˆŒð <>ˆÔØ35ˆÔ ä×Ò˜$¨Ñ=°fÒ=à�=�=˜DŸMŸM¨T¯]¯]ßŠ}Ü! )¬Z×8Ñ8Ð8Ð8à�}�} §§ß ’=Ü% i´×<Ñ<Ð<Ð<Ø×$×$Ø"&�D•KØ×)×)ØŸŸàŸ™×A×AØ%×6×6ð #'�D”Kä*¨7×+=Ñ+=Ñ>ˆÔæØ�M‰M× Ñ ð !4× <Ñ <× BÑ BÔ Dôâ D™˜Øðñ	ó �A’DÙ Dòôð" �:‰:œ×5Ñ5Ò5Ø��Ø×&×&Ø×)Ñ)Õ+à×,Ñ,Ô.à×'×'Ø!×2Ñ2Ø!&Ø$(ð 3ð �
ð
 ×8Ñ8Ø¨tð 9ò ð (ð 6ùòy 4ùÚ1ùóVs   ›M>ºNËN
ËN
c                óJ   • U R                   c  gU R                   R                  $ )a¸  When an INSERT is compiled with a single set of parameters inside
a VALUES expression, the string is assigned here, where it can be
used for insert batching schemes to rewrite the VALUES expression.

.. versionadded:: 1.3.8

.. versionchanged:: 2.0 This collection is no longer used by
   SQLAlchemy's built-in dialects, in favor of the currently
   internal ``_insertmanyvalues`` collection that is used only by
   :class:`.SQLCompiler`.

N)ro  rN  rD  s    r  Úinsert_single_values_exprÚ%SQLCompiler.insert_single_values_exprî  s%   € ð ×!Ñ!Ñ)Øà×)Ñ)×<Ñ<Ð<r  c                ó  • U R                   (       a  U R                   $ U R                  bS  [        U R                  5      (       a9  U R                  R                   Vs/ s H  n[	        U5      (       d  M  UPM     sn$ gs  snf )aª  The effective "returning" columns for INSERT, UPDATE or DELETE.

This is either the so-called "implicit returning" columns which are
calculated by the compiler on the fly, or those present based on what's
present in ``self.statement._returning`` (expanded into individual
columns using the ``._all_selected_columns`` attribute) i.e. those set
explicitly using the :meth:`.UpdateBase.returning` method.

.. versionadded:: 2.0

N)rZ  r4  r(   Ú_all_selected_columnsr'   )r  Úcs     r  Úeffective_returningÚSQLCompiler.effective_returning  so   € ð ×"×"Ø×*Ñ*Ð*Ø�^‰^Ñ'¬F°4·>±>×,BÑ,Bð Ÿ™×=Ò=óâ=�AÜ$ Q×'÷ Ù=ñð ð ùòs   ÁA?Á5A?c                ó   • U R                   $ )zFbackwards compatibility; returns the
effective_returning collection.

)r¯  rD  s    r  Ú	returningÚSQLCompiler.returning  s   € ð ×'Ñ'Ð'r  c                ód   •  U R                   S   S   $ ! [         a  n[        S5      UeSnAff = f)a  Return the current 'executable' that is being compiled.

This is currently the :class:`_sql.Select`, :class:`_sql.Insert`,
:class:`_sql.Update`, :class:`_sql.Delete`,
:class:`_sql.CompoundSelect` object that is being compiled.
Specifically it's assigned to the ``self.stack`` list of elements.

When a statement like the above is being compiled, it normally
is also assigned to the ``.statement`` attribute of the
:class:`_sql.Compiler` object.   However, all SQL constructs are
ultimately nestable, and this attribute should never be consulted
by a ``visit_`` method, as it is not guaranteed to be assigned
nor guaranteed to correspond to the current statement being compiled.

.. versionadded:: 1.3.21

    For compatibility with previous versions, use the following
    recipe::

        statement = getattr(self, "current_executable", False)
        if statement is False:
            statement = self.stack[-1]["selectable"]

    For versions 1.4 and above, ensure only .current_executable
    is used; the format of "self.stack" may change.


éÿÿÿÿr$   z$Compiler does not have a stack entryN)r˜  Ú
IndexError)r  Úies     r  Úcurrent_executableÚSQLCompiler.current_executable"  s;   € ð<	MØ—:‘:˜b‘> ,Ñ/Ð/øÜó 	MÜÐCÓDÈ"ÐLûð	Mús   ‚ ”
/ž*ª/c                óX   • [        U R                  5      [        U R                  5      -   $ r  )ÚlistrW  rX  rD  s    r  ÚprefetchÚSQLCompiler.prefetchE  s#   € ä�D×(Ñ(Ó)¬D°×1EÑ1EÓ,FÑFÐFr  c                ó   • 0 $ r  r  rD  s    r  Ú_global_attributesÚSQLCompiler._global_attributesI  s   € àˆ	r  c                óf   • [         R                  " 5       nXl        0 U l        0 U l        SU l        U$ )zzInitialize collections related to CTEs only if
a CTE is located, to save on the overhead of
these collections otherwise.

F)r&   ÚOrderedDictrx  ry  rz  r{  )r  rx  s     r  Ú_init_cte_stateÚSQLCompiler._init_cte_stateM  s8   € ô *.×)9Ò)9Ó);ˆØŒ	ð #%ˆÔð "$ˆÔà#ˆÔàˆr  c              #  ó„  #   • U R                   U R                  p!/ SsU l         U l         U R                  (       a  U R                  S   nSUS'   OSnU R                   U R                  4v •  U(       a  UR                  S5        UUsU l         U l        g! W(       a  UR                  S5        UUsU l         U l        f = f7f)z;special API to support the use case of 'nested result sets'Frµ  Tr,  N)r°  rf  r˜  rŽ  )r  Úresult_columnsÚordered_columnsÚentrys       r  Ú_nested_resultÚSQLCompiler._nested_resulte  s¿   é € ð × Ñ Ø×!Ñ!ð (ð 79¸%Ð3ˆÔ˜dÔ3ð	Ø�z�zØŸ
™
 2™�Ø6:�Ð2Ò3à�Ø×&Ñ&¨×(=Ñ(=Ð=Ò=æØ—	‘	Ð6Ô7àØð 8ˆDÔ  $Õ"7øö Ø—	‘	Ð6Ô7àØð 8ˆDÔ  $Õ"7üs   ‚'C ªAB Á,(C Â)B=Â=C c                ó<  ^^	• U R                   (       a   eU R                  [        R                  L d   eU R                  (       a   eU R
                  R                  S:X  a  SmOU R
                  R                  S:X  d   eSm/ m	SUU	4S jjn[        R                  " U R                  XR                  5      U l
        U R                  (       ay  U R                  R                  5        VVs0 s H  u  p#X2_M	     nnn[        U R                  5      [        U5      :X  d   eT	 Vs/ s H  oTR                  XU5      PM     snU l         OT	U l         U R                  (       a­  / m	[        R                  " U R                  UU R                  R                   5      nU R                  R"                   Vs/ s H4  nUS   US   [        R                  " U R                  XS   5      US	   4PM6     nnU R                  R%                  UUS
9U l        g g s  snnf s  snf s  snf )NrÑ   ú%srÐ   rÎ   c                ó¼   >• U R                  S5      nU(       a  TR                  U5        T$ TR                  U R                  S5      5        U R                  S5      $ )Nr   r1   r   )r—   Úappend)ÚmÚnormal_bindÚplaceholderÚ	positionss     €€r  Úfind_positionÚ6SQLCompiler._process_positional.<locals>.find_positionŠ  sM   ø€ ØŸ'™' !›*ˆKÞØ× Ñ  Ô-Ø"Ð"ð × Ñ  §¡¨£Ô,Ø—w‘w˜q“zÐ!r  r   r   r1   r!  ©rN  rO  )rÏ  zre.Match[str]r  r   )r9  r®  rw  ry  rh  r½  r�  r�  ÚsubÚ_positional_patternr­  rs  r�  ÚlenÚgetro  rN  rO  Ú_replace)
r  rÓ  r¦  r§  Úreverse_escaper  rN  rO  rÑ  rÒ  s
           @@r  rŸ  ÚSQLCompiler._process_positional}  sõ  ù€ Ø×#×#Ð#Ð#Ø�z‰zœ]×9Ñ9Ò9Ð9Ð9Ø×&×&Ð&Ð&à�<‰<×"Ñ" hÓ.Ø‰Kà—<‘<×*Ñ*¨gÓ5Ð5Ð5ØˆKàˆ	÷	"ð 	"ô —f’fØ×$Ñ$ m·[±[ó
ˆŒð ×"×"Ø/3×/FÑ/F×/LÑ/LÔ/NÔOÒ/N¡t q˜ašdÑ/NˆNÑOÜ�t×.Ñ.Ó/´3°~Ó3FÓFÐFÐFá;Dó Ú;D°4×"Ñ" 4Ö.¹9ñ ˆDÕð  )ˆDÔà×!×!ØˆIä!#§¢Ø×(Ñ(ØØ×&Ñ&×9Ñ9ó"Ðð ×/Ñ/×BÒBó"ò C�Að �a‘DØ�a‘DÜ—F’F˜4×3Ñ3°]ÀaÁDÓIØ�a‘Dó	ñ Cð ð "ð &*×%;Ñ%;×%DÑ%DØ#5Ø#5ð &Eð &ˆDÕ"ð% "ùó Pùò ùò"s   Ã,HÄ%HÆ0;Hc                ó¾  ^ ^• T R                   (       d   eT R                  [        R                  L d   eSn0 mT R                  (       a_  T R
                  bR  [        R                  " U 4S jT R                  R                  5        5       T R                  R                  5       5      nOT R                  R                  5       nU H[  nUT;   a  M  T R                  U   nUT R                  ;   d  UT R                  ;   a  S TU'   MA  T R                   U 3nUS-  nUTU'   M]     UT l        [        T5      T l        T R"                  (       a[  [%        T5      nTR'                  5        VVs0 s H!  u  pxT R"                  R)                  Xw5      U_M#     snnm[%        T5      U:X  d   eT R*                  R-                  U4S jT R.                  5      T l        T R                  (       al  T R                  R0                  T-  n	T R                  R2                   V
s/ s H  n
U
S   U
S   SU
S   4PM     nn
T R                  R5                  U	US9T l        g g s  snnf s  sn
f )Nr   c              3  óL   >#   • U  H  nUTR                   ;  d  M  Uv •  M     g 7fr  )ru  )r>  r  r  s     €r  r@  Ú/SQLCompiler._process_numeric.<locals>.<genexpr>Ä  s(   øé € ð â 8˜Ø 4×#9Ñ#9Ñ9÷ ‘DÚ 8ùs   ƒ$›	$c                ó,   >• TU R                  S5         $ ©Nr   ©r—   ©rÏ  Ú	param_poss    €r  Ú<lambda>Ú.SQLCompiler._process_numeric.<locals>.<lambda>ë  s   ø€ �i §¡¨£
Ò+r  r   rÌ  r!  rÕ  )rh  r®  rw  ry  ro  ru  Ú	itertoolsÚchainr]  Úvaluesr\  rr  rq  rc  Únext_numeric_posr»  r9  rs  rØ  r�  rÙ  Ú_pyformat_patternrÖ  r­  rN  rO  rÚ  )r  Únumr›   Ú	bind_nameÚbindÚphÚ
len_beforer  ÚposrN  r§  rO  rä  s   `           @r  rž  ÚSQLCompiler._process_numeric¸  sJ  ù€ Ø×"×"Ð"Ð"Ø�z‰zœ]×9Ñ9Ò9Ð9Ð9àˆØ$&ˆ	à×!×! d×&<Ñ&<Ñ&Hô —O’Oôà $§¡× 6Ñ 6Ô 8óð
 —‘×&Ñ&Ó(ó‰Eð —O‘O×*Ñ*Ó,ˆEãˆIØ˜IÓ%ÙØ—:‘:˜iÑ(ˆDà˜×0Ñ0Ó0Ø˜4×6Ñ6Ó6ð (,�	˜)Ó$à×;Ñ;Ð<¸S¸EÐB�Ø�q‘�Ø')�	˜)Ó$ñ ð  !$ˆÔä 	›?ˆÔØ×"×"Ü˜Y›ˆJð "+§¡Ô!2ôâ!2‘I�Dð ×'Ñ'×+Ñ+¨DÓ7¸Ò<Ù!2òˆIô �y“> ZÓ/Ð/Ð/ð ×,Ñ,×0Ñ0Ü+¨T¯[©[ó
ˆŒð ×!×!ð ×&Ñ&×9Ñ9Øñð ð ×/Ñ/×BÒBó"âB�Að �1‘�q˜‘t˜T 1 Q¡4Ó(ÙBð ð "ð
 &*×%;Ñ%;×%DÑ%Dà#5à#5ð	 &Eð &ˆDÕ"ð "ùóùò$"s   Å*(IÈIc                óp   ^ • U 4S jT R                    5        VVs0 s H  u  pUc  M
  X_M     snn$ s  snnf )Nc           	   3  ó0  >#   • U  H‹  nTR                   U   UR                  R                  (       d%  UR                  R                  TR                  5      O6[        U4S  j[        [        UR                  5      R                   5       5      4v •  M�     g7f)c              3  óZ   >#   • U  H   nUR                  TR                  5      v •  M"     g 7fr  )Ú_cached_bind_processorr½  )r>  Ú	elem_typer  s     €r  r@  Ú9SQLCompiler._bind_processors.<locals>.<genexpr>.<genexpr>  s.   øé € ð #ò.$ 	ð &×<Ñ<¸T¿\¹\×JÐJò.$ùó   ƒ(+N)	r]  r  Ú_is_tuple_typerö  r½  rC  r   r/   Útypes)r>  Ú	bindparamr  s     €r  r@  Ú/SQLCompiler._bind_processors.<locals>.<genexpr>  s~   øé € ð ò "1�Ið —O‘O IÑ.ð  )Ÿ~™~×<×<ð "Ÿ™×=Ñ=¸d¿l¹lÔKä"ô #ä-1Ü )¨9¯>©>ó.ç#™eð.$ó#ó õò "1ùs   ƒBB)r]  )r  r?  Úvalues   `  r  Ú_bind_processorsÚSQLCompiler._bind_processors  sG   ø€ ôð "&§¢ôô
ò‘
�ð  ó# ˆCŠJñò
ð 	
ùó 
s   ›	2¨2c                ó2   • [        U R                  5      S:„  $ rá  )rØ  r˜  rD  s    r  Úis_subqueryÚSQLCompiler.is_subquery  s   € Ü�4—:‘:‹ Ñ"Ð"r  c                ó   • U $ r  r  rD  s    r  rè  ÚSQLCompiler.sql_compiler!  s   € àˆr  c                óF   • U R                  UUSS9nU R                  U5      $ )a*  Return a new :class:`.ExpandedState` for a given parameter set.

For queries that use "expanding" or other late-rendered parameters,
this method will provide for both the finalized SQL string as well
as the parameters that would be used for a particular parameter set.

.. versionadded:: 2.0.0rc1

Trˆ  )rø  r   )r  rõ  r÷  r5  s       r  Úconstruct_expanded_stateÚ$SQLCompiler.construct_expanded_state%  s:   € ð ×*Ñ*ØØ%Ø ð +ð 
ˆ
ð
 ×7Ñ7Øó
ð 	
r  c                óˆ  • U R                   (       aR  U(       dK  U R                  c   eU(       d  [        U R                  R                  5      $ [        R
                  " S5      eU=(       a    [        U R                  5      nU(       au  U R                  c  [        R                  " S5      eU R                  S   nU R                  n	U	c   eU	u  p«[        X‚5       VVVs0 s H  u  pÍX¬     H  nXí_M     M     nnnnOSnU(       Ga6  0 nU R                  R                  5        GH  u  nnU(       a  U R                  R                  UU5      OUnUR                  U;   a  UUR                     UU'   MP  UU;   a
  UU   UU'   M`  U(       a^  UR                   (       aM  U(       a$  [        R
                  " SUR                  U4-  SS9e[        R
                  " SUR                  -  SS9eU(       a  UR                  UU5      nOUnUR"                  (       a  UR$                  UU'   GM  UR&                  UU'   GM     U$ 0 nU R                  R                  5        HÝ  u  nnU(       a  U R                  R                  UU5      OUnU(       a^  UR                   (       aM  U(       a$  [        R
                  " SUR                  U4-  SS9e[        R
                  " SUR                  -  SS9eU(       a  UR                  UU5      nOUnUR"                  (       a  UR$                  UU'   MÎ  UR&                  UU'   Mß     U$ s  snnnf )	z5return a dictionary of bind parameter keys and valuesNzÂcan't construct new parameters when render_postcompile is used; the statement is hard-linked to the original parameters.  Use construct_expanded_state to generate a new statement and parameters.zcThis compiled object has no original cache key; can't pass extracted_parameters to construct_paramsr   z@A value is required for bind parameter %r, in parameter group %dÚcd3x)Úcodez)A value is required for bind parameter %r)ri  rj  Údictr5  r2   rB  r+  rs  r¹  ÚCompileErrorrt  Úzipr]  r�  rÙ  r?  ÚrequiredÚcallableÚeffective_valuerþ  )r  rõ  rö  r÷  Ú_group_numberÚ_checkr‰  Úhas_escaped_namesÚorig_extractedÚ
ckbm_tupler¤  rG  r¢  Ú	extractedrî  Úresolved_extractedÚpdrü  r  Úescaped_nameÚvalue_params                        r  rø  ÚSQLCompiler.construct_params<  s7  € ð ×#×#®OØ×4Ñ4Ñ@Ð@Ð@ÞÜ˜D×=Ñ=×HÑHÓIÐIä×-Ò-ð4óð ð )×J¬T°$×2IÑ2IÓ-JÐæð �~‰~Ñ%Ü×&Ò&ðJóð ð
 "&§¡°Ñ!2�à×3Ñ3ˆJØÑ)Ð)Ð)Ø ‰GˆDô %(¨Ô$Mõ"â$M‘L�AØ �G�Dð ’á#ñ Ù$Mð ò "Ðð "&ÐçØˆBØ#'§?¡?×#8Ñ#8×#:‘�	˜4ö )ð ×+Ñ+×/Ñ/°°dÔ;àð ð —=‘= FÓ*Ø'-¨i¯m©mÑ'<�B�|Ó$Ø˜V“^Ø'-¨d¡|�B�|Ó$æ 	× 2× 2Þ$Ü!×5Ò5ð4à(Ÿ}™}¨mÐ<ñ=ð "(ñ	ð ô "×5Ò5ØGØ'Ÿm™mñ,à!'ñð ö *Ø&8×&<Ñ&<Ø% yó'™ð '0˜à ×)×)Ø+6×+FÑ+F˜˜<Ô(à+6×+<Ñ+<˜˜<Ô(ñK $;ðL ˆIàˆBØ#'§?¡?×#8Ñ#8Ö#:‘�	˜4ö )ð ×+Ñ+×/Ñ/°°dÔ;àð ö ˜i×0×0Þ$Ü!×5Ò5ð4à(Ÿ}™}¨mÐ<ñ=ð "(ñ	ð ô "×5Ò5ØGØ'Ÿm™mñ,à!'ñð ö &Ø"4×"8Ñ"8¸ÀIÓ"N‘Kà"+�Kà×%×%Ø'2×'BÑ'B�B�|Ó$à'2×'8Ñ'8�B�|Ó$ñ= $;ð@ ˆIùôg"s   ÃL=c                ó¶  ^^^^	• U R                   mTR                  m	TR                  mTR                  mUUUU	4S jn0 nU R                  nU R
                   Hx  nXC;   a  M
  UR                  R                  (       a?  [        [        UR                  5      R                   Vs/ s H  nU" U5      PM     snX$'   Md  U" UR                  5      X$'   Mz     U$ s  snf )Nc                ót   >• U R                  T5      R                  T5      nUb  Tb  UT;  a  Tb  UT;   a  U$ g r  )Ú_unwrapped_dialect_implÚget_dbapi_type)ÚtypÚdbtypeÚdbapir½  Úexclude_typesÚinclude_typess     €€€€r  Úlookup_typeÚ<SQLCompiler._get_set_input_sizes_lookup.<locals>.lookup_typeÅ  sH   ø€ Ø×0Ñ0°Ó9×HÑHÈÓOˆFð Ñ"Ø"Ñ*¨f¸MÓ.IØ"Ñ*¨f¸Ó.Eà�àr  )r½  Úinclude_set_input_sizesÚexclude_set_input_sizesr#  rq  r]  r  rú  r   r/   rû  )
r  r&  Ú
inputsizesrq  rü  r!  r#  r½  r$  r%  s
         @@@@r  Ú_get_set_input_sizes_lookupÚ'SQLCompiler._get_set_input_sizes_lookup¼  sÄ   û€ à—,‘,ˆà×7Ñ7ˆØ×7Ñ7ˆà—‘ˆ÷
	ð 
	ð ˆ
à!%×!<Ñ!<ÐàŸœˆIØÓ2Ùà�~‰~×,×,ô  $¤I¨y¯~©~Ó>×DÒDó)âD˜ñ   Ö$ÙDñ)�
Ó%ñ
 )4°I·N±NÓ(C�
Ó%ñ )ð Ðùò)s   Â#Cc                ó    • U R                  SS9$ )zÕReturn the bind param dictionary embedded into this
compiled object, for those values that are present.

.. seealso::

    :ref:`faq_sql_expression_string` - includes a usage example for
    debugging use cases.

F)r  rû  rD  s    r  rõ  ÚSQLCompiler.paramsã  s   € ð ×$Ñ$¨EÐ$Ð2Ð2r  c                ó4  ^^^^^• 0 nU R                   nUc  U R                  nU R                  (       a  / nU R                  nUc  U R                  nOS=pVU R
                  n[        SU5      m[        SU5      m0 n0 m0 n	Sn
U R                  (       a  Ub  UnU R                  (       a  / n
OU R                  R                  5       nU R                  nU GH©  mU(       a  UR                  TT5      OTnU R                  T   nXàR                  ;   a*  UT;  a"  U R                  UUR                  U5      S9TU'   Mg  XàR                   ;   Ga  UT;   a  X�   nSnO1UR                  T5      nU R#                  XÞU5      nUu  nnXùU'   UTU'   UR$                  (       dÉ  UR'                  U5        UR(                  R*                  (       a,  Uc   eUR'                  UU4S j[-        US5       5       5        OUR'                  UU4S jU 5       5        U
b  U
R/                  S U 5       5        OUb  UR/                  S	 U 5       5        U VVs/ s H  u  nnUPM
     snnUT'   GM�  GM’  Uc  GM˜  UR1                  T5        GM¬     U4S
 jn[2        R4                  " U R6                  UU5      nU
bp  Uc   e[-        X R8                  5       VVs0 s H  u  nnUU R:                   U 3_M     snnmU R<                  R5                  U4S jU5      nUR/                  U
5        [?        UUUUU5      nU(       aZ  X@l         X`l        UR@                  U l        U R                  (       a  [C        UR                  =(       d    S5      OSU l        UU l"        U$ s  snnf s  snnf )af  handle special post compile parameters.

These include:

* "expanding" parameters -typically IN tuples that are rendered
  on a per-parameter basis for an otherwise fixed SQL statement string.

* literal_binds compiled with the literal_execute flag.  Used for
  things like SQL Server "TOP N" where the driver does not accommodate
  N as a bound parameter.

Nr6  z/Mapping[str, Sequence[_BindProcessorType[Any]]]©Úrender_literal_valuec              3  ó°   >#   • U  HK  u  p[        US 5        H5  u  p4TT;   d  M  TT   US -
     c  M  T< SU< SU< 3TT   US -
     4v •  M7     MM     g7f)r   NrG  )Ú	enumerate)r>  ÚiÚtuple_elementÚjrG  r  Útuple_processorss        €€r  r@  ÚBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>]  s{   øé € ð 	.ò
 5IÑ 0 Ü(1°-À×(C¡ Ø#Ð'7Ñ7óð !1°Ñ 6°q¸1±uÑ =óÛ.2³A²qÐ 9Ø 0°Ñ 6°q¸1±uÑ =õñ
 )Dñò 5Iùs   ƒA¥
A³#Ar   c              3  óF   >#   • U  H  u  pTT;   d  M  UTT   4v •  M     g 7fr  r  )r>  r?  rG  r  Úsingle_processorss      €€r  r@  r8  h  s0   øé € ð .â*3¡ Ø#Ð'8Ñ8ó ;˜SÐ"3°DÑ"9Õ:Ú*3ùs   ƒ!“!c              3  ó*   #   • U  H	  u  pUv •  M     g 7fr  r  ©r>  r  rG  s      r  r@  r8  n  s   é € ð 3Ú09¡W T�D²	ùó   ‚c              3  ó*   #   • U  H	  u  pUv •  M     g 7fr  r  r<  s      r  r@  r8  u  s   é € Ð.MÂ9¹¸­tÂ9ùr=  c                ó  >^^• U R                  S5      nTU   nU R                  S5      (       aV  U R                  S5      R                  S5      nUS   US   smmSR                  UU4S jUR                  S5       5       5      nU$ )Nr   r1   ú~~r!  rØ   c              3  ó:   >#   • U  H  nT< U< T< 3v •  M     g 7fr  r  )r>  ÚexpÚbe_leftÚbe_rights     €€r  r@  Ú]SQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding.<locals>.<genexpr>…  s   øé € ð !â/˜ò !(ªªhÕ7Ú/ùs   ƒ)r—   Úsplitrˆ   )rÏ  r?  ÚexprÚtokrC  rD  Úreplacement_expressionss       @@€r  Úprocess_expandingÚJSQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding|  s€   ú€ Ø—'‘'˜!“*ˆCØ*¨3Ñ/ˆDð �w‰w�q�z‰zØ—g‘g˜a“j×&Ñ& tÓ,�Ø$'¨¡F¨C°©FÐ!�˜Ø—y‘yõ !à#Ÿz™z¨$Ô/ó!ó �ð ˆKr  c                ó,   >• TU R                  S5         $ rá  râ  rã  s    €r  rå  ÚASQLCompiler._process_parameters_for_postcompile.<locals>.<lambda>™  s   ø€ ˜) A§G¡G¨A£JÒ/r  r  )#rl  r­  r‡  rn  r9  rÿ  r   rh  r]  ré  rs  rÙ  r\  rq  Úrender_literal_bindparamrŽ  rr  Ú$_literal_execute_expanding_parameterÚliteral_executerœ  r  rú  r3  ÚextendrÎ  r�  rÖ  Ú_post_compile_patternrê  rc  rë  r3  r4  r»  rj  )r  r5  rŠ  Úexpanded_parametersÚpre_expanded_stringÚnew_positiontupÚpre_expanded_positiontupr7  Únew_processorsÚto_update_setsÚnumeric_positiontupÚnamesÚebnr  Ú	parameterÚ	to_updateré  Úleep_resÚreplacement_exprÚ
expand_keyrG  rJ  r4  rì  r?  Úexpanded_stater  rä  rI  r:  r7  s                             @@@@@r  r   Ú/SQLCompiler._process_parameters_for_postcompileð  sÞ  ü€ ð$ !Ðð #×7Ñ7ÐØÑ&Ø"&§+¡+Ðà�?�?Ø ˆOà'+×'EÑ'EÐ$Ø'Ñ/Ø+/×+;Ñ+;Ð(øð :>Ð=ˆOà×*Ñ*ˆ
Ü Ø3°Zó
Ðô  Ø=¸zó
Ðð >@ˆà24ÐØ)+ˆð 48Ðà�?�?Ð7ÑCØ#;ˆEØ×"×"Ø&(Ð#øà—O‘O×*Ñ*Ó,ˆEà×%Ñ%ˆÜˆDÞ25˜3Ÿ7™7 4¨Ô.¸4ˆLØŸ
™
 4Ñ(ˆIà×7Ñ7Ó7ØÐ'>Ó>à×5Ñ5Ø%Ø1;·±ÀÓ1Mð 6ð ð ,¨LÑ9ñ à×4Ñ4Ô4ØÐ#:Ó:Ø .Ñ <�IØ!‘Fð (Ÿ^™^¨DÓ1�Fà#×HÑHØ$°ó �Hð 5=Ñ1�YÐ 0à3< <Ñ0Ø<LÐ+¨LÑ9à ×0×0Ø×%Ñ% iÔ0Ø —~‘~×4×4Ø%Ñ1Ð1Ð1Ø&×-Ñ-õ 	.ô
 5>¸fÀaÔ4Hó	.õ 	ð '×-Ñ-õ .á*3ó.ô ð
 +Ñ6Ø+×2Ñ2ñ 3Ù09ó3õ ð )Ñ4ð (×.Ñ.Ñ.MÁ9Ó.MÔMá8Aô1Ú8A¡} z°1›
¹	ò1Ð'¨Ô-ò; 1ð@ !Ô,Ø×&Ñ& t×,ñS õV	ô —F’FØ×&Ñ&Ð(9Ð;Nó
ˆ	ð Ñ*Ø"Ñ.Ð.Ð.ô !*Ø'×)>Ñ)>ô!ôò!‘H�C˜ð ˜×;Ñ;Ð<¸S¸EÐBÒBñ!òˆIð ×.Ñ.×2Ñ2Ü/°óˆIð ×"Ñ"Ð#6Ô7ä&ØØØØØó
ˆö ð )<Ô%Ø-EÔ*Ø(×2Ñ2ˆDŒKð —?—?ô �^×/Ñ/×5°2Ô6àð Ôð
 1?ˆDÔ-àÐùó{1ùó6s   É	NË	Nzsqlalchemy.engine.cursorc                ó€   • [         R                  R                  nUR                  R	                  U R
                  5      $ )z(utility method used for unit tests only.)r&   Ú	preloadedÚengine_cursorre   Ú_create_description_match_mapr°  )r  Úcursors     r  Ú_create_result_mapÚSQLCompiler._create_result_mapµ  s5   € ô —‘×-Ñ-ˆØ×*Ñ*×HÑHØ× Ñ ó
ð 	
r  Ú_BindNameForColProtocolÚ_get_bind_name_for_colc                ó   • U R                   nU$ r  )rk  )r  Úgetters     r  Ú_within_exec_param_key_getterÚ)SQLCompiler._within_exec_param_key_getterÀ  s   € à×,Ñ,ˆØˆr  zsqlalchemy.engine.resultc           	     óÀ  ^^	^
^^^• [         R                  R                  nU R                  nU R                  c   eU R                  R
                  n[        (       a  [        U[        5      (       d   eUR                  nUR                   Vs/ s H#  n[        R                  " SU" U5      S 5      U4PM%     snmS m	UR                  mTbG  TR                  R                  U R                   S 5      mU" T5      m
T
U R"                  ;   a  U
4S jnUm	OS mUR%                  UR                   Vs/ s H  oUR&                  PM     sn5      mUU	UUU4S jnU$ s  snf s  snf )NrÙ  c                ó6   >• UR                  TU 5      nUb  U$ U $ r  ©rÙ  )Ú	lastrowidr5  Úparam_valueÚautoinc_keys      €r  Ú_autoinc_getterÚPSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>._autoinc_getteré  s)   ø€ Ø",§.¡.°¸iÓ"H�KØ"Ñ.ð
  +Ð*ð  )Ð(r  c                ór   >^ ^• Tb  T" T 5      m T c  T" U4S jT 5       5      $ T" UUU U4S jT 5       5      $ )zägiven cursor.lastrowid value and the parameters used for INSERT,
return a "row" that represents the primary key, either by
using the "lastrowid" or by extracting values from the parameters
that were sent along with the INSERT.

c              3  ó8   >#   • U  H  u  pU" T5      v •  M     g 7fr  r  )r>  rm  r  r5  s      €r  r@  ÚWSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.get.<locals>.<genexpr>	  s   øé € ÐLÂG±[°V™f Z×0Ð0ÂGùó   ƒc              3  ó^   >#   • U  H"  u  pUTL a  Tb	  T" TT5      O	TOU" T5      v •  M$     g 7fr  r  )r>  rm  r  Úautoinc_colÚautoinc_getterrs  r5  s      €€€€r  r@  rz  
	  sI   øé € ð ò (/™˜ð  +Ò-ð  .Ñ9ñ +¨9°jÔAá!*ñ $ JÓ/ô0ò (/ùó   ƒ*-r  )rs  r5  r}  r~  ÚgettersÚlastrowid_processorÚrow_fns   ``€€€€€r  rÙ  ÚDSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.getý  sH   ú€ ð #Ñ.Ù/°	Ó:�	àÑ ÙÔLÁGÓLÓLÐLá÷ ñ (/óó ð r  )r&   rd  Úengine_resultrn  r*  r4  r   rÂ  r>   rž   Úprimary_keyÚoperatorÚmethodcallerÚ_autoincrement_columnr  Ú_cached_result_processorr½  r\  Úresult_tupler?  )r  ÚresultÚparam_key_getterr4  rž   r  rv  rÙ  r}  r~  ru  r€  r�  r‚  s           @@@@@@r  Ú+_inserted_primary_key_from_lastrowid_getterÚ7SQLCompiler._inserted_primary_key_from_lastrowid_getterÅ  sQ  ý€ ô —‘×-Ñ-ˆà×=Ñ=Ðà×!Ñ!Ñ-Ð-Ð-Ø×&Ñ&×0Ñ0ˆ	çŠ=Ü˜i¬×0Ñ0Ð0Ð0à—‘ˆð ×(Ò(ó
â(�ô ×"Ò" 5Ñ*:¸3Ó*?ÀÓFÈÓLÙ(ñ
ˆð
 ˆØ×1Ñ1ˆØÑ"à"-×"2Ñ"2×"KÑ"KØ—‘˜dó#Ðñ +¨;Ó7ˆKð ˜dŸj™jÓ(õ
)ð "1�øð #'Ðà×$Ñ$¸×9JÒ9JÓ%KÒ9J°#§g¤gÑ9JÑ%KÓLˆ÷	ñ 	ð4 ˆ
ùòG
ùòN &Ls   Â*EÄ.Ec                ó¼  ^
^• [         R                  R                  nU R                  c   eU R                  R                  n[
        (       a  [        U[        5      (       d   eU R                  nUR                  nU R                  nUc   e[        U5       VVs0 s H  u  pgXv_M	     nnn[        SUR                   Vs/ s HB  nXx;   a  [        R                  " X‡   5      S4O[        R                   " SU" U5      S 5      S4PMD     sn5      m
UR#                  UR                   Vs/ s H  owR$                  PM     sn5      mU
U4S jn	U	$ s  snnf s  snf s  snf )Nz'List[Tuple[Callable[[Any], Any], bool]]TrÙ  Fc                ó.   >^ ^• T" UU 4S jT 5       5      $ )Nc              3  óV   >#   • U  H  u  pU(       a  U" T5      OU" T5      v •  M      g 7fr  r  )r>  rm  Úuse_rowr5  Úrows      €€r  r@  ÚWSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get.<locals>.<genexpr>?	  s*   øé € ð â'.‘O�Fö  '‘�s”©F°:Ó,>Ô>Ú'.ùs   ƒ&)r  )r“  r5  r€  r‚  s   ``€€r  rÙ  ÚDSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get>	  s   ú€ Ùõ á'.óó ð r  )r&   rd  r„  r*  r4  r   rÂ  r>   rn  rž   rZ  r3  r   r…  r†  Ú
itemgetterr‡  rŠ  r?  )r  r‹  r4  rŒ  rž   r²  Úidxr  ÚretrÙ  r€  r‚  s             @@r  Ú+_inserted_primary_key_from_returning_getterÚ7SQLCompiler._inserted_primary_key_from_returning_getter	  sZ  ù€ ô —‘×-Ñ-ˆà×!Ñ!Ñ-Ð-Ð-Ø×&Ñ&×0Ñ0ˆ	çŠ=Ü˜i¬×0Ñ0Ð0Ð0à×=Ñ=ÐØ—‘ˆà×+Ñ+ˆ	ØÑ$Ð$Ð$Ü(1°)Ô(<Ô=Ò(<™H˜CˆsŠxÑ(<ˆÑ=äØ5ð !×,Ò,óò -�Cð “zô ×(Ò(¨©Ó2°DÑ9ô !×-Ò-Ø!Ñ#3°CÓ#8¸$óð ð	òñ -ñó
ˆð" ×$Ñ$¸×9JÒ9JÓ%KÒ9J°#§g¤gÑ9JÑ%KÓLˆö	ð ˆ
ùó7 >ùòùò &Ls   ÂEÃ A	E
Ä)Ec                ó   • g)z¥Called when a SELECT statement has no froms, and no FROM clause is
to be appended.

Gives Oracle Database a chance to tack on a ``FROM DUAL`` to the string
output.

r¬  r  rD  s    r  Údefault_fromÚSQLCompiler.default_fromF	  s   € ð r  c                óü  • UR                   R                  " U 40 UD6nUR                   GHM  nX@R                  ;  a  M  U R                  U   nUR	                  UR                  UR
                     SSS9nU R                  U   nU=U R                  U'   U R                  U'   XpR                  U'   U R                  R                  US5        XPR                  ;   a  U =R                  U1-  sl        XPR                  ;   a  U =R                  U1-  sl	        U R                  nU(       d  GM  Uu  pšUR                   H6  nUR
                  U
;   d  M  X¥R
                     nX›   R                  U5        M8     GMP     U$ )aB  SQL compile the nested element of an _OverrideBinds with
bindparams swapped out.

The _OverrideBinds is not normally expected to be compiled; it
is meant to be used when an already cached statement is to be used,
the compilation was already performed, and only the bound params should
be swapped in at execution time.

However, there are test cases that exericise this object, and
additionally the ORM subquery loader is known to feed in expressions
which include this construct into new queries (discovered in #11173),
so it has to do the right thing at compile time as well.

TF)Úmaintain_keyr  N)rà  rì  Ú	translater\  Ú_with_valuer?  r]  rŽ  rr  rq  rt  Ú_cloned_setrÎ  )r  Úoverride_bindsrâ  Úsqltextr¦  ÚbpÚnew_bpr  r  r¤  r£  Úcbs               r  Úvisit_override_bindsÚ SQLCompiler.visit_override_bindsP	  sR  € ð" !×(Ñ(×;Ò;¸DÑGÀBÑGˆð  ×)Õ)ˆAØŸ
™
Ó"ÙØ—‘˜A‘ˆBð —^‘^Ø×(Ñ(¨¯©Ñ0Ø!Øð $ð ˆFð —?‘? 2Ñ&ˆDØ/5Ð5ˆD�J‰J�q‰M˜DŸJ™J tÑ,Ø&*�O‰O˜FÑ#Ø�O‰O×Ñ  DÔ)à×-Ñ-Ó-Ø×(Ò(¨V¨HÑ4Õ(Ø×0Ñ0Ó0Ø×+Ò+°¨xÑ7Õ+à×3Ñ3ˆJß‰zØ'‘
�ØŸ.œ.�BØ—v‘v •~Ø!§&¡&™\˜Ø™Ÿ™¨Ö/ô )ñ? *ðH ˆr  c                óH   • SUR                   R                  " U 40 UD6-   S-   $ ©NrI  rJ  ©rà  rì  )r  ÚgroupingÚasfromrî  s       r  Úvisit_groupingÚSQLCompiler.visit_grouping�	  ó(   € Ø�X×%Ñ%×8Ò8¸ÑHÀÑHÑHÈ3ÑNÐNr  c                óH   • SUR                   R                  " U 40 UD6-   S-   $ r«  r¬  )r  r­  rî  s      r  Úvisit_select_statement_groupingÚ+SQLCompiler.visit_select_statement_grouping“	  r±  r  c                ó$  • U R                   (       a¸  U R                  R                  (       a�   [        SU R                   S   S   5      nUR                  u  nnnU(       a  Un	OUn	UR                  R                  n
U
bK  U
R                  U	;   a;  U
R                  XšR                     5      (       a  UR                  R                  US'   U R                  " UR                  4SU0UD6$ ! [         a  n[
        R                  " S5      UeS nAff = f)Nú'Union[SelectState, CompoundSelectState]rµ  r*  úECan't resolve label reference for ORDER BY / GROUP BY / DISTINCT etc.Úrender_label_as_labelÚwithin_columns_clause)r˜  r½  Úsupports_simple_order_by_labelr   ÚKeyErrorr2   r  Ú_label_resolve_dictrà  Ú_order_by_label_elementr  Úshares_lineagerÄ  )r  rà  r¹  rî  r*  ÚkeÚ	with_colsÚ
only_fromsÚ	only_colsÚresolve_dictÚorder_by_elems              r  Úvisit_label_referenceÚ!SQLCompiler.visit_label_reference–	  s  € ð �:�:˜$Ÿ,™,×E×Eð	Ü $Ø=Ø—J‘J˜r‘N ?Ñ3ó!�ð ×1Ñ1ñ	ØØØæ$Ø)‘à(�ð $ŸO™O×CÑCˆMð Ñ)Ø!×&Ñ&¨,Ó6Ø!×0Ñ0Ø ×!3Ñ!3Ñ4÷ñ ð
 —O‘O×;Ñ;ð Ð.Ñ/ð �|Š|Ø�O‰Oñ
à"7ð
ð ñ
ð 	
øôA ó Ü×&Ò&ð/óð ðûðús   ®C) Ã)
DÃ3D
Ä
Dc                óF  • U R                   (       d  U R                  UR                  5      $  [        SU R                   S   S   5      nWR                  u  pgn U(       a  XqR                     n	OXaR                     n	X“S'   U R                  " U	4SU0UD6$ ! [         a9  n[
        R                  " UR                  S[        R                  US9   S nAN‹S nAff = f! [         a9  n
[
        R                  " UR                  S[        R                  U
S9   S n
A
g S n
A
ff = f)Nr¶  rµ  r*  r·  )ÚextraÚexc_clsrá  r¸  r¹  )r˜  rÄ  Ú_text_clauser   r»  r   Ú_no_text_coercionrà  r2   r  r¼  )r  rà  r¹  rî  r*  r¿  rÀ  rÁ  rÂ  r  rá  s              r  Úvisit_textual_label_referenceÚ)SQLCompiler.visit_textual_label_referenceÅ	  s  € ð �z�zà—<‘< × 4Ñ 4Ó5Ð5ð	Ü Ø9Ø—
‘
˜2‘˜Ñ/óˆMð ,9×+LÑ+LÑ(ˆ	˜yð	Þ$Ø §¡Ñ1‘à§¡Ñ0�ð /2Ð*Ñ+Ø—<’<ØñØ+@ðØDJñð øô; ó 		Ü×'Ò'Ø—‘ð/ô ×(Ñ(Ø÷ûð		ûô" ó 		Ü×'Ò'Ø—‘ð/ô ×(Ñ(Ø÷ûð		ús/   ®B Á$C Â
CÂ!/CÃCÃ
D Ã'/DÄD c                óŠ  • U=(       a    U(       + nXQL n	U	(       d  U(       aR  [        UR                  [        R                  5      (       a  U R	                  SUR                  5      n
OUR                  n
U(       aˆ  Ub0  U" W
UR                  X4UR
                  -   U-   UR                  5        UR                  R                  " U 4SSS.UD6[        [        R                     -   U R                  R                  UW
5      -   $ U	(       a  U R                  R                  UW
5      $ UR                  R                  " U 4SS0UD6$ )NÚcolidentT)r¹  Úwithin_label_clauser¹  F)rÂ  r  r   rC   Ú_truncated_identifierr  r  rà  rì  Ú	OPERATORSr!   Úas_rµ  Úformat_label)r  r  Úadd_to_result_maprÐ  r¹  r¸  Úresult_map_targetsrâ  Úrender_label_with_asÚrender_label_onlyÚ	labelnames              r  Úvisit_labelÚSQLCompiler.visit_labelò	  s:  € ð "×=Ð*=Ô&=ð 	ð 2Ð:ÐæÖ 4Ü˜%Ÿ*™*¤h×&?Ñ&?×@Ñ@Ø ×6Ñ6°zÀ5Ç:Á:ÓN‘	à!ŸJ™J�	æØ Ñ,Ù!ØØ—J‘JØÐ&¨×)9Ñ)9Ñ9Ð<NÑNØ—J‘Jô	ð —‘×0Ò0Øðà*.Ø(,ñð ñ	ô œIŸM™MÑ*ñ+ð —-‘-×,Ñ,¨U°IÓ>ñ?ð	ö Ø—=‘=×-Ñ-¨e°YÓ?Ð?à—=‘=×3Ò3ØñØ,1ðØ57ñð r  c                ó.   • [         R                  " S5      e)Nz:Cannot compile Column object until its 'name' is assigned.©r2   r  ©r  r£   s     r  Ú_fallback_column_nameÚ!SQLCompiler._fallback_column_name#
  s   € Ü×ÒØHó
ð 	
r  c                ó@   • UR                   nU R                  " U40 UD6$ r  )Ú	_resolvedrÄ  )r  rà  râ  Úsql_elements       r  Úvisit_lambda_elementÚ SQLCompiler.visit_lambda_element(
  s!   € Ø×'Ñ'ˆØ�|Š|˜KÑ.¨2Ñ.Ð.r  c                óÌ  • UR                   =pxUc  U R                  U5      nUR                  n	U	(       d1  [        U[        R
                  5      (       a  U R                  SU5      nUbD  XUR                  4U-   n
UR                  (       a  X¡R                  4-  n
U" XxX¡R                  5        U	(       a  U R                  U5      nOU R                  R                  U5      nUR                  nUb  U(       a  UR                  (       d  U$ U R                  R                  U5      nU(       a  U R                  R!                  U5      S-   nOSn["        (       a  [        U[$        5      (       d   eUR                   nU(       d  U(       a	  Xå;   a  X^   n[        U[        R
                  5      (       a  U R                  SU5      nXÐR                  R                  U5      -   S-   U-   $ )NrÏ  rL  r¬  Úalias)r  rß  Ú
is_literalrÂ  r   rC   rÑ  r?  Ú	_tq_labelr  Úescape_literal_columnrµ  Úquoterž   Únamed_with_columnÚschema_for_objectÚquote_schemar   r\   )r  r£   rÕ  Úinclude_tablerÖ  Úambiguous_table_name_maprî  r  Ú	orig_namerè  Útargetsrž   Úeffective_schemaÚschema_prefixÚ	tablenames                  r  Úvisit_columnÚSQLCompiler.visit_column,
  s™  € ð "Ÿ;™;Ð&ˆØ‰<Ø×-Ñ-¨fÓ5ˆDà×&Ñ&ˆ
Þœj¨¬x×/HÑ/H×IÑIØ×-Ñ-¨j¸$Ó?ˆDàÑ(Ø V§Z¡ZÐ0Ð3EÑEˆGØ××Ø×,Ñ,Ð.Ñ.�á˜d¨w¿¹ÔDæð ×-Ñ-¨dÓ3‰Dà—=‘=×&Ñ& tÓ,ˆDØ—‘ˆØ‰=¦°U×5L×5LØˆKà#Ÿ}™}×>Ñ>¸uÓEÐæà—M‘M×.Ñ.Ð/?Ó@À3ÑFñ ð !#�çŠ}Ü! %¬×9Ñ9Ð9Ð9ØŸ
™
ˆIö %Þ,ØÓ9à4Ñ?�	ä˜)¤X×%>Ñ%>×?Ñ?Ø ×6Ñ6°wÀ	ÓJ�	à §=¡=×#6Ñ#6°yÓ#AÑAÀCÑGÈ$ÑNÐNr  c                óL   • U R                   R                  UR                  5      $ r  )rµ  Úformat_collationÚ	collation©r  rà  râ  s      r  Úvisit_collationÚSQLCompiler.visit_collationg
  s   € Ø�}‰}×-Ñ-¨g×.?Ñ.?Ó@Ð@r  c                ó   • UR                   $ r  ©r  )r  Ú
fromclauserî  s      r  Úvisit_fromclauseÚSQLCompiler.visit_fromclausej
  s   € Ø�‰Ðr  c                ó   • UR                   $ r  rÿ  )r  r†  rî  s      r  Úvisit_indexÚSQLCompiler.visit_indexm
  s   € Ø�z‰zÐr  c                óŠ   • XS'   U R                   US'   U R                  R                  R                  " UR                  40 UD6$ )NÚtype_expressionr¾  )rµ  r½  Útype_compiler_instancerÄ  r  )r  Ú
typeclauserâ  s      r  Úvisit_typeclauseÚSQLCompiler.visit_typeclausep
  sF   € Ø *ÐÑØ$(§M¡MˆÐ Ñ!Ø�|‰|×2Ñ2×:Ò:Ø�O‰Oñ
Ø!ñ
ð 	
r  c                ó`   • U R                   R                  (       a  UR                  SS5      nU$ ©NrH  ú%%©rµ  Ú_double_percentsÚreplace©r  Útexts     r  Úpost_process_textÚSQLCompiler.post_process_textw
  ó$   € Ø�=‰=×)×)Ø—<‘<  TÓ*ˆDØˆr  c                ó`   • U R                   R                  (       a  UR                  SS5      nU$ r  r  r  s     r  rê  Ú!SQLCompiler.escape_literal_column|
  r  r  c           	     ó  ^ ^^• UU U4S jnT R                   (       d  ST l        U(       a  U" S S T4[        R                  5        [        R                  S [        R                  UT R                  TR                  5      5      5      $ )Nc                ó¬   >• U R                  S5      nUTR                  ;   a   TR                  " TR                  U   40 TD6$ TR                  " U40 TD6$ rá  )r—   Ú_bindparamsrÄ  Úbindparam_string)rÏ  r  râ  r  Ú
textclauses     €€€r  Údo_bindparamÚ2SQLCompiler.visit_textclause.<locals>.do_bindparam‚
  sS   ø€ Ø—7‘7˜1“:ˆDØ�z×-Ñ-Ó-Ø—|’| J×$:Ñ$:¸4Ñ$@ÑGÀBÑGÐGà×,Ò,¨TÑ8°RÑ8Ð8r  Tc                ó$   • U R                  S5      $ rá  râ  )rÏ  s    r  rå  Ú.SQLCompiler.visit_textclause.<locals>.<lambda>”
  s   € �a—g‘g˜a”jr  )	r˜  r[  r%   ÚNULLTYPEÚBIND_PARAMS_ESCrÖ  ÚBIND_PARAMSr  r  )r  r  rÕ  râ  r  s   `` ` r  Úvisit_textclauseÚSQLCompiler.visit_textclause�
  sl   ú€ ÷	9ð �z�zØ#ˆDÔæñ ˜d D¨:¨-¼×9JÑ9JÔKô ×"Ñ"Ù Ü�O‰OØ˜d×4Ñ4°Z·_±_ÓEóó
ð 	
r  c                ó‚  • U R                   (       + nU(       a  U R                  OU R                   S   n[        5       [        5       US.nU R                   R                  U5        UR                  (       a  U R                  X5        U=(       d7    US:H  =(       a    UR                  SS5      =(       d    UR                  SS5      nU(       ax  UR                  =U l        U l	        UR                  (       + =(       a    [        UR                  5      U l        UR                   H  n	U R                  U	SU R                  S9  M      U R                  " UR                  40 UD6n
U R                   (       a0  U(       d  [#        U R                   5      OS nU R%                  US	9U
-   n
U R                   R'                  S5        U
$ )
Nrµ  ©r&  r%  r$   r   r-  Fr,  T)r¹  rÕ  ©Únesting_level)r˜  Ú_default_stack_entryr€   rÎ  Ú_independent_ctesÚ_dispatch_independent_ctesrÙ  r‡  rf  rd  r+  Úcolumn_argsrg  rÄ  Ú_add_to_result_maprà  rx  rØ  Ú_render_cte_clauserŽ  )r  ÚtafÚcompound_indexr®  râ  ÚtoplevelrÈ  Ú	new_entryÚpopulate_result_mapr®  r  r*  s               r  Úvisit_textual_selectÚ SQLCompiler.visit_textual_selectš
  sw  € ð —z‘z”>ˆÞ-5�×)Ò)¸4¿:¹:Àb¹>ˆô  #›uÜ›EØñ*
ˆ	ð
 	�
‰
×Ñ˜)Ô$à× × Ø×+Ñ+¨CÔ4ð ÷ >à !Ñ#÷ EØ—I‘IÐ<¸eÓD÷>ð
 �y‰yÐ5°uÓ=ð 	ö à—‘ðˆDÔ! DÔ$Að 47·>±>Ô/A÷ 0ÄdØ—‘óGˆDÔ,ð —_”_�Ø—‘ØØ*.Ø&*×&=Ñ&=ð ó ñ %ð �|Š|˜CŸK™KÑ.¨2Ñ.ˆØ�9�9Þ3;œC §
¡
œOÀˆMØ×*Ñ*¸Ð*ÐGÈ$ÑNˆDà�
‰
�‰�rÔàˆr  c                ó   • g©NÚNULLr  ©r  rG  râ  s      r  Ú
visit_nullÚSQLCompiler.visit_nullÎ
  ó   € Ør  c                ó<   • U R                   R                  (       a  gg)Nr�   Ú1©r½  Úsupports_native_booleanr;  s      r  Ú
visit_trueÚSQLCompiler.visit_trueÑ
  s   € Ø�<‰<×/×/Øàr  c                ó<   • U R                   R                  (       a  gg)Nr•   Ú0rA  r;  s      r  Úvisit_falseÚSQLCompiler.visit_false×
  s   € Ø�<‰<×/×/Øàr  c                óL   ^ ^• UR                  S UU 4S jU 5        5       5      $ )Nc              3  ó8   #   • U  H  nU(       d  M  Uv •  M     g 7fr  r  ©r>  Úss     r  r@  Ú7SQLCompiler._generate_delimited_list.<locals>.<genexpr>Þ
  s   é € ð 
âI�Ü÷ ‰AÚIùó   ‚‘	c              3  óH   >#   • U  H  oR                   " T40 TD6v •  M     g 7fr  rë  ©r>  r®  râ  r  s     €€r  r@  rM  à
  s   øé € ÐIÂ¸1×*Ò*¨4Ñ6°2Ö6Âùó   ƒ"©rˆ   )r  r   Ú	separatorrâ  s   `  `r  Ú_generate_delimited_listÚ$SQLCompiler._generate_delimited_listÝ
  s&   ù€ Ø�~‰~ñ 
åIÁÔIó
ó 
ð 	
r  c                óv  ^ ^• [         R                  R                  [        R                  [         R
                  R                  [         R                  R                  U5      u  p1US:X  a  US   R                  " T 40 TD6$ [        [        R                     nUR                  S UU 4S jU 5        5       5      $ )Nr   r   c              3  ó8   #   • U  H  nU(       d  M  Uv •  M     g 7fr  r  rK  s     r  r@  Ú;SQLCompiler._generate_delimited_and_list.<locals>.<genexpr>ï
  s   é € ð "âL�AÜ÷ ‘ÚLùrN  c              3  óH   >#   • U  H  oR                   " T40 TD6v •  M     g 7fr  rë  rP  s     €€r  r@  rX  ñ
  s   øé € ÐLÂG¸q×.Ò.¨tÑ:°rÖ:ÂGùrQ  )r   ÚBooleanClauseListÚ_process_clauses_for_booleanr!   Úand_rL   Ú
_singletonrI   rì  rÒ  rˆ   )r  Úclausesrâ  ÚlccrS  s   ` `  r  Ú_generate_delimited_and_listÚ(SQLCompiler._generate_delimited_and_listä
  s“   ù€ Ü×1Ñ1×NÑNÜ�N‰NÜ�N‰N×%Ñ%Ü�O‰O×&Ñ&Øó	
‰ˆð �!‹8Ø˜1‘:×0Ò0°Ñ<¸Ñ<Ð<ä!¤)§.¡.Ñ1ˆIØ—>‘>ñ "åLÁGÔLó"ó ð r  c                ó.   • SU R                   " U40 UD6-  $ ©Nú(%s))Úvisit_clauselist)r  Ú
clauselistrâ  s      r  Úvisit_tupleÚSQLCompiler.visit_tupleõ
  s   € Ø˜×-Ò-¨jÑ?¸BÑ?Ñ?Ð?r  c                óˆ   • UR                   nUc  SnO[        UR                      nU R                  " UR                  U40 UD6$ ©NrO  )r†  rÒ  rT  r^  )r  rf  râ  Úseps       r  re  ÚSQLCompiler.visit_clauselistø
  sE   € Ø×!Ñ!ˆØ‰;Ø‰Cä˜J×/Ñ/Ñ0ˆCà×,Ò,¨Z×-?Ñ-?ÀÑKÈÑKÐKr  c                ó  • UR                   nU R                  USS 5      nU(       a	  U" X40 UD6$  [        U   nSUS'   U R                  " UR                  U40 UD6$ ! [
         a  n[        R                  " X5      UeS nAff = f)NÚexpression_clauselistTÚ_in_operator_expression)r†  Ú_get_operator_dispatchrÒ  rT  r^  r»  r2   rÞ  )r  rf  râ  Ú	operator_ÚdispÚopstringrá  s          r  Úvisit_expression_clauselistÚ'SQLCompiler.visit_expression_clauselist  s£   € Ø×'Ñ'ˆ	à×*Ñ*ØÐ.°ó
ˆö Ù˜
Ñ4°Ñ4Ð4ð	Ü  Ñ+ˆHð -1ˆBÐ(Ñ)Ø×0Ò0Ø×"Ñ" HñØ02ñð øô	 ó 	LÜ×1Ò1°$ÓBÈÐKûð	Lús   ±	A Á
BÁ'A>Á>Bc                óh  • SnUR                   b"  X1R                   R                  " U 40 UD6S-   -  nUR                   H8  u  pEUSUR                  " U 40 UD6-   S-   UR                  " U 40 UD6-   S-   -  nM:     UR                  b&  USUR                  R                  " U 40 UD6-   S-   -  nUS-  nU$ )NzCASE rO  zWHEN z THEN zELSE ÚEND)rþ  rì  ÚwhensÚelse_)r  Úclauserî  ÚxÚcondr‹  s         r  Ú
visit_caseÚSQLCompiler.visit_case  sÚ   € ØˆØ�<‰<Ñ#Ø—‘×0Ò0°Ñ@¸Ñ@À3ÑFÑFˆAØ"ŸLœL‰LˆDØØØ×)Ò)¨$Ñ9°&Ñ9ñ:àñð ×+Ò+¨DÑ;°FÑ;ñ<ð ñ	ñŠAñ )ð �<‰<Ñ#ØØ˜&Ÿ,™,×9Ò9¸$ÑIÀ&ÑIÑIÈCÑOñˆAð 	
ˆU‰
ˆØˆr  c                ó<   • UR                   R                  " U 40 UD6$ r  )Útyped_expressionrì  )r  Útype_coercerâ  s      r  Úvisit_type_coerceÚSQLCompiler.visit_type_coerce'  s   € Ø×+Ñ+×>Ò>¸tÑJÀrÑJÐJr  c                ó"  • UR                   R                  " U 40 UD6n[        R                  " SU5      nSUR                  R                  " U 40 UD6< SU(       a  UR                  S5      OU< SU(       a  UR                  S5      < 3$ S< 3$ )Nz(.*)( COLLATE .*)zCAST(rÚ   r   rJ  r1   r¬  )r	  rì  r�  Úmatchrz  r—   )r  r   rî  Útype_clauser…  s        r  Ú
visit_castÚSQLCompiler.visit_cast*  s�   € Ø—o‘o×8Ò8¸ÑHÀÑHˆÜ—’Ð,¨kÓ:‰à�K‰K×*Ò*¨4Ñ:°6Ô:Þ#ˆE�K‰K˜ŒN¨Ò4Þ#ˆE�K‰K˜‹NÑ+ð
ð 	
ð *,Ñ+ð
ð 	
r  c           
     ó–  • US   [         R                  L a  SO…US   [         R                  L a  SOmUS   S:  a7  U R                  " [         R                  " [        US   5      5      40 UD6< S3O-U R                  " [         R                  " US   5      40 UD6< S3< SUS   [         R                  L a  S< 3$ US   [         R                  L a  S< 3$ US   S:  a:  U R                  " [         R                  " [        US   5      5      40 UD6< S3< 3$ U R                  " [         R                  " US   5      40 UD6< S3< 3$ )	Nr   zUNBOUNDED PRECEDINGzCURRENT ROWz
 PRECEDINGz
 FOLLOWINGrÕ   r   zUNBOUNDED FOLLOWING)r   ÚRANGE_UNBOUNDEDÚRANGE_CURRENTrÄ  ÚliteralÚabs)r  Úrange_râ  s      r  Ú_format_frame_clauseÚ SQLCompiler._format_frame_clause3  su  € ð ˜!‘9¤× 8Ñ 8Ò8ñ &ð ˜a‘y¤H×$:Ñ$:Ò:ñ "ð " !™9 q›=ð	 !ŸLšLÜ (× 0Ò 0´°V¸A±Y³Ó @ñØDFôñð  Ÿ<š<¬×(8Ò(8¸À¹Ó(CÑJÀrÔJðMòð( ˜!‘9¤× 8Ñ 8Ò8ð &ñ ð+'
ð '	
ð2 ˜a‘y¤H×$:Ñ$:Ò:ð "ñð+'
ð '	
ðB " !™9 q›=ð	 !ŸLšLÜ (× 0Ò 0´°V¸A±Y³Ó @ñØDFôðñð+'
ð '	
ðF  Ÿ<š<¬×(8Ò(8¸À¹Ó(CÑJÀrÔJðMñð+'
ð '	
r  c                óh  • UR                   R                  " U 40 UD6nUR                  b!  SU R                  " UR                  40 UD6-  nO^UR                  b!  SU R                  " UR                  40 UD6-  nO0UR
                  b!  SU R                  " UR
                  40 UD6-  nOS nU< SSR                  SUR                  4SUR                  44 VVs/ s H6  u  pVUc  M
  [        U5      (       d  M  U< SUR                  " U 40 UD6< 3PM8     snnU(       a  U/O/ -   5      < S	3$ s  snnf )
NzRANGE BETWEEN %szROWS BETWEEN %szGROUPS BETWEEN %sz OVER (rO  Ú	PARTITIONÚORDERz BY rJ  )
rà  rì  rŽ  r�  ÚrowsÚgroupsrˆ   Úpartition_byÚorder_byrØ  )r  Úoverrî  r  rŽ  Úwordrz  s          r  Ú
visit_overÚSQLCompiler.visit_over]  sU  € Ø�|‰|×.Ò.¨tÑ>°vÑ>ˆØ�;‰;Ñ"Ø'¨$×*CÒ*CØ—‘ñ+Ø%ñ+ñ ‰Fð �Y‰YÑ"Ø&¨×)BÒ)BØ—	‘	ñ*Ø#ñ*ñ ‰Fð �[‰[Ñ$Ø(¨4×+DÒ+DØ—‘ñ,Ø%ñ,ñ ‰Fð ˆFó Ø�H‰Hð
 % d×&7Ñ&7Ð8Ø  $§-¡-Ð0ñ)ôò)™˜ð óHô /2°&¯kóHÛ˜V×6Ò6°tÑF¸vÓFóHñ)òö  &�F‘8¨2ñ	/öð
ð 	
ùós   Ã	D.Ã%D.Ã7D.c                ó‚   • UR                   R                  " U 40 UD6< SUR                  R                  " U 40 UD6< S3$ )Nz WITHIN GROUP (ORDER BY rJ  )rà  rì  r—  )r  Úwithingrouprî  s      r  Úvisit_withingroupÚSQLCompiler.visit_withingroup~  s>   € à×Ñ×2Ò2°4ÑB¸6ÔBØ× Ñ ×3Ò3°DÑC¸FÔCð
ð 	
r  c                ó‚   • UR                   R                  " U 40 UD6< SUR                  R                  " U 40 UD6< S3$ )Nz FILTER (WHERE rJ  )Úfuncrì  Ú	criterion)r  Ú
funcfilterrî  s      r  Úvisit_funcfilterÚSQLCompiler.visit_funcfilter„  s<   € à�O‰O×.Ò.¨tÑ>°vÔ>Ø× Ñ ×3Ò3°DÑC¸FÔCð
ð 	
r  c                ó®   • U R                   R                  UR                  UR                  5      nSU< SUR                  R                  " U 40 UD6< S3$ )NzEXTRACT(rÙ   rJ  )Úextract_maprÙ  ÚfieldrG  rì  )r  Úextractrî  r¨  s       r  Úvisit_extractÚSQLCompiler.visit_extractŠ  sF   € Ø× Ñ ×$Ñ$ W§]¡]°G·M±MÓB‰ãØ�L‰L×+Ò+¨DÑ;°FÔ;ð
ð 	
r  c                óv   • U R                   " UR                  40 UD6nU R                  " U40 UD6nSU< SU< 3$ )NrI  z).)Úvisit_functionÚfnrö  )r  rà  râ  Úcompiled_fnÚcompiled_cols        r  Úvisit_scalar_function_columnÚ(SQLCompiler.visit_scalar_function_column‘  s;   € Ø×)Ò)¨'¯*©*Ñ;¸Ñ;ˆØ×(Ò(¨Ñ7°BÑ7‰Û'ªÐ6Ð6r  c           	     óÐ  • Ub4  U" UR                   UR                   UR                   4UR                  5        [        U SUR                   R                  5       -  S 5      nU(       a  U" U40 UD6nGOY[        R                  UR                  5       R                  S 5      nU(       a  UR                  (       a  US-  nOmUR                   nU R                  R                  U5      (       d  [        U[        R                  5      (       a  U R                  R                  U5      OUnUS-   nSR                  UR                    Vs/ s H_  nU R                  R                  U5      (       d  [        U[        R                  5      (       a  U R                  R                  U5      OUPMa     snU/-   5      SU R"                  " U40 UD60-  nUR$                  (       a  US-  nU$ s  snf )Nzvisit_%s_funcz%(expr)srL  rG  z WITH ORDINALITY)r  r  ÚgetattrÚlowerrë   rÙ  Ú_deannotaterÐ  Ú	_has_argsrµ  Ú_requires_quotes_illegal_charsrÂ  r   r.   rë  rˆ   ÚpackagenamesÚfunction_argspecÚ_with_ordinality)r  r¡  rÕ  rî  rr  r  r  rH  s           r  r­  ÚSQLCompiler.visit_function–  s±  € ð Ñ(Ù˜dŸi™i¨¯©°T·Y±Y°LÀ$Ç)Á)ÔLä�t˜_¨t¯y©y¯©Ó/@Ñ@À$ÓGˆö Ù˜Ñ' Ñ'ŠDä—=‘= ×!1Ñ!1Ó!3×!=Ñ!=¸tÓDˆDÞØ—>—>Ø˜JÑ&�Døà—y‘y�ð —}‘}×CÑCÀD×IÑIÜ! $¬×(<Ñ(<×=Ñ=ð —M‘M×'Ñ'¨Ô-ð ð	 ð ˜jÑ(�Ø—8‘8ð  $×0Ò0óò  1˜ð	  Ÿ=™=×GÑGÈ×LÑLÜ% d¬H×,@Ñ,@×AÑAð Ÿ™×+Ñ+¨CÔ0ð !ò!ñ
  1ñð �&ñ	óð ˜×.Ò.¨tÑ>°vÑ>Ð?ñ@ˆDð × × ØÐ&Ñ&ˆDØˆùòs   ÅA&G#c                ó8   • U R                  UR                  5      $ r  )Úvisit_sequenceÚsequence)r  Ú
next_valuerâ  s      r  Úvisit_next_value_funcÚ!SQLCompiler.visit_next_value_funcÄ  s   € Ø×"Ñ" :×#6Ñ#6Ó7Ð7r  c                óF   • [        SU R                  R                  -  5      e)Nz2Dialect '%s' does not support sequence increments.©rç  r½  r  ©r  r¿  râ  s      r  r¾  ÚSQLCompiler.visit_sequenceÇ  s$   € Ü!Ø@Ø�l‰l×Ññ ó
ð 	
r  c                ó<   • UR                   R                  " U 40 UD6$ r  )Úclause_exprrì  )r  r¡  rî  s      r  rº  ÚSQLCompiler.function_argspecÍ  s   € Ø×Ñ×2Ò2°4ÑB¸6ÑBÐBr  c           
     ó  ^ ^^• T R                   (       + nUR                  " UT 40 TD6nU(       a  T R                  (       d  UT l        UR                  nU(       a  T R                  OT R                   S   nU=(       d     U(       + =(       a    UR                  SS5      n	US:X  a  XS'   T R                   R                  US   US   UUU	S.5        UR                  (       a  T R                  UT5        T R                  UR                     n
S	U
-   S	-   R                  UUU 4S
 j[        UR                  5       5       5      nSTS'   UT R                  " U40 [        SST0TD6D6-  nUT R                   " U40 TD6-  nUR"                  (       a  UT R$                  " U40 TD6-  nT R&                  (       a1  U(       d  [)        T R                   5      OS nT R+                  USS9U-   nT R                   R-                  S5        U$ )Nrµ  r-  Fr   r.  r&  r%  )r&  r%  r$   r*  r-  rO  c              3  óT   >#   • U  H  u  pUR                   " T4TUS .TD6v •  M     g7f))r®  r2  Nrë  )r>  r4  r®  r®  rî  r  s      €€€r  r@  Ú4SQLCompiler.visit_compound_select.<locals>.<genexpr>ö  s>   øé € ð ò 2‘D�Að ×$Ò$ØðØ!'¸ñØ=Cöò 2ùrŠ  rï  r®  T©r*  Úinclude_following_stackr  )r˜  Ú_compile_state_factoryr*  r4  r+  rÙ  rÎ  r,  r-  Úcompound_keywordsÚkeywordrˆ   r3  ÚselectsÚgroup_by_clauser  Úorder_by_clauseÚ_has_row_limiting_clauseÚ_row_limit_clauserx  rØ  r0  rŽ  )r  Úcsr®  r2  rî  r3  r*  Úcompound_stmtrÈ  Úneed_result_maprÑ  r  r*  s   ` ` `        r  Úvisit_compound_selectÚ!SQLCompiler.visit_compound_selectÐ  sî  ú€ ð —z‘z”>ˆà×1Ò1°"°dÑE¸fÑEˆæ˜D×.×.Ø!.ˆDÔà%×/Ñ/ˆæ-5�×)Ò)¸4¿:¹:Àb¹>ˆØ"÷ 
ØÔ÷ AØ—	‘	Ð8¸%Ó@ð 	ð ˜QÓØ "�*Ñà�
‰
×Ñà#(Ð):Ñ#;Ø % nÑ 5Ø Ø!.Ø0?ñô	
ð ×*×*Ø×+Ñ+¨M¸6ÔBà×(Ñ(¨¯©Ñ4ˆà�g‘ Ñ#×)Ñ)öô & b§j¡jÔ1ó	ó
ˆð #(ˆˆÑØ�×$Ò$ RÑI¬4Ñ+H°vÐ+HÀÑ+HÑIÑIˆØ�×$Ò$ RÑ2¨6Ñ2Ñ2ˆØ×&×&Ø�D×*Ò*¨2Ñ8°Ñ8Ñ8ˆDà�9�9Þ3;œC §
¡
œOÀˆMà×'Ñ'Ø"/Ø,0ð (ð ð ñ	ð ð 	�
‰
�‰�rÔØˆr  c                óh   • UR                   b  U R                  " U40 UD6$ U R                  " U40 UD6$ r  )Ú_fetch_clauseÚfetch_clauseÚlimit_clause)r  r×  rî  s      r  rÖ  ÚSQLCompiler._row_limit_clause  s:   € Ø×ÑÑ'Ø×$Ò$ RÑ2¨6Ñ2Ð2à×$Ò$ RÑ2¨6Ñ2Ð2r  c                ó`   • SUR                   < SU< U(       a  SU-   OS< 3n[        XS 5      $ )NÚvisit_rG  r¬  )r	  r´  )r  rq  Ú
qualifier1Ú
qualifier2Úattrnames        r  rp  Ú"SQLCompiler._get_operator_dispatch  s3   � à×ÔÚÞ *ˆC�*Ò°Ñ2ð
ˆô
 �t tÓ,Ð,r  c                óP  • Ub  X14-  nX$S'   X4S'   UR                   (       aƒ  UR                  (       a  [        R                  " S5      eU R	                  UR                   SS5      nU(       a  U" XR                   40 UD6$ U R
                  " U[        UR                      40 UD6$ UR                  (       a\  U R	                  UR                  SS5      nU(       a  U" XR                  40 UD6$ U R                  " U[        UR                     40 UD6$ [        R                  " S5      e)NrÕ  rÖ  zFUnary expression does not support operator and modifier simultaneouslyÚunaryr†  Úmodifierz,Unary expression has no operator or modifier)r†  ré  r2   r  rp  Ú _generate_generic_unary_operatorrÒ  Ú _generate_generic_unary_modifier)r  rè  rÕ  rÖ  râ  rr  s         r  Úvisit_unaryÚSQLCompiler.visit_unary  s*  € ð Ñ(Ø (Ñ*ÐØ&7Ð"Ñ#Ø'9Ð#Ñ$à�>�>Ø�~�~Ü×&Ò&ð2óð ð ×.Ñ.Ø—‘ ¨óˆDö Ù˜E§>¡>Ñ8°RÑ8Ð8à×<Ò<Øœ9 U§^¡^Ñ4ñØ8:ñð ð �^�^Ø×.Ñ.Ø—‘ ¨óˆDö Ù˜E§>¡>Ñ8°RÑ8Ð8à×<Ò<Øœ9 U§^¡^Ñ4ñØ8:ñð ô ×"Ò"Ø>óð r  c                ó  • U R                   R                  (       a­  U R                  " UR                  40 UD6S-   U R                  " [        R
                  " UR                  UR                  R                  R                  [        R                  L a  UR                  R                  O[        R                  " 5       5      40 UD6-   $ U R                  " UR                  40 UD6S-   U R                  " UR                  40 UD6-   $ )Nú / )r½  Údiv_is_floordivrÄ  r‰   r   ÚCastr�   r  Ú_type_affinityr%   ÚNumeric©r  r¢   r†  râ  s       r  Úvisit_truediv_binaryÚ SQLCompiler.visit_truediv_binaryE  sß   € Ø�<‰<×'×'à—’˜VŸ[™[Ñ/¨BÑ/Øñð —,’,Ü—M’MØŸ™ð  &Ÿ|™|×0Ñ0×?Ñ?Ü'×/Ñ/ò 0ð #ŸL™L×-Ò-ô "*×!1Ò!1Ó!3óñð ññ	ðð( —’˜VŸ[™[Ñ/¨BÑ/Øñà—,’,˜vŸ|™|Ñ2¨rÑ2ñ3ðr  c                ó˜  • U R                   R                  (       ao  UR                  R                  R                  [
        R                  L a>  U R                  " UR                  40 UD6S-   U R                  " UR                  40 UD6-   $ SU R                  " UR                  40 UD6S-   U R                  " UR                  40 UD6-   -  $ )Nrï  z	FLOOR(%s))	r½  rð  r�   r  rò  r%   ÚIntegerrÄ  r‰   rô  s       r  Úvisit_floordiv_binaryÚ!SQLCompiler.visit_floordiv_binary`  s±   € à�L‰L×(×(Ø—‘×!Ñ!×0Ñ0´H×4DÑ4DÒDð —’˜VŸ[™[Ñ/¨BÑ/Øñà—,’,˜vŸ|™|Ñ2¨rÑ2ñ3ðð Ø—’˜VŸ[™[Ñ/¨BÑ/Øñà—,’,˜vŸ|™|Ñ2¨rÑ2ñ3ñð r  c                óÔ   • UR                   (       d  U R                  R                  (       a  U R                  " UR                  40 UD6$ SU R                  " UR                  40 UD6-  $ )Nz%s = 1©Ú_is_implicitly_booleanr½  rB  rÄ  rà  ©r  rà  r†  râ  s       r  Úvisit_is_true_unary_operatorÚ(SQLCompiler.visit_is_true_unary_operatorq  sM   € à×*×*Ø�|‰|×3×3à—<’< §¡Ñ6°2Ñ6Ð6à˜dŸlšl¨7¯?©?ÑA¸bÑAÑAÐAr  c                óÚ   • UR                   (       d  U R                  R                  (       a   SU R                  " UR                  40 UD6-  $ SU R                  " UR                  40 UD6-  $ )NúNOT %sz%s = 0rü  rþ  s       r  Úvisit_is_false_unary_operatorÚ)SQLCompiler.visit_is_false_unary_operatorz  sR   € à×*×*Ø�|‰|×3×3à˜dŸlšl¨7¯?©?ÑA¸bÑAÑAÐAà˜dŸlšl¨7¯?©?ÑA¸bÑAÑAÐAr  c                óD   • SU R                  U[        R                  S9-  $ )Nr  )Úoverride_operator)Úvisit_binaryr!   Úmatch_oprô  s       r  Úvisit_not_match_op_binaryÚ%SQLCompiler.visit_not_match_op_binaryƒ  s,   € Ø˜$×+Ñ+Ø¤i×&8Ñ&8ð ,ð 
ñ 
ð 	
r  c                ó>   • SU R                   " U[        U   40 UD6-  $ rc  )Ú_generate_generic_binaryrÒ  rô  s       r  Úvisit_not_in_op_binaryÚ"SQLCompiler.visit_not_in_op_binaryˆ  s0   € ð ˜×5Ò5Ø”I˜hÑ'ñ
Ø+-ñ
ñ 
ð 	
r  c                ó  • U[         R                  L a+  [        U5      S:”  a  SSR                  S U 5       5      -  $ gU[         R                  L a+  [        U5      S:”  a  SSR                  S U 5       5      -  $ gU R                  U5      $ )	Nr   z(%s)) OR (1 = 1rØ   c              3  ó&   #   • U  H  nS v •  M	     g7f©r:  Nr  ©r>  rà  s     r  r@  Ú6SQLCompiler.visit_empty_set_op_expr.<locals>.<genexpr>”  ó   é € Ð:²E¨�f²Eùó   ‚zNULL) OR (1 = 1z(%s)) AND (1 != 1c              3  ó&   #   • U  H  nS v •  M	     g7fr  r  r  s     r  r@  r  ›  r  r  zNULL) AND (1 != 1)r!   Ú	not_in_oprØ  rˆ   Úin_opÚvisit_empty_set_expr)r  r  Ú	expand_oprâ  s       r  Úvisit_empty_set_op_exprÚ#SQLCompiler.visit_empty_set_op_expr�  s‹   € Øœ	×+Ñ+Ò+Ü�5‹z˜A‹~Ø(Ø—I‘IÑ:±EÓ:Ó:ñð ð )Øœ)Ÿ/™/Ò)Ü�5‹z˜A‹~Ø*Ø—I‘IÑ:±EÓ:Ó:ñð ð +à×,Ñ,¨UÓ3Ð3r  c                óF   • [        SU R                  R                  -  5      e)Nz3Dialect '%s' does not support empty set expression.rÄ  ©r  Úelement_typesrâ  s      r  r  Ú SQLCompiler.visit_empty_set_expr¢  s$   € Ü!ØAØ�l‰l×Ññ ó
ð 	
r  c                ó|  ^ ^^	^
• TR                   R                  T R                  5      nU(       d‘  UR                  (       aT  T R                  R                  (       a  SOST R                  TR                   R                  TR                  5      -   nSU4$ T R                  TR                   /TR                  5      n SU4$ UR                  (       dQ  UR                  (       a¥  [        US   [        R                  5      (       aƒ  [        US   [        [        45      (       de  UR                  (       a  [        S5      eT R                  R                  (       a  SOSSR!                  UU 4S j[#        U5       5       5      -   nSU4$ U(       aŽ  T R$                  nUR'                  U5      nU(       a  UR)                  S5      (       d   S5       eUR)                  S5      R+                  S	5      nUS
   US   sm	m
SR!                  U	U
UU 4S jU 5       5      nSU4$ SR!                  UU 4S jU 5       5      nSU4$ )NúVALUES r¬  r   z?bind_expression() on TupleType not supported with literal_bindsrØ   c           	   3  ó    >#   • U  HC  u  pS SR                  U4S j[        UTR                  R                  5       5       5      -  v •  ME     g7f)rd  rØ   c              3  óJ   >#   • U  H  u  pTR                  X5      v •  M     g 7fr  r0  )r>  rþ  Ú
param_typer  s      €r  r@  Ú[SQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>.<genexpr>Î  s-   øé € ð ò2Ñ-˜Eð ×1Ñ1°%×DÐDò2ùr¡  N)rˆ   r  r  rû  )r>  r4  r5  r\  r  s      €€r  r@  ÚQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>Ë  sQ   øé € ð ò ):Ñ$�Að à—I‘Iô ä14Ø)¨9¯>©>×+?Ñ+?ô2óó öò ):ùs   ƒAAr1   ú)unexpected format for expanding parameterr@  r   r!  c              3  ón   >#   • U  H*  nT< TR                  UTR                  5      < T< 3v •  M,     g 7fr  ©r1  r  )r>  rþ  rC  rD  r\  r  s     €€€€r  r@  r'  á  s8   øé € ð 3ò "(˜ò	  Ø×1Ñ1°%¸¿¹ÕHÚ õ	ò "(ùó   ƒ25c              3  ó\   >#   • U  H!  nTR                  UTR                  5      v •  M#     g 7fr  r*  )r>  rþ  r\  r  s     €€r  r@  r'  ë  s,   øé € ð 3â!'˜ð ×-Ñ-¨e°Y·^±^×DÐDÚ!'ùs   ƒ),r  )r  r  r½  rú  Útuple_in_valuesr  rû  r  Ú_isnullrÂ  Úcollections_abcr   r   ÚbytesÚ_has_bind_expressionrç  rˆ   r3  rR  Úsearchr—   rF  )r  r\  ré  Úbind_expression_templateÚtyp_dialect_implÚreplacement_expressionÚpost_compile_patternrÏ  rH  rC  rD  s   ``       @@r  Ú2_literal_execute_expanding_parameter_literal_bindsÚ>SQLCompiler._literal_execute_expanding_parameter_literal_binds¨  s"  û€ ð %Ÿ>™>×AÑAÀ$Ç,Á,ÓOÐæð
  ×.×.à!%§¡×!=×!=‘IÀ2Ø×0Ñ0Ø—N‘N×(Ñ(¨)×*=Ñ*=óñ*Ð&ðz Ð)Ð)Ð)ðm *.×)EÑ)EØ—^‘^Ð$ i×&9Ñ&9ó*Ñ&ðl Ð)Ð)Ð)ðe ×,×,Ø×$×$Ü˜6 !™9¤o×&>Ñ&>×?Ñ?Ü˜v a™y¬3´¨,×7Ñ7à×4×4Ü)ð$óð ð "Ÿ\™\×9×9‘	¸rØ—	‘	õ ô )2°&Ô(9óó ñ&Ð"ðN Ð)Ð)Ð)ö1 (Ø'+×'AÑ'AÐ$Ø(×/Ñ/Ð0HÓI�Þ˜QŸW™WØ÷ñ ð ?à>ó?ð ð —g‘g˜a“j×&Ñ& tÓ,�Ø$'¨¡F¨C°©FÐ!�˜Ø)-¯©÷ 3ñ "(ó3ó *Ð&ð Ð)Ð)Ð)ð *.¯©õ 3á!'ó3ó *Ð&ð
 Ð)Ð)Ð)r  c                ó  ^ ^^
^^^• TR                   (       a  T R                  TU5      $ T R                  nTR                  R	                  U5      mT R
                  (       a  T R                  mOT R                  mT R                  R                  (       a  TR                  (       a
  UUU U4S jm
OU4S jm
U(       ds  / mTR                  (       a4  T R                  TR                  R                  TR                  5      nTU4$ T R                  TR                  /TR                  5      n TU4$ TR                  (       dQ  TR                  (       aÚ  [        US   [         R"                  5      (       a¸  [        US   [$        [&        45      (       dš  TR(                  (       a   e[+        US5       VVVV	s/ s H*  u  pg[+        US5        H  u  p‰U< SU< SU< 3U	4PM     M,     sn	nnnmUR,                  (       a  SOSSR/                  U
U4S	 j[+        U5       5       5      -   nTU4$ [+        US5       VV	s/ s H  u  piU< SU< 3U	4PM     sn	nmSR/                  U
4S
 jT 5       5      nTU4$ s  sn	nnnf s  sn	nf )Nc                óH   >• TR                  TR                  TTSU 0-  5      $ ©Nr  )Úrender_bind_castr  )r  Úbind_templater\  r  r4  s    €€€€r  Ú_render_bindtemplateÚNSQLCompiler._literal_execute_expanding_parameter.<locals>._render_bindtemplate  s,   ø€ Ø×,Ñ,Ø—N‘NØ$Ø! V¨T NÑ2óð r  c                ó   >• TSU 0-  $ r;  r  )r  r=  s    €r  r>  r?    s   ø€ Ø$¨° ~Ñ5Ð5r  r   r   rG  r"  r¬  rØ   c              3  ó‚   >^^#   • U  H2  u  mmS SR                  UUUU4S j[        T5       5       5      -  v •  M4     g7f)rd  rØ   c              3  ób   >#   • U  H$  u  pT" TT[        T5      -  U-      S    5      v •  M&     g7f)r   N)rØ  )r>  r6  rþ  r>  r4  r]  r5  s      €€€€r  r@  ÚMSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>.<genexpr>-  sF   øé € ð ò )A™H˜Añ -Ø% a¬#¨mÓ*<Ñ&<¸qÑ&@ÑAÀ!ÑD÷ð ò )Aùó   ƒ,/N)rˆ   r3  )r>  r4  r5  r>  r]  s    @@€€r  r@  ÚCSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>*  sF   úé € ð ò ):Ñ$�A�}ð à—I‘I÷ ô )2°-Ô(@ó	ó öò ):ùs   …:?c              3  ó8   >#   • U  H  u  pT" U5      v •  M     g 7fr  r  )r>  r?  rþ  r>  s      €r  r@  rE  ;  s   øé € ð /Ú<E©j¨cÑ$ S×)Ð)ºIùr{  )rP  r7  r½  r  r  rh  rb  ra  Ú_bind_typing_render_castsr<  rú  r  rû  r  r.  rÂ  r/  r   r   r0  Ú	_is_arrayr3  r-  rˆ   )r  r  r\  ré  r½  r5  r4  r5  r6  rþ  r>  r=  r]  r4  s   ` `       @@@@r  rO  Ú0SQLCompiler._literal_execute_expanding_parameterò  sO  ý€ Ø×$×$Ø×JÑJØ˜6óð ð —,‘,ˆØ$Ÿ>™>×AÑAÀ'ÓJÐà××Ø ×9Ñ9‰Mà ×-Ñ-ˆMð �L‰L×2×2Ø ×1×1÷ñ õ6ö ØˆIØ×.×.Ø)-×)EÑ)EØ—N‘N×(Ñ(¨)×*=Ñ*=ó*Ð&ðV Ð0Ð0Ð0ðO *.×)EÑ)EØ—^‘^Ð$ i×&9Ñ&9ó*Ñ&ðN Ð0Ð0Ð0ðG ×,×,Ø×$×$Ü˜6 !™9¤o×&>Ñ&>×?Ñ?Ü˜v a™y¬3´¨,×7Ñ7à'×1×1Ð1Ð1ô )2°&¸!Ô(<öâ(<Ñ$�AÜ )¨-¸× ;‘H�Aó  $£QªÐ*¨EÓ2á ;ñ 3Ù(<ôˆIð %×4×4‘	¸"Ø—	‘	õ ô )2°&Ô(9óó ñ&Ð"ð. Ð0Ð0Ð0ô !*¨&°!Ô 4ôâ 4‘H�Aó !¢!Ð$ eÓ,Ù 4òˆIð &*§Y¡Yô /Ù<Eó/ó &Ð"ð Ð0Ð0Ð0ùõ;ùó*s   Æ71I6
È<I>c           	     óú  • U(       Ga
  [         R                  " UR                  5      (       aå  Ubx  US   nUR                  R	                  [
        R                  " [        UR                  R                  U/-   5      [        UR                  R                  U/-   5      5      5        OjUR                  R	                  [
        R                  " [        UR                  R                  5      [        UR                  R                  5      5      5        U R                  (       aW  [        UR                  [        R                  5      (       a.  [        UR                  [        R                  5      (       a  SUS'   U=(       d    UR                  nU R                  USS 5      n	U	(       a	  U	" X40 UD6$  [         U   n
U R"                  " UU
4UUS.UD6$ ! [$         a  n[&        R(                  " X5      UeS nAff = f)NÚenclosing_lateralTrP  r¢   )Úfrom_linterÚlateral_from_linter)r!   Úis_comparisonr†  rŒ  rœ  rç  Úproductr)   r‰   r*   r�   r`  rÂ  r   rE   rp  rÒ  r  r»  r2   rÞ  )r  r¢   r  Úeager_groupingrL  rM  râ  rK  rq  rr  rs  rá  s               r  r  ÚSQLCompiler.visit_binaryA  s¶  € ÷ œ9×2Ò2°6·?±?×CÑCØ"Ñ.Ø$&Ð':Ñ$;Ð!Ø#×)Ñ)×0Ñ0Ü×%Ò%Ü!Ø"ŸK™K×5Ñ5Ð9JÐ8KÑKóô "Ø"ŸL™L×6Ñ6Ð:KÐ9LÑLóó	õ	ð ×!Ñ!×(Ñ(Ü×%Ò%Ü! &§+¡+×";Ñ";Ó<Ü! &§,¡,×"<Ñ"<Ó=óôð × × Ü˜6Ÿ;™;¬×(>Ñ(>×?Ñ?Ü˜6Ÿ<™<¬×)?Ñ)?×@Ñ@à$(ˆBÐ Ñ!à%×8¨¯©ˆ	Ø×*Ñ*¨9°hÀÓEˆÞÙ˜Ñ0¨RÑ0Ð0ðÜ$ YÑ/�ð ×4Ò4ØØðð !,Ø(;ñ	ð
 ñð øô ó PÜ×5Ò5°dÓFÈCÐOûðPús   Æ4	G Ç
G:ÇG5Ç5G:c                ó<   • U R                   " UR                  40 UD6$ r  )rÄ  Úsql_functionrþ  s       r  Ú&visit_function_as_comparison_op_binaryÚ2SQLCompiler.visit_function_as_comparison_op_binaryy  s   € Ø�|Š|˜G×0Ñ0Ñ7°BÑ7Ð7r  c                ó0  • U R                   R                  (       a>  U R                  " UR                  40 UD6S-   U R                  " UR                  40 UD6-   $ U R                  " UR                  40 UD6S-   U R                  " UR                  40 UD6-   $ )Nz %% rÖ   )rµ  r  rÄ  r‰   r�   rô  s       r  Úvisit_mod_binaryÚSQLCompiler.visit_mod_binary|  s‰   € Ø�=‰=×)×)à—’˜VŸ[™[Ñ/¨BÑ/Øñà—,’,˜vŸ|™|Ñ2¨rÑ2ñ3ðð —’˜VŸ[™[Ñ/¨BÑ/Øñà—,’,˜vŸ|™|Ñ2¨rÑ2ñ3ðr  c                ó†   • UR                   US'   U R                  " USU R                  UR                  5      -   S-   40 UD6$ )NrP  rO  )rP  r  rê  rs  rþ  s       r  Úvisit_custom_op_binaryÚ"SQLCompiler.visit_custom_op_binaryŠ  sQ   € Ø'×6Ñ6ˆÐÑØ×,Ò,ØØ�$×,Ñ,¨X×->Ñ->Ó?Ñ?À#ÑEñ
ð ñ
ð 	
r  c                ó`   • U R                   " XR                  UR                  5      S-   40 UD6$ rj  )rê  rê  rs  rþ  s       r  Úvisit_custom_op_unary_operatorÚ*SQLCompiler.visit_custom_op_unary_operator’  s6   € Ø×4Ò4Ø×/Ñ/°×0AÑ0AÓBÀSÑHñ
ØLNñ
ð 	
r  c                ób   • U R                   " USU R                  UR                  5      -   40 UD6$ rj  )rë  rê  rs  rþ  s       r  Úvisit_custom_op_unary_modifierÚ*SQLCompiler.visit_custom_op_unary_modifier—  s8   € Ø×4Ò4Ø�S˜4×5Ñ5°h×6GÑ6GÓHÑHñ
ØLNñ
ð 	
r  c                óü   • UR                  SS5      nSUS'   UR                  US'   UR                  R                  " U 4SU0UD6U-   UR                  R                  " U 4SU0UD6-   nU(       a  U(       a  SU-  nU$ )Nro  FTÚ
_binary_oprP  rd  )rÙ  r†  r‰   rì  r�   )r  r¢   rs  rP  râ  ro  r  s          r  r  Ú$SQLCompiler._generate_generic_binaryœ  s¤   € ð #%§&¡&Ð)BÀEÓ"JÐà(,ˆÐ$Ñ%Ø!Ÿ?™?ˆˆ<Ñà�K‰K×*Ò*ØñØ%3ðØ79ñð ñð �l‰l×-Ò-ØñØ%3ðØ79ññ	ð 	ö #¦~Ø˜D‘=ˆDØˆr  c                ó@   • X!R                   R                  " U 40 UD6-   $ r  r¬  ©r  rè  rs  râ  s       r  rê  Ú,SQLCompiler._generate_generic_unary_operatorµ  s   € ØŸ-™-×:Ò:¸4ÑFÀ2ÑFÑFÐFr  c                óB   • UR                   R                  " U 40 UD6U-   $ r  r¬  rf  s       r  rë  Ú,SQLCompiler._generate_generic_unary_modifier¸  s!   € Ø�}‰}×/Ò/°Ñ;¸Ñ;¸hÑFÐFr  c                óH   • [         R                  " S[        R                  S9$ )Nz'%')r  )r   Úliteral_columnr%   Ú
STRINGTYPErD  s    r  Ú_like_percent_literalÚ!SQLCompiler._like_percent_literal»  s   € ä×&Ò& u´H×4GÑ4GÑHÐHr  c                óD   • SUR                   R                  " U 40 UD6 S3$ )Nzlower(rJ  r¬  rû  s      r  Ú$visit_ilike_case_insensitive_operandÚ0SQLCompiler.visit_ilike_case_insensitive_operand¿  s&   € Ø˜Ÿ™×:Ò:¸4ÑFÀ2ÑFÐGÀqÐIÐIr  c                ó¾   • UR                  5       nU R                  nUR                  UR                  5      R                  U5      Ul        U R                  " X40 UD6$ r  ©Ú_clonerm  Úconcatr�   Úvisit_like_op_binary©r  r¢   r†  râ  Úpercents        r  Úvisit_contains_op_binaryÚ$SQLCompiler.visit_contains_op_binaryÂ  sM   € Ø—‘“ˆØ×,Ñ,ˆØ—~‘~ f§l¡lÓ3×:Ñ:¸7ÓCˆŒØ×(Ò(¨Ñ@¸RÑ@Ð@r  c                ó¾   • UR                  5       nU R                  nUR                  UR                  5      R                  U5      Ul        U R                  " X40 UD6$ r  ©rt  rm  ru  r�   Úvisit_not_like_op_binaryrw  s        r  Úvisit_not_contains_op_binaryÚ(SQLCompiler.visit_not_contains_op_binaryÈ  sM   € Ø—‘“ˆØ×,Ñ,ˆØ—~‘~ f§l¡lÓ3×:Ñ:¸7ÓCˆŒØ×,Ò,¨VÑDÀÑDÐDr  c                ó  • UR                  5       nU R                  n[        UR                  5      Ul        UR	                  [        UR
                  5      5      R	                  U5      Ul        U R                  " X40 UD6$ r  ©rt  rm  r3  r‰   ru  r�   Úvisit_ilike_op_binaryrw  s        r  Úvisit_icontains_op_binaryÚ%SQLCompiler.visit_icontains_op_binaryÎ  sh   € Ø—‘“ˆØ×,Ñ,ˆÜ,¨V¯[©[Ó9ˆŒØ—~‘~Ü" 6§<¡<Ó0ó
ç
‰&�‹/ð 	Œð ×)Ò)¨&ÑA¸bÑAÐAr  c                ó  • UR                  5       nU R                  n[        UR                  5      Ul        UR	                  [        UR
                  5      5      R	                  U5      Ul        U R                  " X40 UD6$ r  ©rt  rm  r3  r‰   ru  r�   Úvisit_not_ilike_op_binaryrw  s        r  Úvisit_not_icontains_op_binaryÚ)SQLCompiler.visit_not_icontains_op_binary×  sh   € Ø—‘“ˆØ×,Ñ,ˆÜ,¨V¯[©[Ó9ˆŒØ—~‘~Ü" 6§<¡<Ó0ó
ç
‰&�‹/ð 	Œð ×-Ò-¨fÑEÀ"ÑEÐEr  c                ó    • UR                  5       nU R                  nUR                  UR                  5      Ul        U R                  " X40 UD6$ r  )rt  rm  Ú_rconcatr�   rv  rw  s        r  Úvisit_startswith_op_binaryÚ&SQLCompiler.visit_startswith_op_binaryà  sD   € Ø—‘“ˆØ×,Ñ,ˆØ×'Ñ'¨¯©Ó5ˆŒØ×(Ò(¨Ñ@¸RÑ@Ð@r  c                ó    • UR                  5       nU R                  nUR                  UR                  5      Ul        U R                  " X40 UD6$ r  )rt  rm  r‹  r�   r}  rw  s        r  Úvisit_not_startswith_op_binaryÚ*SQLCompiler.visit_not_startswith_op_binaryæ  sD   € Ø—‘“ˆØ×,Ñ,ˆØ×'Ñ'¨¯©Ó5ˆŒØ×,Ò,¨VÑDÀÑDÐDr  c                óæ   • UR                  5       nU R                  n[        UR                  5      Ul        UR	                  [        UR
                  5      5      Ul        U R                  " X40 UD6$ r  )rt  rm  r3  r‰   r‹  r�   r‚  rw  s        r  Úvisit_istartswith_op_binaryÚ'SQLCompiler.visit_istartswith_op_binaryì  sZ   € Ø—‘“ˆØ×,Ñ,ˆÜ,¨V¯[©[Ó9ˆŒØ×'Ñ'Ô(>¸v¿|¹|Ó(LÓMˆŒØ×)Ò)¨&ÑA¸bÑAÐAr  c                óæ   • UR                  5       nU R                  n[        UR                  5      Ul        UR	                  [        UR
                  5      5      Ul        U R                  " X40 UD6$ r  )rt  rm  r3  r‰   r‹  r�   r‡  rw  s        r  Úvisit_not_istartswith_op_binaryÚ+SQLCompiler.visit_not_istartswith_op_binaryó  sZ   € Ø—‘“ˆØ×,Ñ,ˆÜ,¨V¯[©[Ó9ˆŒØ×'Ñ'Ô(>¸v¿|¹|Ó(LÓMˆŒØ×-Ò-¨fÑEÀ"ÑEÐEr  c                ó    • UR                  5       nU R                  nUR                  UR                  5      Ul        U R                  " X40 UD6$ r  rs  rw  s        r  Úvisit_endswith_op_binaryÚ$SQLCompiler.visit_endswith_op_binaryú  sB   € Ø—‘“ˆØ×,Ñ,ˆØ—~‘~ f§l¡lÓ3ˆŒØ×(Ò(¨Ñ@¸RÑ@Ð@r  c                ó    • UR                  5       nU R                  nUR                  UR                  5      Ul        U R                  " X40 UD6$ r  r|  rw  s        r  Úvisit_not_endswith_op_binaryÚ(SQLCompiler.visit_not_endswith_op_binary   sB   € Ø—‘“ˆØ×,Ñ,ˆØ—~‘~ f§l¡lÓ3ˆŒØ×,Ò,¨VÑDÀÑDÐDr  c                óæ   • UR                  5       nU R                  n[        UR                  5      Ul        UR	                  [        UR
                  5      5      Ul        U R                  " X40 UD6$ r  r�  rw  s        r  Úvisit_iendswith_op_binaryÚ%SQLCompiler.visit_iendswith_op_binary  sX   € Ø—‘“ˆØ×,Ñ,ˆÜ,¨V¯[©[Ó9ˆŒØ—~‘~Ô&<¸V¿\¹\Ó&JÓKˆŒØ×)Ò)¨&ÑA¸bÑAÐAr  c                óæ   • UR                  5       nU R                  n[        UR                  5      Ul        UR	                  [        UR
                  5      5      Ul        U R                  " X40 UD6$ r  r†  rw  s        r  Úvisit_not_iendswith_op_binaryÚ)SQLCompiler.visit_not_iendswith_op_binary  sX   € Ø—‘“ˆØ×,Ñ,ˆÜ,¨V¯[©[Ó9ˆŒØ—~‘~Ô&<¸V¿\¹\Ó&JÓKˆŒØ×-Ò-¨fÑEÀ"ÑEÐEr  c                ó  • UR                   R                  SS 5      nUR                  R                  " U 40 UD6< SUR                  R                  " U 40 UD6< 3Ub%  SU R                  U[        R                  5      -   -   $ S-   $ )Nr‚  z LIKE ú ESCAPE r¬  ©Ú	modifiersrÙ  r‰   rì  r�   r1  r%   rl  ©r  r¢   r†  râ  r‚  s        r  rv  Ú SQLCompiler.visit_like_op_binary  s�   € Ø×!Ñ!×%Ñ% h°Ó5ˆð �K‰K×*Ò*¨4Ñ6°2Ô6Ø�L‰L×+Ò+¨DÑ7°BÓ7ð
ð
 Ñ!ð ˜×2Ñ2°6¼8×;NÑ;NÓOÑOñ	
ð 	
ð ñ
ð 	
r  c                ó  • UR                   R                  SS 5      nUR                  R                  " U 40 UD6< SUR                  R                  " U 40 UD6< 3Ub%  SU R                  U[        R                  5      -   -   $ S-   $ )Nr‚  z
 NOT LIKE r¤  r¬  r¥  r§  s        r  r}  Ú$SQLCompiler.visit_not_like_op_binary   s‹   € Ø×!Ñ!×%Ñ% h°Ó5ˆà�K‰K×*Ò*¨4Ñ6°2Ô6Ø�L‰L×+Ò+¨DÑ7°BÓ7ð
ð
 Ñ!ð ˜×2Ñ2°6¼8×;NÑ;NÓOÑOñ	
ð 	
ð ñ
ð 	
r  c                óÖ   • U[         R                  L aD  UR                  5       n[        UR                  5      Ul        [        UR
                  5      Ul        U R                  " X40 UD6$ r  )r!   Úilike_oprt  r3  r‰   r�   rv  rô  s       r  r‚  Ú!SQLCompiler.visit_ilike_op_binary+  sS   € Ø”y×)Ñ)Ò)Ø—]‘]“_ˆFÜ0°·±Ó=ˆFŒKÜ1°&·,±,Ó?ˆFŒLð ×(Ò(¨Ñ@¸RÑ@Ð@r  c                óÖ   • U[         R                  L aD  UR                  5       n[        UR                  5      Ul        [        UR
                  5      Ul        U R                  " X40 UD6$ r  )r!   Únot_ilike_oprt  r3  r‰   r�   r}  rô  s       r  r‡  Ú%SQLCompiler.visit_not_ilike_op_binary4  sS   € Ø”y×-Ñ-Ò-Ø—]‘]“_ˆFÜ0°·±Ó=ˆFŒKÜ1°&·,±,Ó?ˆFŒLð ×,Ò,¨VÑDÀÑDÐDr  c                ór   • UR                   R                  SS5      nU R                  " X(       a  SOS40 UD6$ )Nr¿   Fz BETWEEN SYMMETRIC z	 BETWEEN ©r¦  rÙ  r  ©r  r¢   r†  râ  r¿   s        r  Úvisit_between_op_binaryÚ#SQLCompiler.visit_between_op_binary=  s?   € Ø×$Ñ$×(Ñ(¨°eÓ<ˆ	Ø×,Ò,Ø­YÑ)¸Kñ
ØKMñ
ð 	
r  c                ót   • UR                   R                  SS5      nU R                  " UU(       a  SOS40 UD6$ )Nr¿   Fz NOT BETWEEN SYMMETRIC z NOT BETWEEN r²  r³  s        r  Úvisit_not_between_op_binaryÚ'SQLCompiler.visit_not_between_op_binaryC  sB   € Ø×$Ñ$×(Ñ(¨°eÓ<ˆ	Ø×,Ò,ØÞ)2Ñ%¸ñ
ð ñ
ð 	
r  c                ó\   • [         R                  " SU R                  R                  -  5      e©Nz/%s dialect does not support regular expressions©r2   r  r½  r  rô  s       r  Úvisit_regexp_match_op_binaryÚ(SQLCompiler.visit_regexp_match_op_binaryK  ó,   € ô ×ÒØ=Ø�l‰l×Ññ ó
ð 	
r  c                ó\   • [         R                  " SU R                  R                  -  5      erº  r»  rô  s       r  Ú visit_not_regexp_match_op_binaryÚ,SQLCompiler.visit_not_regexp_match_op_binaryS  r¾  r  c                ó\   • [         R                  " SU R                  R                  -  5      e)Nz;%s dialect does not support regular expression replacementsr»  rô  s       r  Úvisit_regexp_replace_op_binaryÚ*SQLCompiler.visit_regexp_replace_op_binary[  s,   € ô ×ÒØIØ�l‰l×Ññ ó
ð 	
r  c           	     ó0	  • U(       aE  UR                   c8  UR                  c+  U R                  b  U R                  R                  SS9U l        U(       Gd  UR                  R                  U R                  5      n	U	R                  (       aØ  U	R                  U5      n
U R                  " U
4SUU=(       a    UR                  (       + UUS.UD6nUR                  (       aƒ  [        R                  " SU5      nU(       d   S5       eSUR                  S5      < SUR                  S	5      < S
UR                  S5      < S3nU(       a  U R                  " U4SUS.UD6nSU-  $ U$ U(       dG  U=(       d(    UR                  =(       d    U=(       a    U R                   nU=(       d    UR                  nOSnU(       a-  U R                  " U4SS0UD6nUR                  (       a  SU-  nU$ U R#                  U5      nXðR$                  ;   Gad  U R$                  U   nUULGaO  UR&                  (       d  UR&                  (       am  UR(                  R+                  UR(                  5      (       dC  UR,                  R+                  UR,                  5      (       d  [.        R0                  " SU-  5      eUR                  UR                  :w  a  [.        R0                  " SU< S35      eUR2                  (       d  UR2                  (       ai  UR2                  (       a'  UR2                  (       a  [.        R0                  " S5      e[.        R0                  " SUR4                   SUR4                   S35      eU=U R$                  UR4                  '   U R$                  U'   U R6                  nU(       aM  Uu  nnUR,                   H8  nUR4                  U;   d  M  UUR4                     nUU   R9                  U5        M:     UR:                  (       a  SU l        U(       aB  U(       a  SU l        U(       a  U =R@                  U1-  sl         OU =RB                  U1-  sl!        U RD                  " U4UUR                  UR                  S.UD6nUR                  (       a  SU-  nU$ )NT)rY  )Úskip_bind_expressionr¹  Úliteral_bindsrP  Úrender_postcompilez&^(.*)\(__\[POSTCOMPILE_(\S+?)\]\)(.*)$r(  z(__[POSTCOMPILE_r1   r@  r   z~~REPL~~r!  z~~]))r¹  r3  rd  Fr¹  zIBind parameter '%s' conflicts with unique bind parameter of the same namez"Can't reuse bound parameter name 'zê' in both 'expanding' (e.g. within an IN expression) and non-expanding contexts.  If this parameter is to receive a list/array value, set 'expanding=True' on it for expressions that aren't IN, otherwise use a different parameter name.a)  Encountered unsupported case when compiling an INSERT or UPDATE statement.  If this is a multi-table UPDATE statement, please provide string-named arguments to the values() method with distinct names; support for multi-table UPDATE statements that target multiple tables for UPDATE is very limitedzbindparam() name 'zÌ' is reserved for automatic usage in the VALUES or SET clause of this insert/update statement.   Please use a name other than column name when using bindparam() with insert() or update() (for example, 'b_z').)Úpost_compileÚ	expandingÚbindparam_type)#rþ  r  ro  rÚ  r  Údialect_implr½  r1  Úbind_expressionrÄ  rÊ  r�  r…  r—   rN  rP  r`  Ú_truncate_bindparamr\  r«   r$  Úintersectionr¢  r2   r  Ú_is_crudr?  rt  rÎ  Ú
isoutparamÚhas_out_parametersri  rq  rr  r  )r  rü  r¹  rÇ  rÆ  rP  rÈ  Úis_upsert_setrî  ÚimplrÍ  ÚwrappedrÏ  r˜  rÉ  r  Úexistingr  r¤  r£  r¥  r§  s                         r  Úvisit_bindparamÚSQLCompiler.visit_bindparamc  s7  € ö Ø—‘Ñ'Ø×"Ñ"Ñ*Ø×&Ñ&Ñ2à%)×%;Ñ%;×%DÑ%DØ,0ð &Eð &ˆDÔ"÷ $Ø—>‘>×.Ñ.¨t¯|©|Ó<ˆDØ×(×(Ø"&×"6Ñ"6°yÓ"A�ØŸ,š,Ø#ðà)-Ø*?Ø"/×"K¸	×8KÑ8KÔ4KØ$3Ø'9ñð ñ�ð ×&×&ô ŸšØAÀ7ó�Aö ÐIÐIÓI™1àŸ™ ž
ØŸ™ ž
ØŸ™ ž
ð�Gö %Ø"×;Ò;Ø%ðà26Ø5<ñð %ñ	˜ð  &¨™|Ð+à�æà÷ DØ×,Ñ,÷Dà)×B¨d×.BÑ.Bð ð
 +×A¨i×.AÑ.A‰Là ˆLæØ×/Ò/ØñØ15ðØ9?ñˆCð ×"×"Ø˜s‘l�ØˆJà×'Ñ'¨	Ó2ˆà—:‘:ÔØ—z‘z $Ñ'ˆHØ˜yÓ(à—_—_¨	×(8×(8Ø$×.Ñ.×;Ñ;Ø!×+Ñ+÷ñ ð %×0Ñ0×=Ñ=Ø!×-Ñ-÷ñ ô ×*Ò*ðAØCGñHóð ð ×'Ñ'¨9×+>Ñ+>Ó>Ü×*Ó*ó :>ð@óð ð ×&×&¨)×*<×*<Ø×(×(¨Y×-?×-?ô "×.Ò.ð&ó
ð 
ô "×.Ò.Ø0°·±°ð @"ð #,§-¡- °ð5ó	ð 	ð 8AÐ@ˆ�
‰
�9—=‘=Ñ! D§J¡J¨tÑ$4ð ×/Ñ/ˆ
æØ#‰JˆD�$Ø×+Ô+�Ø—6‘6˜T•>Ø˜bŸf™f™�BØ˜‘H—O‘O IÖ.ñ ,ð
 ××Ø&*ˆDÔ#æÞ!Ø+/�Ô(æØ×+Ò+°	¨{Ñ:Ö+à×(Ò(¨Y¨KÑ7Õ(à×#Ò#Øð
à%Ø×)Ñ)Ø$Ÿ>™>ñ	
ð
 ñ
ˆð ××Ø˜3‘,ˆCàˆ
r  c                ó   • [        5       er  ræ  )r  r  Ú
dbapi_typer¤  s       r  r<  ÚSQLCompiler.render_bind_cast  s   € Ü!Ó#Ð#r  c                óî  • U[         La  UnO¦UR                  c�  UR                  c€  UR                  SS 5      nU(       aF  U[        R
                  [        R                  4;  a"  [        R                  " SUR                  45        U R                  " [        R                  40 UD6$ UR                  nUR                  (       a  U R                  nU" UUUS9u  p‰U	$ U R!                  XQR"                  5      $ )Nrc  z‰Bound parameter '%s' rendering literal NULL in a SQL expression; comparisons to NULL should not use operators outside of 'is' or 'is not')r3  )r-   rþ  r  rÙ  r!   Úis_Úis_notr&   Úwarn_limitedr?  rÄ  r%   r"  r  rÊ  r7  r1  r  )
r  rü  r1  r3  râ  rþ  ÚopÚleepr]  r_  s
             r  rN  Ú$SQLCompiler.render_literal_bindparam  sÝ   € ð  ¤vÒ-Ø(‰Eà�‰Ñ&¨9×+=Ñ+=Ñ+EØ—V‘V˜L¨$Ó/�Þ˜"¤Y§]¡]´I×4DÑ4DÐ$EÓEÜ×%Ò%ð@ð #Ÿ™Ð(ô	ð —|’|¤H×$5Ñ$5Ñ<¸Ñ<Ð<Ø×-Ñ-ˆEà××Ø×JÑJˆDÙ*.ØØØ)Añ+Ñ'ˆIð
 $Ð#à×,Ñ,¨U·N±NÓCÐCr  c                óÂ  • Uc>  UR                   (       d-  U R                  [        R                  R	                  5       5      $ UR                  U R                  5      nU(       a	   U" U5      $ [        R                  " S[        R                  " U5       SU 35      e! [         a7  n[        R                  " S[        R                  " U5       SU S35      UeSnAff = f)zõRender the value of a bind parameter as a quoted literal.

This is used for statement sections that do not accept bind parameters
on the target driver/database.

This should be implemented by subclasses using the quoting services
of the DBAPI.

Nz Could not render literal value "z" with datatype z); see parent stack trace for more detail.z:No literal value renderer is available for literal value ")Úshould_evaluate_nonerÄ  r   rK   Ú	_instanceÚ_cached_literal_processorr½  r  r2   r  Úsql_utilÚ_repr_single_value)r  rþ  r  Ú	processorÚes        r  r1  Ú SQLCompiler.render_literal_value7  sä   € ð ‰= ×!;×!;ð —<‘<¤§¡× 7Ñ 7Ó 9Ó:Ð:à×3Ñ3°D·L±LÓAˆ	Þð	Ù  Ó'Ð'ô ×"Ò"ðÜ×/Ò/°Ó6Ð7ð 8!Ø!& ð)óð øô ó Ü×&Ò&ðÜ ×3Ò3°EÓ:Ð;ð <%à�gð #ð#óð ðûðús   Á%B Â
CÂ'2CÃCc                óØ   • XR                   ;   a  U R                   U   $ UR                  n[        U[        R                  5      (       a  U R                  SU5      nX R                   U'   U$ )Nrü  )r]  r?  rÂ  r   rC   rÑ  )r  rü  rí  s      r  rÎ  ÚSQLCompiler._truncate_bindparam^  s]   € ØŸ™Ó'Ø—?‘? 9Ñ-Ð-à—M‘Mˆ	Ü�i¤×!:Ñ!:×;Ñ;Ø×2Ñ2°;À	ÓJˆIð &/�‰˜	Ñ"àÐr  c                ó’  • X4U R                   ;   a  U R                   X4   $ UR                  U R                  5      n[        U5      U R                  S-
  :”  a]  U R
                  R                  US5      nUS[        U R                  S-
  S5       S-   [        U5      SS  -   nUS-   U R
                  U'   OUnXPR                   X4'   U$ )Né   r   r   rG  r1   )	r–  Ú	apply_mapr•  rØ  r“  r—  rÙ  ÚmaxÚhex)r  Úident_classr  ÚanonnameÚcounterÚ	truncnames         r  rÑ  Ú!SQLCompiler._truncated_identifierk  sØ   € ð Ð $×"6Ñ"6Ó6Ø×'Ñ'¨Ð(;Ñ<Ð<à—>‘> $§-¡-Ó0ˆäˆx‹=˜4×,Ñ,¨qÑ0Ó0Ø×.Ñ.×2Ñ2°;ÀÓBˆGà˜œS ×!2Ñ!2°QÑ!6¸Ó:Ð;Øñä�g“,˜q˜rÐ"ñ#ð ð
 5<¸a±KˆD×$Ñ$ [Ò1à ˆIØ4=×Ñ˜kÐ0Ñ1ØÐr  c                ó   • XR                   -  $ r  ©r•  ©r  r  s     r  Ú
_anonymizeÚSQLCompiler._anonymize€  s   € Ø—m‘mÑ#Ð#r  c                ó&  ^ • Ub  UR                  U5        Ub  UR                  U5        U(       dD  T R                  R                  U5      (       a$  T R                  R	                  U 4S jU5      n	UnU	nU(       a!  T R
                  R                  XA05      T l        U(       aQ  SU-  n
U(       a  U
$ Ub>  UR                  T R                  5      nUR                  (       a  T R                  X[U
5      n
U
$ T R                  [        R                  L a  T R                  SU0-  n
OT R                  SU0-  n
UbY  T R                  R                   (       a>  UR                  T R                  5      nUR                  (       a  T R                  X[U
5      n
U
$ )Nc                ó@   >• TR                   U R                  S5         $ )Nr   )rR  r—   )rÏ  r  s    €r  rå  Ú.SQLCompiler.bindparam_string.<locals>.<lambda>�  s   ø€ ˜d×8Ñ8¸¿¹À»ÒDr  z__[POSTCOMPILE_%s]r  )ÚaddrÎ  rQ  r2  rÖ  rs  rŸ   r  r½  Úrender_literal_castr<  r®  rw  rx  rb  ra  rG  )r  r  rÉ  rÊ  Úescaped_fromrË  Úaccumulate_bind_namesÚvisited_bindparamrâ  Únew_namer˜  Ú	type_impls   `           r  r  ÚSQLCompiler.bindparam_stringƒ  sp  ø€ ð !Ñ,Ø!×%Ñ% dÔ+ØÑ(Ø×$Ñ$ TÔ*æØ×&Ñ&×-Ñ-¨d×3Ñ3ð  ×2Ñ2×6Ñ6ÜDØó�ð  $�Ø�æØ&*×&=Ñ&=×&CÑ&CØÐ$ó'ˆDÔ#ö Ø&¨Ñ-ˆCÞð �
ð Ñ)Ø*×BÑBØ—L‘Ló�	ð ×0×0Ø×/Ñ/°È3ÓO�CØˆJØ�Z‰Zœ=×2Ñ2Ò2Ø×/Ñ/°6¸4°.Ñ@‰Cà×#Ñ# v¨t nÑ4ˆCð Ñ&Ø—‘×6×6à&×>Ñ>¸t¿|¹|ÓLˆIØ×)×)Ø×+Ñ+¨NÀsÓK�àˆ
r  c                óÄ   • UR                  5       nUR                  SS 5        [        UR                  UR                  5       H  u  pEUR
                  " U 4SU0UD6  M     g )NÚcte_opts)ÚcopyrŽ  r  r,  Ú_independent_ctes_optsrì  )r  Ústmtrâ  Úlocal_kwÚcteÚopts         r  r-  Ú&SQLCompiler._dispatch_independent_ctesÆ  sW   € Ø—7‘7“9ˆØ�‰�Z Ô&ÜØ×"Ñ" D×$?Ñ$?ö
‰HˆCð ×"Ò" 4ÑB°#ÐB¸ÔBò
r  c                ól  ^ • T R                  5       n	U	T R                  L d   eXS'   UR                  n
[        U
[        R
                  5      (       a  T R                  SU
5      n
SnSnUR                  5       nUR                  =(       d    UR                  nUT R                  ;   a»  T R                  U   u  nnnUU
:X  d   eXú4nT R                  U   nUR                  (       a|  UR                  (       a  [        R                  " S5      eXú4nU(       a  [        T R                  5      OSnXú4=nnT R                  U	 UT R                  U'   UU4-   T R                  U'   OCU(       a  [        T R                  5      OSnXú4nUT R                  ;   a  T R                  U   nOS nUb½  UUL nUUR                  L d  UUL a  SnO¢UUR                  L a/  U	U	 UR                  5       nUUL d   eUUL d   eT R                  U	 Od[!        U5      [!        U5      :X  d0  UR"                  c  UR"                  b  UR%                  U5      (       a  SnO[        R                  " SU
-  5      eU(       d  U(       d  g UR&                  bT  UR&                  nUR&                  R                  n[        U[        R
                  5      (       a  T R                  SU5      nOUnS nU(       Gaé  UT R                  U'   UU4-   T R                  U'   UT R                  ;  a  T R(                  " U40 UD6  U(       Gdœ  X;  Ga–  UR*                  (       a  ST l        T R.                  R1                  X5      nUR*                  (       d  UR2                  R4                  (       an  UR2                  nUR7                  S5       VVVVVs/ s H  u  nnnnnU(       a  M  U=(       d    UPM     nnnnnnUSS	R9                  U 4S
 jU 5       5      -  -  nUR;                  SS5      SL d   eT R                  (       d  UR2                  R<                  " T 4SU0UD6$ T R>                  " XR@                  40 UD6n UR2                  R<                  " T 4SS0UD6n!USU < SU!< S3-  nURB                  (       a#  UST R>                  " XRB                  40 UD6-   -  nUX‘'   U(       aÛ  U(       a  X¦RD                  URG                  5       '   U(       d"  U(       a  T R.                  R1                  X5      $ U(       am  T R.                  R1                  UU5      nT R.                  RI                  U
5      (       a  T R.                  RK                  U
5      n
UT RM                  U
5      -  nU$ T R.                  R1                  X5      $ g s  snnnnnf )NÚvisiting_cterç  TFz6CTE is stated as 'nest_here' in more than one locationr   z5Multiple, unrelated CTEs found with the same name: %rrd  rØ   c              3  ól   >#   • U  H)  nTR                   R                  UTR                  S 9v •  M+     g7f)rù  N)rµ  Úformat_label_namer•  )r>  Úidentr  s     €r  r@  Ú(SQLCompiler.visit_cte.<locals>.<genexpr>r  s9   øé € ð "ò *4 ð !ŸM™M×;Ñ;Ø %°·±ð <õ ò *4ùs   ƒ14Úsubqueryr®  rÚ   z
(rJ  rO  )'rÃ  rx  r  rÂ  r   rC   rÑ  Ú_get_reference_cteÚnestingrz  ry  r2   r  rØ  r˜  Ú	_restatesÚhashÚ_is_clone_ofÚcompareÚ
_cte_aliasÚ	visit_cteÚ	recursiver{  rµ  Úformat_aliasrà  Úname_cte_columnsÚ_generate_columns_plus_namesrˆ   rÙ  rì  Ú_generate_prefixesÚ	_prefixesÚ	_suffixesr‹  r)   Ú_requires_quotesrë  Úget_render_as_alias_suffix)"r  r  r®  ÚashintÚ	fromhintsr  rL  r	  rî  Ú	self_ctesÚcte_nameÚ
is_new_cteÚembedded_in_current_named_cteÚ_reference_cter  Ú	cte_levelrG  Úexisting_cte_optsÚcte_level_nameÚexisting_cteÚold_level_nameÚnew_level_nameÚexisting_cte_reference_cteÚpre_alias_cteÚcte_pre_alias_namer  Ú
col_sourceÚ
proxy_nameÚfallback_label_namer®  ÚrepeatedÚ
recur_colsÚprefixesr™   s"   `                                 r  r  ÚSQLCompiler.visit_cteÎ  s   ø€ ð ×(Ñ(Ó*ˆ	Ø˜DŸI™IÒ%Ð%Ð%à!$ˆ~Ñà—8‘8ˆä�h¤× 9Ñ 9×:Ñ:Ø×1Ñ1°'¸8ÓDˆHàˆ
Ø(-Ð%à×/Ñ/Ó1ˆà—+‘+×1 ×!1Ñ!1ˆð ˜T×3Ñ3Ó3Ø.2×.DÑ.DØñ/Ñ+ˆI�qÐ+ð ˜“=Ð �=à'Ð2ˆNØ×2Ñ2°>ÑBˆLð
 ××Ø$×,×,Ü×*Ò*ð1óð ð
 #,Ð!6�Þ/6œC §
¡
œO¸A�	Ø3<Ð2GÐG� à×+Ñ+¨NÐ;Ø:F�×'Ñ'¨Ñ7Ø9GØðKñ :�×&Ñ& ~Ñ6øö
 ,3œ˜DŸJ™Jœ¸ˆIØ'Ð2ˆNà ×!8Ñ!8Ó8Ø#×6Ñ6°~ÑF‘à#�àÑ#Ø,8¸LÐ,HÐ)ð �l×,Ñ,Ò,°°|Ò0CØ"‘
Ø §¡Ò.ð ˜lÐ+à-9×-LÑ-LÓ-NÐ*à1°^ÒCÐCÐCØ1°\ÒAÐAÐAà×*Ñ*Ð+EÑFô
 ˜#“Y¤$ |Ó"4Ó4ð  ×,Ñ,Ñ8Ø+×8Ñ8ÑDð  ŸK™K¨×5Ñ5ð "'‘Jô
 ×*Ò*ð,Ø.6ñ7óð ö
 žjØà�>‰>Ñ%ØŸN™NˆMØ!$§¡×!4Ñ!4ÐÜÐ,¬h×.GÑ.G×HÑHØ%)×%?Ñ%?ØÐ/ó&Ð"øð  ˆMØ!%ÐçØ69ˆD×#Ñ# NÑ3Ø5CØðGñ 6ˆD×"Ñ" >Ñ2ð  D§I¡IÓ-Ø—’˜}Ñ7°Ò7ç%¨#Ô*>Ø—=—=Ø*.�DÔ'Ø—}‘}×1Ñ1°#Ó@�Ø—=—= C§K¡K×$@×$@Ø!$§¡�Jð" )×EÑEÀdÔK÷"ò LñØØ&Ø/ØØ$ä'ó :Ð+×9¨zÒ9ñ Lð ô "ð  ˜FØŸ	™	ô "ñ *4ó	"ó ññ �Dð —z‘z *¨eÓ4¸Ò=Ð=Ð=à—z—zð Ÿ;™;×9Ò9ØñØ%+ðØ/5ñð ð  $×6Ò6ØŸ]™]ñ Ø.4ñ �Hð  ŸK™K×:Ò:ØñØ%)ðØ-3ñ�Eñ «h»Ð>Ñ>�Dà—=—=Ø˜C $×"9Ò"9ØŸ]™]ñ#Ø.4ñ#ñ ñ �Dð "&�	‘æÞØ5=×!Ñ! #§-¡-£/Ñ2æÖ"?Ø—}‘}×1Ñ1°#Ó@Ð@æ!Ø—}‘}×1Ñ1°#Ð7IÓJ�Ø—=‘=×1Ñ1°(×;Ñ;Ø#Ÿ}™}×2Ñ2°8Ó<�HØ˜×7Ñ7¸ÓAÑA�Ø�à—}‘}×1Ñ1°#Ó@Ð@àùöG"s   Î6V-ÏV-c                óœ   • UR                   (       a  S US'   UR                  (       a  U R                  " U40 UD6$ U R                  " U40 UD6$ )NrL  )Újoins_implicitlyÚ_is_lateralÚvisit_lateralÚvisit_aliasrû  s      r  Úvisit_table_valued_aliasÚ$SQLCompiler.visit_table_valued_alias¦  sJ   € Ø×#×#Ø $ˆBˆ}ÑØ××Ø×%Ò% gÑ4°Ñ4Ð4à×#Ò# GÑ2¨rÑ2Ð2r  c                ó(   • U R                   " U40 UD6$ r  )rö  rû  s      r  Úvisit_table_valued_columnÚ%SQLCompiler.visit_table_valued_column®  s   € Ø× Ò  Ñ/¨BÑ/Ð/r  c
           
     óp  ^ ^^
• U(       a6  ST
;  a  TR                   (       d   eTT
S'   U	(       a  ST
;  a  ST
;   a  U	T
S'   UbQ  UR                  TL aB  TR                  R                  " T 4UUUUUTS.T
D6nU(       a  U(       d  U(       a  SU< S3nU$ TT
S'   U(       d  U(       aR  [        TR                  [
        R                  5      (       a  T R                  STR                  5      nOTR                  nU(       a  T R                  R                  TW5      $ U(       aõ  U	(       a  WU	R                  TR                  5       '   TR                  R                  " T 4SUS	.T
D6nU(       a  SU< S3nUT R                  T R                  R                  TW5      5      -   nTR                  (       a>  TR                  (       a-  US
SR                  UU
U 4S jTR                    5       5      -  -  nU(       a  TU;   a  T R#                  UTUT   U5      nU$ TR                  R                  " T 4SU0T
D6$ )NrK  rM  )r®  r)  Úiscrudr*  ÚlateralÚenclosing_aliasrI  rJ  rM  rç  T)r®  rL  rd  rØ   c              3  ó  >#   • U  Hu  nTR                   R                  UR                  5      < TR                  (       a4  S TR                  R
                  R                  " UR                  40 TD6-  OS< 3v •  Mw     g7f)ú %sr¬  N)rµ  rë  r  Ú_render_derived_w_typesr½  r  rÄ  r  )r>  r  rç  rî  r  s     €€€r  r@  Ú*SQLCompiler.visit_alias.<locals>.<genexpr>ø  sz   øé € ð ò $+˜Cð !ŸM™M×/Ñ/°·±Õ9ð $)×#@×#@ð	 !&Ø"&§,¡,×"EÑ"E×"MÒ"MØ$'§H¡Hñ#"Ø06ñ#"ò!"ð
 &(ñ!(õ	ò $+ùs   ƒA=B rL  )rB  rà  rì  rÂ  r  r   rC   rÑ  rµ  r!  r‹  r)   r(  Ú_supports_derived_columnsÚ_render_derivedrˆ   r®  Úformat_from_hint_text)r  rç  r®  r)  rK  r*  r  rL  rM  rL  rî  r™   Ú
alias_namer˜  s   ``        `   r  rD  ÚSQLCompiler.visit_alias±  s,  ú€ ö Ø"¨&Ó0ð ×(×(Ð(Ð(Ø.3�Ð*Ñ+ö
 Ø)°Ó7Ø'¨6Ó1à0;�Ð,Ñ-àÑ&¨?×+BÑ+BÀeÒ+KØ—M‘M×4Ò4Øð	àØØØ#ØØ %ñ	ð ñ	ˆEö žV¦wøÛ"'Ð)�ØˆLà(-ˆFÐ$Ñ%æ–VÜ˜%Ÿ*™*¤h×&?Ñ&?×@Ñ@Ø!×7Ñ7¸ÀÇÁÓL‘
à"ŸZ™Z�
æØ—=‘=×-Ñ-¨e°ZÓ@Ð@ÞÞØ7A�×!Ñ! %§/¡/Ó"3Ñ4à—M‘M×4Ò4ØðØ!¨7ñØ6<ñˆE÷ Û"'Ð)�à˜$×9Ñ9Ø—‘×*Ñ*¨5°*Ó=óñ ˆCð ×.×.°5×3H×3HØ�vØ—I‘Iö ð $)§7¢7óó ññ �ö$ ˜U iÓ/Ø×0Ñ0Ø˜ 	¨%Ñ 0°&ó�ð ˆJð —=‘=×3Ò3ØñØ%ðØ)/ñð r  c                ó2   • SUS'   U R                   " U40 UD6$ )NTr  ©rD  )r  r  râ  s      r  Úvisit_subqueryÚSQLCompiler.visit_subquery  s!   € Øˆˆ:‰Ø×Ò Ñ/¨BÑ/Ð/r  c                ó8   • SUS'   SU R                   " U40 UD6-  $ )NTrL  z
LATERAL %srX  )r  Úlateral_râ  s      r  rC  ÚSQLCompiler.visit_lateral  s&   € Øˆˆ9‰Ø˜d×.Ò.¨xÑ>¸2Ñ>Ñ>Ð>r  c                óÜ   • U R                   " U4SS0UD6< SUR                  5       R                  " U 40 UD6< 3nUR                  b#  USUR                  R                  " U 40 UD6-  -  nU$ )Nr®  Tz TABLESAMPLE z REPEATABLE (%s))rD  Ú_get_methodrì  Úseed)r  Útablesampler®  râ  r  s        r  Úvisit_tablesampleÚSQLCompiler.visit_tablesample  s}   € à×Ò˜[Ñ<°Ð<¸Ô<Ø×#Ñ#Ó%×8Ò8¸ÑDÀÓDð
ˆð
 ×ÑÑ'ØÐ&Ø× Ñ ×3Ò3°DÑ?¸BÑ?ññ ˆDð ˆr  c                ó˜   ^ ^^• TR                  STR                  5        SR                  UUU 4S jTR                   5       5      nSU 3$ )NrÇ  rØ   c           	   3  ó¶   >#   • U  HN  nU  HD  nTR                   " [        R                  " US TR                  06R	                  5       40 TD6v •  MF     MP     g7f)rû  N)rÄ  r   r   Ú_column_typesr-  )r>  ÚchunkÚelemrà  râ  r  s      €€€r  r@  Ú-SQLCompiler._render_values.<locals>.<genexpr>,  sb   øé € ð 	
ò '�Ü�ð �LŠLÜ—’Ø26ðØ!×/Ñ/ñç‘*“,ñð ö	ñ ñò 'ùs   ƒAAr"  )Ú
setdefaultrÇ  rˆ   Ú_data)r  rà  râ  Útupless   ``` r  Ú_render_valuesÚSQLCompiler._render_values*  sG   ú€ Ø
�‰�o w×'<Ñ'<Ô=Ø—‘ö 	
ð !Ÿšó	
ó 	
ˆð ˜˜Ð!Ð!r  c           
     ó2  ^ ^• UR                   (       a  T R                  UT5        T R                  " U40 TD6nUR                  (       a  S nOR[	        UR
                  [        R                  5      (       a  T R                  SUR
                  5      nOUR
                  nUR                  (       a  SnOSnU(       aÛ  U(       a"  Ub  UOSUR                  UR                  5       '   Ub9  UR                  UL a*  UR                  (       a  [        R                  " S5      e U$ U(       ae  STS'   U< SU< S	T R                  T R                   R#                  U5      5      < S
SR%                  UU 4S jUR&                   5       5      < S	3nU$ U< SU< S	3nU$ )Nré  zLATERAL r¬  z(unnamed VALUES element)z5Can't use a LATERAL VALUES expression inside of a CTEFrï  rI  rJ  ú (rØ   c              3  óJ   >#   • U  H  nUR                   " T40 TD6v •  M     g 7fr  rë  rP  s     €€r  r@  Ú+SQLCompiler.visit_values.<locals>.<genexpr>_  s(   øé € ð "â%4 ð ×0Ò0°Ñ<¸Ö<Ú%4ùr¡  )r,  r-  rm  Ú_unnamedrÂ  r  r   rC   rÑ  rB  r‹  r)   rà  r2   r  r(  rµ  rë  rˆ   Úcolumns)	r  rà  r®  rL  r  râ  r§  r  rL  s	   `    `   r  Úvisit_valuesÚSQLCompiler.visit_values8  sb  ù€ ð ×$×$Ø×+Ñ+¨G°RÔ8à×Ò Ñ.¨2Ñ.ˆà××Ø‰DÜ˜Ÿ™¤h×&?Ñ&?×@Ñ@Ø×-Ñ-¨h¸¿¹ÓE‰Dà—<‘<ˆDà××Ø ‰GàˆGæÞà Ñ,‘DÐ2Lð ×!Ñ! '×"3Ñ"3Ó"5Ñ6ð Ñ'¨L×,@Ñ,@ÀGÒ,KØ×&×&Ü×*Ò*ØOóð ð 'ð& ˆö Ø&+��?Ñ#ãÛØ×3Ñ3°D·M±M×4GÑ4GÈÓ4MÖNàŸ	™	õ "à%,§_¢_ó"ö ð
�ð ˆó !(«Ð+�Øˆr  c                ó0   • SU R                   " U40 UD6 S3$ r«  )rm  rû  s      r  Úvisit_scalar_valuesÚSQLCompiler.visit_scalar_valuesi  s"   € Ø�4×&Ò& wÑ5°"Ñ5Ð6°aÐ8Ð8r  c                ó   • SU-   $ )NrÚ   r  )r  Úalias_name_texts     r  r(  Ú&SQLCompiler.get_render_as_alias_suffixl  s   € Ø˜Ñ'Ð'r  c                óÜ   • U(       d   eUb  US:X  a  SU l         SU l        UR                  (       a  [        R                  " S5      eU R
                  R                  [        XX45      5        g )NÚ*FTzxMost backends don't support SELECTing from a tuple() object.  If this is an ORM query, consider using the Bundle object.)rf  re  rú  r2   r  r°  rÎ  rÿ   r  s        r  r/  ÚSQLCompiler._add_to_result_mapo  sg   € ö ˆˆwà‰?˜g¨›nØ$)ˆDÔ!Ø#'ˆDÔ Ø××Ü×"Ò"ð4óð ð
 	×Ñ×#Ñ#Ü˜w¨gÓ=õ	
r  c                ó:   • U R                   " SUUSUc  0 OU40 UD6$ )a$  Render a column with necessary labels inside of a RETURNING clause.

This method is provided for individual dialects in place of calling
the _label_select_column method directly, so that the two use cases
of RETURNING vs. SELECT can be disambiguated going forward.

.. versionadded:: 1.4.21

NF)Ú_label_select_column)r  r  r£   r5  Úcolumn_clause_argsrâ  s         r  Ú_label_returning_columnÚ#SQLCompiler._label_returning_columnˆ  s8   € ð ×(Ò(ØØØØØ$Ñ,‰BÐ2Dñ
ð ñ
ð 	
r  c                ó®  ^^• TR                   R                  U R                  5      nUR                  (       a   U(       d  U(       a  UR	                  T5      nOTnU(       a+  U R
                  nU
(       a	  UmU4S jnOUTLa	  UmUU4S jnOSnU	(       d   S5       e[        T[        R                  5      (       a+  UTLa"  [        UTR                  TR                  4S9nGOÐUnGOÌU(       a#  Uc   S5       e[        UUUTR                  4S9nGO¢UTLa  SnGO1[        T[        R                  5      (       a0  U=(       a&    TR                  (       + =(       a    TR                  SLnOâ[        T[        R                   5      (       a  SnOÀ[        T[        R"                  5      (       ap  TR$                  [&        R(                  [&        R*                  4;   =(       a    U R                  R,                  (       + =(       d    TR/                  5       =(       d    UnO1[        T[        R0                  5      (       d  TR2                  c  SnOSnU(       a_  U(       d  U
(       a   eTR4                  n[        U[        R6                  5      (       d  [        R6                  " U5      OUn[        XèU4S9nOUnUR9                  U	UUS	9  UR:                  " U 40 UD6$ )
z.produce labeled columns present in a select().c                ó   >• T" XU 4U5        g r  r  )r  r  r  r  r/  s       €r  rÕ  Ú;SQLCompiler._label_select_column.<locals>.add_to_result_mapÃ  s   ø€ Ù& w°w°jÀ%ÕHr  c                ó"   >• T" XT4U-   U5        g r  r  )r  r  r  r  r/  r£   s       €€r  rÕ  r‡  Ë  s   ø€ Ù&Ø¨ y°7Ñ':¸Eõr  NzX_label_select_column is only relevant within the columns clause of a SELECT or RETURNING)r   z*proxy_name is required if 'name' is passedTF)r¹  rÕ  rï  )r  rÌ  r½  Ú_has_column_expressionÚcolumn_expressionr/  rÂ  r   rJ   r  r  rà  ré  rG   rè  rž   Ú
TextClauseÚUnaryExpressionr†  r!   Úis_falseÚis_truerB  Ú_wraps_unnamed_columnÚNamedColumnÚ_non_anon_labelÚ_anon_name_labelrC   rœ  rì  )r  rª   r£   r5  r®  r‚  r  r:  r;  r¹  Úcolumn_is_repeatedÚneed_column_expressionsrï  rÔ  Úcol_exprrÕ  Úresult_exprÚrender_with_labelr/  s     `               @r  r�  Ú SQLCompiler._label_select_column�  sÁ  ù€ ð  �{‰{×'Ñ'¨¯©Ó5ˆà×&×&Þ#Ö':à×-Ñ-¨fÓ5‰HàˆHæð
 !%× 7Ñ 7Ðö
 "Ø%6Ð"öIð
  Ò'Ø%6Ð"öøð !%Ðö %ð 	
ð:ó	
Ð$ô �fœhŸn™n×-Ñ-Ø˜vÒ%Ü+Ø˜fŸk™k°f·n±nÐ5Fñ’ð '’æð Ñ&ð<à;ó<Ø&ô (ØØàð ×$Ñ$ðñŠKð& ˜vÒ%ð %)Ò!Ü˜F¤H×$9Ñ$9×:Ñ:ð ÷ 1Ø"×-Ñ-Ô-÷1àŸ™¨DÐ0ñ "ô
 ˜F¤H×$7Ñ$7×8Ñ8Ø$)Ñ!Ü˜F¤H×$<Ñ$<×=Ñ=ðP Ÿ™Ü%×.Ñ.´	×0AÑ0AÐBñC÷ Eà $§¡× DÑ DÔD÷
ð ×3Ñ3Ó5÷
ð ñ "ô" ˜v¤x×';Ñ';×<Ñ<ð ×*Ñ*Ñ2à$(Ñ!à$)Ð!æ Þ*ö
  2Ð1Ð1Ø*0×*AÑ*AÐ'ô &Ø+¬X×-FÑ-F÷ñ ô ×-Ò-Ð.AÔBð -ð $ô ,Ø¸j¸]ñ‘ð '�à×!Ñ!Ø"7Ø/Ø'ð 	"ñ 	
ð
 ×-Ò-¨dÑIÐ6HÑIÐIr  c                óF   • U R                  X#5      nU(       a  USU-   -  nU$ rj  )Úget_from_hint_text)r  r¤  rž   ÚhintrK  Úhinttexts         r  rT  Ú!SQLCompiler.format_from_hint_textp  s(   € Ø×*Ñ*¨5Ó7ˆÞØ�s˜X‘~Ñ%ˆGØˆr  c                ó   • g r  r  )r  Úbyfromss     r  Úget_select_hint_textÚ SQLCompiler.get_select_hint_textv  ó   € Ør  c                ó   • g r  r  ©r  rž   r  s      r  rš  ÚSQLCompiler.get_from_hint_texty  s   € ð r  c                ó   • g r  r  r¤  s      r  Úget_crud_hint_textÚSQLCompiler.get_crud_hint_text~  r¢  r  c                ó$   • SR                  U5      $ rj  rR  )r  Ú
hint_textss     r  Úget_statement_hint_textÚ#SQLCompiler.get_statement_hint_text�  s   € Ø�x‰x˜
Ó#Ð#r  r)  r+  r&  r%  c                ó   • U R                   (       + nU(       a  U R                  OU R                   S   nUR                  X5      nUS   nUS   n	U(       a(  U(       d!  UR                  UR	                  U	5      SS9n
U
$ UR                  UU	S9n
U
$ )Nrµ  r&  r%  r  ©Úexplicit_correlate_fromsÚimplicit_correlate_froms)r˜  r+  rÏ  Ú_get_display_fromsÚ
difference)r  Úselect_stmtr®  rL  râ  r3  rÈ  r*  r&  r%  r‹  s              r  Ú_display_froms_for_selectÚ%SQLCompiler._display_froms_for_select‹  s¦   € ð —z‘z”>ˆÞ-5�×)Ò)¸4¿:¹:Àb¹>ˆà#×:Ñ:¸;ÓMˆàÐ 1Ñ2ˆØ˜^Ñ,ˆæž'Ø!×4Ñ4Ø)8×)CÑ)CØ ó*ð *,ð	 5ð ˆEð ˆð	 "×4Ñ4Ø)8Ø)5ð 5ð ˆEð ˆr  Útranslate_select_structurec	                óö  ^%• Ub   S5       eSU	S'   UR                   " X40 U	D6n
U
R                  U	S'   U
R                  nU R                  (       + nU(       a  U R                  (       d  X l        US L=(       d    UnU R
                  (       a>  U R
                  " U4SU0U	D6nXÑLa%  U
nUnUnUR                   " X40 U	D6n
U
R                  nU(       a  U R                  OU R                  S   nU=(       d+    UR                  SS5      =(       d    UR                  SS5      =nnU(       a  SnU(       d	  S	U	;   a  U	S		 U R                  XXòXu5      nU	R                  5       nUR                  SSS
.5        SnUR                  (       a$  U R                  U5      u  nnU(       a  UUS-   -  nOS nUR                  (       a  U R                  X5        UR                  (       a   UU R                   " XR                  40 U	D6-  nUU R"                  " U40 U	D6-  nU
R$                   VVVVVs/ s H!  u  nnnnnU R'                  UUUUUUUUUUS9
PM#     snnnnn Vs/ s H
  nUc  M  UPM     nnU(       a¶  Ub³  [)        [+        U
R$                   VVVVVs/ s H  u  nnnnnUPM     snnnnnWR$                   VVVVVs/ s H  u  nnnnnUPM     snnnnn5      5      m%U R,                   VVVV s/ s H)  u  nnnn [/        UU[1        U%4S jU 5       5      U 5      PM+     sn nnnU l        U R3                  UUU
UUUUU	5      nUR4                  (       a]  UR4                   V!V"s/ s H&  u  n!n"U!SU R6                  R8                  4;   d  M$  U"PM(     n#n!n"U#(       a  USU R;                  U#5      -   -  nU R<                  (       a>  U(       a  U(       a0  U(       d  [?        U R                  5      OS n$U RA                  U$S9U-   nURB                  (       a#  USU R                   " XRB                  40 U	D6-   -  nU R                  RE                  S5        U$ s  snnnnnf s  snf s  snnnnnf s  snnnnnf s  sn nnnf s  sn"n!f )NzpSQLAlchemy 1.4 requires use of the translate_select_structure hook for structural translations of SELECT objectsFr¹  rð  r®  rµ  r-  r,  rÕ  )rÐ  r¹  zSELECT rO  )r  r:  r;  r“  r”  c              3  óF   >#   • U  H  nTR                  X5      v •  M     g 7fr  rr  )r>  Úor   s     €r  r@  Ú+SQLCompiler.visit_select.<locals>.<genexpr>U  s   øé € Ð$FÂ#¸Q Y§]¡]°1×%8Ð%8Â#ùó   ƒ!r~  r)  )#rÏ  Ú_ambiguous_table_name_mapr4  r˜  r*  r¶  r+  rÙ  Ú_setup_select_stackr
  rœ  Ú_hintsÚ_setup_select_hintsr,  r-  r%  r$  Úget_select_precolumnsÚcolumns_plus_namesr�  r  r  r°  rÿ   rC  Ú_compose_select_bodyÚ_statement_hintsr½  r  r«  rx  rØ  r0  r&  rŽ  )&r  r³  r®  Úinsert_intor*  r2  Úselect_wraps_forrL  rL  rî  r*  r3  Úis_embedded_selectÚnew_select_stmtÚcompile_state_wraps_forrÈ  r5  r”  r‹  r‚  r  Ú	hint_textÚbyfromr  r:  r;  r£   r<  r®  Úinner_columnsr?  rí  r  Údialect_nameÚhtÚper_dialectr*  r   s&                                        @r  Úvisit_selectÚSQLCompiler.visit_select¯  sü  ø€ ð  Ñ'ð 	
ð-ó	
Ð'ð +0ˆÐ&Ñ'à#×:Ò:Øñ
Ø!'ñ
ˆð ×3Ñ3ð 	Ð)Ñ*ð $×-Ñ-ˆà—z‘z”>ˆæ˜D×.×.Ø!.Ôà+°4Ð7×F¸;Ðð
 ×*×*Ø"×=Ò=ØñØ$*ðØ.4ñˆOð Ò1Ø*7Ð'Ø#.Ð Ø-�à +× BÒ BØñ!Ø)/ñ!�ð ,×5Ñ5�æ-5�×)Ò)¸4¿:¹:Àb¹>ˆð ÷ >Ø�y‰yÐ7¸Ó?÷>à�y‰yÐ5°uÓ=ð	
ÐÐ5ö Ø"'Ðö
 #Ð':¸fÓ'DØÐ*Ð+à×(Ñ(Ø¨°wó
ˆð $Ÿ[™[›]ÐØ×!Ñ!Ø$)ÀEÑJô	
ð ˆà××Ø $× 8Ñ 8¸Ó EÑˆI�vÞØ˜	 C™Ñ'�øàˆFà×(×(Ø×+Ñ+¨KÔ@à× × Ø�D×+Ò+Ø×2Ñ2ñØ6<ññ ˆDð 	�×*Ò*¨;ÑA¸&ÑAÑAˆð. #×5Ò5÷'ò& 6ñØØØ'ØØð# ×)Ñ)ØØØ'ØØ&ØØ)Ø(;Ø'/Ø,Cð *ó ñ$ 6ö'ó
ò�ð* ÷- ñð 	ð 
ö4 Ð#3Ñ#?ô Üð +×=Ò=÷	ò >ñØØ&Ø/Ø Ø$ó ñ >õ	ð$ 5×GÒG÷	ò HñØØ&Ø/Ø Ø$ó ñ Hõ	óóˆIð: .2×-AÒ-Aö	$ò .BÑ)�C˜˜s Eô #Ø˜œuÔ$FÁ#Ó$FÓFÈöñ .Bô	$ˆDÔ ð ×(Ñ(ØØØØØØØØó	
ˆð ×'×'ð +6×*FÒ*Fôâ*FÑ&�\ 2Ø C¨¯©×):Ñ):Ð#;Ñ;÷ Ù*Fð ñ ö
 Ø˜˜d×:Ñ:¸;ÓGÑGÑG�ð �9�9Ö0¶HÞ3;œC §
¡
œOÀˆMØ×*Ñ*¸Ð*ÐGÈ$ÑNˆDà× × Ø�C˜$×1Ò1Ø×2Ñ2ñØ6<ññ ñ ˆDð 	�
‰
�‰�rÔàˆùöyùò
ùö@	ùö	ùõ$ùó&s0   È&(QÉQÉ"QÊQÊ:Q$Ë,0Q-
Í#Q5ÎQ5c                ó   • UR                   R                  5        VVVs0 s H;  u  u  p#nUSU R                  R                  4;   d  M&  X$SUR	                  U SS90-  _M=     nnnnU R                  U5      nXe4$ s  snnnf )Nr~  r  T)r)  )r¾  r�  r½  r  rì  r   )r  rª   rŸ  r½  rœ  rÊ  rÉ  s          r  r¿  ÚSQLCompiler._setup_select_hints|  sš   € ð /5¯m©m×.AÑ.AÔ.Cõ
ò /DÑ*Ñ � (Ø˜3 §¡× 1Ñ 1Ð2Ñ2óDˆEØ�u×/Ñ/°¸TÐ/ÐBÐCñDò Dá.Cð 	ò 
ð ×-Ñ-¨fÓ5ˆ	ØÐ Ð ùô
s   Ÿ%A9ÁA9c           	     ó  • US   nUS   nUS:X  a  XS'   OmU(       af  US   n	[        U	R                  5      n
[        UR                  5      U
:w  a3  [        R                  " SSU
US-   [        UR                  5      4-  5      eU(       a'  U(       d   UR                  UR                  U5      SS9nOUR                  UUS9n[        [        U6 5      nUR                  U5      nUUUUS	.nU R                  R                  U5        U$ )
Nr&  r%  r   r.  z}All selectables passed to CompoundSelect must have identical numbers of columns; select #%d has %d columns, select #%d has %dr   r  r®  )r%  r&  r$   r*  )rØ  r­  rÁ  r2   r  r±  r²  r€   r*   rŸ   r˜  rÎ  )r  rª   r*  rÈ  r®  rL  r2  r&  r%  r.  Únumcolsr‹  Únew_correlate_fromsÚall_correlate_fromsr4  s                  r  r½  ÚSQLCompiler._setup_select_stackˆ  s9  € ð  Ð 1Ñ2ˆØ˜^Ñ,ˆà˜QÓØ &�*ÒÞØ˜ZÑ(ˆHÜ˜(×8Ñ8Ó9ˆGä�=×3Ñ3Ó4¸Ó?Ü×&Ò&ð!ð
 ØØ&¨Ñ*Ü˜F×8Ñ8Ó9ð	ñ		óð ö ž'Ø!×4Ñ4Ø)8×)CÑ)CØ ó*ð *,ð	 5ð ‰Eð "×4Ñ4Ø)8Ø)5ð 5ð ˆEô
 "¤-°Ð"7Ó8ÐØ1×7Ñ7¸ÓHÐð 0Ø2Ø Ø*ñ	*
ˆ	ð 	�
‰
×Ñ˜)Ô$àˆr  c	                ó²  • USR                  U5      -  nU R                  [        -  (       a5  [        0 [	        5       5      n	U R                  [
        -  n
U(       a  X�l        OS n	Sn
U(       d  UR                  5       nU(       a‹  US-  nUR                  (       a;  USR                  U Vs/ s H  nUR                  " U 4SUU	S.UD6PM     sn5      -  nOLUSR                  U Vs/ s H  nUR                  " U 4SU	S.UD6PM     sn5      -  nOXR                  5       -  nUR                  (       a.  U R                  " UR                  4SU	0UD6nU(       a  USU-   -  nU
(       a  U	c   eU	R                  5         UR                  (       a  XR                  " U40 UD6-  nUR                   (       a,  U R                  " UR                   40 UD6nU(       a  US	U-   -  nUR"                  (       a  XR$                  " U40 UD6-  nUR&                  (       a  XR(                  " U40 UD6-  nUR*                  b  XR,                  " U40 UD6-  nU$ s  snf s  snf )
NrØ   Fz 
FROM T)r®  r*  rL  ©r®  rL  rL  z 
WHERE z	 
HAVING )rˆ   r�  r~  r‚  r€   r  rL  Úrstripr¾  rì  rœ  Ú_where_criteriar`  r£  Ú_group_by_clausesrÓ  Ú_having_criteriaÚ_order_by_clausesrÔ  rÕ  rÖ  Ú_for_update_argÚfor_update_clause)r  r  rª   r*  rË  r‹  rÊ  r3  rî  rL  Úwarn_lintingÚfÚts                r  rÂ  Ú SQLCompiler._compose_select_body¼  sw  € ð 	�—	‘	˜-Ó(Ñ(ˆà�<‰<Ô4×4Ü$ R¬«Ó/ˆKØŸ<™<¬,Ñ6ˆLÞØ#.Ô øàˆKØ ˆLö Ø—;‘;“=ˆDæØ�JÑˆDà�}�}Ø˜Ÿ	™	ñ "'ó	ò "'˜Að ×,Ò,Ø ðà#'Ø&,Ø(3ñ	ð
 %ôñ "'ñ	óñ ‘ð ˜Ÿ	™	ñ "'óò "'˜Að ×,Ò,Ø ðà#'Ø(3ñð %ô	ñ "'ñó
ñ 
‘ð ×%Ñ%Ó'Ñ'ˆDà×!×!Ø×1Ò1Ø×&Ñ&ñØ4?ðØCIñˆAö Ø˜ a™Ñ'�æØÑ*Ð*Ð*Ø×ÑÔà×#×#Ø×(Ò(¨Ñ:°6Ñ:Ñ:ˆDà×"×"Ø×1Ò1Ø×'Ñ'ñØ+1ñˆAö Ø˜ qÑ(Ñ(�à×#×#Ø×(Ò(¨Ñ:°6Ñ:Ñ:ˆDà×*×*Ø×*Ò*¨6Ñ<°VÑ<Ñ<ˆDà×!Ñ!Ñ-Ø×*Ò*¨6Ñ<°VÑ<Ñ<ˆDàˆùòq	ùòs   Â*!I
Ã% I
c                óZ   ^ ^• SR                  UU 4S jU 5       5      nU(       a  US-  nU$ )NrO  c              3  ó’   >#   • U  H<  u  pUS ;   d  UTR                   R                  :X  d  M'  UR                  " T40 TD6v •  M>     g7f))Nr~  N)r½  r  rì  )r>  ÚprefixrÌ  râ  r  s      €€r  r@  Ú1SQLCompiler._generate_prefixes.<locals>.<genexpr>  sF   øé € ð 
â(0Ñ$�Ø˜{Ó*¨l¸d¿l¹l×>OÑ>OÑ.Oó 2ˆF×%Ò% dÑ1¨bÖ1Ú(0ùs
   ƒ&A­ArR  )r  r  r>  râ  rz  s   `  ` r  r$  ÚSQLCompiler._generate_prefixes  s1   ù€ Ø—‘õ 
á(0ó
ó 
ˆö
 Ø�c‰MˆFØˆr  c                óÜ  • U R                   (       d  gU(       aÁ  US:”  a»  [        R                  " 5       n[        U R                   R	                  5       5       H~  nU R
                  UR                  5          u  pVnUR                  =(       d    UR                  nXQ:H  =(       d    U=(       a    XQS-   :H  n	U(       a  U	(       d  Mm  U R                   U   X4'   M€     OU R                   nU(       d  g[        U Vs/ s H  oDR                  PM     sn5      n
U R                  U
5      S-   nUSR                  UR                  5        Vs/ s H  oÌPM     sn5      -  nUS-  nU(       a|  US:”  av  [        UR	                  5       5       HY  nU R
                  UR                  5          u  pVnU R                   U	 U R                  XV4	 U R
                  UR                  5       	 M[     U$ s  snf s  snf )z½
include_following_stack
    Also render the nesting CTEs on the next stack. Useful for
    SQL structures like UNION or INSERT that can wrap SELECT
    statements containing nesting CTEs.
r¬  r   rO  ú, 
z
 )rx  r&   rÂ  r»  Úkeysrz  r  r  rx   r   Úget_cte_preamblerˆ   ré  ry  )r  r*  rÎ  rx  r  r0  r,  r	  r  Úis_rendered_levelr{  Úcte_textÚtxts                r  r0  ÚSQLCompiler._render_cte_clause%  s¬  € ð �y�yØö ˜]¨QÓ.Ü×#Ò#Ó%ˆDÜ˜DŸI™IŸN™NÓ,Ö-�Ø04×0FÑ0FØ×*Ñ*Ó,ñ1Ñ-�	 Xð Ÿ+™+×9¨×)9Ñ)9�Ø$-Ñ$>÷ %Ø+×N°	ÈQÑ=NÑ0Nð "ö  Ö$5Ùà ŸI™I c™N�“	ò .ð —9‘9ˆDæØÜ±tÓ<²t°Ÿmœm±tÑ<Ó=ˆà×(Ñ(¨Ó8¸3Ñ>ˆØ�F—K‘K°·±´Ó >²¨¢±Ñ >Ó?Ñ?ˆØ�EÑˆæ˜]¨QÓ.Ü˜DŸI™I›KÖ(�Ø04×0FÑ0FØ×*Ñ*Ó,ñ1Ñ-�	 Xð —I‘I˜c�NØ×+Ñ+¨YÐ,AÐBØ×*Ñ*¨3×+AÑ+AÓ+CÒDñ )ð ˆùò =ùò !?s   Ã8G$ÅG)
c                ó   • U(       a  gg)NzWITH RECURSIVEÚWITHr  )r  r   s     r  rí  ÚSQLCompiler.get_cte_preambleZ  s   € ÞØ#àr  c                óx   • UR                   (       a  [        R                  " SSS9  UR                  (       a  S$ S$ )zSCalled when building a ``SELECT`` statement, position is just
before column list.

a  DISTINCT ON is currently supported only by the PostgreSQL dialect.  Use of DISTINCT ON for other backends is currently silently ignored, however this usage is deprecated, and will raise CompileError in a future release for all backends that do not support this syntax.z1.4©ÚversionrÜ   r¬  )Ú_distinct_onr&   Úwarn_deprecatedÚ	_distinct©r  rª   râ  s      r  rÀ  Ú!SQLCompiler.get_select_precolumns`  s:   € ð
 ××Ü× Ò ð3ð
 òð %×.×.ˆ{Ð6°BÐ6r  c                ó‚   • U R                   " UR                  [        [        R                     40 UD6nU(       a  SU-   $ g)z5allow dialects to customize how GROUP BY is rendered.z
 GROUP BY r¬  )rT  rÜ  rÒ  r!   Úcomma_op)r  rª   râ  Úgroup_bys       r  rÓ  ÚSQLCompiler.group_by_clausep  sE   € ð ×0Ò0Ø×$Ñ$¤i´	×0BÑ0BÑ&Cñ
ØGIñ
ˆö Ø (Ñ*Ð*àr  c                ó‚   • U R                   " UR                  [        [        R                     40 UD6nU(       a  SU-   $ g)z5allow dialects to customize how ORDER BY is rendered.z
 ORDER BY r¬  )rT  rÞ  rÒ  r!   rþ  )r  rª   râ  r—  s       r  rÔ  ÚSQLCompiler.order_by_clause{  sE   € ð ×0Ò0Ø×$Ñ$¤i´	×0BÑ0BÑ&Cñ
ØGIñ
ˆö Ø (Ñ*Ð*àr  c                ó   • g)Nz FOR UPDATEr  rû  s      r  rà  ÚSQLCompiler.for_update_clause‡  s   € Ør  c               óð   • UR                  S[        R                  " U5      S9 VVVVV	s/ s H#  u  nnnnn	U R                  " UUU4UU	UUS.UD6PM%     n
nnnnn	SSR	                  U
5      -   $ s  sn	nnnnf )NT)Úcols)r;  r“  r  r:  ú
RETURNING rØ   )r#  r   Ú_select_iterablesrƒ  rˆ   )r  r  Úreturning_colsr5  râ  r  r:  r;  r£   r<  rt  s              r  Úreturning_clauseÚSQLCompiler.returning_clauseŠ  s¦   € ð2 ×2Ñ2Øœ4×1Ò1°.ÓAð 3ñ ÷#
ò"ñØØØ#ØØð ×(Ò(ØØØ#ð	ð %8Ø#+ØØ%ñ	ð ô	ñ ð# 	ô 
ð, ˜dŸi™i¨Ó0Ñ0Ð0ùö-
s   «*A/c                óî   • SnUR                   b#  USU R                  " UR                   40 UD6-   -  nUR                  b5  UR                   c  US-  nUSU R                  " UR                  40 UD6-   -  nU$ )Nr¬  z
 LIMIT z

 LIMIT -1z OFFSET )Ú_limit_clauserÄ  Ú_offset_clause)r  rª   râ  r  s       r  rß  ÚSQLCompiler.limit_clauseª  s€   € ØˆØ×ÑÑ+Ø�K $§,¢,¨v×/CÑ/CÑ"JÀrÑ"JÑJÑJˆDØ× Ñ Ñ,Ø×#Ñ#Ñ+Ø˜Ñ%�Ø�J §¢¨f×.CÑ.CÑ!JÀrÑ!JÑJÑJˆDØˆr  c                óú  • Uc  UR                   nUR                  nOSSS.nSnUR                  bU  UR                  nU(       a&  UR                  U5      (       a  UR	                  5       nU R
                  " U40 UD6n	USU	-  -  nOU(       a  US-  nUbf  U(       a&  UR                  U5      (       a  UR	                  5       nUSU R
                  " U40 UD6< US   (       a  SOS< S	US
   (       a  SOS< 3-  nU$ )NF)rx  Ú	with_tiesr¬  z
 OFFSET %s ROWSz
 OFFSET 0 ROWSz
 FETCH FIRST rx  z PERCENTz ROWS r  z	WITH TIESÚONLY)rÝ  Ú_fetch_clause_optionsr  Ú_simple_int_clauseÚrender_literal_executerÄ  )
r  rª   rÞ  Úrequire_offsetÚ"use_literal_execute_for_simple_intrâ  Úfetch_clause_optionsr  Úoffset_clauseÚ
offset_strs
             r  rÞ  ÚSQLCompiler.fetch_clause´  s  € ð ÑØ!×/Ñ/ˆLØ#)×#?Ñ#?Ñ à/4À5Ñ#IÐ àˆà× Ñ Ñ,Ø"×1Ñ1ˆMæ2Ø×-Ñ-¨m×<Ñ<à -× DÑ DÓ F�ØŸš mÑ:°rÑ:ˆJØÐ'¨*Ñ4Ñ4‰DÞØÐ&Ñ&ˆDàÑ#æ2Ø×-Ñ-¨l×;Ñ;à+×BÑBÓD�ÙØ—’˜\Ñ0¨RÓ0Ø2°9×=‘
À2ÒEØ3°K×@‘ÀfÑLðñ ˆDð
 ˆr  c
                óÄ  • U(       a  UR                   UR                  U'   U(       d  U(       Ga1  U R                  R                  U5      nU(       aL  U(       aE  U R                  R	                  U5      S-   U R                  R                  UR                  5      -   nO U R                  R                  UR                  5      nU	b  U	R                  ULai  U(       db  U(       a[  UR                  U;   aK  U R                  SX�R                     5      nXÀR                  U R                  R                  S U5      5      -   nU(       a  X;   a  U R                  XÁXQ   U5      nU$ g)NrL  rç  r¬  )Úfullnamer‹  rµ  rí  rî  rë  r  rà  rÑ  r(  r!  rT  )r  rž   r®  rK  r)  r*  Ú
use_schemarL  rð  rM  rî  ró  r˜  Ú	anon_names                 r  Úvisit_tableÚSQLCompiler.visit_tableÝ  s/  € ö Ø',§~¡~ˆK×Ñ˜eÑ$æ—VØ#Ÿ}™}×>Ñ>¸uÓEÐæÖ.à—M‘M×.Ñ.Ð/?Ó@Øñà—m‘m×)Ñ)¨%¯*©*Ó5ñ6ñ ð —m‘m×)Ñ)¨%¯*©*Ó5�ð (Ñ/Ø*×2Ñ2¸%Ò?æ,Þ0ØŸ
™
Ð&>Ó>à $× :Ñ :ØÐ!9¿*¹*Ñ!Eó!�Ið × ?Ñ ?ØŸ™×2Ñ2°4¸ÓCó!ñ �Cö ˜UÓ/Ø×0Ñ0Ø 	Ñ 0°&ó�ð ˆJàr  c                ó  • U(       aj  UR                   R                  [        R                  " [	        UR
                  R                  5      [	        UR                  R                  5      5      5        UR                  (       a  SnOUR                  (       a  SnOSnUR
                  R                  " U 4SUS.UD6U-   UR                  R                  " U 4SUS.UD6-   S-   UR                  R                  " U 4SU0UD6-   $ )Nz FULL OUTER JOIN z LEFT OUTER JOIN z JOIN TrÙ  ú ON rL  )rŒ  rœ  rç  rO  r)   r‰   r*   r�   r†   Úisouterrì  Úonclause)r  rˆ   r®  rL  rî  Ú	join_types         r  Ú
visit_joinÚSQLCompiler.visit_join  s  € ÞØ×Ñ×$Ñ$Ü×!Ò!Ü˜dŸi™i×5Ñ5Ó6Ü˜dŸj™j×6Ñ6Ó7óôð �9�9Ø+‰IØ�\�\Ø+‰Ià ˆIà�I‰I×(Ò(ØðØ!¨{ñØ>Dñð ñð �j‰j×+Ò+ØðØ!¨{ñØ>Dññ	ð ñð �m‰m×.Ò.ØñØ"-ðØ17ññð	
r  c                ó*  • UR                   R                  5        VVVs0 s H(  u  u  p4nUSU R                  R                  4;   d  M&  X5_M*     nnnnUR                  U;   a)  U R                  X!R                  XaR                     S5      nXb4$ s  snnnf )Nr~  T)r¾  r�  r½  r  rž   rT  )r  r  Ú
table_textrž   r½  rÉ  Údialect_hintss          r  Ú_setup_crud_hintsÚSQLCompiler._setup_crud_hints0  s•   € ð 04¯{©{×/@Ñ/@Ô/Bõ
â/BÑ+Ñ � )Ø˜3 §¡× 1Ñ 1Ð2Ñ2ó ˆEÒÙ/Bð 	ò 
ð
 �:‰:˜Ó&Ø×3Ñ3ØŸJ™J¨·j±jÑ(AÀ4óˆJð Ð(Ð(ùô
s   Ÿ%BÁBc                óÄ  • U R                   R                  nUR                  nUR                  nUc  gUR                  (       a'  U R
                  R                  UR                  S5      nO&U R                  R                  UR                  S5      nX%-  (       a  U$ UR                  (       a4  [        R                  " SUS    SU R                   R                   S35      eg)a  given a :class:`.Table`, return a usable sentinel column or
columns for this dialect if any.

Return None if no sentinel columns could be identified, or raise an
error if a column was marked as a sentinel explicitly but isn't
compatible with this dialect.

Nr   zColumn z@ can't be explicitly marked as a sentinel column when using the a�   dialect, as the particular type of default generation on this column is not currently compatible with this dialect's specific INSERT..RETURNING syntax which can receive the server-generated value in a deterministic way.  To remove this error, remove insert_sentinel=True from primary key autoincrement columns; these columns are automatically used as sentinels for supported dialects in any case.)r½  Ú"insertmanyvalues_implicit_sentinelÚ _sentinel_column_characteristicsrt  Ú
is_autoincÚ_sentinel_col_autoinc_lookuprÙ  Údefault_characterizationÚ _sentinel_col_non_autoinc_lookupÚis_explicitr2   rB  r  )r  rž   Úsentinel_optsÚsentinel_characteristicsÚ	sent_colsÚbitmasks         r  Ú_get_sentinel_column_for_tableÚ*SQLCompiler._get_sentinel_column_for_table\  sÝ   € ð Ÿ™×GÑGˆØ#(×#IÑ#IÐ à,×4Ñ4ˆ	àÑØà#×.×.Ø×7Ñ7×;Ñ;Ø(×AÑAÀ1ó‰Gð ×;Ñ;×?Ñ?Ø(×AÑAÀ1óˆGð ×"ØÐà#×/×/ô ×)Ò)Ø˜) A™,˜ð (>à—<‘<×$Ñ$Ð%ð &@ð
@óð ð r  c              #  óÞ  ^ ^^@^A^B^C^D#   • T R                   nUc   eUR                  (       d  S n	O[        R                  " UR                  6 n	[	        U5      n
UR
                  (       a   T R                  R                  (       d  SnSnO£T R                  R                  (       aG  U(       aE  T R                  (       a4  UR                  b"  UR                  (       a  UR                  (       d  SnSnO<UR                  (       a'  UR                  (       d  T R                  (       a  SnSnOSnSnU(       aS  [        [        S[!        X#5      5      S5       H/  u  nu  pï[#        UUTU/U	(       a	  U	" U5      /O/ SUU
UU5
      v •  M1     g U(       a*  [$        R&                  " T R(                  R*                  US9nOS nUR,                  nU(       a  U" U5      nSU S3nUR/                  US5      nT R                  R0                  nU(       aA  [	        T R2                  5      n[	        UR4                  5      nUU-
  n[7        UUU-
  U-  5      n[        S	[9        U5      5      n[        S	[9        U5      5      nS nSnX¥-  X¥-  (       a  SOS
-   nUR4                  nUc   eU(       a'  U VVVVs/ s H  u  nnnnUUU" U5      U4PM     nnnnnS
=mCmDT R:                  (       d³  T R<                  (       a  T R<                  mAO0 mA[?        US
   5      n UAU 4S jm@UR                  (       a  Sn!OSn!SSRA                  U@4S jU 5       5       U! S3n"U RC                  UA4S jU 5       5      n#U RE                  U#5       Vs0 s H  nUUS
   U   _M     n$nSmBGOSn"[?        5       n#0 n$UR                  (       a  SU S3mBOSU S3mB[?        5       n%UR4                   H  n&U%RG                  U&S   5        M     U%(       af  T RH                  n'U'c   e[        U'5       V(V)s1 s H  u  n(n)U)U%;   d  M  U(iM     n*n(n)[7        U*5      mC[K        U*5      S-   mD[	        U*5      TDTC-
  :X  d   eT RL                  (       a;  [N        RP                  " T RR                  5      n+[N        RT                  " U+ S3STB5      mBU(       Gaš  US
U n,US
U n-/ US
U& / US
U& U(       a  Un.O[	        U,5      n.T(       a0  U4S j[W        U.5       5        V/V0V1s/ s H  u  n/n0n1U/U0U14PM     nn0n/n1T R:                  (       Ga  URX                  n2U2[	        U,S
   5      :X  a  S=n3n4U,n5OU,S
   S TC n3U,S
   TDS  n4UCUD4S jU, 5       n5UR                  (       a(  SRA                  UB4S j[        U,5       5       5      S S n6OTBU.-  S S n6T RL                  (       a@  U2S
:”  a:  U4(       a   eTCS-   n7U2U.-  U7-   n8[[        U 4S j[W        U7U85       5       5      n9U6U9-  n6UR/                  SU65      n:[[        [\        R^                  Ra                  U55      5      n;U3U;-   U4-   n;OË/ n<U$Rc                  5       n;[        U,5       H‰  u  n=nU"R/                  S[e        U=5      5      n>UR                  (       a  U>R/                  S[e        U=5      5      n>U<Rg                  U>5        U;RG                  U# Vs0 s H  nU SU= 3UU   _M     sn5        M‹     UR/                  SSRA                  U<5      5      n:[#        U:U;UU,U	(       a  U- V?s/ s H  n?U	" U?5      PM     sn?O/ U.UUUS5
      v •  US-  nU(       a  GM™  g g s  snnnnf s  snf s  sn)n(f s  sn1n0n/f s  snf s  sn?f 7f)NTFzKSequence[Tuple[_DBAPISingleExecuteParams, _MutableCoreSingleExecuteParams]]r   ©r²  rI  rJ  Ú__EXECMANY_TOKEN__zList[Sequence[Any]]r   c                ó¢   >• U  HG  nTR                  X"5      nUR                  TR                  SU0-  TR                  SU S30-  5      nMI     U$ )Nr  Ú__EXECMANY_INDEX__)rÙ  r  ra  )rì  Ú	formattedr?  rs  r  s      €€r  Úapply_placeholdersÚISQLCompiler._deliver_insertmanyvalues_batches.<locals>.apply_placeholders=  se   ø€ Û�CØ,×0Ñ0°Ó:�CØ )× 1Ñ 1Ø×)Ñ)¨V°S¨MÑ9Ø×)Ñ)Ø! c UÐ*<Ð#=Ð>ñ?ó!’Iñ  ð !Ð r  z, _IMV_VALUES_COUNTERr¬  rØ   c              3  ó<   >#   • U  H  u    pnT" X25      v •  M     g 7fr  r  )r>  rG  rA  Ú	bind_keysrB  s       €r  r@  Ú@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>K  s'   øé € ð 6â2DÑ.�A�q Yñ # 9×8Ð8Ú2Dùs   ƒc              3  ób   >#   • U  H$  u      pU  H  nTR                  X35      v •  M     M&     g 7fr  rr  )r>  rG  rE  r?  rs  s       €r  r@  rF  P  s:   øé € ð 4â*<Ñ&�A�q˜!Ü$�Cð #×&Ñ& s×0Ð0á$ñ 1Ú*<ùrD  z, _IMV_VALUES_COUNTER), z), r!  z\d+rÌ  c              3  óP   >#   • U  H  nT  H  u  p#nU S U 3X44v •  M     M     g7f)rG  Nr  )r>  r†  r?  Úlen_r!  Úgeneric_setinputsizess        €r  r@  rF  —  s9   øé € ð /â%>˜EÜ.C™N˜C sð  ˜5  % Ð)¨4Õ5á.Cñ 6Ú%>ùs   ƒ#&r  c              3  ó.   >#   • U  H
  nUTT v •  M     g 7fr  r  )r>  r¢  Úexpand_pos_lower_indexÚexpand_pos_upper_indexs     €€r  r@  rF  ¬  s!   øé € ð &â!&˜Að Ð0Ð1GÕHÚ!&ùs   ƒc              3  ó^   >#   • U  H"  u  pTR                  S [        U5      5      v •  M$     g7f)Ú_IMV_VALUES_COUNTERN)r  r   )r>  r4  rG  Úexecutemany_values_w_commas      €r  r@  rF  ³  s7   øé € ð  ò )9¡ ð 7×>Ñ>Ø 5´s¸1³v÷ð ò )9ùr  éþÿÿÿc              3  óD   >#   • U  H  nTR                    U 3v •  M     g 7fr  )rc  )r>  r4  r  s     €r  r@  rF  Ð  s(   øé € ð &â!2˜Að  ×>Ñ>Ð?À¸sÕCÚ!2ùs   ƒ ÚEXECMANY_INDEX__rO  Ú__)4ro  rW  r†  r–  rØ  rM  r½  Úsupports_default_metavalueÚsupports_multivalues_insertr°  rU  rS  rZ  rY  r3  r   r  r\  Ú	functoolsÚpartialrµ  rÅ  rN  r  Úinsertmanyvalues_max_parametersr]  rO  Úminr»  r‡  rs  r€   rˆ   rÏ  r²  rœ  r9  rñ  rh  r�  r‚  rc  rÖ  ÚrangerQ  rC  rç  rè  Úfrom_iterabler
  r   rÎ  )Er  r4  r5  Úcompiled_parametersrJ  Ú
batch_sizerR  r²  ÚimvÚ_sentinel_from_paramsÚ	lenparamsÚuse_row_at_a_timeÚ
downgradedrd  ÚparamÚcompiled_paramÚrstÚimv_single_values_exprÚexecutemany_valuesÚ
max_paramsÚtotal_num_of_paramsÚnum_params_per_batchÚnum_params_outside_of_batchÚbatchesÚcompiled_batchesr`  re  rO  r  r?  rG  ÚstÚall_keysÚimv_values_counterÚformatted_values_clauseÚkeys_to_replaceÚbase_parametersÚall_names_we_will_expandrh  r9  r—  r  Úall_expand_positionsÚescapedra  Úcompiled_batchrc  Únew_keyrI  r!  Únum_ins_paramsÚextra_params_leftÚextra_params_rightÚbatch_iteratorÚexpanded_values_stringr•  rz   rÒ  r]  r^  Úreplaced_values_clausesr4  Úfmvr§  rB  rs  rP  rL  rM  sE   `   `                                                           @@@@@r  Ú!_deliver_insertmanyvalues_batchesÚ-SQLCompiler._deliver_insertmanyvalues_batchesš  sJ  þé € ð ×$Ñ$ˆØ‰Ðˆà×&×&Ø$(Ñ!ä$,×$7Ò$7Ø×(Ñ(ð%Ð!ô ˜
“Oˆ	Ø×× t§|¡|×'N×'Nð !%ÐØ‰JØ—‘×9×9Þ#Ø×$×$à×$Ñ$Ñ,à×1×1Ø×4×4ð !%ÐØ‰Jà×+×+Ø×,×,Ø×$×$ð !%ÐØ‰Jà %ÐØˆJæÜ5>ÜØaÜ˜
Ó8óð ö6Ñ1�Ñ1˜5ô -ØØØ)Ø�Gö 1ñ /¨~Ó>Ñ?ààØØØ+Øóô ñ6ð. æÜ×#Ò#Ø—‘×7Ñ7Ø%9ñ‰Cð
 ˆCà!$×!7Ñ!7ÐÞÙ%(Ð)?Ó%@Ð"à Ð!7Ð 8¸Ð:ÐØ×%Ñ%Ð&8Ð:NÓOˆ	ð —\‘\×AÑAˆ
ÞÜ"% d§o¡oÓ"6ÐÜ#& s×'=Ñ'=Ó#>Ð à#Ð&:Ñ:ð (ô ØàÐ"=Ñ=Ø+ñ,óˆJô Ð,¬d°:Ó.>Ó?ˆÜØ!¤4Ð(;Ó#<ó
Ðð HLÐØˆØ!Ñ/Ø×'‰A¨Qñ
ˆð !×3Ñ3ÐØ!Ñ-Ð-Ð-æñ +=ö"â*<Ñ&�C˜˜d Bð �c™3˜t›9 bÓ)Ù*<ð ó "ð ;<Ð;ÐÐ!7à��Ø×&×&Ø%)×%<Ñ%<Ñ"à%'Ð"ä˜: a™=Ó)ˆHö!ð ×'×'Ø%<Ñ"à%'Ð"Ø*+¨D¯I©Iô 6á2Dó6ó -ð ,ð "Ð" !ð''Ð#ð
 '×3Ñ3ô 4á*<ó4ó ˆOð $×.Ñ.¨Ô?óâ?�Cð �Z ‘] 3Ñ'Ò'Ù?ð ð ð
 *,Ò&à&(Ð#Ü!›eˆOØ ˆOà×'×'àÐ.Ð/Ð/GÐHñ +ð 01Ð1GÐ0HÈÐ-LÐ*ä14³Ð$Ø×.Ô.�Ø(×/Ñ/°°Q±Ö8ñ /ö (Ø"×.Ñ.�Ø"Ñ.Ð.Ð.ô &/¨{Ô%;ô(â%;™	˜˜TØÐ7Ñ7÷ Ù%;ð %ñ (ô
 *-Ð-AÓ)BÐ&Ü),Ð-AÓ)BÀQÑ)FÐ&äÐ,Ó-Ø-Ð0FÑFóGððGð ×"×"ÜŸ)š) D×$GÑ$GÓH�Ü-/¯VªVØ�y Ð$ dÐ,Fó.Ð*÷ Ø˜A˜jÐ)ˆEØ-¨a°
Ð;ˆNà$&ˆG�A�jÐ!Ø-/Ð˜Q˜zÐ*æØ%/Ñ"ä%(¨£ZÐ"æ$ô/ä%*Ð+=Ô%>ô/õ+ò/Ñ*˜  sð ˜d CÓ(ñ/ð (ò +ð ��ˆØ!$×!BÑ!B�ð "¤S¨¨q©£]Ó2Ø=?Ð?Ð%Ð(:Ø%*‘Nà(-¨a©Ð1HÐ2HÐ(IÐ%Ø).¨q©Ð2HÐ2IÐ)JÐ&õ&á!&ó&�Nð
 ×+×+àŸ™ô  ô )2°%Ô(8ó	 ó ð �rð.Ñ*ð 4Ð6HÑHØ�rð.Ð*ð ×&×&¨>¸AÓ+=ö  2Ð1Ð1à2°QÑ6�EØ(Ð,>Ñ?À%ÑG�Cô !&ô &ä!& u¨cÔ!2ó&ó !�Ið .DÀiÑ-OÐ*à%.×%6Ñ%6Ø(Ð*@ó&Ð"ô ',Ü—O‘O×1Ñ1°.ÓAó'Ð#ð
 &Ø)ñ*à(ñ)ñ $ð +-Ð'Ø&5×&:Ñ&:Ó&<Ð#ä )¨%Ö 0‘H�A�uØ1×9Ñ9Ø*¬C°«Fó�Cð ×/×/Ø!Ÿk™kÐ*?ÄÀQÃÓH˜à+×2Ñ2°3Ô7Ø'×.Ñ.Ù>MÓNºo°s˜C˜5  1 #˜¨¨c©
Ò2¹oÑNöñ !1ð &/×%6Ñ%6Ø(Ø—I‘IÐ5Ó6ó&Ð"ô
 )Ø"Ø#Ø'Øö -ñ :HÓHº°2Ñ*¨2Ö.¹ÒHàà"ØØØ'Øóò ð  ˜‰MˆH÷I ‹gùõq"ùòPùó<(ùôD+ùòx Oùò Iùs_   ‰J]-Ê(]	
ËB4]-Í7]Î
B	]-Ð]Ð$]Ð*C]-Ó7]Ô
F7]-Û]#
ÛA ]-Ü](Ü(]-Ý&]-c                ó  ^ ^&• UR                   " UT 40 UD6nUR                  nUb  X4S'   SnOT R                  (       + nU(       a7  ST l        T R                  (       d  UT l        T R
                  (       d  UT l        T R                  R                  [        5       [        5       US.5        SnS nT R                  (       a  Uc  / n[        R                  " T UUU4SU0UD6nT R                  (       aI  UbF  [        U5      nT R                  (       a*  T R                  b  T =R                  U-  sl        OUT l        UR                  n	U	(       d~  T R                  R                   (       dc  T R                  R"                  (       dH  T R                  R$                  (       d-  [&        R(                  " ST R                  R*                  -  5      eUR,                  (       až  T R                  R.                  (       d-  [&        R(                  " ST R                  R*                  -  5      eT R0                  (       d  UR2                  (       a'  UR4                  (       a  [&        R(                  " S	5      eUR                  n	OUR                  n	T R6                  n
T R                  R                   nS
nUR8                  (       a   UT R:                  " XR8                  40 UD6-  nUS-  nU
R=                  UR>                  5      nUR@                  (       a  T RC                  X5      u  píURD                  (       a  T RG                  X5        XÍ-  nU	(       d  U(       d-  USSRI                  U	 VVs/ s H  u  pï  oïPM
     snn5      -  -  nURJ                  nS nS nSnT R0                  =(       d    UR2                  nU(       Ga  URL                  nUbÍ  U(       d   eU	 VVVs0 s H  u  n  nnUU_M     nnnn/ nU H<  nUU;  a  S n  O3T RO                  U5      nUUU   ;  a  S n  OUR                  U5        M>     UcJ  T R                  RP                  [R        RT                  -  (       a  SnOUS   RV                  (       a   S5       e[Y        U5      [Y        U5      -   nT R[                  UUUS9nT R\                  (       a  USU-   -  nOS nUR^                  b•  T R`                  " T R                  S   S   4SS0UD6nT Rb                  (       aU  T R                  Rd                  (       a:  U(       d  [        T R                  5      OS nUST Rg                  USS9< U< 3-  nGOµUSU-  -  nGO«U	(       dg  U(       a`  US-  nU(       aR  [i        ST R                  Rj                  U	UUR4                  URl                  S LUU(       a  [        U5      OSUS9	T l7        GO=UR,                  (       a+  USSRI                  S URp                   5       5      < 3-  nGOU(       GaÇ  U(       GaH  T R                  RP                  [R        Rr                  -  (       Ga  URt                  (       Gd	  SnT R                  RP                  [R        Rv                  -  nU=(       d    Sm&SRI                  U	 VVVs/ s H  u  nnnnUT&;  d  M  UPM     snnn5      n SRI                  U&4S j[y        U	5       5       5      n!U(       a&  SRI                  U&U 4S j[y        U	5       5       5      n"O$SRI                  U&4S j[y        U	5       5       5      n"U	 V#s/ s H  n#U#S   T&;  d  M  U#PM     n$n#USU" SU  S U! S!3-  nO6SnU	n$SRI                  U	 VVs/ s H
  u    nnnUPM     snn5      n US"U  S#3-  n[i        SU U$UUR4                  URl                  S LUU(       a  [        U5      OSUUUS$9T l7        O2SRI                  U	 VVs/ s H
  u    nnnUPM     snn5      n US"U  S#3-  nURl                  b,  T R`                  " URl                  40 UD6n%U%(       a  USU%-   -  nU(       a  T R\                  (       d  USU-   -  nT Rb                  (       aL  T R                  Rd                  (       d1  U(       d  [        T R                  5      OS nT Rg                  USS9U-   nT R                  R{                  S5        U$ s  snnf s  snnnf s  snnnf s  sn#f s  snnf s  snnf )%Nr  FTr(  r   r  zWThe '%s' dialect with current database version settings does not support empty inserts.zcThe '%s' dialect with current database version settings does not support in-place multirow inserts.zdRETURNING cannot be deterministically sorted when using an INSERT which includes multi-row values().zINSERT zINTO ú (%s)rØ   zTsentinel selection rules should have prevented us from getting here for this dialect©r5  rO  rµ  r0  rÄ  rÍ  rO  z DEFAULT VALUES)rR  rS  rU  rV  rX  z VALUES c              3  óX   #   • U  H   nS SR                  S U 5       5      -  v •  M"     g7f)rd  rØ   c              3  ó,   #   • U  H
  u    pov •  M     g 7fr  r  )r>  rG  rþ  s      r  r@  Ú5SQLCompiler.visit_insert.<locals>.<genexpr>.<genexpr>  s   é € Ð Lº^©>¨1¨a¸¤º^ùs   ‚NrR  )r>  Úcrud_param_sets     r  r@  Ú+SQLCompiler.visit_insert.<locals>.<genexpr>ÿ  s2   é € ð ò +N˜ð Ø—y‘yÑ L¹^Ó LÓLöNâ*Mùs   ‚(*r  c              3  óH   >#   • U  H  u  pUS    T;  d  M  SU 3v •  M     g7f)r   ÚpNr  )r>  r4  ÚcpÚadd_sentinel_sets      €r  r@  rŠ  %  s/   øé € ð %â!>™˜Ø˜!‘uÐ$4Ñ4ó �a˜�s•GÚ!>ùs   ƒ"–"c              3  óÆ   >#   • U  HV  u  nu  p#pCUT;  aC  TR                  UR                  UR                  R                  TR                  5      S U 35      OUv •  MX     g7f©rŒ  N)r<  r  r  r½  )r>  r4  r  rG  rG  rŽ  r  s        €€r  r@  rŠ  3  sl   øé € ð 0ò5Ñ0˜AÑ0 ¨ð  #Ð*:Ó:ð !×1Ñ1Ø #§¡Ø #§¡× @Ñ @ÀÇÁÓ NØ"# A 3 ôð "&ô&ò5ùs   ƒAA!c              3  óJ   >#   • U  H  u  nu  p#pCUT;  a  S U 3OUv •  M     g7fr�  r  )r>  r4  r  rG  rG  rŽ  s        €r  r@  rŠ  B  s9   øé € ð 0ò5Ñ0˜AÑ0 ¨ð %(Ð/?Ó$?˜1˜Q˜C™ÀTÔIò5ùr¡  z SELECT z FROM (VALUES (z)) AS imp_sen(z#, sen_counter) ORDER BY sen_counterz	 VALUES (rJ  )rM  rN  rO  rQ  rR  rS  rU  rV  rW  rX  rZ  )>rÏ  r4  r˜  rT  r·  r*  rÎ  r€   r‡  r   Ú_get_crud_paramsrØ  rh  ru  Úsingle_paramsr½  Úsupports_default_valuesrU  Úsupports_empty_insertr2   r  r  Ú_has_multi_parametersrV  rZ  Ú
_returningÚ_sort_by_parameter_orderrµ  r%  r$  Úformat_tablerž   r¾  r,  r,  r-  rˆ   Úuse_insertmanyvaluesÚuse_sentinel_columnsrn  r/  ri  rr  Ú_insert_sentinelr»  r
  r^  rª   rÄ  rx  Úcte_follows_insertr0  rL  Údefault_metavalue_tokenÚ_post_values_clausero  Úall_multi_paramsrt  Úis_default_metavalue_onlyru  r3  rŽ  )'r  Úinsert_stmtr  r  râ  r*  r3  Úcounted_bindparamÚcrud_params_structÚcrud_params_singlerµ  r”  r  r*  rG  rG  rš  Únamed_sentinel_paramsÚadd_sentinel_colsrX  r	  r  Úparam_namesÚ_params_by_colÚ_add_sentinel_colÚ
param_namer
  Úselect_textr*  Úembed_sentinel_valueÚrender_bind_castsrþ  rª  ÚcolnamesÚcolnames_w_castrh  rO  Úpost_values_clauserŽ  s'   `                                     @r  Úvisit_insertÚSQLCompiler.visit_insert  s(	  ù€ ð $×:Ò:Ø˜ñ
Ø!#ñ
ˆð $×-Ñ-ˆàÑ#Ø!-ˆ~ÑØ‰HàŸ:™:”~ˆHæØ ˆDŒMØ×)×)Ø)6�Ô&Ø×%×%Ø%2�Ô"à�
‰
×Ñä#&£5Ü #£Ø)ñô	
ð Ðð !Ðð �?�?˜|Ñ3ð
 !#Ðä!×2Ò2ØØØØñ	
ð
 0ð
ð ñ
Ðð �?�?Ð0Ñ<Ü #Ð$5Ó 6ÐØ×"×"Ø×)Ñ)Ñ5Ø×*Ò*Ð.?Ñ?Ö*à->�DÔ*à/×=Ñ=Ðö #Ø—L‘L×8×8Ø—L‘L×;×;Ø—L‘L×6×6ä×"Ò"ðà!Ÿ\™\×.Ñ.ñ/óð ð ×.×.Ø—<‘<×;×;Ü×&Ò&ð1à37·<±<×3DÑ3DñEóð ð ×'×'¨;×+A×+AØ×6×6Ü×&Ò&ðIóð ð "4×!AÑ!AÑà!3×!AÑ!AÐà—=‘=ˆØ"&§,¡,×"FÑ"FÐàˆà× × Ø�D×+Ò+Ø×2Ñ2ñØ68ññ ˆDð 	�‰ˆØ×*Ñ*¨;×+<Ñ+<Ó=ˆ
à××Ø ×2Ñ2°;ÓK‰MˆAà×(×(Ø×+Ñ+¨KÔ<àÑˆæÖ%<Ø�G˜dŸi™iÙ+=Ô>Ò+=™-˜! 1 a’Ñ+=Ò>óñ ñ ˆDð  2×FÑFÐØ9=ÐØ ÐØ!Ðà×0Ñ0×J°K×4JÑ4JˆßØ 2× GÑ GÐØ Ñ,Þ+Ð+Ð+ñ 3Eõ"â2DÑ.˜˜Q  ;ð ˜Ò$Ù2Dð ò "ð )+Ð%Û):Ð%Ø(°Ó>Ø04Ð-ÙØ!%×!CÑ!CØ)ó"�Jð "¨Ð8IÑ)JÓJØ04Ð-ÙØ)×0Ñ0°Ö<ñ *;ð )Ñ0ð Ÿ™×GÑGÜ6×HÑH÷Ið -1Ñ)ð $5°QÑ#7×#H×#Hð ðDóÐHô "& nÓ!5¼Ð=NÓ8OÑ!O�à#×4Ñ4ØØØ$,ð  5ð  Ðð ×-×-Ø˜Ð.Ñ.Ñ.�øð  $Ðà×ÑÑ)àŸ,š,Ø—
‘
˜2‘Ð3Ñ4ñØBFðØJLñˆKð �y�y˜TŸ\™\×<×<Þ7?¤ D§J¡J¤ÀT�ÙØ×+Ñ+Ø&3Ø04ð ,ò ò  ðñ ’ð ˜ Ñ+Ñ+’Þ#Ö(?ØÐ%Ñ%ˆDÞ#Ü):ØØ—L‘L×8Ñ8Ø&Ø%à#×<Ñ<ð $×7Ñ7¸tÐCà%6æ2CœÐ-Ô.Èà&7ñ*�Ô&ùð" ×0×0ÙØ—	‘	ñ ð +=×*MÒ*Móõ ðñ ŠD÷ "ç!à—L‘L×CÑCÜ2×IÑI÷Jð Jð
 ,×E×EÐEð (,Ð$ð —L‘L×CÑCÜ2×JÑJñKð "ð
 $5×#:¸Ð à,0¯I©Iñ 1Cõâ0BÑ,˜C  E¨1ØÐ&6Ñ6÷ Ù0Bóó-Ð)ð  Ÿ9™9ô %ä!*Ð+=Ô!>ó%ó �ö %ð '+§i¡iõ 0ô 5>Ø.ô5ó0ó '‘Oð '+§i¡iô 0ä4=Ø.ô5ó0ó '�Oñ !3ó&â 2˜Ø˜A‘wÐ&6Ñ6÷ Ù 2ð #ð &ð Ø˜Ð/ð 0 Ø 9Ð:ð ;"Ø"* ð ,+ð+ñ‘ð (-Ð$Ø%7Ð"Ø,0¯I©IÙ1CÔDÒ1C™~˜q ! U¨A“UÑ1CÒDó-Ð)ð ˜)Ð$=Ð#>¸aÐ@Ñ@�ä%6Ø %Ø#<Ø#5Ø.?Ø)4×)MÑ)Mà×3Ñ3¸4Ð?à!2æ.?”CÐ)Ô*ÀQà$9Ø"3Ø%9ñ&ˆDÕ"ð& )-¯	©	Ù-?Ô@Ò-?™>˜1˜a ¨“Ñ-?Ò@ó)Ð%ð �iÐ 9Ð:¸!Ð<Ñ<ˆDà×*Ñ*Ñ6Ø!%§¢Ø×/Ñ/ñ"Ø35ñ"Ðö "Ø˜Ð0Ñ0Ñ0�æ D×$B×$BØ�CÐ*Ñ*Ñ*ˆDà�9�9˜TŸ\™\×<×<Þ3;œC §
¡
œOÀˆMà×'Ñ'Ø"/Ø,0ð (ð ð ñ	ð ð 	�
‰
�‰�rÔàˆùó] ?ùô0"ùôHùòV&ùó& Eùó2 As0   Í&c#Ïc)Ú#c0Ú6c0Ü>c7Ýc7Ý;c<
ß.d
c                ó   • g)z3Provide a hook for MySQL to add LIMIT to the UPDATENr  )r  Úupdate_stmts     r  Úupdate_limit_clauseÚSQLCompiler.update_limit_clause’  ó   € àr  c                ó   • g)z3Provide a hook for MySQL to add LIMIT to the DELETENr  )r  Údelete_stmts     r  Údelete_limit_clauseÚSQLCompiler.delete_limit_clause–  r¸  r  c                ó6   • SUS'   UR                   " U 4SS0UD6$ )zdProvide a hook to override the initial table clause
in an UPDATE statement.

MySQL overrides this.

Tr®  rK  rë  )r  rµ  Ú
from_tableÚextra_fromsrâ  s        r  Úupdate_tables_clauseÚ SQLCompiler.update_tables_clauseš  s(   € ð ˆˆ8‰Ø×,Ò,¨TÑE¸$ÐEÀ"ÑEÐEr  c                ó   • [        S5      e)zfProvide a hook to override the generation of an
UPDATE..FROM clause.

MySQL and MSSQL override this.

zCThis backend does not support multiple-table criteria within UPDATEræ  ©r  rµ  r¾  r¿  Ú
from_hintsrâ  s         r  Úupdate_from_clauseÚSQLCompiler.update_from_clause¤  s   € ô "ð%ó
ð 	
r  c                ó¢  • UR                   " X40 UD6n[        (       a  [        U[        5      (       d   eUR                  nUb  X#S'   SnOU R
                  (       + nU(       a5  SU l        U R                  (       d  X@l        U R                  (       d  X@l        U R                  [        -  (       a5  [        0 [        5       5      nU R                  [        -  nU(       a  X`l        OS nSnUR                  n[!        U5      n	U	(       aI  [        [#        UR$                  5      5      n
U Vs/ s H  o»U
;  d  M
  UPM     nnU
R'                  U5      nO/ nUR$                  1nU R
                  R)                  UUUS.5        SnUR*                  (       a  XàR,                  " XR*                  40 UD6-  nU R.                  " UUR$                  U4SU0UD6n[0        R2                  " XXE40 UD6nUR4                  nUR6                  (       a  U R9                  X5      u  nnOS nUR:                  (       a  U R=                  X5        Xï-  nUS-  nUSR?                  S	 [A        S
U5       5       5      -  nU RB                  (       d  URD                  (       aE  U RF                  (       a4  USU RI                  UU RB                  =(       d    URD                  US9-   -  nU(       a1  U RJ                  " UUR$                  UU4SU0UD6nU(       a  USU-   -  nURL                  (       a.  U RN                  " URL                  4SU0UD6nU(       a  USU-   -  nU RQ                  U5      nU(       a  USU-   -  nU RB                  (       d  URD                  (       aE  U RF                  (       d4  USU RI                  UU RB                  =(       d    URD                  US9-   -  nU RR                  (       a0  U(       d  [U        U R
                  5      OS nU RW                  US9U-   nU(       a  Uc   eURY                  SS9  U R
                  R[                  S5        U$ s  snf )Nr  FTr(  zUPDATE rL  z SET rØ   c              3  ó8   #   • U  H  u  pp1US -   U-   v •  M     g7f)Ú=Nr  )r>  rG  rG  rþ  s       r  r@  Ú+SQLCompiler.visit_update.<locals>.<genexpr>  s)   é € ð 
ò&Ñ!�˜ð �3‰J˜Öò&ùs   ‚zList[Tuple[Any, str, str, Any]]rO  r…  ú WHERE r)  ÚUPDATE©r¢  rµ  ).rÏ  r   rÂ  rA   r4  r˜  rU  r·  r*  r�  r~  r‚  r€   r  rL  Ú_extra_fromsr+  r*   rž   rŸ   rÎ  r%  r$  rÀ  r   r’  r“  r¾  r,  r,  r-  rˆ   r   rZ  r—  r^  r
  rÅ  rÛ  r`  r¶  rx  rØ  r0  r£  rŽ  )r  rµ  r  râ  r*  r3  rL  rá  r¿  Úis_multitableÚ
main_fromsrâ  Úrender_extra_fromsr&  r  r*  r¤  Úcrud_paramsr+  Úextra_from_textrã  rß  r*  s                          r  Úvisit_updateÚSQLCompiler.visit_update²  sD  € ð $×:Ò:Øñ
Ø!#ñ
ˆ÷ Š=Ü˜m¬^×<Ñ<Ð<Ð<Ø#×-Ñ-ˆàÑ#Ø!-ˆ~ÑØ‰HàŸ:™:”~ˆHæØ ˆDŒMØ×)×)Ø)6Ô&Ø×%×%Ø%2Ô"à�<‰<Ô4×4Ü$ R¬«Ó/ˆKØŸ<™<¬,Ñ6ˆLÞØ#.Ô øàˆKØ ˆLà#×0Ñ0ˆÜ˜[Ó)ˆæäœ]¨;×+<Ñ+<Ó=Ó>ˆJá&ó"Ú&�a°:Ñ*=—™;ð ð "ð )×.Ñ.¨{Ó;‰Oà!#ÐØ*×0Ñ0Ð1ˆOà�
‰
×Ñà#2Ø /Ø)ñô	
ð ˆà× × Ø×+Ò+Ø×2Ñ2ñØ68ññ ˆDð ×.Ò.ØØ×ÑØñ
ð $ð	
ð
 ñ
ˆ
ô "×2Ò2Ø˜}ñ
Ø:<ñ
Ðð )×6Ñ6ˆà××Ø(,×(>Ñ(>Øó)Ñ%ˆM™:ð !ˆMà×(×(Ø×+Ñ+¨KÔ<àÑˆà�‰ˆØ�—	‘	ñ 
ä%)Ø1°;ô&ó
ó 
ñ 	
ˆð ×"×" k×&<×&<Ø×-×-Ø˜˜d×3Ñ3ØØ×+Ñ+×E¨{×/EÑ/EØ(0ð 4ð ñ ñ �ö Ø"×5Ò5ØØ×!Ñ!Ø"Øñ	ð
 (ðð ñˆOö Ø˜˜oÑ-Ñ-�à×&×&Ø×1Ò1Ø×+Ñ+ñØ9DðØHJñˆAö Ø˜	 A™Ñ%�à×/Ñ/°Ó<ˆÞØ�C˜,Ñ&Ñ&ˆDð ×#×# {×'=×'=Ø×0×0Ø�C˜$×/Ñ/ØØ×'Ñ'×A¨;×+AÑ+AØ$,ð 0ð ñ ñ ˆDð �9�9Þ3;œC §
¡
œOÀˆMØ×*Ñ*¸Ð*ÐGÈ$ÑNˆDæØÑ*Ð*Ð*Ø×Ñ xÐÑ0à�
‰
�‰�rÔàˆùòS"s   Ä*	QÄ7Qc                ó   • [        S5      e)z Provide a hook to override the generation of an
DELETE..FROM clause.

This can be used to implement DELETE..USING for example.

MySQL and MSSQL override this.

zCThis backend does not support multiple-table criteria within DELETEræ  ©r  rº  r¾  r¿  rÄ  râ  s         r  Údelete_extra_from_clauseÚ$SQLCompiler.delete_extra_from_clauseF  s   € ô "ð%ó
ð 	
r  c                ó.   • UR                   " U 4SSS.UD6$ )NT)r®  rK  rë  )r  rº  r¾  r¿  râ  s        r  Údelete_table_clauseÚSQLCompiler.delete_table_clauseV  s*   € Ø×,Ò,Øð
Ø dñ
Ø.0ñ
ð 	
r  c                óè  • UR                   " X40 UD6nUR                  nUb  X#S'   SnOU R                  (       + nU(       a5  SU l        U R                  (       d  X@l        U R
                  (       d  X@l        U R                  [        -  (       a5  [        0 [        5       5      nU R                  [        -  nU(       a  X`l        OS nSnUR                  nUR                  1R                  U5      n	U R                  R                  U	U	US.5        Sn
UR                   (       a  X R"                  " XR                   40 UD6-  n
U
S-  n
 U R%                  UUR                  UUS9n[*        R,                  " XXE40 UD6  UR.                  (       a  U R1                  X5      u  pÛOS nUR2                  (       a  U R5                  X5        X«-  n
U R6                  (       d  UR8                  (       aE  U R:                  (       a4  U
SU R=                  UU R6                  =(       d    UR8                  US	9-   -  n
U(       a1  U R>                  " UUR                  UU4S
U0UD6nU(       a  U
SU-   -  n
UR@                  (       a.  U RB                  " UR@                  4S
U0UD6nU(       a  U
SU-   -  n
U RE                  U5      nU(       a  U
SU-   -  n
U R6                  (       d  UR8                  (       aE  U R:                  (       d4  U
SU R=                  UU R6                  =(       d    UR8                  US	9-   -  n
U RF                  (       a0  U(       d  [I        U R                  5      OS nU RK                  US9U
-   n
U(       a  Uc   eURM                  SS9  U R                  RO                  S5        U
$ ! [&         aA    U R%                  XR                  U5      nU(       a  U R)                  UR                  US9n GN�f = f)Nr  FTr(  zDELETE úFROM )rL  rO  r…  rL  rË  r)  ÚDELETErÍ  rµ  )(rÏ  r4  r˜  rS  r·  r*  r�  r~  r‚  r€   r  rL  rÎ  rž   rŸ   rÎ  r%  r$  rÛ  Ú	TypeErrorrÄ  r   r’  r¾  r,  r,  r-  rZ  r—  r^  r
  rØ  rÛ  r`  r»  rx  rØ  r0  r£  rŽ  )r  rº  r  râ  r*  r3  rL  rá  r¿  r&  r  r*  rG  r+  rÓ  rã  rß  r*  s                     r  Úvisit_deleteÚSQLCompiler.visit_delete[  sÛ  € Ø#×:Ò:Øñ
Ø!#ñ
ˆð $×-Ñ-ˆàÑ#Ø!-ˆ~ÑØ‰HàŸ:™:”~ˆHæØ ˆDŒMØ×)×)Ø)6Ô&Ø×%×%Ø%2Ô"à�<‰<Ô4×4Ü$ R¬«Ó/ˆKØŸ<™<¬,Ñ6ˆLÞØ#.Ô øàˆKØ ˆLà#×0Ñ0ˆà&×,Ñ,Ð-×3Ñ3°KÓ@ˆØ�
‰
×Ñà#2Ø /Ø)ñô	
ð ˆà× × Ø×+Ò+Ø×2Ñ2ñØ68ññ ˆDð 	�‰ˆð	MØ×1Ñ1ØØ×!Ñ!ØØ'ð	 2ð ˆJô 	×Ò˜d°ÑOÈBÒOà××Ø(,×(>Ñ(>Øó)Ñ%ˆM˜:ð !ˆMà×(×(Ø×+Ñ+¨KÔ<àÑˆð ×#×# {×'=×'=Ø×,×,Ø�C˜$×/Ñ/ØØ×'Ñ'×A¨;×+AÑ+AØ$,ð 0ð ñ ñ ˆDö Ø"×;Ò;ØØ×!Ñ!ØØñ	ð
 (ðð ñˆOö Ø˜˜oÑ-Ñ-�à×&×&Ø×1Ò1Ø×+Ñ+ñØ9DðØHJñˆAö Ø˜	 A™Ñ%�à×/Ñ/°Ó<ˆÞØ�C˜,Ñ&Ñ&ˆDð ×#×# {×'=×'=Ø×0×0Ø�C˜$×/Ñ/ØØ×'Ñ'×A¨;×+AÑ+AØ$,ð 0ð ñ ñ ˆDð �9�9Þ3;œC §
¡
œOÀˆMØ×*Ñ*¸Ð*ÐGÈ$ÑNˆDæØÑ*Ð*Ð*Ø×Ñ xÐÑ0à�
‰
�‰�rÔàˆøôU ó 	Mð ×1Ñ1Ø×.Ñ.°óˆJö Ø—L‘L ×!2Ñ!2À�LÐL�úð	Mús   ÅN& Î&AO1Ï0O1c                ó>   • SU R                   R                  U5      -  $ )NzSAVEPOINT %s©rµ  Úformat_savepoint©r  Úsavepoint_stmtrâ  s      r  Úvisit_savepointÚSQLCompiler.visit_savepointÞ  s   € Ø §¡× >Ñ >¸~Ó NÑNÐNr  c                ó>   • SU R                   R                  U5      -  $ )NzROLLBACK TO SAVEPOINT %srä  ræ  s      r  Úvisit_rollback_to_savepointÚ'SQLCompiler.visit_rollback_to_savepointá  s#   € Ø)¨D¯M©M×,JÑ,JØó-
ñ 
ð 	
r  c                ó>   • SU R                   R                  U5      -  $ )NzRELEASE SAVEPOINT %srä  ræ  s      r  Úvisit_release_savepointÚ#SQLCompiler.visit_release_savepointæ  s#   € Ø%¨¯©×(FÑ(FØó)
ñ 
ð 	
r  )-re  rt  ro  rg  rh  rc  rf  rj  rn  rl  ri  r°  rd  r—  ru  r•  r]  r\  ra  r¹  r‹  rb  r*  rx  ry  r{  r·  rs  rŒ  rL  rÒ  rw  rS  rT  r[  rU  r“  rz  r�  rê  r‡  r9  r˜  r­  r–  )r½  rm   r4  r«  r¹  r¸  r‹  r8  rŒ  r+  r�  r|  r¡  zOptional[SQLCompiler]rî  r   )r  rk  )r  rY  )r  zDict[Any, Any])r  zMutableMapping[CTE, str])r  zVMutableMapping[str, Union[_BindProcessorType[Any], Sequence[_BindProcessorType[Any]]]])r  r6   )NT)rõ  r  r÷  r+  r  r3  )NNTNTF)rõ  r  rö  r  r÷  r+  r  úOptional[int]r  r+  r‰  r+  r  rl   ©F)r5  rl   rŠ  r+  r  r3  )r  zCallable[[Any], str]r   )NFFNr  )NTr  N)r£   úColumnClause[Any]rÕ  úOptional[_ResultMapAppender]rï  r+  rÖ  r  rð  z Optional[_AmbiguousTableNameMap]rî  r   r  r   r  )NF)rG  rK   râ  r   r  r   )rG  rL   râ  r   r  r   )rG  rI   râ  r   r  r   )r¡  úFunction[Any]rÕ  ró  rî  r   r  r   )r¡  rô  rî  r   r  r   )FN©Nr  )NFNN)
r¢   úBinaryExpression[Any]rs  r   rP  r+  râ  r   r  r   )r¢   rö  r†  r   râ  r   r  r   )FFFFFF)rþ  r   r  zsqltypes.TypeEngine[Any]r  r   )ró  r   r  rC   r  r   )r  r   r  r   )FFNNNN)r  r   rÉ  r+  rÊ  r+  r  rk  rË  zOptional[TypeEngine[Any]]r  zOptional[Set[str]]r  rm  râ  r   r  r   )r  rZ   r®  r+  r)  r+  r*  zOptional[_FromHintsType]r  úOptional[CTE]rL  zOptional[FromLinter]r	  zselectable._CTEOptsrî  r   r  rk  )FFFNFFNN)FNN)
r  r   r  r   r  r  r  r  r  r  )NNNTFFT)rž   r[   r  rk  r  rk  )FFNNNFN)rª   r/  r  zTuple[str, _FromHintsType])rª   r/  râ  r   r  r   ©
r  r@   r	  zSequence[_ColumnsClauseElement]r5  r+  râ  r   r  r   )NFF)FFFNTNNN)rž   rU   r  rT  )r4  r   r5  rh   r]  z%List[_MutableCoreSingleExecuteParams]rJ  r_  r^  rP  rR  r+  r²  r±  r  z Iterator[_InsertManyValuesBatch]r„  )rµ  r?   r  r÷  râ  r   r  r   )ür	  r
  r  r  r  ÚEXTRACT_MAPr§  r&   r  rP  r  r  ÚCOMPOUND_KEYWORDSrÐ  rS  rT  rU  rW  rX  rZ  r[  r^  r_  r`  rd  re  rf  rg  rh  ri  rj  rl  rn  ro  rp  Ú	frozensetrq  rr  r  rs  rÒ  Úpostfetch_lastrowidrt  r9  ru  rv  rw  r�  rƒ  rR  rë  Úpatternr×  r	  rÌ  r~  r}  rÉ  rJ  rª  Úro_memoized_propertyr¯  r²  r¸  r¼  Úmemoized_propertyr¿  Úmemoized_instancemethodrÃ  Ú
contextlibÚcontextmanagerrÉ  rŸ  rž  rÿ  r  rè  r  rø  r+  rõ  r   Úpreload_modulerh  rn  r�  r™  rœ  r¨  r¯  r³  rÅ  rÌ  rÚ  rß  rä  rö  rü  r  r  r
  r  rê  r%  r6  r<  rC  rG  rT  r`  rg  re  rt  r}  r‚  r‡  r�  rš  rž  r¤  rª  r±  r­  rÁ  r¾  rº  rÚ  rÖ  rp  rì  rõ  rù  rÿ  r  r	  r  r  r  r7  rO  r  rT  rW  rZ  r]  r`  r  rê  rë  rm  rp  ry  r~  rƒ  rˆ  rŒ  r�  r’  r•  r˜  r›  rž  r¡  rv  r}  r‚  r‡  r´  r·  r¼  rÀ  rÃ  r×  r<  r-   rN  r1  rÎ  rÑ  rû  r  r-  r$   Ú_CTEOptsr  rE  rH  rD  rY  rC  rb  rm  ru  rx  r(  r/  rƒ  r�  rT  r   rš  r§  r«  Útypingr   r+  r´  r¶  rÏ  r¿  r½  rÂ  r$  r0  rí  rÀ  rÓ  rÔ  rà  r
  rß  rÞ  r   r'  r,  r,   Ú
CLIENTSIDEri  rs  ÚSENTINEL_DEFAULTÚNONErp  rq  r4  rŸ   ro  r2  r:  r�  r²  r¶  r»  rÀ  rÅ  rÔ  rØ  rÛ  rá  rè  rë  rî  r  r  r  r  rÿ  rÿ  )  s¿  ‡ ñð €Kð 	×ÒàØØØØØØØñ	ó	
ð Ð ;ó ðð: /Ó.Ø6Ó6à€Fà)Ðà€HˆdÓØ€HˆdÓØ€HˆdÓðð
 +Ó*ð%ð .0€OÐ*Ó/ðð .0€OÐ*Ó/ð$ð BFÐÐ>ÓEðð €K�Óà(Ó(ØIà-Ó-ð6ð %Ó$ð4ð ',Ð˜tÓ+ðð 5:Ð+¨TÓ9ðð
 "€O�TÓ!ðð ÓØBà!Ó!ðð %(Ó'ðð
 .Ó-ðð
 &+Ð˜dÓ*ðð "€O�TÓ!ðð "Ð�dÓ!ðð ).Ð Ó-ðð !€N�DÓ ðð !&Ð˜Ó%ðð =AÐ Ð"9Ó@ðð +/Ð˜-Ó.ðð
 6:ÐÐ2Ó9à59ÐÐ2Ó9à=AÐÐ:ÓAá<E»KÐÐ9ÓGðñ
 :C»ÐÐ6ÓDðð
 8<·±ÐÐ4ÓFðð
 Ððð  Ðð%ð 	ð ð ó ðð (,€KÐ$Ó+ðð .2ÐÐ*Ó1à.2ÐÐ+Ó2à€FˆDÓà
,Ó,ð 3Ó2ð GÓFàÓàŸJšJÐ'LÓMÐØŸ
š
Ð#4Ó5ÐØŸ*š*Ø×$Ñ$Ð
% QÐ'<×'DÑ'DÐ&EÐFóÐð ñ#ó ð#ð ñCó ðCð )-Ø/3Ø %Ø%Ø59ðPàðPð +ðPð &ð	Pð
 -ðPð ðPð ðPð 3ðPð öPðd ô=ó ð=ð$ 
×Ñôó ðð0 ñ(ó ð(ð ñ Mó ð MðD ñGó ðGð 
×Ñôó ðð 
×!Ñ!ôó "ðð. ×Ññó ðò.9òvGðR 
×Ñð
ð
ô
ó ð
ò8#ð ôó ðð
 6:Ø!ñ
à2ð
ð ð
ð 
ö	
ð2 6:ØGKØ!Ø'+ØØ %ñ~à2ð~ð Eð~ð ð	~ð
 %ð~ð ð~ð ð~ð 
)ö~ð@ 
×!Ñ!ñ$ó "ð$ðL ñ
3ó ð
3ð  %ñCà3ðCð ðCð 
ö	CðJ 
×ÒÐ3Ó4ñ
ó 5ð
ð 4Ó3à	×Ñôó ðð 
×ÑØ	×ÒÐ3Ó4ñPó 5ó ðPðd 
×ÑØ	×ÒÐ3Ó4ñ)ó 5ó ð)õVò>õ@OòOð .3õ-
ð` .3õ+ð` Ø!Ø#Ø"Øõ/òb
ò
/ð ;?Ø"Ø.0ØEIñ9Oà!ð9Oð 8ð9Oð ð	9Oð
 ,ð9Oð #Cð9Oð ð9Oð 
ö9OòvAòòò
òò
õ

ð4 05õ2õhõõò
òò"@òLòò&ò&Kò
ò(
òT
òB
ò
ò
ò7ð ;?ñ,àð,ð 8ð,ð ð	,ð
 
ö,ò\8ò
õCð 04õ?òB3ò-ð ACõ$òLò6ò"BòBò
ò

ò4ò$
ð ;?õH*òTM1ðd ØØØ õ6òp8òò
ò
ò

ð  %ñ	à%ðð ðð ð	ð
 ðð 
öò2GòGð 
×ÑñIó ðIòJòAòEòBòFòAòEòBòFòAòEòBòFò

ò	
òAòEò
ò
ð
Ø+ð
Ø7:ð
ØBEð
à	õ
ð
Ø+ð
Ø7:ð
ØBEð
à	õ
ð
Ø+ð
Ø7:ð
ØBEð
à	õ
ð $ØØ"ØØ Øõnò`$ð $Ø!%ô	DðB%Øð%Ø!9ð%à	õ%òNðØðØ&6ðà	õõ*$ð #ØØ&*Ø48Ø48Ø15ñAàðAð ðAð ð	Að
 $ðAð 2ðAð  2ðAð /ðAð ðAð 
öAòFCð ØØ.2Ø&*Ø,0Ø(2×(;Ó(;¸EÓ(BðVàðVð ðVð ð	Vð
 ,ðVð $ðVð *ðVð &ðVð ðVð 
öVòp3ò0ð ØØØØØØØõbòH0ò?õò"ð EIõ/òb9ò(ð
àð
ð ð
ð !ð	
ð
 ð
ð 
õ
ð4 EIõ
ð8 ØØ Ø"Ø Ø %ØõQJòfòðØðØ'4ðà	õò
ò$ð .Ó-à××ÐØ#×1Ò1Ø¡£Ð-°Á	ÃÐ/LÐMó 
Ðð
 ,1õð: '+Ð Ó*ðð ØØØØØØõKðZ
!Ø!ð
!à	#õ
!ò2òh]ò~ð Ø %õ3òjõ7ò 	ò
òð1àð1ð 8ð1ð
 "ð1ð ð1ð 
õ1ò@ð ØØ+0õ'ðX ØØØØØØ!%Øõ3õj
ò<
)ð" (,×'9Ò'9à,×7Ò7Ø,×>Ò>à,×=Ò=Ø,×>Ò>à,×1Ò1Ø,×>Ò>à,×5Ò5Ø,×5Ò5à,×5Ò5Ø,×5Ò5ð	
ó(Ð$ð& $D×#IÒ#Ià,×1Ò1Ø,×:Ò:ð	
ó$Ð ð<Øð<à	(õ<ð|oàðoð -ðoð Cð	oð
  Cðoð ðoð "&ðoð ?ðoð 
*õoðd AEõEòNòòFò
ð" '+ñRàðRð $ðRð ð	Rð
 
öRóh
ó 
ö
AóFOó
÷

r  rÿ  c                  óÂ   ^ • \ rS rSrSrS r\R                  " S5      U 4S j5       rS r	S r
S rS	 r          SS
 jrS rS rS rS rS rS rS rS rSrU =r$ )ÚStrSQLCompileriì  a_  A :class:`.SQLCompiler` subclass which allows a small selection
of non-standard SQL features to render into a string value.

The :class:`.StrSQLCompiler` is invoked whenever a Core expression
element is directly stringified without calling upon the
:meth:`_expression.ClauseElement.compile` method.
It can render a limited set
of non-standard SQL constructs to assist in basic stringification,
however for more substantial custom or dialect-specific SQL constructs,
it will be necessary to make use of
:meth:`_expression.ClauseElement.compile`
directly.

.. seealso::

    :ref:`faq_sql_expression_string`

c                ó   • g)Nz<name unknown>r  rÞ  s     r  rß  Ú$StrSQLCompiler._fallback_column_name   s   € Ør  zsqlalchemy.engine.urlc                óX  >• UR                   S:w  a‹  [        R                  R                  nUR                  R                  UR                   5      R                  5       " 5       nUR                  US U S9n[        U[        5      (       d  UR                  " U40 UD6$ [        TU ]1  X5      $ )Nr°   )r¡  )Ústringify_dialectr&   rd  Ú
engine_urlÚURLr¤   Úget_dialectÚstatement_compilerrÂ  r
  rÄ  rÍ  rã  )r  rà  rá  râ  Úurlr½  ÚcompilerrÐ  s          €r  rã  Ú,StrSQLCompiler.visit_unsupported_compilation  s•   ø€ à×$Ñ$¨	Ó1Ü—.‘.×+Ñ+ˆCØ—g‘g—n‘n W×%>Ñ%>Ó?×KÑKÔMÓOˆGà×1Ñ1Ø˜°4ð 2ð ˆHô ˜h¬×7Ñ7Ø×'Ò'¨Ñ6°2Ñ6Ð6ä‰wÑ4°WÓBÐBr  c                ó‚   • U R                   " UR                  40 UD6< SU R                   " UR                  40 UD6< S3$ )NrM  rN  )rÄ  r‰   r�   rô  s       r  Úvisit_getitem_binaryÚ#StrSQLCompiler.visit_getitem_binary  s6   € à�LŠL˜Ÿ™Ñ+¨Ô+Ø�LŠL˜Ÿ™Ñ,¨Ô,ð
ð 	
r  c                ó(   • U R                   " X40 UD6$ r  ©r  rô  s       r  Úvisit_json_getitem_op_binaryÚ+StrSQLCompiler.visit_json_getitem_op_binary  ó   € Ø×(Ò(¨Ñ@¸RÑ@Ð@r  c                ó(   • U R                   " X40 UD6$ r  r  rô  s       r  Ú!visit_json_path_getitem_op_binaryÚ0StrSQLCompiler.visit_json_path_getitem_op_binary  r  r  c                ó@   • SU R                   R                  U5       S3$ )Nz<next sequence value: Ú>)rµ  Úformat_sequencerÅ  s      r  r¾  ÚStrSQLCompiler.visit_sequence  s#   € à$ T§]¡]×%BÑ%BÀ8Ó%LÐ$MÈQÐOð	
r  c          
     ó¦   • [         R                  " U5       Vs/ s H  nU R                  S USS0 5      PM     nnSSR                  U5      -   $ s  snf )NTFr  rØ   )r   r  r�  rˆ   )r  r  r	  r5  râ  r®  rt  s          r  r
  ÚStrSQLCompiler.returning_clause"  s]   € ô ×+Ò+¨NÔ;ó
â;�ð ×%Ñ% d¨A¨t°U¸BÖ?Ù;ð 	ð 
ð ˜dŸi™i¨Ó0Ñ0Ð0ùò	
s   ™Ac                óR   ^ ^^• STS'   SSR                  UUU 4S jU 5       5      -   $ )NTr®  rÞ  rØ   c              3  óN   >#   • U  H  nUR                   " T4S T0TD6v •  M     g7f©r*  Nrë  ©r>  rã  rÄ  râ  r  s     €€€r  r@  Ú4StrSQLCompiler.update_from_clause.<locals>.<genexpr>4  s-   øé € ð #
â �ð × Ò  ÑB°ÐB¸rÖBÚ ùó   ƒ"%rR  rÃ  s   `   ``r  rÅ  Ú!StrSQLCompiler.update_from_clause0  s3   ú€ ð ˆˆ8‰Ø˜Ÿ™ö #
á ó#
ó 
ñ 
ð 	
r  c                óR   ^ ^^• STS'   SSR                  UUU 4S jU 5       5      -   $ )NTr®  rØ   c              3  óN   >#   • U  H  nUR                   " T4S T0TD6v •  M     g7fr)  rë  r*  s     €€€r  r@  Ú:StrSQLCompiler.delete_extra_from_clause.<locals>.<genexpr>=  s-   øé € ð  
â �ð × Ò  ÑB°ÐB¸rÖBÚ ùr,  rR  r×  s   `   ``r  rØ  Ú'StrSQLCompiler.delete_extra_from_clause9  s3   ú€ ð ˆˆ8‰Ø�d—i‘iö  
á ó 
ó 
ñ 
ð 	
r  c                ó   • g)NzSELECT 1 WHERE 1!=1r  r  s      r  r  Ú#StrSQLCompiler.visit_empty_set_exprB  s   € Ø$r  c                ó   • SU-  $ )Nz[%s]r  r¤  s      r  rš  Ú!StrSQLCompiler.get_from_hint_textE  s   € Ø˜‰}Ðr  c                ó*   • U R                   " US40 UD6$ )Nz
 <regexp> ©r  rô  s       r  r¼  Ú+StrSQLCompiler.visit_regexp_match_op_binaryH  s   € Ø×,Ò,¨V°\ÑHÀRÑHÐHr  c                ó*   • U R                   " US40 UD6$ )Nz <not regexp> r7  rô  s       r  rÀ  Ú/StrSQLCompiler.visit_not_regexp_match_op_binaryK  s   € Ø×,Ò,¨VÐ5EÑLÈÑLÐLr  c                ó„   • SUR                   R                  " U 40 UD6< SUR                  R                  " U 40 UD6< S3$ )Nz<regexp replace>(rØ   rJ  )r‰   rì  r�   rô  s       r  rÃ  Ú-StrSQLCompiler.visit_regexp_replace_op_binaryN  s:   � à�K‰K×*Ò*¨4Ñ6°2Ô6Ø�L‰L×+Ò+¨DÑ7°BÔ7ð
ð 	
r  c                ó„   • SUR                   R                  " U 40 UD6< SUR                  R                  " U 40 UD6< S3$ )Nz	TRY_CAST(rÚ   rJ  )rz  rì  r	  )r  r   rî  s      r  Úvisit_try_castÚStrSQLCompiler.visit_try_castT  s:   � à�K‰K×*Ò*¨4Ñ:°6Ô:Ø�O‰O×.Ò.¨tÑ>°vÔ>ð
ð 	
r  r  rø  )r	  r
  r  r  r  rß  r&   r  rã  r  r  r  r¾  r
  rÅ  rØ  r  rš  r¼  rÀ  rÃ  r>  r  r
  r  s   @r  r
  r
  ì  s©   ø† ñò& ð 
×ÒÐ0Ó1ôCó 2ðCò
òAòAò
ð
1àð1ð 8ð1ð
 "ð1ð ð1ð 
ô1ò
ò
ò%òòIòMò
÷
ð 
r  r
  c                  óÂ  • \ rS rSrSr\(       a     S9         S:S jjr\R                  S;S j5       r	\R                  S 5       r   S<       S=S jjrS rS	 rS
 rS rS>S jr S?S jrS rS rS@S jr SAS jrS r S>     SBS jjrS rS rS rS rS rS rS rSCS jr S?S jr!S r"S r#S r$S  r%S! r&SDS" jr'SES# jr(S$ r)S% r*S& r+      SFS' jr,      SGS( jr-S) r.      SHS* jr/      SIS+ jr0      SFS, jr1      SGS- jr2      SHS. jr3SJS/ jr4      SHS0 jr5    SKS1 jr6    SKS2 jr7    SKS3 jr8SLS4 jr9SKS5 jr:S6 r;S7 r<S8r=g)MÚDDLCompileri[  Tc                ó   • g r  r  rÆ  s         r  rÉ  ÚDDLCompiler.__init__`  s   € ð r  c                ó`   • U R                   R                  U R                   S U R                  S9$ )Nr=  )r½  r  r²  rD  s    r  rè  ÚDDLCompiler.sql_compileri  s/   € à�|‰|×.Ñ.Ø�L‰L˜$°T×5NÑ5Nð /ð 
ð 	
r  c                ó.   • U R                   R                  $ r  )r½  r  rD  s    r  Útype_compilerÚDDLCompiler.type_compilero  s   € à�|‰|×2Ñ2Ð2r  Nc                ó   • g r  r  rô  s       r  rø  ÚDDLCompiler.construct_paramss  s   € ð r  c                ó  • UR                   n[        UR                  [        R                  5      (       a¥  UR                  5       nU R                  nUR                  UR                  5      n[        U5      S:X  a  US   SpvO	US   US   pvUR                  SU5        UR                  SU5        UR                  SUR                  UR                  5      5        U R                  R                  UR                  U-  5      $ )Nr   r   r¬  rµ  rž   r#   r  )ÚcontextrÂ  Útargetr#   rU   r
  rµ  Úformat_table_seqrØ  rj  r™  rè  r  r4  )r  Úddlrî  rL  rµ  Úpathrž   Úschs           r  Ú	visit_ddlÚDDLCompiler.visit_ddl{  sÌ   € à—+‘+ˆÜ�c—j‘j¤&§,¡,×/Ñ/Ø—l‘l“nˆGà—}‘}ˆHØ×,Ñ,¨S¯Z©ZÓ8ˆDÜ�4‹y˜A‹~Ø! !™W b‘sà! "™X t¨A¡w�sà×Ñ˜w¨Ô.Ø×Ñ˜x¨Ô-Ø×Ñ˜z¨8×+@Ñ+@ÀÇÁÓ+LÔMà× Ñ ×2Ñ2°3·=±=À7Ñ3JÓKÐKr  c                ó€   • SnUR                   (       a  US-  nX0R                  R                  UR                  5      -   $ )NzCREATE SCHEMA úIF NOT EXISTS )Úif_not_existsrµ  Úformat_schemarà  )r  r¤   râ  r  s       r  Úvisit_create_schemaÚDDLCompiler.visit_create_schemaŽ  s7   € ØˆØ××ØÐ$Ñ$ˆDØ—m‘m×1Ñ1°&·.±.ÓAÑAÐAr  c                ó°   • SnUR                   (       a  US-  nX0R                  R                  UR                  5      -  nUR                  (       a  US-  nU$ )NzDROP SCHEMA ú
IF EXISTS ú CASCADE)Ú	if_existsrµ  rW  rà  Úcascade©r  Údroprâ  r  s       r  Úvisit_drop_schemaÚDDLCompiler.visit_drop_schema”  sI   € ØˆØ�>�>Ø�LÑ ˆDØ—‘×+Ñ+¨D¯L©LÓ9Ñ9ˆØ�<�<Ø�JÑˆDØˆr  c                ón  • UR                   nU R                  nSnUR                  (       a!  USR                  UR                  5      S-   -  nUS-  nUR                  (       a  US-  nXTR                  U5      S-   -  nU R                  U5      nU(       a  XVS-   -  nUS-  nSnSnUR                   H]  n	U	R                   n
 U R                  XšR                  =(       a    U(       + S9nUb  XW-  nS	nUS
U-   -  nU
R                  (       a  SnM]  M_     U R                  UUR                   S9nU(       a
  XWS
-   U-   -  nUSU R#                  U5      -  -  nU$ ! [        R                   aI  n[        R                  " SUR                  < SU
R                  < SUR                  S   < 35      UeS nAff = f)Nz
CREATE rO  zTABLE rU  rI  Ú
F©Úfirst_pkrë  Ú	Tz(in table 'z', column 'z'): r   )Ú _include_foreign_key_constraintsz
)%s

)rà  rµ  r%  rˆ   rV  r™  Úcreate_table_suffixrt  rÄ  r…  r2   r  Údescriptionr  ÚargsÚcreate_table_constraintsÚinclude_foreign_key_constraintsÚpost_create_table)r  r¤   râ  rž   rµ  r  ri  rS  rf  Úcreate_columnr£   Ú	processedÚceÚconsts                 r  Úvisit_create_tableÚDDLCompiler.visit_create_table�  sÈ  € Ø—‘ˆØ—=‘=ˆàˆØ�?�?Ø�C—H‘H˜UŸ_™_Ó-°Ñ3Ñ3ˆDà�ÑˆØ××ØÐ$Ñ$ˆDà×%Ñ% eÓ,¨sÑ2Ñ2ˆà"×6Ñ6°uÓ=ÐÞØ¨#Ñ-Ñ-ˆDà�‰ˆàˆ	ð ˆØ#Ÿ^œ^ˆMØ"×*Ñ*ˆFðØ ŸL™LØ!×,>Ñ,>×,OÀxÄ<ð )ð �	ð Ñ(ØÑ%�DØ &�IØ˜D 9Ñ,Ñ,�DØ×%×%Ø#’Hñ &ñ ,ð$ ×-Ñ-ØØ-3×-SÑ-Sð .ð 
ˆö Ø Ñ$ uÑ,Ñ,ˆDà�˜d×4Ñ4°UÓ;Ñ;Ñ;ˆØˆøô ×#Ñ#ó Ü×&Ó&à×(Ô(¨&¯+¬+°r·w±w¸q³zðCóð ðûðús   ÃAEÅF4Å+AF/Æ/F4c                óÊ   ^ • UR                   nUR                  (       a  g T R                  XBS9nSR                  U 4S jUR                   5       5      nU(       a  USU-   -  nU$ )Nre  rO  c              3  óF   >#   • U  H  nTR                  U5      v •  M     g 7fr  )rÄ  ©r>  rÁ   r  s     €r  r@  Ú2DDLCompiler.visit_create_column.<locals>.<genexpr>Ø  s!   øé € ð 
Ú7I¨ˆD�L‰L˜×$Ð$Ò7Iùr»  )rà  ÚsystemÚget_column_specificationrˆ   Úconstraints)r  r¤   rf  râ  r£   r  rr  s   `      r  Úvisit_create_columnÚDDLCompiler.visit_create_columnÑ  sb   ø€ Ø—‘ˆà�=�=Øà×,Ñ,¨VÐ,ÐGˆØ—‘ô 
Ø7=×7IÒ7Ió
ó 
ˆö Ø�C˜%‘KÑˆDàˆr  c                óŠ  ^ • / nUR                   (       a  UR                  UR                   5        UR                  nUb  UR                  U5      nO
[	        5       nUR                  UR                   Vs/ s H  nXqR                   Ld  M  Xv;  d  M  UPM     sn5        SR                  S U 4S jU 5        5       5      $ s  snf )Nz, 
	c              3  ó0   #   • U  H  nUc  M  Uv •  M     g 7fr  r  )r>  rŒ  s     r  r@  Ú7DDLCompiler.create_table_constraints.<locals>.<genexpr>÷  s"   é € ð 
ò�ð ÷ ‰Aòùs   ‚�	c              3  óÔ   >#   • U  H]  nUR                  T5      (       d  M  TR                  R                  (       a  [        US S5      (       a  MJ  TR	                  U5      v •  M_     g7f)Ú	use_alterFN)Ú_should_create_for_compilerr½  Úsupports_alterr´  rÄ  rw  s     €r  r@  r€  ù  sT   øé € ð â"-�JØ×:Ñ:¸4×@ó )ð Ÿ™×3×3Ü" :¨{¸E×Bó )�—‘˜Z×(Ð(Ú"-ùs   ƒA(¡+A(ÁA()r…  rÎ  Úforeign_key_constraintsr²  r€   rQ  Ú_sorted_constraintsrˆ   )r  rž   rh  râ  r{  Úall_fkcsÚ	omit_fkcsr®  s   `       r  rl  Ú$DDLCompiler.create_table_constraintsà  sÇ   ø€ ð
 ˆØ××Ø×Ñ˜u×0Ñ0Ô1à×0Ñ0ˆØ+Ñ7Ø ×+Ñ+Ð,LÓM‰Iä›ˆIà×Ñð ×2Ò2óâ2�AØ×-Ñ-Ð-ó à23Ñ2D÷ Ù2ñô	
ð �}‰}ñ 
ôá"-ôó
ó 
ð 	
ùòs   Á4C Â
C ÂC c                ó€   • SnUR                   (       a  US-  nX0R                  R                  UR                  5      -   $ )Nz
DROP TABLE r[  )r]  rµ  r™  rà  r_  s       r  Úvisit_drop_tableÚDDLCompiler.visit_drop_table  s4   € ØˆØ�>�>Ø�LÑ ˆDØ—m‘m×0Ñ0°·±Ó>Ñ>Ð>r  c                óR   • SU R                   R                  UR                  5      -   $ )Nz
DROP VIEW ©rµ  r™  rà  ©r  r`  râ  s      r  Úvisit_drop_viewÚDDLCompiler.visit_drop_view  s    € Ø §¡× :Ñ :¸4¿<¹<Ó HÑHÐHr  c                ód   • UR                   c#  [        R                  " SUR                  -  5      eg )Nz,Index '%s' is not associated with any table.)rž   r2   r  r  )r  r†  s     r  Ú_verify_index_tableÚDDLCompiler._verify_index_table  s0   € Ø�;‰;ÑÜ×"Ò"Ø>ÀÇÁÑKóð ð r  c           	     ó¸  ^ • UR                   nT R                  U5        T R                  nSnUR                  (       a  US-  nUR                  c  [
        R                  " S5      eUS-  nUR                  (       a  US-  nUT R                  XRS9< SUR                  UR                  US9< S	S
R                  U 4S jUR                   5       5      < S3-  nU$ )NzCREATE úUNIQUE z0CREATE INDEX requires that the index have a namezINDEX rU  ©Úinclude_schemar#  ©r  rp  rØ   c              3  óZ   >#   • U  H   nTR                   R                  US SS9v •  M"     g7f)FT©rï  rÇ  N)rè  rÄ  )r>  rG  r  s     €r  r@  Ú1DDLCompiler.visit_create_index.<locals>.<genexpr>+  s9   øé € ð ò .�Dð ×!Ñ!×)Ñ)Ø¨¸Tð *õ ò .ùrù  rJ  )rà  r“  rµ  r«   r  r2   r  rV  Ú_prepared_index_namer™  rž   rˆ   Úexpressions)r  r¤   r˜  Úinclude_table_schemarâ  r†  rµ  r  s   `       r  Úvisit_create_indexÚDDLCompiler.visit_create_index  sâ   ø€ ð —‘ˆØ× Ñ  Ô'Ø—=‘=ˆØˆØ�<�<Ø�IÑˆDØ�:‰:ÑÜ×"Ò"ØBóð ð 	�ÑˆØ××ØÐ$Ñ$ˆDàØ×%Ñ% eÐ%ÓKØ×!Ñ!Ø—‘Ð(<ð "ó ð �I‰Iô ð "×-Ò-ó	ö ð
ñ 	
ˆð ˆr  c                ó´   • UR                   nUR                  c  [        R                  " S5      eSnUR                  (       a  US-  nX@R                  USS9-   $ )Nz.DROP INDEX requires that the index have a namez
DROP INDEX r[  Tr—  )rà  r  r2   r  r]  r�  )r  r`  râ  r†  r  s        r  Úvisit_drop_indexÚDDLCompiler.visit_drop_index4  s\   € Ø—‘ˆà�:‰:ÑÜ×"Ò"Ø@óð ð ˆØ�>�>Ø�LÑ ˆDà×/Ñ/°ÀdÐ/ÐKÑKÐKr  c                ó  • UR                   b&  U R                  R                  UR                   5      nOS nU(       a#  U(       a  U R                  R                  U5      nOS nU R                  R	                  U5      nU(       a  US-   U-   nU$ ©NrL  )rž   rµ  rí  rî  Úformat_index)r  r†  r˜  ró  Úschema_nameÚ
index_names         r  r�  Ú DDLCompiler._prepared_index_nameA  sy   € ð �;‰;Ñ"Ø#Ÿ}™}×>Ñ>¸u¿{¹{ÓKÑà#ÐÞÖ.ØŸ-™-×4Ñ4Ð5EÓF‰KàˆKàŸ-™-×4Ñ4°UÓ;ˆ
æØ$ sÑ*¨ZÑ7ˆJØÐr  c                ó¢   • SU R                   R                  UR                  R                  5      < SU R	                  UR                  5      < 3$ )NúALTER TABLE z ADD )rµ  r™  rà  rž   rÄ  ©r  r¤   râ  s      r  Úvisit_add_constraintÚ DDLCompiler.visit_add_constraintS  s8   � à�M‰M×&Ñ& v§~¡~×';Ñ';Ö<Ø�L‰L˜Ÿ™Õ(ð
ð 	
r  c                óÞ   • SU R                   R                  UR                  5      < SU R                  R	                  UR                  R
                  [        R                  " 5       5      < 3$ )NzCOMMENT ON TABLE rÛ   )rµ  r™  rà  rè  r1  Úcommentr%   ÚStringr­  s      r  Úvisit_set_table_commentÚ#DDLCompiler.visit_set_table_commentY  sL   � à�M‰M×&Ñ& v§~¡~Ö6Ø×Ñ×2Ñ2Ø—‘×&Ñ&¬¯ªÓ(9õð
ð 	
r  c                óR   • SU R                   R                  UR                  5      -  $ )NzCOMMENT ON TABLE %s IS NULLrŽ  r�  s      r  Úvisit_drop_table_commentÚ$DDLCompiler.visit_drop_table_commenta  s'   € Ø,¨t¯}©}×/IÑ/IØ�L‰Ló0
ñ 
ð 	
r  c                óÞ   • SU R                   R                  UR                  SSS9< SU R                  R	                  UR                  R
                  [        R                  " 5       5      < 3$ )NzCOMMENT ON COLUMN T)Ú	use_tabler  rÛ   )rµ  Úformat_columnrà  rè  r1  r±  r%   r²  r­  s      r  Úvisit_set_column_commentÚ$DDLCompiler.visit_set_column_commentf  sZ   � à�M‰M×'Ñ'Ø—‘¨$¸4ð (ó ð ×Ñ×2Ñ2Ø—‘×&Ñ&¬¯ªÓ(9õð	
ð 	
r  c                óP   • SU R                   R                  UR                  SS9-  $ )NzCOMMENT ON COLUMN %s IS NULLT)r¹  )rµ  rº  rà  r�  s      r  Úvisit_drop_column_commentÚ%DDLCompiler.visit_drop_column_commentp  s/   € Ø-°·±×0KÑ0KØ�L‰L Dð 1Lð 1
ñ 
ð 	
r  c                óB   • [         R                  " U [        U5      5      er  rÝ  r­  s      r  Úvisit_set_constraint_commentÚ(DDLCompiler.visit_set_constraint_commentu  s   € Ü×-Ò-¨d´D¸³LÓAÐAr  c                óB   • [         R                  " U [        U5      5      er  rÝ  r�  s      r  Úvisit_drop_constraint_commentÚ)DDLCompiler.visit_drop_constraint_commentx  s   € Ü×-Ò-¨d´D¸³JÓ?Ð?r  c                ó°  • / nUR                   b  UR                  SUR                   -  5        UR                  b  UR                  SUR                  -  5        UR                  b  UR                  SUR                  -  5        UR                  b  UR                  SUR                  -  5        UR
                  b  UR                  S5        UR                  b  UR                  S5        UR                  b  UR                  SUR                  -  5        UR                  b$  UR                  UR                  (       a  SOS	5        S
R                  U5      $ )NzINCREMENT BY %dzSTART WITH %dzMINVALUE %dzMAXVALUE %dzNO MINVALUEzNO MAXVALUEzCACHE %dÚCYCLEzNO CYCLErO  )
Ú	incrementrÎ  r•  ÚminvalueÚmaxvalueÚ
nominvalueÚ
nomaxvalueÚcacheÚcyclerˆ   )r  Úidentity_optionsr  s      r  Úget_identity_optionsÚ DDLCompiler.get_identity_options{  s  € ØˆØ×%Ñ%Ñ1Ø�K‰KÐ)Ð,<×,FÑ,FÑFÔGØ×!Ñ!Ñ-Ø�K‰K˜Ð*:×*@Ñ*@Ñ@ÔAØ×$Ñ$Ñ0Ø�K‰K˜Ð(8×(AÑ(AÑAÔBØ×$Ñ$Ñ0Ø�K‰K˜Ð(8×(AÑ(AÑAÔBØ×&Ñ&Ñ2Ø�K‰K˜Ô&Ø×&Ñ&Ñ2Ø�K‰K˜Ô&Ø×!Ñ!Ñ-Ø�K‰K˜
Ð%5×%;Ñ%;Ñ;Ô<Ø×!Ñ!Ñ-Ø�K‰KÐ#3×#9×#9™¸zÔJØ�x‰x˜‹~Ðr  c                óî   • SnUR                   (       a  US-  nX@R                  R                  UR                  5      -  nU(       a  XB-  nU R	                  UR                  5      nU(       a  USU-   -  nU$ )NzCREATE SEQUENCE rU  rO  )rV  rµ  r#  rà  rÐ  )r  r¤   rç  râ  r  Úoptionss         r  Úvisit_create_sequenceÚ!DDLCompiler.visit_create_sequence�  sj   € Ø!ˆØ××ØÐ$Ñ$ˆDØ—‘×-Ñ-¨f¯n©nÓ=Ñ=ˆæØ‰NˆDØ×+Ñ+¨F¯N©NÓ;ˆÞØ�C˜'‘MÑ!ˆDØˆr  c                ó€   • SnUR                   (       a  US-  nX0R                  R                  UR                  5      -   $ )NzDROP SEQUENCE r[  )r]  rµ  r#  rà  r_  s       r  Úvisit_drop_sequenceÚDDLCompiler.visit_drop_sequenceœ  s4   € ØˆØ�>�>Ø�LÑ ˆDØ—m‘m×3Ñ3°D·L±LÓAÑAÐAr  c                óˆ  • UR                   nUR                  b  U R                  R                  U5      nOS nUc#  [        R
                  " SUR                   -  5      eSU R                  R                  UR                   R                  5      < SUR                  (       a  SOS< U< UR                  (       a  S< 3$ S< 3$ )Nz<Can't emit DROP CONSTRAINT for constraint %r; it has no namer¬  z DROP CONSTRAINT r[  r¬  r\  )
rà  r  rµ  Úformat_constraintr2   r  r™  rž   r]  r^  )r  r`  râ  rÁ   Úformatted_names        r  Úvisit_drop_constraintÚ!DDLCompiler.visit_drop_constraint¢  s´   € Ø—\‘\ˆ
Ø�?‰?Ñ&Ø!Ÿ]™]×<Ñ<¸ZÓH‰Nà!ˆNàÑ!Ü×"Ò"ð!Ø#'§<¡<ñ0óð ð "ð �M‰M×&Ñ& t§|¡|×'9Ñ'9Ö:Ø ŸNŸN‰L°Ñ2ÚØŸ,Ÿ,ˆJÑ.ð	
ð 	
ð -/Ñ.ð	
ð 	
r  c                óJ  • U R                   R                  U5      S-   U R                  R                  R	                  UR
                  US9-   nU R                  U5      nUb  USU-   -  nUR                  b!  USU R	                  UR                  5      -   -  nUR                  b<  U R                  R                  (       a!  USU R	                  UR                  5      -   -  nUR                  (       d1  UR                  (       a  U R                  R                  (       d  US-  nU$ )NrO  )r  z	 DEFAULT z	 NOT NULL)rµ  rº  r½  r  rÄ  r  Úget_column_default_stringÚcomputedÚidentityÚsupports_identity_columnsÚnullable)r  r£   rî  Úcolspecr°   s        r  rz  Ú$DDLCompiler.get_column_specificationµ  s÷   € à�M‰M×'Ñ'¨Ó/Øñà�l‰l×1Ñ1×9Ñ9Ø—‘¨Vð :ð ñð 	ð ×0Ñ0°Ó8ˆØÑØ�{ WÑ,Ñ,ˆGà�?‰?Ñ&Ø�s˜TŸ\™\¨&¯/©/Ó:Ñ:Ñ:ˆGð �O‰OÑ'Ø—‘×6×6à�s˜TŸ\™\¨&¯/©/Ó:Ñ:Ñ:ˆGà��Ø—— t§|¡|×'M×'Mà�{Ñ"ˆGØˆr  c                ó   • g©Nr¬  r  ©r  rž   s     r  ri  ÚDDLCompiler.create_table_suffixÐ  ó   € Ør  c                ó   • grç  r  rè  s     r  rn  ÚDDLCompiler.post_create_tableÓ  rê  r  c                ó    • [        UR                  [        R                  5      (       a%  U R	                  UR                  R
                  5      $ g r  )rÂ  Úserver_defaultr#   ÚDefaultClauseÚrender_default_stringÚargrÞ  s     r  rß  Ú%DDLCompiler.get_column_default_stringÖ  s;   € Ü�f×+Ñ+¬V×-AÑ-A×BÑBØ×-Ñ-¨f×.CÑ.C×.GÑ.GÓHÐHàr  c                ó´   • [        U[        5      (       a*  U R                  R                  U[        R
                  5      $ U R                  R                  USS9$ )NT)rÇ  )rÂ  r   rè  r1  r%   rl  rÄ  )r  r°   s     r  rð  Ú!DDLCompiler.render_default_stringÜ  sQ   € Ü�gœs×#Ñ#Ø×$Ñ$×9Ñ9Øœ×,Ñ,óð ð ×$Ñ$×,Ñ,¨WÀDÐ,ÐIÐIr  c                óh   • UR                   (       a  U R                  U5      $ U R                  U5      $ r  )Úis_column_levelÚvisit_column_check_constraintÚvisit_check_constraint©r  rÁ   râ  s      r  Ú&visit_table_or_column_check_constraintÚ2DDLCompiler.visit_table_or_column_check_constraintä  s-   € Ø×%×%Ø×5Ñ5°jÓAÐAà×.Ñ.¨zÓ:Ð:r  c                ó|   • U R                   " U40 UD6nX0R                  " U40 UD6-  nX0R                  U5      -  nU$ r  ©Údefine_constraint_preambleÚdefine_check_bodyÚdefine_constraint_deferrability©r  rÁ   râ  r  s       r  rø  Ú"DDLCompiler.visit_check_constraintê  óG   € Ø×.Ò.¨zÑ@¸RÑ@ˆØ×&Ò& zÑ8°RÑ8Ñ8ˆØ×4Ñ4°ZÓ@Ñ@ˆØˆr  c                ó|   • U R                   " U40 UD6nX0R                  " U40 UD6-  nX0R                  U5      -  nU$ r  rý  r	  s       r  r÷  Ú)DDLCompiler.visit_column_check_constraintð  r	  r  c                óœ   • [        U5      S:X  a  gU R                  " U40 UD6nX0R                  " U40 UD6-  nX0R                  U5      -  nU$ ©Nr   r¬  )rØ  rþ  Údefine_primary_key_bodyr 	  r	  s       r  Úvisit_primary_key_constraintÚ(DDLCompiler.visit_primary_key_constraintö  sX   € ô ˆz‹?˜aÓØØ×.Ò.¨zÑ@¸RÑ@ˆØ×,Ò,¨ZÑ>¸2Ñ>Ñ>ˆØ×4Ñ4°ZÓ@Ñ@ˆØˆr  c                óÈ   • U R                   " U40 UD6nX0R                  " U40 UD6-  nX0R                  U5      -  nX0R                  U5      -  nX0R	                  U5      -  nU$ r  )rþ  Údefine_foreign_key_bodyÚdefine_constraint_matchÚdefine_constraint_cascadesr 	  r	  s       r  Úvisit_foreign_key_constraintÚ(DDLCompiler.visit_foreign_key_constraint   so   € ð ×.Ò.¨zÑ@¸RÑ@ˆØ×,Ò,¨ZÑ>¸2Ñ>Ñ>ˆØ×,Ñ,¨ZÓ8Ñ8ˆØ×/Ñ/°
Ó;Ñ;ˆØ×4Ñ4°ZÓ@Ñ@ˆØˆr  c                ó$   • UR                  U5      $ )z=Format the remote table clause of a CREATE CONSTRAINT clause.)r™  )r  rÁ   rž   rµ  s       r  Údefine_constraint_remote_tableÚ*DDLCompiler.define_constraint_remote_table
  s   € ð ×$Ñ$ UÓ+Ð+r  c                óœ   • [        U5      S:X  a  gU R                  " U40 UD6nX0R                  " U40 UD6-  nX0R                  U5      -  nU$ r	  )rØ  rþ  Údefine_unique_bodyr 	  r	  s       r  Úvisit_unique_constraintÚ#DDLCompiler.visit_unique_constraint  sX   € ô ˆz‹?˜aÓØØ×.Ò.¨zÑ@¸RÑ@ˆØ×'Ò'¨
Ñ9°bÑ9Ñ9ˆØ×4Ñ4°ZÓ@Ñ@ˆØˆr  c                óp   • SnUR                   b&  U R                  R                  U5      nUb  USU-  -  nU$ )Nr¬  zCONSTRAINT %s )r  rµ  rÚ  )r  rÁ   râ  r  rÛ  s        r  rþ  Ú&DDLCompiler.define_constraint_preamble  sB   € ð ˆØ�?‰?Ñ&Ø!Ÿ]™]×<Ñ<¸ZÓHˆNØÑ)ØÐ(¨>Ñ9Ñ9�Øˆr  c                ó¦   ^ • SnUS-  nUSSR                  U 4S jUR                  (       a  UR                  OUR                   5       5      -  -  nU$ )Nr¬  zPRIMARY KEY rd  rØ   c              3  ón   >#   • U  H*  nTR                   R                  UR                  5      v •  M,     g 7fr  ©rµ  rë  r  ©r>  r®  r  s     €r  r@  Ú6DDLCompiler.define_primary_key_body.<locals>.<genexpr>(  s5   øé € ð #
ò(ð ð �M‰M×Ñ §¡×'Ð'ò(ùr+  )rˆ   Ú_implicit_generatedÚcolumns_autoinc_firstrt  r	  s   `   r  r	  Ú#DDLCompiler.define_primary_key_body#  se   ø€ ð ˆØ�ÑˆØ�˜Ÿ™ô #
ð ×1×1ð ×0Ò0à×'Ñ'ð(ó#
ó 
ñ 
ñ 	
ˆð ˆr  c           	     óB  ^• U R                   m[        UR                  5      S   R                  R                  nSSR                  U4S jUR                   5       5      < SU R                  XT5      < SSR                  U4S jUR                   5       5      < S3nU$ )	Nr   zFOREIGN KEY(rØ   c              3  ón   >#   • U  H*  nTR                  UR                  R                  5      v •  M,     g 7fr  )rë  Úparentr  ©r>  râ  rµ  s     €r  r@  Ú6DDLCompiler.define_foreign_key_body.<locals>.<genexpr>8  ó)   øé € ð Ú7J°!�—‘˜qŸx™xŸ}™}×-Ð-Ò7Jùr+  z) REFERENCES rp  c              3  ón   >#   • U  H*  nTR                  UR                  R                  5      v •  M,     g 7fr  )rë  r£   r  r%	  s     €r  r@  r&	  >  r'	  r+  rJ  )rµ  r»  r   r£   rž   rˆ   r	  )r  rÁ   râ  Úremote_tabler  rµ  s        @r  r	  Ú#DDLCompiler.define_foreign_key_body2  s’   ø€ ð —=‘=ˆÜ˜J×/Ñ/Ó0°Ñ3×:Ñ:×@Ñ@‰à�I‰Iô Ø7A×7JÒ7Jóö ð ×/Ñ/Ø¨(öð �I‰Iô Ø7A×7JÒ7Jóö ð

ˆð ˆr  c                ór   ^ • ST R                   " U40 UD6< SSR                  U 4S jU 5       5      < S3nU$ )Nr–  rI  rØ   c              3  ón   >#   • U  H*  nTR                   R                  UR                  5      v •  M,     g 7fr  r	  r	  s     €r  r@  Ú1DDLCompiler.define_unique_body.<locals>.<genexpr>I  s'   øé € ÐFº:°a�d—m‘m×)Ñ)¨!¯&©&×1Ð1º:ùr+  rJ  )Ú!define_unique_constraint_distinctrˆ   r	  s   `   r  r	  ÚDDLCompiler.define_unique_bodyD  s8   ø� ð ×2Ò2°:ÑDÀÔDØ�I‰IÔF¹:ÓFÖFð
ˆð ˆr  c                óV   • SU R                   R                  UR                  SSS9-  nU$ )Nz
CHECK (%s)FTr›  )rè  rÄ  r¤  r	  s       r  rÿ  ÚDDLCompiler.define_check_bodyM  s8   € Ø˜d×/Ñ/×7Ñ7Ø×Ñ¨eÀ4ð 8ð 
ñ 
ˆð ˆr  c                ó   • grç  r  rù  s      r  r.	  Ú-DDLCompiler.define_unique_constraint_distinctS  s   € ð r  c                óŠ   • SnUR                   b  X R                  U5      -  nUR                  b  X R                  U5      -  nU$ rç  )ÚondeleteÚ"define_constraint_ondelete_cascadeÚonupdateÚ"define_constraint_onupdate_cascade©r  rÁ   r  s      r  r	  Ú&DDLCompiler.define_constraint_cascadesX  sL   € ð ˆØ×ÑÑ*Ø×;Ñ;¸JÓGÑGˆDà×ÑÑ*Ø×;Ñ;¸JÓGÑGˆDØˆr  c                ó\   • SU R                   R                  UR                  [        5      -  $ )Nz ON DELETE %s)rµ  Úvalidate_sql_phraser5	  ÚFK_ON_DELETE©r  rÁ   s     r  r6	  Ú.DDLCompiler.define_constraint_ondelete_cascadec  ó-   € ð  §¡×!BÑ!BØ×Ñ¤ó"
ñ 
ð 	
r  c                ó\   • SU R                   R                  UR                  [        5      -  $ )Nz ON UPDATE %s)rµ  r<	  r7	  ÚFK_ON_UPDATEr>	  s     r  r8	  Ú.DDLCompiler.define_constraint_onupdate_cascadej  r@	  r  c                óÖ   • SnUR                   b  UR                   (       a  US-  nOUS-  nUR                  b0  USU R                  R                  UR                  [        5      -  -  nU$ )Nr¬  z DEFERRABLEz NOT DEFERRABLEz INITIALLY %s)rÂ   r¼   rµ  r<	  ÚFK_INITIALLYr9	  s      r  r 	  Ú+DDLCompiler.define_constraint_deferrabilityq  sq   € ØˆØ× Ñ Ñ,Ø×$×$Ø˜Ñ%‘àÐ)Ñ)�Ø×ÑÑ+Ø�O d§m¡m×&GÑ&GØ×$Ñ$¤ló'ñ ñ ˆDð ˆr  c                óH   • SnUR                   b  USUR                   -  -  nU$ )Nr¬  z	 MATCH %s)r…  r9	  s      r  r	  Ú#DDLCompiler.define_constraint_match~  s-   € ØˆØ×ÑÑ'Ø�K *×"2Ñ"2Ñ2Ñ2ˆDØˆr  c                óª   • SU R                   R                  UR                  SSS9-  nUR                  SL a  US-  nU$ UR                  SL a  US-  nU$ )NzGENERATED ALWAYS AS (%s)FTr›  z STOREDz VIRTUAL)rè  rÄ  r¤  Ú	persisted)r  Ú	generatedrâ  r  s       r  Úvisit_computed_columnÚ!DDLCompiler.visit_computed_column„  sr   € Ø)¨D×,=Ñ,=×,EÑ,EØ×Ñ¨UÀ$ð -Fð -
ñ 
ˆð ×Ñ $Ò&Ø�IÑˆDð ˆð × Ñ  EÒ)Ø�JÑˆDØˆr  c                óz   • SUR                   (       a  SOS< S3nU R                  U5      nU(       a  USU-  -  nU$ )Nz
GENERATED ÚALWAYSz
BY DEFAULTz AS IDENTITYr„  )ÚalwaysrÐ  )r  rá  râ  r  rÓ  s        r  Úvisit_identity_columnÚ!DDLCompiler.visit_identity_columnŽ  s@   � à ŸŸ‰H¨\Ò9ð
ˆð ×+Ñ+¨HÓ5ˆÞØ�G˜gÑ%Ñ%ˆDØˆr  r  )...)
r½  rm   r4  r=   r²  r±  rÇ  r+  rÈ  rý  rþ  r  r  rñ  r  )r†  rS   r  r  )FT)r†  rS   r˜  r+  r  r   )rÏ  rR   r  r   )r£   zColumn[Any]r  rk  )r°   zUnion[Visitable, str]r  r   )rÁ   rT   râ  r   r  r   )rÁ   rQ   râ  r   r  r   )rÁ   rV   râ  r   r  r   )rÁ   rP   râ  r   r  r   )rÁ   rN   râ  r   r  r   )rÁ   rQ   r  r   )rÁ   rP   r  r   )>r	  r
  r  r  r  r   rÉ  r&   rþ  rè  rÿ  rG  rø  rR  rX  ra  rs  r|  rl  r‹  r�  r“  r   r£  r�  r®  r³  r¶  r»  r¾  rÁ  rÄ  rÐ  rÔ  r×  rÜ  rz  ri  rn  rß  rð  rú  rø  r÷  r		  r	  r	  r	  rþ  r	  r	  r	  rÿ  r.	  r	  r6	  r8	  r 	  r	  rL	  rQ	  r  r  r  r  rA  rA  [  sÌ  † Ø€Fæð FIØ,/Ø03ð	àð	ð ,ð	ð #Cð		ð
 &*ð	ð .õ	ð 
×Ñó
ó ð
ð
 
×Ññ3ó ð3ð
 6:ØGKØ!ð	à2ðð Eðð ð	ð
 
3õòLò&Bòò2ôhð  7;ô#
òJ?òIôð BFôò@Lð 49ðØðØ,0ðà	õò$
ò
ò
ò

ò
ò
Bò@ôô(òBò
ò&ò6òôôJò;òòðØ.ðØ69ðà	ôðØ.ðØ69ðà	ôò,ð
Ø*ðØ25ðà	ôðØ$ðØ,/ðà	ôðØ.ðØ69ðà	ôðØ.ðØ69ðà	ôð$Ø*ðØ25ðà	ôôðØ*ðØ25ðà	ôð
	Ø.ð	à	ô	ð
Ø.ð
à	ô
ð
Ø.ð
à	ô
ôôòõr  rA  c                  ó>  • \ rS rSrS3S jrS4S jr      S5S jrS6S jrS7S jrS8S jr	S9S jr
S:S	 jrS;S
 jrS<S jrS=S jrS>S jrS?S jrS@S jrSAS jr        SBS jrSCS jrSDS jrSES jrSFS jrSAS jrSGS jrSHS jrSIS jrSJS jrSKS jrSGS jr      SHS jrSKS jr S?S jr!S=S  jr"S>S! jr#S;S" jr$      S:S# jr%S9S$ jr&S6S% jr'S3S& jr(S4S' jr)S7S( jr*SES) jr+SLS* jr,SAS+ jr-      SMS, jr.SNS- jr/S. r0      SOS/ jr1      SPS0 jr2S1r3g2)QÚGenericTypeCompileri˜  c                ó   • g)NÚFLOATr  r  s      r  Úvisit_FLOATÚGenericTypeCompiler.visit_FLOAT™  ó   € Ør  c                ó   • g)NÚDOUBLEr  r  s      r  Úvisit_DOUBLEÚ GenericTypeCompiler.visit_DOUBLEœ  ó   € Ør  c                ó   • g)NzDOUBLE PRECISIONr  r  s      r  Úvisit_DOUBLE_PRECISIONÚ*GenericTypeCompiler.visit_DOUBLE_PRECISIONŸ  s   € ð "r  c                ó   • g)NÚREALr  r  s      r  Ú
visit_REALÚGenericTypeCompiler.visit_REAL¤  r>  r  c                ó’   • UR                   c  gUR                  c  SSUR                   0-  $ SUR                   UR                  S.-  $ )NÚNUMERICzNUMERIC(%(precision)s)Ú	precisionz!NUMERIC(%(precision)s, %(scale)s)©rh	  Úscaleri	  r  s      r  Úvisit_NUMERICÚ!GenericTypeCompiler.visit_NUMERIC§  óM   € Ø�?‰?Ñ"ØØ�[‰[Ñ Ø+¨{¸E¿O¹OÐ.LÑLÐLà6Ø"Ÿ_™_ØŸ™ñ:ñ ð r  c                ó’   • UR                   c  gUR                  c  SSUR                   0-  $ SUR                   UR                  S.-  $ )NÚDECIMALzDECIMAL(%(precision)s)rh	  z!DECIMAL(%(precision)s, %(scale)s)ri	  ri	  r  s      r  Úvisit_DECIMALÚ!GenericTypeCompiler.visit_DECIMAL²  rm	  r  c                ó   • g)NÚINTEGERr  r  s      r  Úvisit_INTEGERÚ!GenericTypeCompiler.visit_INTEGER½  ó   € Ør  c                ó   • g)NÚSMALLINTr  r  s      r  Úvisit_SMALLINTÚ"GenericTypeCompiler.visit_SMALLINTÀ  ó   € Ør  c                ó   • g)NÚBIGINTr  r  s      r  Úvisit_BIGINTÚ GenericTypeCompiler.visit_BIGINTÃ  r^	  r  c                ó   • g)NÚ	TIMESTAMPr  r  s      r  Úvisit_TIMESTAMPÚ#GenericTypeCompiler.visit_TIMESTAMPÆ  s   € Ør  c                ó   • g)NÚDATETIMEr  r  s      r  Úvisit_DATETIMEÚ"GenericTypeCompiler.visit_DATETIMEÉ  r{	  r  c                ó   • g)NÚDATEr  r  s      r  Ú
visit_DATEÚGenericTypeCompiler.visit_DATEÌ  r>  r  c                ó   • g)NÚTIMEr  r  s      r  Ú
visit_TIMEÚGenericTypeCompiler.visit_TIMEÏ  r>  r  c                ó   • g)NÚCLOBr  r  s      r  Ú
visit_CLOBÚGenericTypeCompiler.visit_CLOBÒ  r>  r  c                ó   • g)NÚNCLOBr  r  s      r  Úvisit_NCLOBÚGenericTypeCompiler.visit_NCLOBÕ  rY	  r  c                óJ   • UnU(       a	  USU S3-  nU(       a	  USU S3-  nU$ )NrI  rJ  z
 COLLATE "rž  r  )r  r  Úlengthrú  r  s        r  Ú_render_string_typeÚ'GenericTypeCompiler._render_string_typeØ  s9   € ð ˆÞØ�a˜�x˜q�MÑ!ˆDÞØ�j  ¨1Ð-Ñ-ˆDØˆr  c                óP   • U R                  SUR                  UR                  5      $ )NÚCHAR©rš	  r™	  rú  r  s      r  Ú
visit_CHARÚGenericTypeCompiler.visit_CHARâ  ó   € Ø×'Ñ'¨°·±¸e¿o¹oÓNÐNr  c                óP   • U R                  SUR                  UR                  5      $ )NÚNCHARrž	  r  s      r  Úvisit_NCHARÚGenericTypeCompiler.visit_NCHARå  s   € Ø×'Ñ'¨°·±¸u¿¹ÓOÐOr  c                óP   • U R                  SUR                  UR                  5      $ )NÚVARCHARrž	  r  s      r  Úvisit_VARCHARÚ!GenericTypeCompiler.visit_VARCHARè  s$   € Ø×'Ñ'Ø�u—|‘| U§_¡_ó
ð 	
r  c                óP   • U R                  SUR                  UR                  5      $ )NÚNVARCHARrž	  r  s      r  Úvisit_NVARCHARÚ"GenericTypeCompiler.visit_NVARCHARí  s$   € Ø×'Ñ'Ø˜Ÿ™ e§o¡oó
ð 	
r  c                óP   • U R                  SUR                  UR                  5      $ )NÚTEXTrž	  r  s      r  Ú
visit_TEXTÚGenericTypeCompiler.visit_TEXTò  r¡	  r  c                ó   • g)NÚUUIDr  r  s      r  Ú
visit_UUIDÚGenericTypeCompiler.visit_UUIDõ  r>  r  c                ó   • g)NÚBLOBr  r  s      r  Ú
visit_BLOBÚGenericTypeCompiler.visit_BLOBø  r>  r  c                ó^   • SUR                   =(       a    SUR                   -  =(       d    S-   $ )NÚBINARYú(%d)r¬  ©r™	  r  s      r  Úvisit_BINARYÚ GenericTypeCompiler.visit_BINARYû  s$   € Ø˜5Ÿ<™<×A¨F°U·\±\Ñ,A×GÀRÑHÐHr  c                ó^   • SUR                   =(       a    SUR                   -  =(       d    S-   $ )NÚ	VARBINARYr¼	  r¬  r½	  r  s      r  Úvisit_VARBINARYÚ#GenericTypeCompiler.visit_VARBINARYþ  s$   € Ø˜eŸl™l×D¨v¸¿¹Ñ/D×JÈÑKÐKr  c                ó   • g)NÚBOOLEANr  r  s      r  Úvisit_BOOLEANÚ!GenericTypeCompiler.visit_BOOLEAN  rv	  r  c                ó¢   • UR                   (       a  U R                  R                  (       d  U R                  SSS S9$ U R                  " U40 UD6$ )Nr�	  é    )r™	  rú  )Únative_uuidr½  Úsupports_native_uuidrš	  r´	  r  s      r  Ú
visit_uuidÚGenericTypeCompiler.visit_uuid  sC   € Ø× × ¨¯©×(I×(IØ×+Ñ+¨F¸2ÈÐ+ÐNÐNà—?’? 5Ñ/¨BÑ/Ð/r  c                ó(   • U R                   " U40 UD6$ r  )r¸	  r  s      r  Úvisit_large_binaryÚ&GenericTypeCompiler.visit_large_binary
  ó   € ð �Š˜uÑ+¨Ñ+Ð+r  c                ó(   • U R                   " U40 UD6$ r  )rÆ	  r  s      r  Úvisit_booleanÚ!GenericTypeCompiler.visit_boolean  ó   € Ø×!Ò! %Ñ.¨2Ñ.Ð.r  c                ó(   • U R                   " U40 UD6$ r  )rŽ	  r  s      r  Ú
visit_timeÚGenericTypeCompiler.visit_time  ó   € Ø�Š˜uÑ+¨Ñ+Ð+r  c                ó(   • U R                   " U40 UD6$ r  )r†	  r  s      r  Úvisit_datetimeÚ"GenericTypeCompiler.visit_datetime  s   € Ø×"Ò" 5Ñ/¨BÑ/Ð/r  c                ó(   • U R                   " U40 UD6$ r  )rŠ	  r  s      r  Ú
visit_dateÚGenericTypeCompiler.visit_date  rÙ	  r  c                ó(   • U R                   " U40 UD6$ r  )r~	  r  s      r  Úvisit_big_integerÚ%GenericTypeCompiler.visit_big_integer  ó   € Ø× Ò  Ñ-¨"Ñ-Ð-r  c                ó(   • U R                   " U40 UD6$ r  )ry	  r  s      r  Úvisit_small_integerÚ'GenericTypeCompiler.visit_small_integer  s   € ð ×"Ò" 5Ñ/¨BÑ/Ð/r  c                ó(   • U R                   " U40 UD6$ r  )rt	  r  s      r  Úvisit_integerÚ!GenericTypeCompiler.visit_integer#  rÕ	  r  c                ó(   • U R                   " U40 UD6$ r  )rd	  r  s      r  Ú
visit_realÚGenericTypeCompiler.visit_real&  rÙ	  r  c                ó(   • U R                   " U40 UD6$ r  )rW	  r  s      r  Úvisit_floatÚGenericTypeCompiler.visit_float)  s   € Ø×Ò Ñ,¨Ñ,Ð,r  c                ó(   • U R                   " U40 UD6$ r  )r\	  r  s      r  Úvisit_doubleÚ GenericTypeCompiler.visit_double,  rã	  r  c                ó(   • U R                   " U40 UD6$ r  )rk	  r  s      r  Úvisit_numericÚ!GenericTypeCompiler.visit_numeric/  rÕ	  r  c                ó(   • U R                   " U40 UD6$ r  ©r¨	  r  s      r  Úvisit_stringÚ GenericTypeCompiler.visit_string2  rÕ	  r  c                ó(   • U R                   " U40 UD6$ r  r÷	  r  s      r  Úvisit_unicodeÚ!GenericTypeCompiler.visit_unicode5  rÕ	  r  c                ó(   • U R                   " U40 UD6$ r  ©r°	  r  s      r  Ú
visit_textÚGenericTypeCompiler.visit_text8  rÙ	  r  c                ó(   • U R                   " U40 UD6$ r  rþ	  r  s      r  Úvisit_unicode_textÚ&GenericTypeCompiler.visit_unicode_text;  rÑ	  r  c                ó(   • U R                   " U40 UD6$ r  r÷	  r  s      r  Ú
visit_enumÚGenericTypeCompiler.visit_enum@  rÕ	  r  c                ó4   • [         R                  " SU-  5      e)NzKCan't generate DDL for %r; did you forget to specify a type on this Column?rÝ  r  s      r  r<  ÚGenericTypeCompiler.visit_nullC  s"   € Ü×Òð#à%*ñ+ó
ð 	
r  c                óZ   • U R                   " UR                  U R                  5      40 UD6$ r  )rÄ  Útype_enginer½  r  s      r  Úvisit_type_decoratorÚ(GenericTypeCompiler.visit_type_decoratorJ  s'   € ð �|Š|˜E×-Ñ-¨d¯l©lÓ;ÑB¸rÑBÐBr  c                ó&   • UR                   " S0 UD6$ rõ  )Úget_col_specr  s      r  Úvisit_user_definedÚ&GenericTypeCompiler.visit_user_definedO  s   € ð ×!Ò!Ñ' BÑ'Ð'r  r  N)r  zsqltypes.Float[Any]râ  r   r  r   )r  zsqltypes.Double[Any]râ  r   r  r   )r  zsqltypes.DOUBLE_PRECISION[Any]râ  r   r  r   )r  zsqltypes.REAL[Any]râ  r   r  r   )r  zsqltypes.Numeric[Any]râ  r   r  r   )r  zsqltypes.DECIMAL[Any]râ  r   r  r   )r  zsqltypes.Integerrâ  r   r  r   )r  zsqltypes.SmallIntegerrâ  r   r  r   )r  zsqltypes.BigIntegerrâ  r   r  r   )r  zsqltypes.TIMESTAMPrâ  r   r  r   )r  zsqltypes.DateTimerâ  r   r  r   )r  zsqltypes.Daterâ  r   r  r   )r  zsqltypes.Timerâ  r   r  r   )r  zsqltypes.CLOBrâ  r   r  r   )r  zsqltypes.Textrâ  r   r  r   )r  r   r™	  rð  rú  rk  r  r   )r  zsqltypes.CHARrâ  r   r  r   )r  zsqltypes.NCHARrâ  r   r  r   )r  zsqltypes.Stringrâ  r   r  r   )r  zsqltypes.NVARCHARrâ  r   r  r   )r  zsqltypes.Uuid[Any]râ  r   r  r   )r  zsqltypes.LargeBinaryrâ  r   r  r   )r  zsqltypes.BINARYrâ  r   r  r   )r  zsqltypes.VARBINARYrâ  r   r  r   )r  zsqltypes.Booleanrâ  r   r  r   )r  zsqltypes.Unicoderâ  r   r  r   )r  zsqltypes.UnicodeTextrâ  r   r  r   )r  zsqltypes.Enumrâ  r   r  r   )r  zTypeDecorator[Any]râ  r   r  r   )r  zUserDefinedType[Any]râ  r   r  r   )4r	  r
  r  r  rW	  r\	  r`	  rd	  rk	  rp	  rt	  ry	  r~	  r‚	  r†	  rŠ	  rŽ	  r’	  r–	  rš	  rŸ	  r¤	  r¨	  r¬	  r°	  r´	  r¸	  r¾	  rÂ	  rÆ	  rÌ	  rÏ	  rÓ	  r×	  rÛ	  rÞ	  rá	  rå	  rè	  rë	  rî	  rñ	  rô	  rø	  rû	  rÿ	  r
  r
  r<  r
  r
  r  r  r  r  rT	  rT	  ˜  s¦  † ôôð"Ø3ð"Ø;>ð"à	ô"ô
ô	ô	ôôôôôôôôôðØðØ!.ðØ;Hðà	ôôOôPô
ô

ô
OôôôIôLôô0ð,Ø)ð,Ø14ð,à	ô,ô
/ô,ô0ô,ô.ð0Ø*ð0Ø25ð0à	ô0ô
/ô,ô-ô.ô/ô/ô/ô,ð,Ø)ð,Ø14ð,à	ô,ô
/ò
ðCØ'ðCØ/2ðCà	ôCð
(Ø)ð(Ø14ð(à	÷(r  rT	  c                  ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚStrSQLTypeCompileriU  c                ót   •  UR                   nU" U 40 UD6$ ! [         a    U R                  " U40 UD6s $ f = fr  )rì  ÚAttributeErrorÚ_visit_unknown)r  r  râ  rì  s       r  rÄ  ÚStrSQLTypeCompiler.processV  sL   € ð	2Ø!&×!9Ñ!9Ðñ & dÑ1¨bÑ1Ð1øô ó 	4Ø×&Ò& uÑ3°Ñ3Ò3ð	4ús   ‚ —7¶7c                ó\   • UR                  S5      (       a  U R                  $ [        U5      e)Nrâ  )r�  r
  r
  )r  r?  s     r  Ú__getattr__ÚStrSQLTypeCompiler.__getattr__^  s(   € Ø�>‰>˜(×#Ñ#Ø×&Ñ&Ð&ä  Ó%Ð%r  c                ó¼   • UR                   R                  UR                   R                  R                  5       :X  a  UR                   R                  $ [        U5      $ r  )rÐ  r	  ÚupperÚreprr  s      r  r
  Ú!StrSQLTypeCompiler._visit_unknownd  sA   € Ø�?‰?×#Ñ# u§¡×'?Ñ'?×'EÑ'EÓ'GÓGØ—?‘?×+Ñ+Ð+ä˜“;Ðr  c                ó   • gr9  r  r  s      r  r<  ÚStrSQLTypeCompiler.visit_nullj  r>  r  c                ób   •  UR                   nU" S0 UD6$ ! [         a    [        U5      s $ f = frõ  )r
  r
  r
  )r  r  râ  r
  s       r  r
  Ú%StrSQLTypeCompiler.visit_user_definedm  s=   € ð	&Ø ×-Ñ-ˆLñ  Ñ% "Ñ%Ð%øô ó 	Ü˜“;Òð	ús   ‚ –.­.r  N)
r	  r
  r  r  rÄ  r
  r
  r<  r
  r  r  r  r  r
  r
  U  s   † ò2ò&òòõ&r  r
  c                  ó   • \ rS rSrSS jrSrg)Ú_SchemaForObjectCallableiv  c                ó   • g r  r  )r  Ú_SchemaForObjectCallable__objs     r  r  Ú!_SchemaForObjectCallable.__call__w  s   € ¨3r  r  N)r%
  r   r  r   r  r  r  r  r#
  r#
  v  s   † ß.r  r#
  c                  ó   • \ rS rSrSS jrSrg)rj  iz  c                ó   • g r  r  )r  r  s     r  r  Ú _BindNameForColProtocol.__call__{  s   € °sr  r  N)r  rò  r  r   r  r  r  r  rj  rj  z  s   † ß:r  rj  c                  ó²  • \ rS rSr% Sr\r\r\	r
S\S'   S\S'   S\S'   \R                  " S5      rS	\S
'    SrS\S'        S-           S.S jjrS r      S/S jrS0S jrS0S jrS rS0S jrS1S jrS rS2S3S jjrS2S4S jjrS r S5     S6S jjr S2     S7S jjr S2     S8S jjrS2S jr\ RB                  " S5       S5     S9S  jj5       r" S5     S:S! jjr# S5     S:S" jjr$        S;S# jr%S<S$ jr&  S=       S>S% jjr'S& r( S2S' jr)     S?             S@S( jjr*S5S) jr+\ RX                  S* 5       r-SAS+ jr.S,r/g)Br´  i~  z@Handle quoting and case-folding of identifiers based on options.r   Úinitial_quoteÚfinal_quotezMutableMapping[str, str]Ú_stringsr#   r#
  rí  Fr+  Ú_includes_none_schema_translateNc                óæ   • Xl         X l        U=(       d    U R                  U l        X@l        U R                  S-  U l        X`l        XPl        0 U l        U R                   R                  S;   U l	        g)a+  Construct a new ``IdentifierPreparer`` object.

initial_quote
  Character that begins a delimited identifier.

final_quote
  Character that ends a delimited identifier. Defaults to
  `initial_quote`.

omit_schema
  Prevent prepending schema name. Useful for databases that do
  not support schemae.
r1   )rÑ   rÏ   N)
r½  r+
  r,
  Úescape_quoteÚescape_to_quoteÚomit_schemaÚquote_case_sensitive_collationsr-
  r�  r  )r  r½  r+
  r,
  r0
  r3
  r2
  s          r  rÉ  ÚIdentifierPreparer.__init__š  sj   € ð. ŒØ*ÔØ&×<¨$×*<Ñ*<ˆÔØ(ÔØ#×0Ñ0°1Ñ4ˆÔØ&ÔØ/NÔ,ØˆŒØ $§¡× 7Ñ 7ð <
ñ !
ˆÕr  c                óÌ   ^• U R                   R                  U R                   5      nUR                  R                  U R                  5        S U;   mU4S jnX2l        TUl        U$ )Nc                óæ   >• U R                   nU R                  (       aH  Uc  T(       a>  Ub%  SU;   d  SU;   a  [        R                  " SU-  5      e[	        SU=(       d    S-  SS9$ U R                   $ )NrM  rN  zJSquare bracket characters ([]) not supported in schema translate name '%s'z__[SCHEMA_%s]Ú_noneF©rë  )r#   Ú_use_schema_mapr2   r  r.   )rí  r  Úincludes_nones     €r  Úsymbol_getterÚ@IdentifierPreparer._with_schema_translate.<locals>.symbol_getterÄ  sw   ø€ Ø—:‘:ˆDØ×"×"¨Ñ(8¾MØÑ#¨°«¸¸t»Ü×*Ò*ð8Ø:>ñ?óð ô #Ø# t§¨wÑ7¸uñð ð —z‘zÐ!r  )rÐ  Ú__new__r›  rœ  rí  r.
  )r  r²  Úprepr;
  r:
  s       @r  r¿  Ú)IdentifierPreparer._with_schema_translate¾  sV   ø€ Ø�~‰~×%Ñ% d§n¡nÓ5ˆØ�‰×Ñ˜TŸ]™]Ô+àÐ 4Ñ4ˆõ	"ð "/ÔØ/<ˆÔ,Øˆr  c                ó°   ^ ^• UmS T;   a/  T R                   (       d  [        R                  " S5      eTS    TS'   UU 4S jn[        R                  " SX15      $ )Nzâschema translate map which previously did not have `None` present as a key now has `None` present; compiled statement may lack adequate placeholders.  Please use consistent keys in successive schema_translate_map dictionaries.r7
  c                ó  >• U R                  S5      nUT;   a  TU   nOUS;   a  [        R                  " S5      eUnU(       d3  TR                  R                  nU(       d  [        R
                  " S5      eTR                  U5      $ )Nr1   )Nr7
  zâschema translate map which previously had `None` present as a key now no longer has it present; don't know how to apply schema for compiled statement. Please use consistent keys in successive schema_translate_map dictionaries.zLDialect has no default schema name; can't use None as dynamic schema target.)r—   r2   rB  r½  Údefault_schema_namer  rî  )rÏ  r  ró  Údr  s      €€r  r  Ú=IdentifierPreparer._render_schema_translates.<locals>.replaceæ  s‹   ø€ Ø—7‘7˜1“:ˆDØ�q‹yØ#$ T¡7Ñ à˜?Ó*Ü×1Ò1ð=óð ð $(Ð æ#Ø#'§<¡<×#CÑ#CÐ Þ'ä×*Ò*ð=óð ð ×$Ñ$Ð%5Ó6Ð6r  z(__\[SCHEMA_([^\]]+)\]))r.
  r2   rB  r�  rÖ  )r  r4  r²  r  rC
  s   `   @r  rÅ  Ú,IdentifierPreparer._render_schema_translatesÖ  sZ   ù€ ð !ˆØ�1‹9Ø×7×7Ü×-Ò-ð9óð ð ˜4™ˆAˆg‰Jö	7ô2 �vŠvÐ0°'ÓEÐEr  c                ó˜   • UR                  U R                  U R                  5      nU R                  (       a  UR                  SS5      nU$ )zhEscape an identifier.

Subclasses should override this to provide database-dependent
escaping behavior.
rH  r  )r  r0
  r1
  r  ©r  rþ  s     r  Ú_escape_identifierÚ%IdentifierPreparer._escape_identifier  s>   € ð —‘˜d×/Ñ/°×1EÑ1EÓFˆØ× × Ø—M‘M # tÓ,ˆEØˆr  c                óN   • UR                  U R                  U R                  5      $ )z™Canonicalize an escaped identifier.

Subclasses should override this to provide database-dependent
unescaping behavior that reverses _escape_identifier.
)r  r1
  r0
  rG
  s     r  Ú_unescape_identifierÚ'IdentifierPreparer._unescape_identifier  s!   € ð �}‰}˜T×1Ñ1°4×3DÑ3DÓEÐEr  c                óŠ   • Ub?  UR                  U5      (       d)  [        R                  " SU< SUR                  < S35      eU$ )zÕkeyword sequence filter.

a filter for elements that are intended to represent keyword sequences,
such as "INITIALLY", "INITIALLY DEFERRED", etc.   no special characters
should be present.

.. versionadded:: 1.3

zUnexpected SQL phrase: z (matching against rJ  )r…  r2   r  rý  )r  rà  r„  s      r  r<	  Ú&IdentifierPreparer.validate_sql_phrase  s@   € ð Ñ s§y¡y°×'9Ñ'9Ü×"Ó"ã˜CŸKœKð)óð ð ˆr  c                óX   • U R                   U R                  U5      -   U R                  -   $ )zfQuote an identifier.

Subclasses should override this to provide database-dependent
quoting behavior.
)r+
  rH
  r,
  rG
  s     r  Úquote_identifierÚ#IdentifierPreparer.quote_identifier(  s3   € ð ×ÑØ×%Ñ% eÓ,ñ-à×Ññð	
r  c                óæ   • UR                  5       nX R                  ;   =(       dM    US   U R                  ;   =(       d4    U R                  R	                  [        U5      5      (       + =(       d    X!:g  $ )z5Return True if the given identifier requires quoting.r   )rµ  Úreserved_wordsÚillegal_initial_charactersÚlegal_charactersr…  r   )r  rþ  Úlc_values      r  r'  Ú#IdentifierPreparer._requires_quotes5  sb   € à—;‘;“=ˆà×+Ñ+Ñ+÷ #Ø�Q‰x˜4×:Ñ:Ñ:÷#à×(Ñ(×.Ñ.¬s°5«zÓ:Ô:÷#ð Ñ!ð		
r  c                óT   • U R                   R                  [        U5      5      (       + $ )zbReturn True if the given identifier requires quoting, but
not taking case convention into account.)rU
  r…  r   rG
  s     r  r¸  Ú1IdentifierPreparer._requires_quotes_illegal_chars?  s"   € ð ×(Ñ(×.Ñ.¬s°5«zÓ:Ô:Ð:r  c                óT   • Ub  [         R                  " SSS9  U R                  U5      $ )aŸ  Conditionally quote a schema name.


The name is quoted if it is a reserved word, contains quote-necessary
characters, or is an instance of :class:`.quoted_name` which includes
``quote`` set to ``True``.

Subclasses can override this to provide database-dependent
quoting behavior for schema names.

:param schema: string schema name
:param force: unused

    .. deprecated:: 0.9

        The :paramref:`.IdentifierPreparer.quote_schema.force`
        parameter is deprecated and will be removed in a future
        release.  This flag has no effect on the behavior of the
        :meth:`.IdentifierPreparer.quote` method; please refer to
        :class:`.quoted_name`.

zÚThe IdentifierPreparer.quote_schema.force parameter is deprecated and will be removed in a future release.  This flag has no effect on the behavior of the IdentifierPreparer.quote method; please refer to quoted_name().ú0.9rö  )r&   rù  rë  )r  r#   Úforces      r  rî  ÚIdentifierPreparer.quote_schemaD  s5   € ð. Ñô × Ò ð!ð òð �z‰z˜&Ó!Ð!r  c                óf  • Ub  [         R                  " SSS9  [        USS5      nUcp  XR                  ;   a  U R                  U   $ U R	                  U5      (       a  U R                  U5      U R                  U'   OXR                  U'   U R                  U   $ U(       a  U R                  U5      $ U$ )aŸ  Conditionally quote an identifier.

The identifier is quoted if it is a reserved word, contains
quote-necessary characters, or is an instance of
:class:`.quoted_name` which includes ``quote`` set to ``True``.

Subclasses can override this to provide database-dependent
quoting behavior for identifier names.

:param ident: string identifier
:param force: unused

    .. deprecated:: 0.9

        The :paramref:`.IdentifierPreparer.quote.force`
        parameter is deprecated and will be removed in a future
        release.  This flag has no effect on the behavior of the
        :meth:`.IdentifierPreparer.quote` method; please refer to
        :class:`.quoted_name`.

NzÓThe IdentifierPreparer.quote.force parameter is deprecated and will be removed in a future release.  This flag has no effect on the behavior of the IdentifierPreparer.quote method; please refer to quoted_name().r[
  rö  rë  )r&   rù  r´  r-
  r'  rP
  )r  r  r\
  s      r  rë  ÚIdentifierPreparer.quotek  s°   € ð, Ñô × Ò ð!ð òô ˜˜w¨Ó-ˆà‰=ØŸ™Ó%Ø—}‘} UÑ+Ð+à×(Ñ(¨×/Ñ/Ø+/×+@Ñ+@ÀÓ+G�D—M‘M %Ò(à+0—M‘M %Ñ(Ø—}‘} UÑ+Ð+ÞØ×(Ñ(¨Ó/Ð/àˆLr  c                óJ   • U R                   (       a  U R                  U5      $ U$ r  )r3
  rë  )r  Úcollation_names     r  rù  Ú#IdentifierPreparer.format_collationŸ  s    € Ø×/×/Ø—:‘:˜nÓ-Ð-à!Ð!r  c                óÂ   • U R                  UR                  5      nU R                  U5      nU R                  (       d!  U(       a  Ub  U R	                  U5      S-   U-   nU$ r¦  )rë  r  rí  r2
  rî  )r  r¿  r  r  ró  s        r  r#  Ú"IdentifierPreparer.format_sequence¥  s[   € ð �z‰z˜(Ÿ-™-Ó(ˆà×1Ñ1°(Ó;Ðð × × ÞØ Ñ,à×$Ñ$Ð%5Ó6¸Ñ<¸tÑCˆDØˆr  c                óJ   • U R                  U=(       d    UR                  5      $ r  ©rë  r  )r  r  r  s      r  rÔ  ÚIdentifierPreparer.format_label´  s   € ð �z‰z˜$×, %§*¡*Ó-Ð-r  c                ój   • Uc   Uc   eU R                  UR                  5      $ U R                  U5      $ r  rf
  )r  rç  r  s      r  r!  ÚIdentifierPreparer.format_alias¹  s7   € ð ‰<ØÑ$Ð$Ð$Ø—:‘:˜eŸj™jÓ)Ð)à—:‘:˜dÓ#Ð#r  c                ó~   • U=(       d    UR                   nU R                  U5      (       a  U R                  U5      nU$ r  )r  r'  rP
  )r  Ú	savepointr  r  s       r  rå  Ú#IdentifierPreparer.format_savepointÂ  s8   € ð ×'˜	Ÿ™ˆØ× Ñ  ×'Ñ'Ø×)Ñ)¨%Ó0ˆEØˆr  zsqlalchemy.sql.namingc                ó  • [         R                  R                  nUR                  [        L a   UR                  XR                  5      nUc  g OUR                  nUc   eUR                  S:X  a  U R                  XBS9$ U R                  XBS9$ )Nr†  )Ú_alembic_quote)
r&   rd  Ú
sql_namingr  r+   Ú_constraint_name_for_tablerž   r0  Útruncate_and_render_index_nameÚ#truncate_and_render_constraint_name)r  rÁ   rn
  Únamingr  s        r  rÚ  Ú$IdentifierPreparer.format_constraintË  s¤   € ô —‘×*Ñ*ˆà�?‰?œjÒ(Ø×4Ñ4Ø×,Ñ,óˆDð ‰|Øð ð —?‘?ˆDàÑÐÐØ×$Ñ$¨Ó/Ø×6Ñ6Øð 7ð ð ð ×;Ñ;Øð <ð ð r  c                óŒ   • U R                   R                  =(       d    U R                   R                  nU R                  XU5      $ r  )r½  Úmax_index_name_lengthr”  Ú _truncate_and_render_maxlen_name©r  r  rn
  Úmax_s       r  rq
  Ú1IdentifierPreparer.truncate_and_render_index_nameå  sB   € ð �L‰L×.Ñ.÷ 2Ø�|‰|×1Ñ1ð 	ð ×4Ñ4Ø˜ó
ð 	
r  c                óŒ   • U R                   R                  =(       d    U R                   R                  nU R                  XU5      $ r  )r½  Úmax_constraint_name_lengthr”  rw
  rx
  s       r  rr
  Ú6IdentifierPreparer.truncate_and_render_constraint_nameó  sB   € ð �L‰L×3Ñ3÷ 2Ø�|‰|×1Ñ1ð 	ð ×4Ñ4Ø˜ó
ð 	
r  c                ó  • [        U[        R                  5      (       a5  [        U5      U:”  a%  USUS-
   S-   [        R
                  " U5      SS  -   nOU R                  R                  U5        U(       d  U$ U R                  U5      $ )Nr   rk  rG  éüÿÿÿ)	rÂ  r   rC   rØ  r&   Úmd5_hexr½  Úvalidate_identifierrë  )r  r  ry
  rn
  s       r  rw
  Ú3IdentifierPreparer._truncate_and_render_maxlen_name  sw   € ô �dœH×5Ñ5×6Ñ6Ü�4‹y˜4ÓØ˜A  q¡Ð)¨CÑ/´$·,²,¸tÓ2DÀRÀSÐ2IÑI�øà�L‰L×,Ñ,¨TÔ2æØˆKà—:‘:˜dÓ#Ð#r  c                ó2   • U R                  U5      nUc   eU$ r  )rÚ  )r  r†  r  s      r  r§  ÚIdentifierPreparer.format_index  s#   € Ø×%Ñ% eÓ,ˆØÑÐÐØˆr  c                ó  • Uc.  [         (       a  [        U[        5      (       d   eUR                  nU R	                  U5      nU R                  U5      nU R                  (       d%  U(       a  U(       a  U R                  U5      S-   U-   nU$ )z'Prepare a quoted table and schema name.rL  )r   rÂ  r\   r  rë  rí  r2
  rî  )r  rž   r  r  r‹  ró  s         r  r™  ÚIdentifierPreparer.format_table  sw   € ð ‰<ßŠ}Ü! %¬×9Ñ9Ð9Ð9Ø—:‘:ˆDà—‘˜DÓ!ˆà×1Ñ1°%Ó8Ðà××¦JÖ3CØ×&Ñ&Ð'7Ó8¸3Ñ>ÀÑGˆFØˆr  c                ó$   • U R                  U5      $ )zPrepare a quoted schema name.r8
  rú  s     r  rW  Ú IdentifierPreparer.format_schema(  s   € ð �z‰z˜$ÓÐr  c                óŠ   • Ub0  [        U[        R                  5      (       a  UR                  U5      nU R	                  U5      $ )úPrepare a quoted column name.)rÂ  r   rC   rð  rë  )r  r  r•  s      r  r  Ú$IdentifierPreparer.format_label_name-  s@   € ð Ñ¤JØ”(×+Ñ+÷%
ñ %
ð —>‘> (Ó+ˆDà�z‰z˜$ÓÐr  c                ó”  • Uc  UR                   nUc   eUb0  [        U[        R                  5      (       a  UR	                  U5      n[        USS5      (       dG  U(       a/  U R                  UR                  XTS9S-   U R                  U5      -   $ U R                  U5      $ U(       a   U R                  UR                  XTS9S-   U-   $ U$ )rŠ
  rè  F)r  r  rL  )	r  rÂ  r   rC   rð  r´  r™  rž   rë  )r  r£   r¹  r  Ú
table_namer  r•  s          r  rº  Ú IdentifierPreparer.format_column;  sí   € ð ‰<Ø—;‘;ˆDØÑ#Ð#Ð#àÑ¤JØ”(×+Ñ+÷%
ñ %
ð —>‘> (Ó+ˆDä�v˜|¨U×3Ñ3Þà×%Ñ%ØŸ™°ð &ð ð ñð —j‘j Ó&ñ	'ðð —z‘z $Ó'Ð'ö
 à×%Ñ%ØŸ™°ð &ð ð ñð ñ	ðð �r  c                óÆ   • U R                  U5      nU R                  (       d/  U(       a(  U(       a!  U R                  U5      U R                  USS94$ U R                  USS94$ )z(Format table name and schema as a tuple.Fr™  )rí  r2
  rî  r™  )r  rž   r  ró  s       r  rN  Ú#IdentifierPreparer.format_table_seqi  sj   € ð  ×1Ñ1°%Ó8Ðà××¦JÖ3Cà×!Ñ!Ð"2Ó3Ø×!Ñ! %°EÐ!Ð:ðð ð
 ×%Ñ% e¸Ð%Ð>Ð@Ð@r  c                ó¶   • S U R                   U R                  U R                  U R                  5      4 5       u  pn[        R                  " SXUS.-  5      nU$ )Nc              3  óN   #   • U  H  n[         R                  " U5      v •  M     g 7fr  )r�  r‚  rK  s     r  r@  Ú4IdentifierPreparer._r_identifiers.<locals>.<genexpr>|  s%   é € ð )
ò�ô �IŠI�a�LˆLòùs   ‚#%zM(?:(?:%(initial)s((?:%(escaped)s|[^%(final)s])+)%(final)s|([^\.]+))(?=\.|$))+)ÚinitialÚfinalrw  )r+
  r,
  rH
  r�  rƒ  )r  r”
  r•
  Úescaped_finalÚrs        r  Ú_r_identifiersÚ!IdentifierPreparer._r_identifiersz  sl   € ñ)
ð ×"Ñ"Ø× Ñ Ø×'Ñ'¨×(8Ñ(8Ó9ñó)
Ñ%ˆ˜ô �JŠJð$ð "¸mÑLñMó
ˆð ˆr  c                óÎ   • U R                   nUR                  U5       VVs/ s H  u  p4U=(       d    UPM     snn Vs/ s H  nU R                  U5      PM     sn$ s  snnf s  snf )z:Unpack 'schema.table.column'-like strings into components.)r˜
  ÚfindallrK
  )r  Úidentifiersr—
  Úar¢  r4  s         r  Úunformat_identifiersÚ'IdentifierPreparer.unformat_identifiersŒ  sf   € ð ×Ñˆð *+¯©°;Ô)?Ô@Ò)?¡ �a—f˜1’fÑ)?Ó@ó
â@�ð ×%Ñ% aÖ(Ù@ñ
ð 	
ùã@ùò
s
   ¡A¾A")	r  r-
  r½  r0
  r1
  r,
  r+
  r2
  r3
  )rž  Nrž  TF)r½  rm   r+
  r   r,
  rk  r0
  r   r3
  r+  r2
  r+  )r4  r   r²  rn   r  r   )rþ  r   r  r   )rþ  r   r  r+  r  )r#   r   r\
  r   r  r   )r  r   r\
  r   r  r   )T)r¿  zschema.Sequencer  r+  r  r   )r  z
Label[Any]r  rk  r  r   )rç  zOptional[AliasedReturnsRows]r  rk  r  r   )rÁ   zUnion[Constraint, Index]rn
  r+  r  rk  )r  r   rn
  r+  r  r   )r  r   ry
  rP  rn
  r+  r  r   )r†  rS   r  r   )TN)rž   r[   r  r+  r  rk  r  r   )FNNFN)r£   zColumnElement[Any]r¹  r+  r  rk  r�
  rk  r  r+  r•  zOptional[Mapping[str, Any]]r  r   )rœ
  r   r  zSequence[str])0r	  r
  r  r  r  ÚRESERVED_WORDSrS
  ÚLEGAL_CHARACTERSrU
  ÚILLEGAL_INITIAL_CHARACTERSrT
  r  r†  Ú
attrgetterrí  r.
  rÉ  r¿  rÅ  rH
  rK
  r<	  rP
  r'  r¸  rî  rë  rù  r#  rÔ  r!  rå  r&   r  rÚ  rq
  rr
  rw
  r§  r™  rW  r  rº  rN  rÿ  r˜
  rž
  r  r  r  r  r´  r´  ~  sÒ  ‡ ÙJà#€Nà'Ðà!;ÐàÓàÓà&Ó&à2:×2EÒ2EÀhÓ2OÐÐ/ÓOðð -2Ð# TÓ1ð
 !Ø%)ØØ04Ø!ð"
àð"
ð ð"
ð #ð	"
ð
 ð"
ð *.ð"
ð õ"
òHð0)FØð)FØ4Jð)Fà	ô)FôV
ôFòô$
ô
ò;ö
%"öN2òh"ð =AðØ'ðØ59ðà	õð  8<ð.Øð.Ø'4ð.à	õ.ð JNð$Ø1ð$Ø9Fð$à	õ$ôð 
×ÒÐ0Ó1àKOðØ2ðØDHðà	ôó 2ðð4 15ð
Øð
Ø)-ð
à	õ
ð 15ð
Øð
Ø)-ð
à	õ
ð$Øð$Ø"ð$Ø48ð$à	ô$ôð  Ø"ð	àðð ðð ð	ð
 
õò( ð ô ð"  Ø"Ø$(Ø Ø04ð,à"ð,ð ð,ð ð	,ð
 "ð,ð ð,ð .ð,ð 
õ,ô\Að" 
×Ññó ð÷"
r  r´  )ýr  Ú
__future__r   r�  Úcollections.abcÚabcr/  r  Úenumr   rW  rç  r†  r�  Útimer   r  r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r¬  r   r   r   r   r    r!   r"   r#   r$   r%   r&   rç  Ú_typingr'   r(   r)   r*   r+   r,   r-   r.   r/   Úvisitorsr0   r2   r3   Úutil.typingr4   r5   r6   r7   Ú
annotationr8   r9   r:   r;   r¹  r<   rO  r=   Údmlr>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   Útype_apir`   ra   rb   rc   rd   Úengine.cursorre   Úengine.interfacesrf   rg   rh   ri   rj   rk   rl   rm   rn   r   Ú_FromHintsTyper 
  rƒ  ÚIr¡
  ÚLEGAL_CHARACTERS_PLUS_SPACEr[  rŸ   r¢
  r=	  rB	  rE	  ÚUNICODEr$  r#  r‘  r’  r\  Úor_r   ÚmulrÖ  ÚmodÚnegÚltÚleÚneÚgtÚgeÚeqÚis_distinct_fromÚis_not_distinct_fromÚ	concat_opr  Únot_match_opr  r  rþ  rŸ  rÓ  rÝ  rÞ  r¯   ÚexistsÚdistinct_opÚinvÚany_opÚall_opÚdesc_opÚasc_opÚnulls_first_opÚnulls_last_opÚbitwise_xor_opÚbitwise_or_opÚbitwise_and_opÚbitwise_not_opÚbitwise_lshift_opÚbitwise_rshift_oprÒ  rÞ   rÄ   rÆ   rË   rÇ   r¾   rÊ   rå   ræ   rÈ   r�   ÚcubeÚrollupÚgrouping_setsrë   r  rù  Ú_CompoundSelectKeywordrû   Ú	UNION_ALLrü   Ú
EXCEPT_ALLrý   ÚINTERSECT_ALLrú  rÿ   r  r  r  r   r"  r$  r)  r3  rL  r\  ri  rw  r|  rC  r}  r~  r  r€  Ú
namedtupler‚  rª  ÚEnsureKWArgr  ÚBinaryElementRoleÚCompilerColumnElementr  r3  rÿ  r
  rA  rT	  r
  r#
  rj  r´  )r{  s   0r  Ú<module>rÝ
     s+  ðòõ" #ã Ý )Û Ý Û Û Û Û 	Ý Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý !Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý å Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý &Ý Ý Ý Ý Ý 2Ý Ý !Ý Ý %Ý Ý Ý Ý !Ý "Ý Ý #à	××ÐÝ+Ý,Ý"Ý Ý#Ý)ÝÝÝÝ#ÝÝ*Ý*Ý'Ý'Ý&Ý'Ý ÝÝÝÝ#Ý'ÝÝ"Ý,Ý'ÝÝ,ÝÝ(Ý1Ý.Ý/ÝÝ&Ý+Ý'Ý"Ý'Ý,Ý'Ý$Ý)Ý#Ý4Ý<Ý:Ý<Ý=Ý3Ý=ÝCÝ+Ý:ð �l CÐ'Ñ(€ò_€ðB —:“:Ð.°·²Ó5Ð Ø Ÿj›jÐ):¸B¿DºDÓAÐ Ù.3°A°r¬lÓ;ªl¨™c !žf©lÑ;×AÒAÀ3À%ÓHÐ à�z‹zØ<¸b¿dºdó€ð �z‹zØ<¸b¿dºdó€ð �z‹zÐ5°r·t²tÓ<€Ø�j‹jÐAÀ2Ç:Â:ÓN€Ø—*“*Ð9¸2¿:º:ÓF€à$Ð à"ØØØØ$Øñ€ð.à‡N‚N�Gð.ð ‡M‚M�6ð.ð ‡M‚M�5ð	.ð
 ‡M‚M�5ð.ð ‡M‚M�5ð.ð ‡M‚M�5ð.ð ‡M‚M�3ð.ð ‡L‚L�%ð.ð ‡L‚L�&ð.ð ‡L‚L�&ð.ð ‡L‚L�%ð.ð ‡L‚L�&ð.ð ‡L‚L�%ð.ð ×ÒÐ 4ð.ð  ×"Ò"Ð$<ð!.ð" ×Ò˜ð#.ð$ ×Ò˜	ñ%.ð& ×Ò˜Mð'.ð( ‡O‚O�Vð).ð* ×Ò˜ð+.ð, ×Ò˜ð-.ð. ‡O‚O�Xð/.ð0 ‡M‚M�6ð1.ð2 ‡M‚M�6ð3.ð4 ×Ò�jð5.ð6 ×Ò�{ð7.ð: ×Ò�ið;.ð< ×Ò˜;ð=.ð> ‡M‚M�6ð?.ð@ ×Ò�fðA.ðB ×Ò�fðC.ðF ×Ò�wðG.ðH ×Ò�fðI.ðJ ×Ò˜nñK.ðL ×Ò˜]à×Ò˜eØ×Ò˜UØ×Ò˜eØ×Ò˜cØ×Ò Ø×Ò ñ[.€	ðb ×Ò˜
Ø×Ò˜NØ×Ò˜NØ×ÒÐ!4Ø×Ò˜NØ×Ò˜Ø×ÒÐ.Ø×Ò�hØ×Ò�yØ×Ò˜NØ‡N‚N�FØ‡N‚N�FØ×Ò�hØ×Ò˜_ð-€	Ð)ó ð& ØØØØØØØØØØØ"Ø"Ø$Ø(ñ€ð& ×%Ò%×+Ò+¨WØ×%Ò%×/Ò/°Ø×%Ò%×,Ò,¨hØ×%Ò%×0Ò0°,Ø×%Ò%×/Ò/°Ø×%Ò%×3Ò3°_ðÐ ô˜ô ô>˜ô ð  !Ð �*Ó  Ø€ˆÓ Ø€
ˆJÓ Ø€ˆÓ ô˜iô ô$Ð1¸ò $ô:�Jô :ôzA˜
ô AôH˜Zô ô2! ;ô !ô$�Gô ô ˆgô ñ. FKØóFÑ B€
Ð&¨°lô
?#�×'Ó'¨°wÀÐ6HÓIô ?#÷DI'ñ I'ôXF�4×#Ò#ô Fô0Ø	×Ò˜CÑ  (×"@Ò"@ôô2#
Ø	×Ò˜CÑ  (×"@Ò"@ô#
ôL@W
�(ô @W
ôFnl
�[ô l
ô^z�(ô zözz(˜,ô z(öz&Ð,ô &öB/˜xô /ö;˜hô ;÷U
ô U
ùòMd <s   Ìc9