§
    eŠtj'^ ã                  ó˜  — U d Z ddlmZ ddlZddlmZ ddlZddlm	Z	 ddl
Z
ddlZddlZddlZddlmZ ddlZddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddl&m'Z' ddl&m(Z( ddl&m)Z) ddl&m*Z* dd l&m+Z+ dd!l&m,Z, dd"l&m-Z- dd#l&m.Z. dd$l&m/Z/ dd%l&m0Z0 dd&l&m1Z2 dd'l3m4Z4 dd(l3m5Z5 dd)l'm6Z6 dd*l'm7Z7 dd+l'm8Z8 dd,l'm9Z9 dd-l'm:Z: dd.l*m;Z; dd/l0m<Z< dd0l=m>Z> d1d2l&m?Z? d1d&l&m1Z1 d1d3l1m@Z@ d1d4lAmBZB d1d5lAmCZC d1d6lAmDZD d1d7lAmEZE ej$        �rJdd8lFmGZG dd9l'mHZH dd:l'mIZI dd;l'mJZJ dd<lKmLZL dd=lMmNZN dd>lOmPZP dd?lOmQZQ dd@lOmRZR ddAlOmSZS ddBlOmTZT ddCl*mUZU ddDl*mVZV ddEl*mWZW ddFl*mXZX ddGl*mYZY ddHl*mZZZ ddIl*m[Z[ ddJl*m\Z\ ddKl*m]Z] ddLl*m^Z^ ddMl+m_Z_ ddNl.m`Z` ddOl.maZa ddPl.mbZb ddQl.mcZc ddRl.mdZd ddSl.meZe ddTl.mfZf ddUl.mgZg ddVl.mhZh ddWl/miZi ddXl/mjZj ddYl/mkZk ddZl/mlZl dd[l/mmZm dd\l/mnZn dd]l/moZo dd^l/mpZp dd_l/mqZq dd`lrmsZs ddalrmtZt ddblrmuZu ddclrmvZv dddl=mwZw d1delxmyZy d1dflzm{Z{ d1dglzm|Z| d1dhlzm}Z} d1dilzm~Z~ d1djlzmZ d1dklzm€Z€ d1dllzm�Z� d1dmlzm‚Z‚ d1dnlzmƒZƒ edoe„f         Z…h dp£Z† ej‡        dqejˆ        ¦  «        Z‰ ej‡        drejˆ        ¦  «        ZŠds„  e‹ddt¦  «        D ¦   «          Œ                    dug¦  «        Z� ej‡        dvejˆ        ¦  «        ZŽ ej‡        dvejˆ        ¦  «        Z� ej‡        dwejˆ        ¦  «        Z� ej‡        dxej‘        ¦  «        Z’ ej‡        dyej‘        ¦  «        Z“dzZ”e”d{d|d}d~dd€œZ•i e,j–        d�“e,j—        d‚“e,j˜        dƒ“e,j™        d„“e,jš        d…“e,j›        d†“e,jœ        d‡“e,j�        dˆ“e,jž        d‰“e,jŸ        dŠ“e,j         d‹“e,j¡        dŒ“e,j¢        d�“e,j£        dŽ“e,j¤        d�“e,j¥        d�“e,j¦        d‘“i e,j§        d’“e,j¨        d““e,j©        d”“e,jª        d•“e,j«        d–“e,j¬        d—“e,j­        d˜“e,j®        d™“e,j¯        dš“e,j°        d›“e,j±        dœ“e,j²        d�“e,j³        dž“e,j´        dŸ“e,jµ        d “e,j¶        d¡“e,j·        d¢“¥e,j¸        d£e,j¹        d¤e,jº        d¥e,j»        d¦e,j¼        d§e,j½        d¨e,j¾        d©i¥Z¿e+jÀ        dªe+jÁ        d«e+jÂ        d¬e+jÃ        d­e+jÄ        d®e+jÅ        d¯e+jÆ        d°e+jÇ        d±e+jÈ        d²e+jÉ        d³e+jÊ        d´e+jË        dµe+jÌ        d¶e+jÍ        d·iZÎd¸eÏd¹<   dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉœZÐe/jÑ        jÒ        dÊe/jÑ        jÓ        dËe/jÑ        jÔ        dÌe/jÑ        jÕ        dÍe/jÑ        jÖ        dÎe/jÑ        j×        dÏiZØ G dÐ„ dÑe¦  «        ZÙ G dÒ„ dÓeC¦  «        ZÚdZÛdÔeÏdÕ<   dZÜdÖeÏd×<   d1ZÝdØeÏdÙ<   dÚZÞdÛeÏdÜ<    G dÝ„ dÞeE¦  «        Zß G dß„ dàeßdá¬â¦  «        Zà G dã„ däe¦  «        Zá G då„ dæe¦  «        Zâ G dç„ dèe¦  «        Zã G dé„ dêe@¦  «        Zä G dë„ dìe	¦  «        Zå G dí„ dîe	¦  «        Zæ eçeæ¦  «        \  ZèZéZêZë G dï„ dð ejì        dðdñdòg¦  «        ¦  «        Zí G dó„ dô¦  «        Zî G dõ„ döe1jï        ¦  «        Zð G d÷„ døe-jñ        e         e*jò        ¦  «        Zó G dù„ dúe-jñ        e         e*jò        ¦  «        Zô G dû„ düeî¦  «        Zõ G dý„ dþeõ¦  «        Zö G dÿ„ �d eî¦  «        Z÷ G �d„ �deð¦  «        Zø G �d„ �deø¦  «        Zù G �d„ �deC¦  «        Zú G �d„ �deC¦  «        Zû G �d	„ �d
¦  «        ZüdS (  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_ $]+$c                ó,   — h | ]}t          |¦  «        ’ŒS © )Ústr)Ú.0Úxs     úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/sql/compiler.pyú	<setcomp>rÓ   ù   s   € Ð;Ð;Ð;¨�c !™fœfÐ;Ð;Ð;ó    é
   ú$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                  óB   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   d	S )
ÚResultColumnsEntrya  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.

    rÏ   ÚkeynameÚnameúTuple[Any, ...]ÚobjectsúTypeEngine[Any]ÚtypeN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rÎ   rÔ   rÒ   r  r  n  sY   € € € € € € ðð ð €L€L�LØ;à€I€I�IØ%àÐÐÑðð ÐÐÑðð rÔ   r  c                  ó   — e Zd Zdd
„ZdS )Ú_ResultMapAppenderr	  rÏ   r
  r  úSequence[Any]Útype_r  ÚreturnÚNonec                ó   — d S ©NrÎ   ©Úselfr	  r
  r  r  s        rÒ   Ú__call__z_ResultMapAppender.__call__Ž  s	   € ð ˆsrÔ   N)
r	  rÏ   r
  rÏ   r  r  r  r  r  r  ©r  r  r  r  rÎ   rÔ   rÒ   r  r  �  s(   € € € € € ðð ð ð ð ð rÔ   r  z
Literal[0]ÚRM_RENDERED_NAMEz
Literal[1]ÚRM_NAMEz
Literal[2]Ú
RM_OBJECTSé   z
Literal[3]ÚRM_TYPEc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú_BaseCompilerStackEntryzSet[FromClause]Úasfrom_fromsÚcorrelate_fromsr^   r$   N©r  r  r  r  rÎ   rÔ   rÒ   r'  r'  Ÿ  s6   € € € € € € Ø!Ð!Ð!Ñ!Ø$Ð$Ð$Ñ$ØÐÐÑÐÐrÔ   r'  c                  óB   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
S )Ú_CompilerStackEntryr;   Úcompile_stateÚboolÚneed_result_map_for_nestedÚneed_result_map_for_compoundr^   Úselect_0úSelect[Any]Úinsert_from_selectNr*  rÎ   rÔ   rÒ   r,  r,  ¥  sN   € € € € € € ØÐÐÑØ$Ð$Ð$Ñ$Ø&Ð&Ð&Ñ&ØÐÐÑØ#Ð#Ð#Ñ#Ð#Ð#rÔ   r,  F)Útotalc                  ó€   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded	<   	 d
ed<   	 edd„¦   «         Zedd„¦   «         ZdS )ÚExpandedStatea¹  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Ï   Ú	statementrg   Ú
parametersú%Mapping[str, _BindProcessorType[Any]]Ú
processorsúOptional[Sequence[str]]ÚpositiontupzMapping[str, List[str]]Úparameter_expansionr  r  c                óz   ‡ — ‰ j         €t          j        d¦  «        ‚t          ˆ fd„‰ j         D ¦   «         ¦  «        S )zrTuple of positional parameters, for statements that were compiled
        using a positional paramstyle.

        Nz.statement does not use a positional paramstylec              3  ó2   •K  — | ]}‰j         |         V — Œd S r  ©r8  )rÐ   Úkeyr  s     €rÒ   ú	<genexpr>z6ExpandedState.positional_parameters.<locals>.<genexpr>â  s*   øè è € ÐFÐF¨c�T”_ SÔ)ÐFÐFÐFÐFÐFÐFrÔ   )r<  r3   ÚInvalidRequestErrorÚtuple©r  s   `rÒ   Úpositional_parametersz#ExpandedState.positional_parametersØ  sN   ø€ ð ÔÐ#ÝÔ)Ø@ñô ð õ ÐFÐFÐFÐF°TÔ5EÐFÑFÔFÑFÔFÐFrÔ   c                ó   — | j         S )z.synonym for :attr:`.ExpandedState.parameters`.r@  rE  s    rÒ   Úadditional_parametersz#ExpandedState.additional_parametersä  s   € ð ŒÐrÔ   N)r  r  )r  rg   )r  r  r  r  r  ÚpropertyrF  rH  rÎ   rÔ   rÒ   r6  r6  ­  s¸   € € € € € € ðð ð" €N€N�NØ=à(Ð(Ð(Ñ(ðð 6Ð5Ð5Ñ5Ø+à(Ð(Ð(Ñ(ðð 1Ð0Ð0Ñ0ðð ð	Gð 	Gð 	Gñ „Xð	Gð ðð ð ñ „Xðð ð rÔ   r6  c                  óÂ   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded	<   	 d
Zded<   	 d
Zded<   	 dZded<   	 dZded<   	 dZ	ded<   	 d
Z
ded<   	 d
Zded<   	 d
Zded<   dS )Ú_InsertManyValuesa  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_columnsr;  Úsentinel_param_keysÚimplicit_sentinelÚhas_upsert_bound_parametersÚembed_values_counter)r  r  r  r  r  rQ  rR  rT  rU  rV  rW  rX  rY  rÎ   rÔ   rÒ   rK  rK  ê  s+  € € € € € € ðð ð ÐÐÑðð
 ÐÐÑðð 8Ð7Ð7Ñ7ØMà&Ð&Ð&Ñ&ð
ð %*ÐÐ)Ð)Ð)Ñ)ðð ',ÐÐ+Ð+Ð+Ñ+ðð 9=ÐÐ<Ð<Ð<Ñ<ðð !"ÐÐ!Ð!Ð!Ñ!ðð 48ÐÐ7Ð7Ð7Ñ7ðð  $ÐÐ#Ð#Ð#Ñ#ð	ð ).ÐÐ-Ð-Ð-Ñ-ð
ð "'ÐÐ&Ð&Ð&Ñ&ð	ð 	rÔ   rK  c                  óx   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   dS )Ú_InsertManyValuesBatchas  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_statementrh   Úreplaced_parametersú#Optional[_GenericSetInputSizesType]Úprocessed_setinputsizesz#Sequence[_DBAPISingleExecuteParams]ÚbatchzSequence[Tuple[Any, ...]]Úsentinel_valuesrO  Úcurrent_batch_sizeÚbatchnumÚtotal_batchesr.  Úrows_sortedÚis_downgradedNr  rÎ   rÔ   rÒ   r[  r[  n  s“   € € € € € € ð
ð 
ð ÐÐÑØ/Ð/Ð/Ñ/Ø@Ð@Ð@Ñ@Ø.Ð.Ð.Ñ.Ø.Ð.Ð.Ñ.ØÐÐÑØ€M€M�MØÐÐÑØÐÐÑØÐÐÑÐÐrÔ   r[  c                  óD   — e Zd ZdZdZdZdZdZeez  ez  Zeez  Z	dZ
dZdS )	ÚInsertmanyvaluesSentinelOptszcbitflag enum indicating styles of PK defaults
    which can work as implicit sentinel columns

    r   r2   é   é   é   é@   N)r  r  r  r  ÚNOT_SUPPORTEDÚAUTOINCREMENTÚIDENTITYÚSEQUENCEÚANY_AUTOINCREMENTÚ_SUPPORTED_OR_NOTÚUSE_INSERT_FROM_SELECTÚRENDER_SELECT_COL_CASTSrÎ   rÔ   rÒ   rh  rh  ‡  sX   € € € € € ðð ð
 €MØ€MØ€HØ€Hà%¨Ñ0°8Ñ;ÐØ%Ð(9Ñ9ÐàÐØ ÐÐÐrÔ   rh  c                  ó   — e Zd ZdZ	 dZ	 dZdS )ÚCompilerStater   r   r2   N)r  r  r  Ú	COMPILINGÚSTRING_APPLIEDÚNO_STATEMENTrÎ   rÔ   rÒ   rv  rv  ™  s-   € € € € € Ø€IØ=à€Nðð €Lðð rÔ   rv  c                  ó.   — e Zd ZdZdZ	 dZ	 dZ	 eez  ZdS )ÚLintingzžrepresent preferences for the 'SQL linting' feature.

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

    r   r   r2   N)r  r  r  r  Ú
NO_LINTINGÚCOLLECT_CARTESIAN_PRODUCTSÚWARN_LINTINGÚFROM_LINTINGrÎ   rÔ   rÒ   r{  r{  ©  sG   € € € € € ðð ð €JØà!"Ððð €LØ2à-°Ñ<€Lðð rÔ   r{  c                  ó"   — e Zd ZdZdd„Zdd„ZdS )Ú
FromLinterzKrepresents current state for the "cartesian product" detection
    feature.Nc                óà  ‡— | j         }|sdS t          | j        ¦  «        }t          |¦  «        }|�|}|                     |¦  «         n|                     ¦   «         }t          j        |g¦  «        }|rs|rq|                     ¦   «         Š|                     ‰¦  «         ˆfd„|D ¦   «         }| 	                    ˆfd„|D ¦   «         ¦  «         | 
                    |¦  «         |r|°q|r||fS dS )N©NNc                ó   •— h | ]}‰|v ¯|’Œ	S rÎ   rÎ   ©rÐ   ÚedgeÚnodes     €rÒ   rÓ   z"FromLinter.lint.<locals>.<setcomp>á  s   ø€ Ð@Ð@Ð@ $°4¸4°<°<˜°<°<°<rÔ   c              3  óP   •K  — | ] }||                      ‰¦  «                  V — Œ!d S r  )Úindexr…  s     €rÒ   rB  z"FromLinter.lint.<locals>.<genexpr>å  s7   øè è € ÐNÐN¸D˜T d§j¢j°Ñ&6Ô&6Ð"6Ô7ÐNÐNÐNÐNÐNÐNrÔ   )Úfromsr�   ÚedgesÚremoveÚpopÚcollectionsÚdequeÚpopleftÚdiscardÚ
extendleftÚdifference_update)	r  ÚstartrŠ  r‹  Úthe_restÚ
start_withÚstackÚ	to_remover‡  s	           @rÒ   ÚlintzFromLinter.lintÉ  s$  ø€ Ø”
ˆØð 	Ø�:å�D”J‘”ˆÝ�u‘:”:ˆàÐØˆJØ�OŠO˜JÑ'Ô'Ð'Ð'à!Ÿš™œˆJåÔ! : ,Ñ/Ô/ˆàð 	/˜ð 	/Ø—=’=‘?”?ˆDØ×Ò˜TÑ"Ô"Ð"ð AÐ@Ð@Ð@¨%Ð@Ñ@Ô@ˆIð ×ÒÐNÐNÐNÐNÀIÐNÑNÔNÑNÔNÐNØ×#Ò# IÑ.Ô.Ð.ð ð 	/˜ð 	/ð  ð 	Ø˜ZÐ'Ð'à�:rÔ   ÚSELECTc                óþ   ‡ — ‰                       ¦   «         \  }}|r`|}|r^d}d                     ˆ fd„|D ¦   «         ¦  «        }|                     ||‰ j        |         ¬¦  «        }t	          j        |¦  «         d S d S d S )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  ó:   •K  — | ]}d ‰j         |         › d �V — ŒdS )ú"N)rŠ  )rÐ   Úfrom_r  s     €rÒ   rB  z"FromLinter.warn.<locals>.<genexpr>û  sG   øè è € ð &ð &Ø16Ð,˜œ
 5Ô)Ð,Ð,Ð,ð&ð &ð &ð &ð &ð &rÔ   )Ú	stmt_typerŠ  r”  )r™  r‰   rÚ   rŠ  r&   Úwarn)r  rŸ  r•  r–  rŠ  ÚtemplateÚ	froms_strÚmessages   `       rÒ   r   zFromLinter.warnî  sÇ   ø€ Ø#Ÿyšy™{œ{Ñˆ�*ð ð 	#ØˆEØð #ð7ð ð !ŸIšIð &ð &ð &ð &Ø:?ð&ñ &ô &ñ ô �	ð #Ÿ/š/Ø'Ø#Øœ* ZÔ0ð *ñ ô �õ ”	˜'Ñ"Ô"Ð"Ð"Ð"ð%	#ð 	#ð#ð #rÔ   r  )rš  )r  r  r  r  r™  r   rÎ   rÔ   rÒ   r�  r�  Å  sG   € € € € € ðð ð#ð #ð #ð #ðJ#ð #ð #ð #ð #ð #rÔ   r�  rŠ  r‹  c                  ó–  ‡ — e Zd ZU dZdZded<   	 dZded<   	 ded	<   	 d
Zd
ZdZ	ded<   dZ
ded<   dZded<   ej        Zded<   	 ded<   ej        Zded<   dZded<   	 dZded<   	 dZded<   	 ded<   	 dd
 ej        ¦   «         fd<d$„Zd=ˆ fd'„Zed(„ ¦   «         Zd)„ Zd*„ Zed>d,„¦   «         Zd?d1„Zd@d2„Z	 	 	 dAdBd:„Zed;„ ¦   «         Zˆ xZ S )CÚCompileda  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]r7  Ú rÏ   Ústringrv  ÚstateFzOptional[CursorResultMetaData]Ú_cached_metadataz"Optional[List[ResultColumnsEntry]]Ú_result_columnsú Optional[SchemaTranslateMapType]Úschema_translate_maprk   Úexecution_optionsÚIdentifierPreparerÚpreparerr9   Ú_annotationszOptional[CompileState]r-  Údml_compile_stateúOptional[CacheKey]Ú	cache_keyÚfloatÚ	_gen_timeÚdialectrn   Úrender_schema_translater.  Úcompile_kwargsúMapping[str, Any]c                ó>  — || _         | j         j        | _        |r&|| _        | j                             |¦  «        | _        |�¶t
          j        | _        || _        |j	        | _
        |j        | _        | j
        r*t          rt          |t          ¦  «        sJ ‚|j        | _         | j        | j        fi |¤Ž| _        |r)|€J ‚| j                             | j        |¦  «        | _        t
          j        | _        nt
          j        | _        t-          ¦   «         | _        dS )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)r·  Úidentifier_preparerr°  r­  Ú_with_schema_translaterv  rw  r©  r7  Úsupports_executionÚcan_executer±  r   Ú
isinstancer<   Ú_execution_optionsr®  Úprocessr¨  Ú_render_schema_translatesrx  ry  r   r¶  ©r  r·  r7  r­  r¸  r¹  s         rÒ   Ú__init__zCompiled.__init__[  s   € ð4 ˆŒØœÔ8ˆŒØð 	Ø(<ˆDÔ%Ø œM×@Ò@Ø$ñô ˆDŒMð Ð Ý&Ô0ˆDŒJØ&ˆDŒNØ(Ô;ˆDÔØ )Ô 6ˆDÔØÔð FÝ ð =Ý% iµÑ<Ô<Ð<Ð<Ð<Ø)2Ô)E�Ô&Ø&˜$œ, t¤~ÐHÐH¸ÐHÐHˆDŒKà&ð Ø+Ð7Ð7Ð7Ø"œm×EÒEØ”KÐ!5ñô �”õ 'Ô5ˆDŒJˆJå&Ô3ˆDŒJå%™œˆŒˆˆrÔ   r  r  c                ól   •— |                       ¦   «          t          ¦   «                              ¦   «         S r  )Ú_init_compiler_clsÚsuperÚ__init_subclass__)ÚclsÚ	__class__s    €rÒ   rÉ  zCompiled.__init_subclass__”  s+   ø€ Ø×ÒÑ Ô Ð Ý‰wŒw×(Ò(Ñ*Ô*Ð*rÔ   c                ó   — d S r  rÎ   ©rÊ  s    rÒ   rÇ  zCompiled._init_compiler_cls˜  s   € àˆrÔ   c                óp   — | j         r|                     | ||¦  «        S t          j        | j        ¦  «        ‚r  )r¿  Ú_execute_compiledr3   ÚObjectNotExecutableErrorr7  )r  Ú
connectionÚdistilled_paramsr®  s       rÒ   Ú_execute_on_connectionzCompiled._execute_on_connectionœ  sE   € ð Ôð 	?Ø×/Ò/ØÐ&Ð(9ñô ð õ Ô.¨t¬~Ñ>Ô>Ð>rÔ   c                óH   — t          j        | t          |¦  «        ¦  «        |‚r  ©r3   ÚUnsupportedCompilationErrorr  ©r  ÚelementÚerrÚkws       rÒ   Úvisit_unsupported_compilationz&Compiled.visit_unsupported_compilation¦  s   € ÝÔ-¨dµD¸±M´MÑBÔBÈÐKrÔ   ÚSQLCompilerc                ó   — t          ¦   «         ‚)z�Return a Compiled that is capable of processing SQL expressions.

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

        ©ÚNotImplementedErrorrE  s    rÒ   Úsql_compilerzCompiled.sql_compiler©  s   € õ "Ñ#Ô#Ð#rÔ   Úobjre   Úkwargsr   c                ó   —  |j         | fi |¤ŽS r  ©Ú_compiler_dispatch)r  rá  râ  s      rÒ   rÂ  zCompiled.process³  s   € Ø%ˆsÔ% dÐ5Ð5¨fÐ5Ð5Ð5rÔ   c                ó:   — | j         t          j        u r| j        S dS )z3Return the string text of the generated SQL or DDL.r§  )r©  rv  rx  r¨  rE  s    rÒ   Ú__str__zCompiled.__str__¶  s!   € ð Œ:�Ô5Ð5Ð5Ø”;Ðà�2rÔ   TÚparamsú"Optional[_CoreSingleExecuteParams]Úextracted_parametersú&Optional[Sequence[BindParameter[Any]]]Úescape_namesú)Optional[_MutableCoreSingleExecuteParams]c                ó   — t          ¦   «         ‚)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  rè  rê  rì  s       rÒ   Úconstruct_paramszCompiled.construct_params¾  s   € õ "Ñ#Ô#Ð#rÔ   c                ó*   — |                       ¦   «         S )z0Return the bind params for this compiled object.©rð  rE  s    rÒ   rè  zCompiled.paramsÍ  s   € ð ×$Ò$Ñ&Ô&Ð&rÔ   )
r·  rn   r7  r¦  r­  r¬  r¸  r.  r¹  rº  )r  r  ©r  rÜ  )rá  re   râ  r   r  rÏ   ©r  rÏ   ©NNT©rè  ré  rê  rë  rì  r.  r  rí  )!r  r  r  r  r7  r  r¨  Úis_sqlÚis_ddlrª  r«  r­  r&   Ú
EMPTY_DICTr®  r±  r-  r²  r´  ÚimmutabledictrÅ  rÉ  ÚclassmethodrÇ  rÓ  rÛ  rI  rà  rÂ  rç  rð  rè  Ú__classcell__©rË  s   @rÒ   r¥  r¥    sJ  ø€ € € € € € ð
ð 
ð *.€IÐ-Ð-Ð-Ñ-ØØ€FÐÐÐÑØ4àÐÐÑØ-à€FØ€Fà7;ÐÐ;Ð;Ð;Ñ;à:>€OÐ>Ð>Ð>Ñ>à=AÐÐAÐAÐAÑAà)-¬ÐÐ8Ð8Ð8Ñ8ðð
 !Ð Ð Ñ à$(¤O€LÐ3Ð3Ð3Ñ3à,0€MÐ0Ð0Ð0Ñ0ðð 15ÐÐ4Ð4Ð4Ñ4ð	ð %)€IÐ(Ð(Ð(Ñ(ð	ð ÐÐÑðð BFØ(-Ø,>¨DÔ,>Ñ,@Ô,@ð7(ð 7(ð 7(ð 7(ð 7(ðr+ð +ð +ð +ð +ð +ð ðð ñ „[ðð?ð ?ð ?ðLð Lð Lð ð$ð $ð $ñ „Xð$ð6ð 6ð 6ð 6ðð ð ð ð 6:ØGKØ!ð	$ð $ð $ð $ð $ð ð'ð 'ñ „Xð'ð 'ð 'ð 'ð 'rÔ   r¥  c                  ó.   — e Zd ZdZdZdd„Zdd„Zdd„ZdS )ÚTypeCompilerz2Produces DDL specification for TypeEngine objects.z	visit_\w+r·  rn   c                ó   — || _         d S r  )r·  )r  r·  s     rÒ   rÅ  zTypeCompiler.__init__Ø  s   € ØˆŒˆˆrÔ   r  r  rÚ  r   r  rÏ   c                ó€   — |j         r*| j        j        |j         v r|j         | j        j                 } |j        | fi |¤ŽS r  )Ú_variant_mappingr·  r
  rå  ©r  r  rÚ  s      rÒ   rÂ  zTypeCompiler.processÛ  sM   € àÔ"ð	>à”Ô! UÔ%;Ð;Ð;àÔ*¨4¬<Ô+<Ô=ˆEØ'ˆuÔ'¨Ð3Ð3°Ð3Ð3Ð3rÔ   rØ  rÙ  Ú	Exceptionr   c                ó.   — t          j        | |¦  «        |‚r  )r3   rÖ  r×  s       rÒ   rÛ  z*TypeCompiler.visit_unsupported_compilationã  s   € õ Ô-¨d°GÑ<Ô<À#ÐErÔ   N)r·  rn   )r  r  rÚ  r   r  rÏ   )rØ  r   rÙ  r  rÚ  r   r  r   )r  r  r  r  Úensure_kwargrÅ  rÂ  rÛ  rÎ   rÔ   rÒ   rÿ  rÿ  Ó  sa   € € € € € Ø<Ð<à€Lðð ð ð ð4ð 4ð 4ð 4ðFð Fð Fð Fð Fð FrÔ   rÿ  c                  óT   — e Zd ZdZdZdZd
d„Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
d	S )Ú_CompileLabelz;lightweight label object which acts as an expression.Label.Úlabel©rØ  r
  Ú
_alt_namesrÎ   c                ó8   — || _         || _        |f|z   | _        d S r  r
  )r  Úcolr
  Ú	alt_namess       rÒ   rÅ  z_CompileLabel.__init__ó  s"   € ØˆŒØˆŒ	Ø˜& 9Ñ,ˆŒˆˆrÔ   c                ó   — | j         j        S r  ©rØ  Ú	proxy_setrE  s    rÒ   r  z_CompileLabel.proxy_setø  ó   € àŒ|Ô%Ð%rÔ   c                ó   — | j         j        S r  ©rØ  r  rE  s    rÒ   r  z_CompileLabel.typeü  ó   € àŒ|Ô Ð rÔ   c                ó   — | S r  rÎ   ©r  rÚ  s     rÒ   Ú
self_groupz_CompileLabel.self_group   ó   € ØˆrÔ   N)rÎ   )r  r  r  r  Ú__visit_name__Ú	__slots__rÅ  rI  r  r  r  rÎ   rÔ   rÒ   r  r  ë  s€   € € € € € ð FÐEà€NØ/€Ið-ð -ð -ð -ð
 ð&ð &ñ „Xð&ð ð!ð !ñ „Xð!ðð ð ð ð rÔ   r  c                  óX   — e Zd ZdZdZdZd„ Zed„ ¦   «         Zed„ ¦   «         Z	d„ Z
d„ Zd	S )
Úilike_case_insensitivea  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                ó,   — || _         |j        | _        d S r  r  )r  rØ  s     rÒ   rÅ  zilike_case_insensitive.__init__  s   € ØˆŒØ!Ô,ˆŒˆˆrÔ   c                ó   — | j         j        S r  r  rE  s    rÒ   r  z ilike_case_insensitive.proxy_set  r  rÔ   c                ó   — | j         j        S r  r  rE  s    rÒ   r  zilike_case_insensitive.type  r  rÔ   c                ó   — | S r  rÎ   r  s     rÒ   r  z!ilike_case_insensitive.self_group!  r  rÔ   c                óP   — t          | j                             |¦  «        ¦  «        S r  )r  rØ  Ú_with_binary_element_type)r  r  s     rÒ   r&  z0ilike_case_insensitive._with_binary_element_type$  s'   € Ý%ØŒL×2Ò2°5Ñ9Ô9ñ
ô 
ð 	
rÔ   N)r  r  r  r  r  r  rÅ  rI  r  r  r  r&  rÎ   rÔ   rÒ   r  r    s�   € € € € € ð	ð 	ð 6€NØ'€Ið-ð -ð -ð ð&ð &ñ „Xð&ð ð!ð !ñ „Xð!ðð ð ð
ð 
ð 
ð 
ð 
rÔ   r  c                  ó0  — e Zd ZU dZeZ ej        dddddddddœ¦  «        Zde	d	<   	 d
e	d<   de	d<   dZ
eZdZde	d<   dZde	d<   dZde	d<   	 de	d<   	 dZde	d<   	 dZde	d<   	 dZde	d<   	 dZde	d<   de	d<   	 de	d <   	 d!e	d"<   	 dZde	d#<   	 dZde	d$<   	 dZde	d%<   	 d&e	d'<   	 d&e	d(<   	 d&e	d)<   	 d*e	d+<   	 dZde	d,<   	 dZde	d-<   	 dZde	d.<   	 dZde	d/<   	 dZde	d0<   	 dZde	d1<   	 dZd2e	d3<   	 dZd4e	d5<   	 dZd6e	d7<   dZ d8e	d9<   dZ!d:e	d;<    e"¦   «         Z#d<e	d=<   	  e"¦   «         Z$d<e	d><   	 ej%        Z&d?e	d@<   	 dZ'	 dZ(	 dZ)dAe	dB<   	 dZ*d6e	dC<   	 dZ+d6e	dD<   dZ,d6e	dE<   dZ-de	dF<   dGe	dH<   dIe	dJ<   dKe	dL<   de	dM<    e.j/        dN¦  «        Z0 e.j/        dO¦  «        Z1 e.j/        e1j2        › dPe0j2        › �¦  «        Z3e4dQ„ ¦   «         Z5e4dR„ ¦   «         Z6ddde7df�dsdb„Z8e9�dtdd„¦   «         Z:ej;        �dude„¦   «         Z<e9df„ ¦   «         Z=e9dg„ ¦   «         Z>e9dh„ ¦   «         Z?ej@        �dvdj„¦   «         ZAejB        �dwdl„¦   «         ZCeDjE        dm„ ¦   «         ZFdn„ ZGdo„ ZHej@        �dxdq„¦   «         ZIdr„ ZJe9�dydt„¦   «         ZK	 	 �dz�d{dy„ZL	 	 	 	 	 	 �d|�d}d�„ZMejB        d‚„ ¦   «         ZNe9dƒ„ ¦   «         ZO	 �d~�dd†„ZP ejQ        d‡¦  «        dˆ„ ¦   «         ZRd‰e	dŠ<   ej@        �d€dŒ„¦   «         ZSej@         ejQ        d�¦  «        dŽ„ ¦   «         ¦   «         ZTej@         ejQ        d�¦  «        d�„ ¦   «         ¦   «         ZU�d�d�„ZVd‘„ ZW�d~d’„ZXd“„ ZY	 �d~d”„ZZ	 �d~d•„Z[	 	 	 	 	 �d‚d–„Z\d—„ Z]d˜„ Z^	 	 	 	 �dƒ�d„d¢„Z_d£„ Z`d¤„ Zad¥„ Zbd¦„ Zcd§„ Zdd¨„ Ze�d…d©„Zf	 �d†dª„Zg�d‡d®„Zh�dˆd°„Zi�d‰d²„Zjd³„ Zkd´„ Zldµ„ Zmd¶„ Znd·„ Zod¸„ Zpd¹„ Zqdº„ Zrd»„ Zsd¼„ Ztd½„ Zud¾„ Zvd¿„ ZwdÀ„ Zx	 �d…�dŠdÃ„ZydÄ„ ZzdÅ„ Z{�d‹dÆ„Z|	 �dŒdÇ„Z}dÈ„ Z~dÉ„ Z	 �d�dÊ„Z€dË„ Z�dÌ„ Z‚dÍ„ ZƒdÎ„ Z„dÏ„ Z…dÐ„ Z†dÑ„ Z‡dÒ„ Zˆ	 �d…dÓ„Z‰dÔ„ ZŠ	 	 	 	 �dŽdÕ„Z‹dÖ„ ZŒd×„ Z�dØ„ ZŽdÙ„ Z�dÚ„ Z�	 �d~�d�dß„Z‘dà„ Z’dá„ Z“ej@        dâ„ ¦   «         Z”dã„ Z•dä„ Z–då„ Z—dæ„ Z˜dç„ Z™dè„ Zšdé„ Z›dê„ Zœdë„ Z�dì„ Zždí„ ZŸdî„ Z dï„ Z¡dð„ Z¢dñ„ Z£dò„ Z¤dó„ Z¥dô„ Z¦dõ„ Z§�d�d÷„Z¨�d�dø„Z©�d�dù„Zª	 	 	 	 	 	 �d‘dú„Z«dû„ Z¬e­dfdü„Z®�d’�d „Z¯�d„ Z°�d“�d„Z±�d”�d„Z²	 	 	 	 	 	 �d•�d–�d„Z³�d„ Z´ddddd eµj¶        d¦  «        f�d—�d„Z·�d„ Z¸�d„ Z¹	 	 	 	 	 	 	 	 �d˜�d „Zº�d!„ Z»�d"„ Z¼�d~�d#„Z½�d$„ Z¾	 �d™�d%„Z¿�d&„ ZÀ�d'„ ZÁ�dš�d,„ZÂ	 �d…�d-„ZÃ	 	 	 	 	 	 	 �d›�d.„ZÄ�d/„ ZÅ�d0„ ZÆ�dœ�d4„ZÇ�d5„ ZÈ�d6„ ZÉ�d7e	�d8<   eÊjË        s( ej        �d9 e"¦   «         f�d: e"¦   «         fg¦  «        ZÌ	 �d~�d;„ZÍdZÎdae	�d<<   	 	 	 	 	 	 	 	 �d��d=„ZÏ�dž�dA„ZÐ�dB„ ZÑ�dC„ ZÒ�dD„ ZÓ	 	 �d†�dE„ZÔ�dF„ ZÕ�dŸ�dG„ZÖ�dH„ Z×�dI„ ZØ�dJ„ ZÙ�d �dP„ZÚ�dQ„ ZÛ	 	 	 �d¡�dR„ZÜ	 	 	 	 	 	 	 	 �d¢�dS„ZÝ�dŒ�dT„ZÞ�dU„ Zß ej        eàjá        eâjã        eàjä        eâjã        eàjå        eâjã        eàjæ        eâjæ        eàjç        eâjç        i¦  «        Zèeè é                    eàjå        eâjê        i¦  «        Zë�d£�dX„Zì�d¤�dd„Zí	 �d¥�de„Zî�df„ Zï�dg„ Zð�dh„ Zñ�di„ Zò	 �d…�d¦�dl„Zó�dm„ Zô�dn„ Zõ�d…�do„Zö�dp„ Z÷�dq„ Zø�dr„ ZùdS (§  rÜ  z~Default 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_matchr<  Ú_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                ó.   — |                       ¦   «          d S r  )Ú_init_bind_translaterÍ  s    rÒ   rÇ  zSQLCompiler._init_compiler_clsS  s   € à× Ò Ñ"Ô"Ð"Ð"Ð"rÔ   c                ó°   — t          j        d                     | j        ¦  «        ¦  «        }t          j        d|› d�¦  «        | _        | j        | _        d S )Nr§  r2  r3  )ÚreÚescaper‰   r5  Úcompiler6  r7  )rÊ  Úregs     rÒ   rc  z SQLCompiler._init_bind_translateW  sK   € åŒi˜Ÿš Ô >Ñ?Ô?Ñ@Ô@ˆÝ!#¤¨J°¨J¨J¨JÑ!7Ô!7ˆÔØ$'Ô$BˆÔ!Ð!Ð!rÔ   r·  rn   r7  r¦  r´  r³  Úcolumn_keysr;  Úfor_executemanyÚlintingr{  Ú_supporting_againstúOptional[SQLCompiler]râ  r   c                óJ  — || _         || _        |r-d„ |d         D ¦   «         }	d„ |d         D ¦   «         }
|
|	f| _        || _        || _        i | _        t          j        ¦   «         | _        g | _	        g | _
        |j        | _        | j        rD|j                             d¦  «        x| _        }|r|j        dk    rdnd| _        t           | _        nt$          |j                 | _        d| _        |j        p|j        | _        t-          ¦   «         | _        i | _        i | _        t5          j        | ||fi |¤Ž | j        s| j        s| j        r�t>          rtA          |tB          ¦  «        sJ ‚| j        s| j        rUt>          rtA          |tD          ¦  «        sJ ‚|j#        rd	| _$        n(| j        r!| j        r| j%        j&        r|j'        rd	| _$        t$          |j                 | _(        |r;| j)         *                    d
„ |j)         +                    ¦   «         D ¦   «         ¦  «         | j,        tZ          j.        u rn| j        r0| j        r|  /                    ¦   «          n|  0                    ¦   «          | j1        r2|  2                    dd	¬¦  «        }|  3                    |d	¬¦  «         dS dS dS )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.

        c                ó   — i | ]
}|j         |“ŒS rÎ   ©rA  ©rÐ   Úbs     rÒ   ú
<dictcomp>z(SQLCompiler.__init__.<locals>.<dictcomp>‚  s   € Ð3Ð3Ð3 �A”E˜1Ð3Ð3Ð3rÔ   r   c                ó   — i | ]}||g“ŒS rÎ   rÎ   rq  s     rÒ   rs  z(SQLCompiler.__init__.<locals>.<dictcomp>ƒ  s   € Ð1Ð1Ð1˜q�A˜�sÐ1Ð1Ð1rÔ   rÛ   rÜ   rÖ   r0  NTc                ó"   — i | ]\  }}|d v¯	||“ŒS )>   r©  r·  r°  Ú
positionalrF  rM  rG  rÎ   ©rÐ   ÚkÚvs      rÒ   rs  z(SQLCompiler.__init__.<locals>.<dictcomp>Î  s@   € ð ð ð á˜˜1Øðð	ð 	ð �qð	ð 	ð 	rÔ   F©rì  Ú_no_postcompile)Ú_populate_self)4ri  r´  rY  rj  rk  rA  r&   Úcolumn_dictrB  r—  r«  rv  Ú
paramstyleÚ
startswithrM  rH  Ú_pyformat_templaterG  ÚBIND_TEMPLATESr]  Úlabel_lengthÚmax_identifier_lengthr1   Úanon_mapÚtruncated_namesÚ_truncated_countersr¥  rÅ  r9  r:  r8  r   rÀ  rA   rC   Ú_inliner\  r·  Úinsert_executemany_returningÚ_return_defaultsrF  Ú__dict__ÚupdateÚitemsr©  rv  rx  Ú_process_numericÚ_process_positionalrN  rð  Ú#_process_parameters_for_postcompile)r  r·  r7  r´  ri  rj  rk  rl  râ  ÚcksmÚckbmÚnbr8  s                rÒ   rÅ  zSQLCompiler.__init__]  s6  € ð@ 'ˆÔà"ˆŒàð 	6Ø3Ð3 i°¤lÐ3Ñ3Ô3ˆDØ1Ð1 I¨a¤LÐ1Ñ1Ô1ˆDØ*.°¨ˆDÔ&ð
  /ˆÔàˆŒð ˆŒ
õ Ô*Ñ,Ô,ˆŒð ˆŒ
à!ˆÔð "Ô,ˆŒØŒ?ð 		OØ'.Ô'9×'DÒ'DÀYÑ'OÔ'OÐOˆDÔ "Øð à"Ô-Ð1AÒAÐA�C�CÀsð Ô3õ -?ˆDÔ)Ð)å,:¸7Ô;MÔ,NˆDÔ)àˆŒ	ð Ô ÐA GÔ$Að 	Ôõ (Ñ)Ô)ˆŒð <>ˆÔØ35ˆÔ åÔ˜$ ¨Ð=Ð=°fÐ=Ð=Ð=àŒ=ð 	'˜DœMð 	'¨T¬]ð 	'Ýð 9Ý! )­ZÑ8Ô8Ð8Ð8Ð8àŒ}ð ' ¤ð 'Ý ð =Ý% iµÑ<Ô<Ð<Ð<Ð<ØÔ$ð 	'Ø"&�D”K�KØÔ)ð 'Øœð'ð œÔAð'ð &Ô6ð	'ð #'�D”Kå*¨7Ô+=Ô>ˆÔàð 	ØŒM× Ò ðð à 3Ô <× BÒ BÑ DÔ Dðñ ô ñô ð ð" Œ:�Ô5Ð5Ð5ØŒð /ØÔ&ð /Ø×)Ò)Ñ+Ô+Ð+Ð+à×,Ò,Ñ.Ô.Ð.àÔ'ð Ø!×2Ò2Ø!&Ø$(ð 3ñ ô �
ð
 ×8Ò8Ø¨tð 9ñ ô ð ð ð ð 6Ð5ðð rÔ   r  c                ó,   — | j         €dS | j         j        S )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)rT  rM  rE  s    rÒ   Úinsert_single_values_exprz%SQLCompiler.insert_single_values_exprï  s   € ð Ô!Ð)Ø�4àÔ)Ô<Ð<rÔ   c                ó„   — | j         r| j         S | j        �*t          | j        ¦  «        rd„ | j        j        D ¦   «         S dS )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

        Nc                ó0   — g | ]}t          |¦  «        ¯|‘ŒS rÎ   r'   ©rÐ   Úcs     rÒ   ú
<listcomp>z3SQLCompiler.effective_returning.<locals>.<listcomp>  s6   € ð ð ð àÝ$ QÑ'Ô'ðØðð ð rÔ   )r?  r7  r)   Ú_all_selected_columnsrE  s    rÒ   Úeffective_returningzSQLCompiler.effective_returning  s\   € ð Ô"ð 
	ØÔ*Ð*ØŒ^Ð'­F°4´>Ñ,BÔ,BÐ'ðð àœÔ=ðñ ô ð ð �4rÔ   c                ó   — | j         S )zVbackwards compatibility; returns the
        effective_returning collection.

        )r›  rE  s    rÒ   Ú	returningzSQLCompiler.returning  s   € ð Ô'Ð'rÔ   c                ón   — 	 | j         d         d         S # t          $ r}t          d¦  «        |‚d}~ww xY w)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_executablezSQLCompiler.current_executable#  sM   € ð<	MØ”:˜b”> ,Ô/Ð/øÝð 	Mð 	Mð 	MÝÐCÑDÔDÈ"ÐLøøøøð	Møøøs   ‚ •
4Ÿ/¯4c                óT   — t          | j        ¦  «        t          | j        ¦  «        z   S r  )Úlistr<  r=  rE  s    rÒ   ÚprefetchzSQLCompiler.prefetchF  s#   € å�DÔ(Ñ)Ô)­D°Ô1EÑ,FÔ,FÑFÐFrÔ   úDict[Any, Any]c                ó   — i S r  rÎ   rE  s    rÒ   Ú_global_attributeszSQLCompiler._global_attributesJ  s   € àˆ	rÔ   úMutableMapping[CTE, str]c                ód   — t          j        ¦   «         }|| _        i | _        i | _        d| _        |S )z’Initialize collections related to CTEs only if
        a CTE is located, to save on the overhead of
        these collections otherwise.

        F)r&   ÚOrderedDictr]  r^  r_  r`  )r  r]  s     rÒ   Ú_init_cte_statezSQLCompiler._init_cte_stateN  s:   € õ *.Ô)9Ñ);Ô);ˆØˆŒ	ð #%ˆÔð "$ˆÔà#ˆÔàˆrÔ   c              #  ó@  K  — | j         | j        }}g dc| _         | _        	 | j        r| j        d         }d|d<   nd}| j         | j        fV — |r|                     d¦  «         ||c| _         | _        dS # |r|                     d¦  «         ||c| _         | _        w xY w)z;special API to support the use case of 'nested result sets'FrŸ  Tr/  N)r«  rK  r—  r�  )r  Úresult_columnsÚordered_columnsÚentrys       rÒ   Ú_nested_resultzSQLCompiler._nested_resultf  sð   è è € ð Ô ØÔ!ð (ˆð 79¸%Ð3ˆÔ˜dÔ3ð	ØŒzð Øœ
 2œ�Ø6:�Ð2Ñ3Ð3à�ØÔ&¨Ô(=Ð=Ð=Ð=Ð=àð 8Ø—	’	Ð6Ñ7Ô7Ð7àØð 8ˆDÔ  $Ô"7Ð"7Ð"7øð ð 8Ø—	’	Ð6Ñ7Ô7Ð7àØð 8ˆDÔ  $Ô"7ð ð ð ð s   ¡,A5 Á5(Bc                ó´  ‡ ‡‡‡‡— ‰ j         rJ ‚‰ j        t          j        u sJ ‚‰ j        rJ ‚‰ j        j        dk    rdŠn‰ j        j        dk    sJ ‚dŠg Šdˆˆfd	„Št          j        ‰ j	        ‰‰ j
        ¦  «        ‰ _
        ‰ j        r^d
„ ‰ j                             ¦   «         D ¦   «         Št          ‰ j        ¦  «        t          ‰¦  «        k    sJ ‚ˆfd„‰D ¦   «         ‰ _         n‰‰ _         ‰ j        rcg Št          j        ‰ j	        ‰‰ j        j        ¦  «        }ˆˆ fd„‰ j        j        D ¦   «         }‰ j                             ||¬¦  «        ‰ _        d S d S )NrÚ   ú%srÙ   r×   Úmúre.Match[str]r  rÏ   c                óÚ   •— |                       d¦  «        }|r‰                     |¦  «         ‰S ‰                     |                       d¦  «        ¦  «         |                       d¦  «        S )Nr   r2   r   )r˜   Úappend)r´  Únormal_bindÚplaceholderÚ	positionss     €€rÒ   Úfind_positionz6SQLCompiler._process_positional.<locals>.find_position‹  sd   ø€ ØŸ'š' !™*œ*ˆKØð "Ø× Ò  Ñ-Ô-Ð-Ø"Ð"ð × Ò  §¢¨¡¤Ñ,Ô,Ð,Ø—w’w˜q‘z”zÐ!rÔ   c                ó   — i | ]\  }}||“Œ	S rÎ   rÎ   rw  s      rÒ   rs  z3SQLCompiler._process_positional.<locals>.<dictcomp>š  s   € ÐOÐOÐO¡t q¨!˜a ÐOÐOÐOrÔ   c                ó<   •— g | ]}‰                      ||¦  «        ‘ŒS rÎ   ©Úget)rÐ   r
  Úreverse_escapes     €rÒ   r™  z3SQLCompiler._process_positional.<locals>.<listcomp>œ  s6   ø€ ð  ð  ð  Ø37�×"Ò" 4¨Ñ.Ô.ð ð  ð  rÔ   c           
     ó~   •— g | ]9}|d          |d         t          j        ‰j        ‰|d         ¦  «        |d         f‘Œ:S )r   r   r2   r$  )re  ÚsubÚ_positional_pattern)rÐ   ry  r»  r  s     €€rÒ   r™  z3SQLCompiler._process_positional.<locals>.<listcomp>ª  sZ   ø€ ð "ð "ð "ð ð �a”DØ�a”DÝ”F˜4Ô3°]ÀAÀaÄDÑIÔIØ�a”Dð	ð"ð "ð "rÔ   ©rM  rN  )r´  rµ  r  rÏ   )r<  r©  rv  rx  rM  r·  r~  re  rÂ  rÃ  r¨  rX  rŒ  ÚlenrT  rM  rN  Ú_replace)r  rM  rN  r»  r¹  rº  rÀ  s   `  @@@@rÒ   rŽ  zSQLCompiler._process_positional~  sä  øøøøø€ ØÔ#Ð#Ð#Ð#ØŒz�]Ô9Ð9Ð9Ð9Ð9ØÔ&Ð&Ð&Ð&àŒ<Ô" hÒ.Ð.ØˆKˆKà”<Ô*¨gÒ5Ð5Ð5Ð5ØˆKàˆ	ð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"õ ”fØÔ$ m°T´[ñ
ô 
ˆŒð Ô"ð 	)ØOÐO¨tÔ/F×/LÒ/LÑ/NÔ/NÐOÑOÔOˆNÝ�tÔ.Ñ/Ô/µ3°~Ñ3FÔ3FÒFÐFÐFÐFð ð  ð  ð  Ø;Dð ñ  ô  ˆDÔÐð  )ˆDÔàÔ!ð 	ØˆIå!#¤ØÔ(ØØÔ&Ô9ñ"ô "Ðð
"ð "ð "ð "ð "ð Ô/ÔBð"ñ "ô "Ðð &*Ô%;×%DÒ%DØ#5Ø#5ð &Eñ &ô &ˆDÔ"Ð"Ð"ð%	ð 	rÔ   c                ó~  ‡ ‡	— ‰ j         sJ ‚‰ j        t          j        u sJ ‚d}i Š	‰ j        rW‰ j        �Pt          j        ˆ fd„‰ j         	                    ¦   «         D ¦   «         ‰ j         	                    ¦   «         ¦  «        }n‰ j         	                    ¦   «         }|D ]A}|‰	v rŒ‰ j
        |         }|‰ j        v s	|‰ j        v rd ‰	|<   Œ,‰ j        › |› �}|dz  }|‰	|<   ŒB|‰ _        t          ‰	¦  «        ‰ _        ‰ j        rDt%          ‰	¦  «        }ˆ fd„‰	                     ¦   «         D ¦   «         Š	t%          ‰	¦  «        |k    sJ ‚‰ j                             ˆ	fd„‰ j        ¦  «        ‰ _        ‰ j        rH‰ j        j        ‰	z  }d„ ‰ j        j        D ¦   «         }‰ j                             ||¬¦  «        ‰ _        d S d S )Nr   c              3  ó.   •K  — | ]}|‰j         v¯|V — Œd S r  )rZ  )rÐ   r
  r  s     €rÒ   rB  z/SQLCompiler._process_numeric.<locals>.<genexpr>Å  s=   øè è € ð ð àØ 4Ô#9Ð9Ð9ð à9Ð9Ð9Ð9ðð rÔ   c                óN   •— i | ]!\  }}‰j                              ||¦  «        |“Œ"S rÎ   )rX  r¿  )rÐ   r
  Úposr  s      €rÒ   rs  z0SQLCompiler._process_numeric.<locals>.<dictcomp>ä  sB   ø€ ð ð ð á�D˜#ð Ô'×+Ò+¨D°$Ñ7Ô7¸ðð ð rÔ   c                ó:   •— ‰|                       d¦  «                 S ©Nr   ©r˜   ©r´  Ú	param_poss    €rÒ   ú<lambda>z.SQLCompiler._process_numeric.<locals>.<lambda>ì  s   ø€ �i §¢¨¡
¤
Ô+€ rÔ   c                ó>   — g | ]}|d          |d         d|d         f‘ŒS )r   r   r³  r$  rÎ   )rÐ   ry  s     rÒ   r™  z0SQLCompiler._process_numeric.<locals>.<listcomp>ö  s=   € ð "ð "ð "àð �1”�q˜”t˜T 1 Q¤4Ð(ð"ð "ð "rÔ   rÄ  )rM  r©  rv  rx  rT  rZ  Ú	itertoolsÚchainrB  ÚvaluesrA  rW  rV  rH  Únext_numeric_posr¤  r<  rX  rÅ  rŒ  Ú_pyformat_patternrÂ  r¨  rM  rN  rÆ  )
r  Únumrœ   Ú	bind_nameÚbindÚphÚ
len_beforerM  rN  rÏ  s
   `        @rÒ   r�  zSQLCompiler._process_numeric¹  sZ  øø€ ØÔ"Ð"Ð"Ð"ØŒz�]Ô9Ð9Ð9Ð9Ð9àˆØ$&ˆ	àÔ!ð 	- dÔ&<Ð&Hõ ”Oðð ð ð à $¤× 6Ò 6Ñ 8Ô 8ðñ ô ð
 ”×&Ò&Ñ(Ô(ñô ˆEˆEð ”O×*Ò*Ñ,Ô,ˆEàð 	*ð 	*ˆIØ˜IÐ%Ð%ØØ”:˜iÔ(ˆDà˜Ô0Ð0Ð0Ø˜4Ô6Ð6Ð6ð (,�	˜)Ñ$Ð$àÔ;ÐB¸SÐBÐB�Ø�q‘�Ø')�	˜)Ñ$Ð$à #ˆÔå 	™?œ?ˆÔØÔ"ð 	0Ý˜Y™œˆJðð ð ð à!*§¢Ñ!2Ô!2ðñ ô ˆIõ �y‘>”> ZÒ/Ð/Ð/Ð/ð Ô,×0Ò0Ø+Ð+Ð+Ð+¨T¬[ñ
ô 
ˆŒð Ô!ð 	ð Ô&Ô9Øñð ð"ð "àÔ/ÔBð"ñ "ô "Ðð
 &*Ô%;×%DÒ%Dà#5à#5ð	 &Eñ &ô &ˆDÔ"Ð"Ð"ð	ð 	rÔ   úVMutableMapping[str, Union[_BindProcessorType[Any], Sequence[_BindProcessorType[Any]]]]c                ó>   ‡ — d„ ˆ fd„‰ j         D ¦   «         D ¦   «         S )Nc                ó   — i | ]
\  }}|®||“ŒS r  rÎ   )rÐ   rA  Úvalues      rÒ   rs  z0SQLCompiler._bind_processors.<locals>.<dictcomp>
  s2   € ð 
ð 
ð 
á��Uð  Ð ð# �ð" !Ð Ð rÔ   c           	   3  óø   •K  — | ]t}‰j         |         |j        j        s|j                             ‰j        ¦  «        n7t          ˆfd „t          t          |j        ¦  «        j        D ¦   «         ¦  «        fV — ŒudS )c              3  óL   •K  — | ]}|                      ‰j        ¦  «        V — Œd S r  )Ú_cached_bind_processorr·  )rÐ   Ú	elem_typer  s     €rÒ   rB  z9SQLCompiler._bind_processors.<locals>.<genexpr>.<genexpr>  sG   øè è € ð #ð #à )ð &×<Ò<¸T¼\ÑJÔJð#ð #ð #ð #ð #ð #rÔ   N)	rB  r  Ú_is_tuple_typerâ  r·  rD  r   r0   Útypes)rÐ   Ú	bindparamr  s     €rÒ   rB  z/SQLCompiler._bind_processors.<locals>.<genexpr>  s²   øè è € ð ð ð ð ”O IÔ.ð  )œ~Ô<ð˜	œ×=Ò=¸d¼lÑKÔKÐKå"ð #ð #ð #ð #å-1Ý )¨9¬>ñ.ô .ä#ð	#ñ #ô #ñ ô ððð ð ð ð ð rÔ   )rB  rE  s   `rÒ   Ú_bind_processorszSQLCompiler._bind_processors  sK   ø€ ð
ð 
ðð ð ð ð "&¤ðñ ô ð
ñ 
ô 
ð 	
rÔ   c                ó2   — t          | j        ¦  «        dk    S rÌ  )rÅ  r—  rE  s    rÒ   Úis_subqueryzSQLCompiler.is_subquery  s   € Ý�4”:‰Œ Ò"Ð"rÔ   r7   c                ó   — | S r  rÎ   rE  s    rÒ   rà  zSQLCompiler.sql_compiler"  s   € àˆrÔ   rè  ré  rì  r6  c                ó\   — |                       ||d¬¦  «        }|                      |¦  «        S )aR  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

        Trz  )rð  r�  )r  rè  rì  r8  s       rÒ   Úconstruct_expanded_statez$SQLCompiler.construct_expanded_state&  sD   € ð ×*Ò*ØØ%Ø ð +ñ 
ô 
ˆ
ð
 ×7Ò7Øñ
ô 
ð 	
rÔ   rê  rë  Ú_group_numberúOptional[int]Ú_checkr{  rm   c                óÄ  ‡— | j         r:|s8| j        €J ‚|st          | j        j        ¦  «        S t	          j        d¦  «        ‚|ot          | j        ¦  «        }|rU| j        €t	          j	        d¦  «        ‚| j        d         }| j
        }	|	€J ‚|	\  Š}
ˆfd„t          ||¦  «        D ¦   «         }nd}|rìi }| j                             ¦   «         D ]Î\  }}|r| j                             ||¦  «        n|}|j        |v r||j                 ||<   Œ>||v r||         ||<   ŒN|rG|j        r@|r t	          j        d|j        |fz  d¬¦  «        ‚t	          j        d	|j        z  d¬¦  «        ‚|r|                     ||¦  «        }n|}|j        r|j        ||<   ŒÄ|j        ||<   ŒÏ|S i }| j                             ¦   «         D ]¤\  }}|r| j                             ||¦  «        n|}|rG|j        r@|r t	          j        d|j        |fz  d¬¦  «        ‚t	          j        d	|j        z  d¬¦  «        ‚|r|                     ||¦  «        }n|}|j        r|j        ||<   Œš|j        ||<   Œ¥|S )
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   c                ó2   •— i | ]\  }}‰|         D ]}||“ŒŒS rÎ   rÎ   )rÐ   rr  Ú	extractedrÙ  r‘  s       €rÒ   rs  z0SQLCompiler.construct_params.<locals>.<dictcomp>h  sJ   ø€ ð "ð "ð "á �A�yØ  œGð"ð "ð ð �ið"ð "ð "ð "rÔ   z@A value is required for bind parameter %r, in parameter group %dÚcd3x)Úcodez)A value is required for bind parameter %r)rN  rO  Údictr8  r3   rC  r.  rX  r´  ÚCompileErrorrY  ÚziprB  rŒ  r¿  rA  ÚrequiredÚcallableÚeffective_valuerß  )r  rè  rê  rì  rí  rï  r{  Úhas_escaped_namesÚorig_extractedÚ
ckbm_tupler,  Úresolved_extractedÚpdræ  r
  Úescaped_nameÚvalue_paramr‘  s                    @rÒ   rð  zSQLCompiler.construct_params=  s˜  ø€ ð Ô#ð 
	¨Oð 
	ØÔ4Ð@Ð@Ð@Øð Ý˜DÔ=ÔHÑIÔIÐIåÔ-ð4ñô ð ð )ÐJ­T°$Ô2IÑ-JÔ-JÐàð 	&ð Œ~Ð%ÝÔ&ðJñô ð ð
 "&¤°Ô!2�àÔ3ˆJØÐ)Ð)Ð)Ø ‰GˆD�!ð"ð "ð "ð "å$'¨Ð8LÑ$MÔ$Mð"ñ "ô "ÐÐð "&Ðàð K	ØˆBØ#'¤?×#8Ò#8Ñ#:Ô#:ð %=ð %=‘�	˜4ð )ð�DÔ+×/Ò/°°dÑ;Ô;Ð;àð ð ”= FÐ*Ð*Ø'-¨i¬mÔ'<�B�|Ñ$Ð$Ø˜V�^�^Ø'-¨d¤|�B�|Ñ$Ð$àð = 	Ô 2ð =Ø$ð Ý!Ô5ð4à(œ}¨mÐ<ñ=ð "(ð	ñ ô ð õ "Ô5ØGØ'œmñ,à!'ðñ ô ð ð *ð 0Ø&8×&<Ò&<Ø% yñ'ô '˜˜ð '0˜à Ô)ð =Ø+6Ô+F˜˜<Ñ(Ð(à+6Ô+<˜˜<Ñ(Ð(ØˆIàˆBØ#'¤?×#8Ò#8Ñ#:Ô#:ð 9ð 9‘�	˜4ð )ð�DÔ+×/Ò/°°dÑ;Ô;Ð;àð ð ð ˜iÔ0ð Ø$ð Ý!Ô5ð4à(œ}¨mÐ<ñ=ð "(ð	ñ ô ð õ "Ô5ØGØ'œmñ,à!'ðñ ô ð ð &ð ,Ø"4×"8Ò"8¸ÀIÑ"NÔ"N�K�Kà"+�KàÔ%ð 9Ø'2Ô'B�B�|Ñ$Ð$à'2Ô'8�B�|Ñ$Ð$àˆIrÔ   c                ó$  ‡‡‡‡‡— | j         Š‰j        Š‰j        Š‰j        Šˆˆˆˆfd„Ši }| j        }| j        D ]U}||v rŒ|j        j        r/ˆfd„t          t          |j        ¦  «        j
        D ¦   «         ||<   ŒB ‰|j        ¦  «        ||<   ŒV|S )Nc                óx   •— |                       ‰¦  «                             ‰¦  «        }|�‰�|‰vr‰�|‰v r|S d S r  )Ú_unwrapped_dialect_implÚget_dbapi_type)ÚtypÚdbtypeÚdbapir·  Úexclude_typesÚinclude_typess     €€€€rÒ   Úlookup_typez<SQLCompiler._get_set_input_sizes_lookup.<locals>.lookup_typeÆ  sV   ø€ Ø×0Ò0°Ñ9Ô9×HÒHÈÑOÔOˆFð Ð"Ø"Ð*¨f¸MÐ.IÐ.IØ"Ð*¨f¸Ð.EÐ.Eà�à�trÔ   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS rÎ   rÎ   )rÐ   r  r  s     €rÒ   r™  z;SQLCompiler._get_set_input_sizes_lookup.<locals>.<listcomp>Û  s3   ø€ ð )ð )ð )àð  �K Ñ$Ô$ð)ð )ð )rÔ   )r·  Úinclude_set_input_sizesÚexclude_set_input_sizesr  rV  rB  r  rä  r   r0   rå  )	r  Ú
inputsizesrV  ræ  r  r·  r	  r
  r  s	       @@@@@rÒ   Ú_get_set_input_sizes_lookupz'SQLCompiler._get_set_input_sizes_lookup½  sí   øøøøø€ à”,ˆàÔ7ˆØÔ7ˆà”ˆð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð ˆ
à!%Ô!<Ðàœð 
	Dð 
	DˆIØÐ2Ð2Ð2ØàŒ~Ô,ð Dð)ð )ð )ð )å#¥I¨y¬~Ñ>Ô>ÔDð)ñ )ô )�
˜9Ñ%Ð%ð
 )4¨°I´NÑ(CÔ(C�
˜9Ñ%Ð%àÐrÔ   c                ó.   — |                       d¬¦  «        S )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ò  rE  s    rÒ   rè  zSQLCompiler.paramsä  s   € ð ×$Ò$¨EÐ$Ñ2Ô2Ð2rÔ   r8  r|  c                ó0  ‡ ‡‡‡‡‡— i }‰ j         }|€‰ j        }‰ j        rg }‰ j        }|€‰ j        }ndx}}‰ j        }t          d|¦  «        Št          d|¦  «        Ši }i Ši }	d}
‰ j        r|�|}‰ j        rg }
n‰ j         	                    ¦   «         }‰ j
        }|D �]£Š|r|                     ‰‰¦  «        n‰}‰ j        ‰         }|‰ j        v r2|‰vr-‰                      ||                     |¦  «        ¬¦  «        ‰|<   Œe|‰ j        v �r|‰v r|	|         }d}n;|                     ‰¦  «        }‰                      |||¦  «        }|\  }}||	|<   |‰|<   |j        sÊ|                     |¦  «         |j        j        r5|€J ‚|                     ˆˆfd„t-          |d¦  «        D ¦   «         ¦  «         n"|                     ˆˆfd„|D ¦   «         ¦  «         |
� |
                     d„ |D ¦   «         ¦  «         n!|�|                     d	„ |D ¦   «         ¦  «         d
„ |D ¦   «         |‰<   �ŒŒ|�|                     ‰¦  «         �Œ¥ˆfd„}t3          j        ‰ j        ||¦  «        }|
�X|€J ‚ˆ fd„t-          |
‰ j        ¦  «        D ¦   «         Š‰ j                             ˆfd„|¦  «        }|                     |
¦  «         t=          |||||¦  «        }|rE|‰ _         |‰ _        |j        ‰ _        ‰ j        rtA          |j        pd¦  «        nd‰ _        |‰ _!        |S )až  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.

        Nr9  z/Mapping[str, Sequence[_BindProcessorType[Any]]]©Úrender_literal_valuec              3  óª   •K  — | ]M\  }}t          |d ¦  «        D ]7\  }}‰‰v r.‰‰         |d z
           ®‰›d|›d|›�‰‰         |d z
           fV — Œ8ŒNdS )r   Nr,  ©Ú	enumerate)rÐ   ÚiÚtuple_elementÚjr,  r
  Útuple_processorss        €€rÒ   rB  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>^  s¢   øè è € ð 	.ð 	.ñ
 !1  =Ý(1°-ÀÑ(CÔ(Cð	.ð 	.ñ !%  1Ø#Ð'7Ð7Ð7Ø 0°Ô 6°q¸1±uÔ =Ð Ið /3¨d¨d°A°A°A°q°qÐ 9Ø 0°Ô 6°q¸1±uÔ =ðð !JÐ IÐ IÐ IÐ Ið	.ð 	.rÔ   r   c              3  ó:   •K  — | ]\  }}‰‰v ¯	|‰‰         fV — Œd S r  rÎ   )rÐ   rA  r,  r
  Úsingle_processorss      €€rÒ   rB  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>i  sJ   øè è € ð .ð .á &  QØ#Ð'8Ð8Ð8ð !Ð"3°DÔ"9Ð:à8Ð8Ð8Ð8ð.ð .rÔ   c              3  ó    K  — | ]	\  }}|V — Œ
d S r  rÎ   ©rÐ   r
  r,  s      rÒ   rB  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>o  s7   è è € ð 3ð 3Ù%, T¨1˜Dð3ð 3ð 3ð 3ð 3ð 3rÔ   c              3  ó    K  — | ]	\  }}|V — Œ
d S r  rÎ   r  s      rÒ   rB  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>v  s&   è è € Ð.MÐ.M¹¸¸a¨tÐ.MÐ.MÐ.MÐ.MÐ.MÐ.MrÔ   c                ó   — g | ]\  }}|‘ŒS rÎ   rÎ   )rÐ   Ú
expand_keyr,  s      rÒ   r™  zCSQLCompiler._process_parameters_for_postcompile.<locals>.<listcomp>w  s)   € ð 1ð 1ð 1Ù'4 z°1˜
ð1ð 1ð 1rÔ   c                óL  •‡‡— |                       d¦  «        }‰|         }|                       d¦  «        rn|                       d¦  «                             d¦  «        }|d         |d         cŠŠd                     ˆˆfd„|                     d¦  «        D ¦   «         ¦  «        }|S )Nr   r2   ú~~r$  rá   c              3  ó(   •K  — | ]}‰›|›‰›�V — Œd S r  rÎ   )rÐ   ÚexpÚbe_leftÚbe_rights     €€rÒ   rB  z]SQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding.<locals>.<genexpr>†  sD   øè è € ð !ð !àð !( ¨¨¨h¨hÐ7ð!ð !ð !ð !ð !ð !rÔ   )r˜   Úsplitr‰   )r´  rA  ÚexprÚtokr'  r(  Úreplacement_expressionss       @@€rÒ   Úprocess_expandingzJSQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding}  s´   øøø€ Ø—'’'˜!‘*”*ˆCØ*¨3Ô/ˆDð �wŠw�q‰zŒzð Ø—g’g˜a‘j”j×&Ò& tÑ,Ô,�Ø$'¨¤F¨C°¬FÐ!�˜Ø—y’yð !ð !ð !ð !ð !à#Ÿzšz¨$Ñ/Ô/ð!ñ !ô !ñ ô �ð ˆKrÔ   c                ó.   •— i | ]\  }}|‰j         › |› �“ŒS rÎ   ©rH  )rÐ   r×  rA  r  s      €rÒ   rs  zCSQLCompiler._process_parameters_for_postcompile.<locals>.<dictcomp>’  s=   ø€ ð ð ð á�C˜ð ˜Ô;ÐB¸SÐBÐBðð ð rÔ   c                ó:   •— ‰|                       d¦  «                 S rÌ  rÍ  rÎ  s    €rÒ   rÐ  zASQLCompiler._process_parameters_for_postcompile.<locals>.<lambda>š  s   ø€ ˜) A§G¢G¨A¡J¤JÔ/€ rÔ   rÎ   )"rQ  r¨  rv  rS  r<  rç  r   rM  rB  rÔ  rX  r¿  rA  rV  Úrender_literal_bindparamr�  rW  Ú$_literal_execute_expanding_parameterÚliteral_executer‹  r  rä  r  Úextendr·  re  rÂ  Ú_post_compile_patternrÕ  rÖ  r6  r7  r¤  rO  )r  r8  r|  Úexpanded_parametersÚpre_expanded_stringÚnew_positiontupÚpre_expanded_positiontupr:  Únew_processorsÚto_update_setsÚnumeric_positiontupÚnamesÚebnr   Ú	parameterÚ	to_updaterÔ  Úleep_resÚreplacement_exprr-  r7  Úexpanded_stater
  rÏ  r,  r  r  s   `                     @@@@@rÒ   r�  z/SQLCompiler._process_parameters_for_postcompileñ  s¾  øøøøøø€ ð$ !Ðð #Ô7ÐØÐ&Ø"&¤+ÐàŒ?ð 	>Ø ˆOà'+Ô'EÐ$Ø'Ð/Ø+/Ô+;Ð(øð :>Ð=ˆOÐ6àÔ*ˆ
Ý Ø3°Zñ
ô 
Ðõ  Ø=¸zñ
ô 
Ðð >@ˆà24ÐØ)+ˆð 48ÐàŒ?ð 	-Ð7ÐCØ#;ˆEØÔ"ð )Ø&(Ð#øà”O×*Ò*Ñ,Ô,ˆEàÔ%ˆØð I	-ñ I	-ˆDØ25Ð?˜3Ÿ7š7 4¨Ñ.Ô.Ð.¸4ˆLØœ
 4Ô(ˆIà˜DÔ7Ð7Ð7ØÐ'>Ð>Ð>à×5Ò5Ø%Ø1;·²ÀÑ1MÔ1Mð 6ñ ô ð ,¨LÑ9ð à˜DÔ4Ð4Ñ4ØÐ#:Ð:Ð:Ø .¨|Ô <�IØ!�F�Fð (Ÿ^š^¨DÑ1Ô1�Fà#×HÒHØ$ i°ñ ô  �Hð 3;Ñ/�IÐ/à3<�N <Ñ0Ø<LÐ+¨LÑ9à Ô0ð Ø×%Ò% iÑ0Ô0Ð0Ø ”~Ô4ð Ø%Ð1Ð1Ð1Ø&×-Ò-ð 	.ð 	.ð 	.ð 	.ð 	.õ
 5>¸fÀaÑ4HÔ4Hð	.ñ 	.ô 	.ñ 	ô 	ð 	ð 	ð '×-Ò-ð .ð .ð .ð .ð .à*3ð.ñ .ô .ñ ô ð ð
 +Ð6Ø+×2Ò2ð 3ð 3Ø09ð3ñ 3ô 3ñ ô ð ð ð )Ð4ð (×.Ò.Ð.MÐ.MÀ9Ð.MÑ.MÔ.MÑMÔMÐMð1ð 1Ø8Að1ñ 1ô 1Ð'¨Ñ-ùð !Ð,Ø×&Ò& tÑ,Ô,Ð,ùð	ð 	ð 	ð 	ð 	õ ”FØÔ&Ð(9Ð;Nñ
ô 
ˆ	ð Ð*Ø"Ð.Ð.Ð.ðð ð ð å )Ø'¨Ô)>ñ!ô !ðñ ô ˆIð Ô.×2Ò2Ø/Ð/Ð/Ð/°ñô ˆIð ×"Ò"Ð#6Ñ7Ô7Ð7å&ØØØØØñ
ô 
ˆð ð 	?ð )<ˆDÔ%Ø-EˆDÔ*Ø(Ô2ˆDŒKð ”?ð•�^Ô/Ð5°2Ñ6Ô6Ð6àð Ôð
 1?ˆDÔ-àÐrÔ   zsqlalchemy.engine.cursorc                ób   — t           j        j        }|j                             | j        ¦  «        S )z(utility method used for unit tests only.)r&   Ú	preloadedÚengine_cursorrf   Ú_create_description_match_mapr«  )r  Úcursors     rÒ   Ú_create_result_mapzSQLCompiler._create_result_map¶  s/   € õ ”Ô-ˆØÔ*×HÒHØÔ ñ
ô 
ð 	
rÔ   Ú_BindNameForColProtocolÚ_get_bind_name_for_colúCallable[[Any], str]c                ó   — | j         }|S r  )rK  )r  Úgetters     rÒ   Ú_within_exec_param_key_getterz)SQLCompiler._within_exec_param_key_getterÁ  s   € àÔ,ˆØˆrÔ   zsqlalchemy.engine.resultc                óÊ  ‡‡‡‡	‡
‡‡— t           j        j        }| j        Š| j        €J ‚| j        j        }t          rt          |t          ¦  «        sJ ‚|j	        }ˆfd„|j
        D ¦   «         Š	d Š|j        Š‰�<‰j                             | j        d ¦  «        Š
 ‰‰¦  «        Š‰| j        v rˆfd„}|Šnd Š
|                     d„ |j
        D ¦   «         ¦  «        Šˆˆˆ	ˆ
ˆfd„}|S )Nc                óR   •— g | ]#}t          j        d  ‰|¦  «        d¦  «        |f‘Œ$S )r¿  N)ÚoperatorÚmethodcaller)rÐ   r  Úparam_key_getters     €rÒ   r™  zKSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.<listcomp>Õ  sI   ø€ ð 
ð 
ð 
àõ Ô" 5Ð*:Ð*:¸3Ñ*?Ô*?ÀÑFÔFÈÐLð
ð 
ð 
rÔ   c                ó<   •— |                      ‰| ¦  «        }|�|S | S r  r¾  )Ú	lastrowidr8  Úparam_valueÚautoinc_keys      €rÒ   Ú_autoinc_getterzPSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>._autoinc_getterê  s,   ø€ Ø",§.¢.°¸iÑ"HÔ"H�KØ"Ð.ð
  +Ð*ð  )Ð(rÔ   c                ó   — g | ]	}|j         ‘Œ
S rÎ   rp  ©rÐ   r  s     rÒ   r™  zKSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.<listcomp>ü  ó   € Ð%KÐ%KÐ%K°# c¤gÐ%KÐ%KÐ%KrÔ   c                óˆ   •‡ ‡— ‰� ‰‰ ¦  «        Š ‰ € ‰ˆfd„‰D ¦   «         ¦  «        S  ‰ˆˆˆ ˆfd„‰D ¦   «         ¦  «        S )a  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.

            Nc              3  ó4   •K  — | ]\  }} |‰¦  «        V — Œd S r  rÎ   )rÐ   rN  r  r8  s      €rÒ   rB  zWSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.get.<locals>.<genexpr>		  s1   øè è € ÐLÐL±[°V¸S˜f˜f ZÑ0Ô0ÐLÐLÐLÐLÐLÐLrÔ   c              3  ó\   •K  — | ]&\  }}|‰u r‰� ‰‰‰¦  «        n‰n
 |‰¦  «        V — Œ'd S r  rÎ   )rÐ   rN  r  Úautoinc_colÚautoinc_getterrV  r8  s      €€€€rÒ   rB  zWSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.get.<locals>.<genexpr>	  su   øè è € ð ð ñ $˜ ð  +Ð-Ð-ð  .Ð9ð +˜N¨9°jÑAÔAÐAà!* ð $˜V JÑ/Ô/ðð ð ð ð ð rÔ   rÎ   )rV  r8  r`  ra  ÚgettersÚlastrowid_processorÚrow_fns   ``€€€€€rÒ   r¿  zDSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.getþ  s“   øøø€ ð #Ð.Ø/Ð/°	Ñ:Ô:�	àÐ Ø�vÐLÐLÐLÐLÀGÐLÑLÔLÑLÔLÐLà�vð ð ð ð ð ð ð ð (/ðñ ô ñ ô ð rÔ   )r&   rE  Úengine_resultrO  r-  r7  r   rÀ  r?   rŸ   Úprimary_keyÚ_autoincrement_columnr  Ú_cached_result_processorr·  rA  Úresult_tuple)r  Úresultr7  rŸ   rY  r¿  r`  ra  rX  rb  rc  rT  rd  s         @@@@@@@rÒ   Ú+_inserted_primary_key_from_lastrowid_getterz7SQLCompiler._inserted_primary_key_from_lastrowid_getterÆ  s`  øøøøøøø€ õ ”Ô-ˆàÔ=ÐàÔ!Ð-Ð-Ð-ØÔ&Ô0ˆ	åð 	1Ý˜i­Ñ0Ô0Ð0Ð0Ð0à”ˆð
ð 
ð 
ð 
àÔ(ð
ñ 
ô 
ˆð
 ˆØÔ1ˆØÐ"à"-Ô"2×"KÒ"KØ”˜dñ#ô #Ðð +Ð*¨;Ñ7Ô7ˆKð ˜dœjÐ(Ð(ð
)ð 
)ð 
)ð 
)ð 
)ð "1�øð #'Ðà×$Ò$Ð%KÐ%K¸Ô9JÐ%KÑ%KÔ%KÑLÔLˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð4 ˆ
rÔ   c                ó’  ‡‡‡‡	— t           j        j        }| j        €J ‚| j        j        }t
          rt          |t          ¦  «        sJ ‚| j        Š|j	        }| j
        }|€J ‚d„ t          |¦  «        D ¦   «         Št          dˆˆfd„|j        D ¦   «         ¦  «        Š|                     d„ |j        D ¦   «         ¦  «        Š	ˆˆ	fd„}|S )Nc                ó   — i | ]\  }}||“Œ	S rÎ   rÎ   )rÐ   Úidxr  s      rÒ   rs  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<dictcomp>*	  s   € Ð=Ð=Ð=™H˜C ˆs�CÐ=Ð=Ð=rÔ   z'List[Tuple[Callable[[Any], Any], bool]]c                ó’   •— g | ]C}|‰v rt          j        ‰|         ¦  «        d fn t          j        d ‰|¦  «        d¦  «        df‘ŒDS )Tr¿  NF)rR  Ú
itemgetterrS  )rÐ   r  rT  Úrets     €€rÒ   r™  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<listcomp>.	  s|   ø€ ð ð ð ð ð ˜c�z�zõ Ô(¨¨S¬Ñ2Ô2°DÐ9Ð9õ !Ô-Ø!Ð#3Ð#3°CÑ#8Ô#8¸$ñô ð ð	ð	ð ð rÔ   c                ó   — g | ]	}|j         ‘Œ
S rÎ   rp  r[  s     rÒ   r™  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<listcomp>=	  r\  rÔ   c                ó8   •‡ ‡—  ‰ˆˆ fd„‰D ¦   «         ¦  «        S )Nc              3  óN   •K  — | ]\  }}|r |‰¦  «        n
 |‰¦  «        V — Œ d S r  rÎ   )rÐ   rN  Úuse_rowr8  Úrows      €€rÒ   rB  zWSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get.<locals>.<genexpr>@	  sV   øè è € ð ð á#�F˜Gð  'Ð>���s‘”�¨F¨F°:Ñ,>Ô,>ðð ð ð ð ð rÔ   rÎ   )rv  r8  rb  rd  s   ``€€rÒ   r¿  zDSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get?	  sD   øøø€ Ø�6ð ð ð ð ð à'.ðñ ô ñ ô ð rÔ   )r&   rE  re  r-  r7  r   rÀ  r?   rO  rŸ   r?  r  r   rf  ri  )
r  rj  r7  rŸ   r�  r¿  rb  rT  rq  rd  s
         @@@@rÒ   Ú+_inserted_primary_key_from_returning_getterz7SQLCompiler._inserted_primary_key_from_returning_getter	  s  øøøø€ õ ”Ô-ˆàÔ!Ð-Ð-Ð-ØÔ&Ô0ˆ	åð 	1Ý˜i­Ñ0Ô0Ð0Ð0Ð0àÔ=ÐØ”ˆàÔ+ˆ	ØÐ$Ð$Ð$Ø=Ð=­	°)Ñ(<Ô(<Ð=Ñ=Ô=ˆåØ5ðð ð ð ð ð !Ô,ðñ ô ñ
ô 
ˆð" ×$Ò$Ð%KÐ%K¸Ô9JÐ%KÑ%KÔ%KÑLÔLˆð	ð 	ð 	ð 	ð 	ð 	ð ˆ
rÔ   c                ó   — dS )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Î   rE  s    rÒ   Údefault_fromzSQLCompiler.default_fromG	  s	   € ð ˆrrÔ   c                óH  —  |j         j        | fi |¤Ž}|j        D �]}|| j        vrŒ| j        |         }|                     |j        |j                 dd¬¦  «        }| j        |         }|x| j        |<   | j        |<   || j        |<   | j                             |d¦  «         || j        v r| xj        |hz  c_        || j	        v r| xj	        |hz  c_	        | j
        }|r@|\  }	}
|j        D ]3}|j        |
v r(|
|j                 }|	|                              |¦  «         Œ4�Œ|S )a’  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å  Ú	translaterA  Ú_with_valuerA  rB  r�  rW  rV  rY  Ú_cloned_setr·  )r  Úoverride_bindsrÚ  Úsqltextrx  ÚbpÚnew_bpr
  rý  r‘  r�  Úcbs               rÒ   Úvisit_override_bindsz SQLCompiler.visit_override_bindsQ	  sk  € ð" <�.Ô(Ô;¸DÐGÐGÀBÐGÐGˆð  Ô)ð "	0ñ "	0ˆAØ˜œ
Ð"Ð"ØØ”˜A”ˆBð —^’^ØÔ(¨¬Ô0Ø!Øð $ñ ô ˆFð ”? 2Ô&ˆDØ/5Ð5ˆDŒJ�q‰M˜DœJ tÑ,Ø&*ˆDŒO˜FÑ#ØŒO×Ò  DÑ)Ô)Ð)à�TÔ-Ð-Ð-ØÐ(Ô(¨V¨HÑ4Ð(Ô(Ø�TÔ0Ð0Ð0ØÐ+Ô+°¨xÑ7Ð+Ô+àÔ3ˆJØð 0Ø'‘
��dØœ.ð 0ð 0�BØ”v �~�~Ø! "¤&œ\˜Ø˜RœŸš¨Ñ/Ô/Ð/øùàˆrÔ   c                ó4   — d |j         j        | fi |¤Žz   dz   S ©Nr.  r/  ©rØ  rå  )r  ÚgroupingÚasfromrâ  s       rÒ   Úvisit_groupingzSQLCompiler.visit_grouping‘	  ó+   € ØÐ8�XÔ%Ô8¸ÐHÐHÀÐHÐHÑHÈ3ÑNÐNrÔ   c                ó4   — d |j         j        | fi |¤Žz   dz   S r†  r‡  )r  rˆ  râ  s      rÒ   Úvisit_select_statement_groupingz+SQLCompiler.visit_select_statement_grouping”	  r‹  rÔ   c                ó–  — | j         r®| j        j        r¢	 t          d| j         d         d         ¦  «        }n'# t          $ r}t          j        d¦  «        |‚d }~ww xY w|j        \  }}}|r|}	n|}	|j        j	        }
|
�8|
j
        |	v r/|
                     |	|
j
                 ¦  «        r|j        j	        |d<    | j        |j        fd|i|¤ŽS )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   ÚKeyErrorr3   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_referencez!SQLCompiler.visit_label_reference—	  s9  € ð Œ:ð %	˜$œ,ÔEð %	ð	Ý $Ø=Ø”J˜r”N ?Ô3ñ!ô !��øõ ð ð ð ÝÔ&ð/ñô ð ðøøøøðøøøð Ô1ñ	ØØØà$ð )Ø)��à(�ð $œOÔCˆMð Ð)Ø!Ô&¨,Ð6Ð6Ø!×0Ò0Ø  Ô!3Ô4ñô ð 7ð ”OÔ;ð Ð.Ñ/ð ˆtŒ|ØŒOð
ð 
à"7ð
ð ð
ð 
ð 	
s   •!7 ·
AÁAÁAc                ó   — | j         s|                      |j        ¦  «        S 	 t          d| j         d         d         ¦  «        }n># t          $ r1}t          j        |j        dt          j	        |¬¦  «         Y d }~nd }~ww xY w|j
        \  }}}	 |r||j                 }	n||j                 }	|	|d<    | j        |	fd|i|¤ŽS # t          $ r2}
t          j        |j        dt          j	        |
¬¦  «         Y d }
~
d S d }
~
ww xY w)Nr�  rŸ  r-  r�  )ÚextraÚexc_clsrÙ  r‘  r’  )r—  rÂ  Ú_text_clauser   r”  r   Ú_no_text_coercionrØ  r3   rö  r•  )r  rØ  r’  râ  r-  r˜  r™  rš  r›  r  rÙ  s              rÒ   Úvisit_textual_label_referencez)SQLCompiler.visit_textual_label_referenceÆ	  s”  € ð Œzð 	6à—<’< Ô 4Ñ5Ô5Ð5ð	Ý Ø9Ø”
˜2”˜Ô/ñô ˆMˆMøõ ð 		ð 		ð 		ÝÔ'Ø”ð/õ Ô(Øðñ ô ð ð ð ð ð ð øøøøð		øøøð ,9Ô+LÑ(ˆ	�:˜yð	Ø$ð 1Ø  ¤Ô1��à ¤Ô0�ð /2ˆFÐ*Ñ+Ø�4”<Øðð Ø+@ðØDJðð ð øõ ð 		ð 		ð 		ÝÔ'Ø”ð/õ Ô(Øðñ ô ð ð ð ð ð ð ð øøøøð		øøøs/   £!A Á
B Á'A;Á;B ÂC Ã
C=Ã'C8Ã8C=c                óê  — |o| }||u }	|	s|rBt          |j        t          j        ¦  «        r|                      d|j        ¦  «        }
n|j        }
|rq|�% ||
|j        ||
f|j        z   |z   |j        ¦  «          |j        j        | fdddœ|¤Žt          t          j                 z   | j                             ||
¦  «        z   S |	r| j                             ||
¦  «        S  |j        j        | fddi|¤ŽS )NÚcolidentT)r’  Úwithin_label_clauser’  F)rÀ  r
  r   rD   Ú_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_labelzSQLCompiler.visit_labeló	  sg  € ð "Ð=Ð*=Ð&=ð 	ð 2°UÐ:Ðàð 	'Ð 4ð 	'Ý˜%œ*¥hÔ&?Ñ@Ô@ð 'Ø ×6Ò6°zÀ5Ä:ÑNÔN�	�	à!œJ�	àð 	Ø Ð,Ø!Ð!ØØ”JØ˜IÐ&¨Ô)9Ñ9Ð<NÑNØ”Jñ	ô ð ð 1�”Ô0Øðà*.Ø(,ðð ð ð	ð õ �IœMÔ*ñ+ð ”-×,Ò,¨U°IÑ>Ô>ñ?ð	ð ð 	Ø”=×-Ò-¨e°YÑ?Ô?Ð?à3�5”=Ô3Øðð Ø,1ðØ57ðð ð rÔ   c                ó*   — t          j        d¦  «        ‚)Nz:Cannot compile Column object until its 'name' is assigned.©r3   rö  ©r  r¤   s     rÒ   Ú_fallback_column_namez!SQLCompiler._fallback_column_name$
  s   € ÝÔØHñ
ô 
ð 	
rÔ   c                ó,   — |j         } | j        |fi |¤ŽS r  )Ú	_resolvedrÂ  )r  rØ  rÚ  Úsql_elements       rÒ   Úvisit_lambda_elementz SQLCompiler.visit_lambda_element)
  s$   € ØÔ'ˆØˆtŒ|˜KÐ.Ð.¨2Ð.Ð.Ð.rÔ   r¤   úColumnClause[Any]r¬  úOptional[_ResultMapAppender]Úinclude_tabler­  r  Úambiguous_table_name_mapú Optional[_AmbiguousTableNameMap]c                ó0  — |j         x}}|€|                      |¦  «        }|j        }	|	s0t          |t          j        ¦  «        r|                      d|¦  «        }|�2|||j        f|z   }
|j        r|
|j        fz  }
 ||||
|j	        ¦  «         |	r|  
                    |¦  «        }n| j                             |¦  «        }|j        }|�	|r|j        s|S | j                             |¦  «        }|r| j                             |¦  «        dz   }nd}t"          rt          |t$          ¦  «        sJ ‚|j         }|s|r||v r||         }t          |t          j        ¦  «        r|                      d|¦  «        }|| j                             |¦  «        z   dz   |z   S )Nr¦  r1  r§  Úalias)r
  rµ  Ú
is_literalrÀ  r   rD   r¨  rA  Ú	_tq_labelr  Úescape_literal_columnr°  ÚquoterŸ   Únamed_with_columnÚschema_for_objectÚquote_schemar   r]   )r  r¤   r¬  r¼  r­  r½  râ  r
  Ú	orig_namerÁ  ÚtargetsrŸ   Úeffective_schemaÚschema_prefixÚ	tablenames                  rÒ   Úvisit_columnzSQLCompiler.visit_column-
  sç  € ð "œ;Ð&ˆˆyØˆ<Ø×-Ò-¨fÑ5Ô5ˆDàÔ&ˆ
Øð 	@�j¨­xÔ/HÑIÔIð 	@Ø×-Ò-¨j¸$Ñ?Ô?ˆDàÐ(Ø˜t V¤ZÐ0Ð3EÑEˆGØÔð /Ø˜FÔ,Ð.Ñ.�àÐ˜d I¨w¸¼ÑDÔDÐDàð 	-ð ×-Ò-¨dÑ3Ô3ˆDˆDà”=×&Ò& tÑ,Ô,ˆDØ”ˆØˆ= ˆ=°UÔ5Lˆ=ØˆKà#œ}×>Ò>¸uÑEÔEÐàð #à”M×.Ò.Ð/?Ñ@Ô@À3ÑFð �ð !#�åð :Ý! %­Ñ9Ô9Ð9Ð9Ð9Øœ
ˆIð %ð@à,ð@ð Ð!9Ð9Ð9à4°YÔ?�	å˜)¥XÔ%>Ñ?Ô?ð KØ ×6Ò6°wÀ	ÑJÔJ�	à  4¤=×#6Ò#6°yÑ#AÔ#AÑAÀCÑGÈ$ÑNÐNrÔ   c                ó@   — | j                              |j        ¦  «        S r  )r°  Úformat_collationÚ	collation©r  rØ  rÚ  s      rÒ   Úvisit_collationzSQLCompiler.visit_collationh
  s   € ØŒ}×-Ò-¨gÔ.?Ñ@Ô@Ð@rÔ   c                ó   — |j         S r  ©r
  )r  Ú
fromclauserâ  s      rÒ   Úvisit_fromclausezSQLCompiler.visit_fromclausek
  s
   € ØŒÐrÔ   c                ó   — |j         S r  rÔ  )r  r‰  râ  s      rÒ   Úvisit_indexzSQLCompiler.visit_indexn
  s
   € ØŒzÐrÔ   c                óZ   — ||d<   | j         |d<    | j        j        j        |j        fi |¤ŽS )NÚtype_expressionr¼  )r°  r·  Útype_compiler_instancerÂ  r  )r  Ú
typeclauserÚ  s      rÒ   Úvisit_typeclausezSQLCompiler.visit_typeclauseq
  sH   € Ø *ˆÐÑØ$(¤MˆÐ Ñ!Ø:ˆtŒ|Ô2Ô:ØŒOð
ð 
Ø!ð
ð 
ð 	
rÔ   c                óJ   — | j         j        r|                     dd¦  «        }|S ©Nr-  ú%%©r°  Ú_double_percentsÚreplace©r  Útexts     rÒ   Úpost_process_textzSQLCompiler.post_process_textx
  ó'   € ØŒ=Ô)ð 	+Ø—<’<  TÑ*Ô*ˆDØˆrÔ   c                óJ   — | j         j        r|                     dd¦  «        }|S rß  rá  rä  s     rÒ   rÃ  z!SQLCompiler.escape_literal_column}
  rç  rÔ   c           	     ó  ‡ ‡‡— ˆˆ ˆfd„}‰ j         sd‰ _        |r |d d ‰ft          j        ¦  «         t                               d„ t                               |‰                      ‰j        ¦  «        ¦  «        ¦  «        S )Nc                óŽ   •— |                       d¦  «        }|‰j        v r ‰j        ‰j        |         fi ‰¤ŽS  ‰j        |fi ‰¤ŽS rÌ  )r˜   Ú_bindparamsrÂ  Úbindparam_string)r´  r
  rÚ  r  Ú
textclauses     €€€rÒ   Údo_bindparamz2SQLCompiler.visit_textclause.<locals>.do_bindparamƒ
  s]   ø€ Ø—7’7˜1‘:”:ˆDØ�zÔ-Ð-Ð-Ø#�t”| JÔ$:¸4Ô$@ÐGÐGÀBÐGÐGÐGà,�tÔ,¨TÐ8Ð8°RÐ8Ð8Ð8rÔ   Tc                ó,   — |                       d¦  «        S rÌ  rÍ  )r´  s    rÒ   rÐ  z.SQLCompiler.visit_textclause.<locals>.<lambda>•
  s   € �a—g’g˜a‘j”j€ rÔ   )	r—  r@  r%   ÚNULLTYPEÚBIND_PARAMS_ESCrÂ  ÚBIND_PARAMSræ  rå  )r  rí  r¬  rÚ  rî  s   `` ` rÒ   Úvisit_textclausezSQLCompiler.visit_textclause‚
  s©   øøø€ ð	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð Œzð 	$Ø#ˆDÔàð 	Lð Ð˜d D¨:¨-½Ô9JÑKÔKÐKõ ×"Ò"Ø Ð Ý�OŠOØ˜d×4Ò4°Z´_ÑEÔEñô ñ
ô 
ð 	
rÔ   c                óØ  — | j          }|r| j        n| j         d         }t          ¦   «         t          ¦   «         |dœ}| j                              |¦  «         |j        r|                      ||¦  «         |p1|dk    o|                     dd¦  «        p|                     dd¦  «        }|r[|j        x| _        | _	        |j         ot          |j        ¦  «        | _        |j        D ]}	|                      |	d| j        ¬¦  «         Œ  | j        |j        fi |¤Ž}
| j        r1|st#          | j         ¦  «        nd }|                      |¬	¦  «        |
z   }
| j                              d¦  «         |
S )
NrŸ  ©r)  r(  r$   r   r0  Fr/  T)r’  r¬  ©Únesting_level)r—  Ú_default_stack_entryr�   r·  Ú_independent_ctesÚ_dispatch_independent_ctesr¿  rv  rK  rI  r.  Úcolumn_argsrL  rÂ  Ú_add_to_result_maprØ  r]  rÅ  Ú_render_cte_clauser�  )r  ÚtafÚcompound_indexr‰  rÚ  Útoplevelr°  Ú	new_entryÚpopulate_result_mapr˜  rå  r÷  s               rÒ   Úvisit_textual_selectz SQLCompiler.visit_textual_select›
  s»  € ð ”z�>ˆØ-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆõ  #™uœuÝ™EœEØð*
ð *
ˆ	ð
 	Œ
×Ò˜)Ñ$Ô$Ð$àÔ ð 	5Ø×+Ò+¨C°Ñ4Ô4Ð4ð ð >à !Ò#ð EØ—I’IÐ<¸eÑDÔDð>ð
 �yŠyÐ5°uÑ=Ô=ð 	ð ð 	à”ðˆDÔ! DÔ$Að 47´>Ð/Að 0ÅdØ”ñGô GˆDÔ,ð ”_ð ð �Ø—’ØØ*.Ø&*Ô&=ð ñ ô ð ð ð ˆtŒ|˜CœKÐ.Ð.¨2Ð.Ð.ˆØŒ9ð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàŒ
�Š�rÑÔÐàˆrÔ   r*  rL   rÚ  c                ó   — dS ©NÚNULLrÎ   ©r  r*  rÚ  s      rÒ   Ú
visit_nullzSQLCompiler.visit_nullÏ
  ó   € ØˆvrÔ   rM   c                ó"   — | j         j        rdS dS )Nr�   Ú1©r·  Úsupports_native_booleanr  s      rÒ   Ú
visit_truezSQLCompiler.visit_trueÒ
  s   € ØŒ<Ô/ð 	Ø�6à�3rÔ   rJ   c                ó"   — | j         j        rdS dS )Nr–   Ú0r  r  s      rÒ   Úvisit_falsezSQLCompiler.visit_falseØ
  s   € ØŒ<Ô/ð 	Ø�7à�3rÔ   c                ó^   ‡ ‡— |                      d„ ˆˆ fd„|D ¦   «         D ¦   «         ¦  «        S )Nc              3  ó   K  — | ]}|¯|V — Œ	d S r  rÎ   ©rÐ   Úss     rÒ   rB  z7SQLCompiler._generate_delimited_list.<locals>.<genexpr>ß
  s<   è è € ð 
ð 
àØð
Øð
ð 
ð 
ð 
ð 
ð 
rÔ   c              3  ó4   •K  — | ]} |j         ‰fi ‰¤ŽV — Œd S r  rä  ©rÐ   r˜  rÚ  r  s     €€rÒ   rB  z7SQLCompiler._generate_delimited_list.<locals>.<genexpr>á
  s9   øè è € ÐIÐI¸1Ð*�aÔ*¨4Ð6Ð6°2Ð6Ð6ÐIÐIÐIÐIÐIÐIrÔ   ©r‰   )r  r   Ú	separatorrÚ  s   `  `rÒ   Ú_generate_delimited_listz$SQLCompiler._generate_delimited_listÞ
  sM   øø€ Ø�~Š~ð 
ð 
àIÐIÐIÐIÐIÀÐIÑIÔIð
ñ 
ô 
ñ 
ô 
ð 	
rÔ   c                óZ  ‡ ‡— t           j                             t          j        t           j        j        t           j        j        |¦  «        \  }}|dk    r |d         j        ‰ fi ‰¤ŽS t          t          j                 }| 
                    d„ ˆˆ fd„|D ¦   «         D ¦   «         ¦  «        S )Nr   r   c              3  ó   K  — | ]}|¯|V — Œ	d S r  rÎ   r  s     rÒ   rB  z;SQLCompiler._generate_delimited_and_list.<locals>.<genexpr>ð
  s<   è è € ð "ð "àØð"Øð"ð "ð "ð "ð "ð "rÔ   c              3  ó4   •K  — | ]} |j         ‰fi ‰¤ŽV — Œd S r  rä  r  s     €€rÒ   rB  z;SQLCompiler._generate_delimited_and_list.<locals>.<genexpr>ò
  s9   øè è € ÐLÐL¸qÐ.˜!Ô.¨tÐ:Ð:°rÐ:Ð:ÐLÐLÐLÐLÐLÐLrÔ   )r   ÚBooleanClauseListÚ_process_clauses_for_booleanr!   Úand_rM   Ú
_singletonrJ   rå  r©  r‰   )r  ÚclausesrÚ  Úlccr  s   ` `  rÒ   Ú_generate_delimited_and_listz(SQLCompiler._generate_delimited_and_listå
  s·   øø€ ÝÔ1×NÒNÝŒNÝŒNÔ%ÝŒOÔ&Øñ	
ô 
‰ˆˆWð �!Š8ˆ8Ø0�7˜1”:Ô0°Ð<Ð<¸Ð<Ð<Ð<å!¥)¤.Ô1ˆIØ—>’>ð "ð "àLÐLÐLÐLÐLÀGÐLÑLÔLð"ñ "ô "ñ ô ð rÔ   c                ó$   — d | j         |fi |¤Žz  S ©Nú(%s))Úvisit_clauselist)r  Ú
clauselistrÚ  s      rÒ   Úvisit_tuplezSQLCompiler.visit_tupleö
  s#   € ØÐ-˜Ô-¨jÐ?Ð?¸BÐ?Ð?Ñ?Ð?rÔ   c                óf   — |j         }|€d}nt          |j                  } | j        |j        |fi |¤ŽS ©Nr4  )rR  r©  r  r"  )r  r)  rÚ  Úseps       rÒ   r(  zSQLCompiler.visit_clauselistù
  sC   € ØÔ!ˆØˆ;ØˆCˆCå˜JÔ/Ô0ˆCà,ˆtÔ,¨ZÔ-?ÀÐKÐKÈÐKÐKÐKrÔ   c                óô   — |j         }|                      |dd ¦  «        }|r
 |||fi |¤ŽS 	 t          |         }d|d<    | j        |j        |fi |¤ŽS # t
          $ r}t          j        | |¦  «        |‚d }~ww xY w)NÚexpression_clauselistTÚ_in_operator_expression)rR  Ú_get_operator_dispatchr©  r  r"  r”  r3   rÖ  )r  r)  rÚ  Ú	operator_ÚdispÚopstringrÙ  s          rÒ   Úvisit_expression_clauselistz'SQLCompiler.visit_expression_clauselist  sÍ   € ØÔ'ˆ	à×*Ò*ØÐ.°ñ
ô 
ˆð ð 	5Ø�4˜
 IÐ4Ð4°Ð4Ð4Ð4ð	Ý  Ô+ˆHð -1ˆBÐ(Ñ)Ø0�4Ô0ØÔ" Hðð Ø02ðð ð øõ	 ð 	Lð 	Lð 	LÝÔ1°$¸	ÑBÔBÈÐKøøøøð	Løøøs   ¬A Á
A7ÁA2Á2A7c                ó  — d}|j         �| |j         j        | fi |¤Ždz   z  }|j        D ].\  }}|d |j        | fi |¤Žz   dz    |j        | fi |¤Žz   dz   z  }Œ/|j        �|d |j        j        | fi |¤Žz   dz   z  }|dz  }|S )NzCASE r4  zWHEN z THEN zELSE ÚEND)rß  rå  ÚwhensÚelse_)r  Úclauserâ  rÑ   Úcondrj  s         rÒ   Ú
visit_casezSQLCompiler.visit_case  sñ   € ØˆØŒ<Ð#ØÐ0�”Ô0°Ð@Ð@¸Ð@Ð@À3ÑFÑFˆAØ"œLð 	ð 	‰LˆD�&ØØØ)�$Ô)¨$Ð9Ð9°&Ð9Ð9ñ:àñð ,�&Ô+¨DÐ;Ð;°FÐ;Ð;ñ<ð ñ	ñˆAˆAð Œ<Ð#ØØÐ9˜&œ,Ô9¸$ÐIÐIÀ&ÐIÐIÑIÈCÑOñˆAð 	
ˆU‰
ˆØˆrÔ   c                ó(   —  |j         j        | fi |¤ŽS r  )Útyped_expressionrå  )r  Útype_coercerÚ  s      rÒ   Úvisit_type_coercezSQLCompiler.visit_type_coerce(  s    € Ø>ˆ{Ô+Ô>¸tÐJÐJÀrÐJÐJÐJrÔ   c                óæ   —  |j         j        | fi |¤Ž}t          j        d|¦  «        }d |j        j        | fi |¤Ž›d|r|                     d¦  «        n|›d|r|                     d¦  «        nd›�S )Nz(.*)( COLLATE .*)zCAST(rã   r   r/  r2   r§  )rÜ  rå  re  Úmatchr:  r˜   )r  r   râ  Útype_clauserB  s        rÒ   Ú
visit_castzSQLCompiler.visit_cast+  s‘   € Ø8�d”oÔ8¸ÐHÐHÀÐHÐHˆÝ”Ð,¨kÑ:Ô:ˆˆà*ˆDŒKÔ*¨4Ð:Ð:°6Ð:Ð:Ð:Ð:Ø#Ð4ˆE�KŠK˜‰NŒNˆN¨Ð4Ð4Ø#Ð+ˆE�KŠK˜‰NŒNˆN¨Ð+ð
ð 	
rÔ   c           
     ód  — |d         t           j        u rdn€|d         t           j        u rdnj|d         dk     r6 | j        t          j        t          |d         ¦  «        ¦  «        fi |¤Ž›d�n( | j        t          j        |d         ¦  «        fi |¤Ž›d�›d|d         t           j        u rdn€|d         t           j        u rdnj|d         dk     r6 | j        t          j        t          |d         ¦  «        ¦  «        fi |¤Ž›d�n( | j        t          j        |d         ¦  «        fi |¤Ž›d�›�S )	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_clausez SQLCompiler._format_frame_clause4  s§  € ð ˜!”9¥Ô 8Ð8Ð8ð &Ð%ð ˜a”y¥HÔ$:Ð:Ð:ð "�Mð " !œ9 qš=˜=ð	 )˜DœLÝ (Ô 0µ°V¸A´Y±´Ñ @Ô @ðð ØDFðð ð ð ðð ð (˜4œ<­Ô(8¸À¼Ñ(CÔ(CÐJÐJÀrÐJÐJÐJÐJðMðð ð( ˜!”9¥Ô 8Ð8Ð8ð &Ð%ð ˜a”y¥HÔ$:Ð:Ð:ð "�Mð " !œ9 qš=˜=ð	 )˜DœLÝ (Ô 0µ°V¸A´Y±´Ñ @Ô @ðð ØDFðð ð ð ðð ð (˜4œ<­Ô(8¸À¼Ñ(CÔ(CÐJÐJÀrÐJÐJÐJÐJðMðð+'
ð '	
rÔ   c                ód  ‡ ‡—  |j         j        ‰ fi ‰¤Ž}|j        �d ‰ j        |j        fi ‰¤Žz  }n>|j        �d ‰ j        |j        fi ‰¤Žz  }n |j        �d ‰ j        |j        fi ‰¤Žz  }nd }|›dd                     ˆˆ fd„d|j        fd|j        ffD ¦   «         |r|gng z   ¦  «        ›d	�S )
NzRANGE BETWEEN %szROWS BETWEEN %szGROUPS BETWEEN %sz OVER (r4  c           	     ó^   •— g | ])\  }}|®t          |¦  «        ¯|›d |j        ‰fi ‰¤Ž›�‘Œ*S )Nz BY )rÅ  rå  )rÐ   Úwordr:  râ  r  s      €€rÒ   r™  z*SQLCompiler.visit_over.<locals>.<listcomp>r  sc   ø€ ð ð ð ñ %˜˜fð Ð)­c°&©k¬kÐ)ð �t�tÐ6˜VÔ6°tÐFÐF¸vÐFÐFÐFðHð *Ð)Ð)rÔ   Ú	PARTITIONÚORDERr/  )	rØ  rå  rJ  rK  ÚrowsÚgroupsr‰   Úpartition_byÚorder_by)r  Úoverrâ  rå  rJ  s   ` `  rÒ   Ú
visit_overzSQLCompiler.visit_over^  sZ  øø€ Ø.ˆtŒ|Ô.¨tÐ>Ð>°vÐ>Ð>ˆØŒ;Ð"Ø'Ð*C¨$Ô*CØ”ð+ð +Ø%ð+ð +ñ ˆFˆFð ŒYÐ"Ø&Ð)B¨Ô)BØ”	ð*ð *Ø#ð*ð *ñ ˆFˆFð Œ[Ð$Ø(Ð+D¨4Ô+DØ”ð,ð ,Ø%ð,ð ,ñ ˆFˆFð ˆFð ˆDˆDØ�HŠHðð ð ð ð ð % dÔ&7Ð8Ø  $¤-Ð0ð)ðñ ô ð  &Ð-�F�8�8¨2ñ	/ñô ð ð ð
ð 	
rÔ   c                óV   —  |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz WITHIN GROUP (ORDER BY r/  )rØ  rå  rT  )r  Úwithingrouprâ  s      rÒ   Úvisit_withingroupzSQLCompiler.visit_withingroup  sN   € à2ˆKÔÔ2°4ÐBÐB¸6ÐBÐBÐBÐBØ3ˆKÔ Ô3°DÐCÐC¸FÐCÐCÐCÐCð
ð 	
rÔ   c                óV   —  |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz FILTER (WHERE r/  )Úfuncrå  Ú	criterion)r  Ú
funcfilterrâ  s      rÒ   Úvisit_funcfilterzSQLCompiler.visit_funcfilter…  sM   € à.ˆJŒOÔ.¨tÐ>Ð>°vÐ>Ð>Ð>Ð>Ø3ˆJÔ Ô3°DÐCÐC¸FÐCÐCÐCÐCð
ð 	
rÔ   c                ó€   — | j                              |j        |j        ¦  «        }d|›d |j        j        | fi |¤Ž›d�S )NzEXTRACT(râ   r/  )Úextract_mapr¿  Úfieldr*  rå  )r  Úextractrâ  ra  s       rÒ   Úvisit_extractzSQLCompiler.visit_extract‹  sQ   € ØÔ ×$Ò$ W¤]°G´MÑBÔBˆˆàˆEˆEØ+ˆGŒLÔ+¨DÐ;Ð;°FÐ;Ð;Ð;Ð;ð
ð 	
rÔ   c                óT   —  | j         |j        fi |¤Ž} | j        |fi |¤Ž}d|›d|›�S )Nr.  z).)Úvisit_functionÚfnrÍ  )r  rØ  rÚ  Úcompiled_fnÚcompiled_cols        rÒ   Úvisit_scalar_function_columnz(SQLCompiler.visit_scalar_function_column’  sK   € Ø)�dÔ)¨'¬*Ð;Ð;¸Ð;Ð;ˆØ(�tÔ(¨Ð7Ð7°BÐ7Ð7ˆˆØ'˜K˜K¨¨Ð6Ð6rÔ   r[  úFunction[Any]c                óŒ  ‡ ‡— |�# ||j         |j         |j         f|j        ¦  «         t          ‰ d|j                              ¦   «         z  d ¦  «        }|r
 ||fi |¤Ž}nÙt                               |                     ¦   «         j        d ¦  «        Š‰r|j        r‰dz  Šn\|j         Š‰ j	         
                    ‰¦  «        st          ‰t          j        ¦  «        r‰ j	                             ‰¦  «        n‰Š‰dz   Šd                     ˆˆ fd„|j        D ¦   «         ‰gz   ¦  «        d ‰ j        |fi |¤Žiz  }|j        r|dz  }|S )Nzvisit_%s_funcz%(expr)sr1  c                ó°   •— g | ]R}‰j                              |¦  «        st          ‰t          j        ¦  «        r‰j                              |¦  «        n|‘ŒSS rÎ   )r°  Ú_requires_quotes_illegal_charsrÀ  r   r/   rÄ  )rÐ   r+  r
  r  s     €€rÒ   r™  z.SQLCompiler.visit_function.<locals>.<listcomp>µ  so   ø€ ð ð ð ð ð	  œ=×GÒGÈÑLÔLð!å% d­HÔ,@ÑAÔAð!˜œ×+Ò+¨CÑ0Ô0Ð0ð !ðð ð rÔ   r*  z WITH ORDINALITY)r
  r  ÚgetattrÚlowerrô   r¿  Ú_deannotaterË  Ú	_has_argsr°  rm  rÀ  r   r/   rÄ  r‰   ÚpackagenamesÚfunction_argspecÚ_with_ordinality)r  r[  r¬  râ  r3  rå  r
  s   `     @rÒ   re  zSQLCompiler.visit_function—  s¥  øø€ ð Ð(ØÐ˜dœi¨¬°T´Y°LÀ$Ä)ÑLÔLÐLå�t˜_¨t¬y¯ªÑ/@Ô/@Ñ@À$ÑGÔGˆð ð 	@Ø�4˜Ð'Ð' Ð'Ð'ˆDˆDå—=’= ×!1Ò!1Ñ!3Ô!3Ô!=¸tÑDÔDˆDØð )Ø”>ð 'Ø˜JÑ&�Døà”y�ð ”}×CÒCÀDÑIÔIðå! $­Ô(<Ñ=Ô=ð�D”M×'Ò'¨Ñ-Ô-Ð-ð ð	 ð ˜jÑ(�Ø—8’8ðð ð ð ð ð  $Ô0ðñ ô ð �&ñ	ñô ð Ð.˜Ô.¨tÐ>Ð>°vÐ>Ð>Ð?ñ@ˆDð Ô ð 	'ØÐ&Ñ&ˆDØˆrÔ   c                ó6   — |                       |j        ¦  «        S r  )Úvisit_sequenceÚsequence)r  Ú
next_valuerÚ  s      rÒ   Úvisit_next_value_funcz!SQLCompiler.visit_next_value_funcÅ  s   € Ø×"Ò" :Ô#6Ñ7Ô7Ð7rÔ   c                ó:   — t          d| j        j        z  ¦  «        ‚)Nz2Dialect '%s' does not support sequence increments.©rß  r·  r
  ©r  rw  rÚ  s      rÒ   rv  zSQLCompiler.visit_sequenceÈ  s$   € Ý!Ø@ØŒlÔñ ñ
ô 
ð 	
rÔ   c                ó(   —  |j         j        | fi |¤ŽS r  )Úclause_exprrå  )r  r[  râ  s      rÒ   rs  zSQLCompiler.function_argspecÎ  s    € Ø2ˆtÔÔ2°4ÐBÐB¸6ÐBÐBÐBrÔ   c           
     óH  ‡ ‡‡— ‰ j          } |j        |‰ fi ‰¤Ž}|r‰ j        s|‰ _        |j        }|r‰ j        n‰ j         d         }|p| o|                     dd¦  «        }	|dk    r||d<   ‰ j                              |d         |d         |||	dœ¦  «         |j        r‰                      |‰¦  «         ‰ j	        |j
                 }
d	|
z   d	z                        ˆˆˆ fd
„t          |j        ¦  «        D ¦   «         ¦  «        }d‰d<   | ‰ j        |fi t          dd‰i‰¤Ž¤Žz  }| ‰ j        |fi ‰¤Žz  }|j        r| ‰ j        |fi ‰¤Žz  }‰ j        r2|st)          ‰ j         ¦  «        nd }‰                      |d¬¦  «        |z   }‰ j                              d¦  «         |S )NrŸ  r0  Fr   r1  r)  r(  )r)  r(  r$   r-  r0  r4  c              3  ó@   •K  — | ]\  }} |j         ‰f‰|d œ‰¤ŽV — ŒdS ))r‰  rÿ  Nrä  )rÐ   r  r˜  r‰  râ  r  s      €€€rÒ   rB  z4SQLCompiler.visit_compound_select.<locals>.<genexpr>÷  sf   øè è € ð ð ñ �A�qð %�Ô$ØðØ!'¸ðð Ø=Cðð ðð ð ð ð ð rÔ   r¼  r‰  T©r÷  Úinclude_following_stackrÎ   )r—  Ú_compile_state_factoryr-  r7  rø  r¿  r·  rù  rú  Úcompound_keywordsÚkeywordr‰   r  ÚselectsÚgroup_by_clauserõ  Úorder_by_clauseÚ_has_row_limiting_clauseÚ_row_limit_clauser]  rÅ  rý  r�  )r  Úcsr‰  rÿ  râ  r   r-  Úcompound_stmtr°  Úneed_result_mapr…  rå  r÷  s   ` ` `        rÒ   Úvisit_compound_selectz!SQLCompiler.visit_compound_selectÑ  se  øøø€ ð ”z�>ˆà1˜Ô1°"°dÐEÐE¸fÐEÐEˆàð 	/˜DÔ.ð 	/Ø!.ˆDÔà%Ô/ˆà-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆØ"ð 
ØÐð AØ—	’	Ð8¸%Ñ@Ô@ð 	ð ˜QÒÐØ "ˆE�*ÑàŒ
×Òà#(Ð):Ô#;Ø % nÔ 5Ø Ø!.Ø0?ðð ñ	
ô 	
ð 	
ð Ô*ð 	CØ×+Ò+¨M¸6ÑBÔBÐBàÔ(¨¬Ô4ˆà�g‘ Ñ#×)Ò)ðð ð ð ð ð õ & b¤jÑ1Ô1ð	ñ ô ñ
ô 
ˆð #(ˆˆÑØÐ$�Ô$ RÐIÐI­4Ð+HÐ+H°vÐ+HÀÐ+HÐ+HÐIÐIÑIˆØÐ$�Ô$ RÐ2Ð2¨6Ð2Ð2Ñ2ˆØÔ&ð 	9ØÐ*�DÔ*¨2Ð8Ð8°Ð8Ð8Ñ8ˆDàŒ9ð 	Ø3;ÐE�C ¤
™OœO˜OÀˆMà×'Ò'Ø"/Ø,0ð (ñ ô ð ñ	ð ð 	Œ
�Š�rÑÔÐØˆrÔ   c                óH   — |j         � | j        |fi |¤ŽS  | j        |fi |¤ŽS r  )Ú_fetch_clauseÚfetch_clauseÚlimit_clause)r  r‹  râ  s      rÒ   rŠ  zSQLCompiler._row_limit_clause  sA   € ØÔÐ'Ø$�4Ô$ RÐ2Ð2¨6Ð2Ð2Ð2à$�4Ô$ RÐ2Ð2¨6Ð2Ð2Ð2rÔ   c                óP   — d|j         ›d|›|rd|z   nd›�}t          | |d ¦  «        S )NÚvisit_r,  r§  )r  rn  )r  r2  Ú
qualifier1Ú
qualifier2Úattrnames        rÒ   r1  z"SQLCompiler._get_operator_dispatch  sE   € € àÔÐÐØˆJØ *Ð2ˆC�*ÑÐ°Ð2ð
ˆõ
 �t˜X tÑ,Ô,Ð,rÔ   c                óÐ  — |�||fz  }||d<   ||d<   |j         rg|j        rt          j        d¦  «        ‚|                      |j         dd¦  «        }|r |||j         fi |¤ŽS  | j        |t          |j                  fi |¤ŽS |j        rL|                      |j        dd¦  «        }|r |||j        fi |¤ŽS  | j        |t          |j                 fi |¤ŽS t          j        d¦  «        ‚)Nr¬  r­  zFUnary expression does not support operator and modifier simultaneouslyÚunaryrR  Úmodifierz,Unary expression has no operator or modifier)rR  rš  r3   rö  r1  Ú _generate_generic_unary_operatorr©  Ú _generate_generic_unary_modifier)r  r™  r¬  r­  rÚ  r3  s         rÒ   Úvisit_unaryzSQLCompiler.visit_unary   sk  € ð Ð(Ø 5 (Ñ*ÐØ&7ˆBÐ"Ñ#Ø'9ˆBÐ#Ñ$àŒ>ð 	ØŒ~ð ÝÔ&ð2ñô ð ð ×.Ò.Ø” ¨ñô ˆDð ð Ø�t˜E 5¤>Ð8Ð8°RÐ8Ð8Ð8à<�tÔ<Ø�9 U¤^Ô4ðð Ø8:ðð ð ð Œ^ð 	Ø×.Ò.Ø” ¨ñô ˆDð ð Ø�t˜E 5¤>Ð8Ð8°RÐ8Ð8Ð8à<�tÔ<Ø�9 U¤^Ô4ðð Ø8:ðð ð õ Ô"Ø>ñô ð rÔ   c                ó\  — | j         j        rw | j        |j        fi |¤Ždz    | j        t	          j        |j        |j        j        j        t          j
        u r|j        j        nt          j
        ¦   «         ¦  «        fi |¤Žz   S  | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S )Nú / )r·  Údiv_is_floordivrÂ  rŠ   r   ÚCastrž   r  Ú_type_affinityr%   ÚNumeric©r  r£   rR  rÚ  s       rÒ   Úvisit_truediv_binaryz SQLCompiler.visit_truediv_binaryF  sî   € ØŒ<Ô'ð 	à�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñð �$”,Ý”MØœð  &œ|Ô0Ô?Ý'Ô/ð 0ð  0ð #œLÔ-Ð-õ "*Ô!1Ñ!3Ô!3ñô ðð ð ðð ñ	ðð( �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðrÔ   c                ó<  — | j         j        rd|j        j        j        t
          j        u rG|j        j        j        t
          j        u r* | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S d | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   z  S )NrŸ  z	FLOOR(%s))	r·  r   rž   r  r¢  r%   ÚIntegerrŠ   rÂ  r¤  s       rÒ   Úvisit_floordiv_binaryz!SQLCompiler.visit_floordiv_binarya  sÏ   € àŒLÔ(ð	à”Ô!Ô0µHÔ4DÐDÐDØ”Ô Ô/µ8Ô3CÐCÐCð �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðð Ø�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ñð rÔ   c                óz   — |j         s| j        j        r | j        |j        fi |¤ŽS d | j        |j        fi |¤Žz  S )Nz%s = 1©Ú_is_implicitly_booleanr·  r  rÂ  rØ  ©r  rØ  rR  rÚ  s       rÒ   Úvisit_is_true_unary_operatorz(SQLCompiler.visit_is_true_unary_operators  s[   € àÔ*ð	BàŒ|Ô3ð	Bð  �4”< ¤Ð6Ð6°2Ð6Ð6Ð6à˜l˜dœl¨7¬?ÐAÐA¸bÐAÐAÑAÐArÔ   c                ó€   — |j         s| j        j        rd | j        |j        fi |¤Žz  S d | j        |j        fi |¤Žz  S )NúNOT %sz%s = 0rª  r¬  s       rÒ   Úvisit_is_false_unary_operatorz)SQLCompiler.visit_is_false_unary_operator|  s`   € àÔ*ð	BàŒ|Ô3ð	Bð ˜l˜dœl¨7¬?ÐAÐA¸bÐAÐAÑAÐAà˜l˜dœl¨7¬?ÐAÐA¸bÐAÐAÑAÐArÔ   c                óJ   — d|                       |t          j        ¬¦  «        z  S )Nr¯  )Úoverride_operator)Úvisit_binaryr!   Úmatch_opr¤  s       rÒ   Úvisit_not_match_op_binaryz%SQLCompiler.visit_not_match_op_binary…  s.   € Ø˜$×+Ò+Ø¥iÔ&8ð ,ñ 
ô 
ñ 
ð 	
rÔ   c                ó<   — d | j         |t          |         fi |¤Žz  S r&  )Ú_generate_generic_binaryr©  r¤  s       rÒ   Úvisit_not_in_op_binaryz"SQLCompiler.visit_not_in_op_binaryŠ  s:   € ð Ð5˜Ô5Ø•I˜hÔ'ð
ð 
Ø+-ð
ð 
ñ 
ð 	
rÔ   c                ó@  — |t           j        u r7t          |¦  «        dk    r"dd                     d„ |D ¦   «         ¦  «        z  S dS |t           j        u r7t          |¦  «        dk    r"dd                     d„ |D ¦   «         ¦  «        z  S dS |                      |¦  «        S )	Nr   z(%s)) OR (1 = 1rá   c              3  ó   K  — | ]}d V — ŒdS ©r  NrÎ   ©rÐ   rØ  s     rÒ   rB  z6SQLCompiler.visit_empty_set_op_expr.<locals>.<genexpr>–  ó"   è è € Ð:Ð:¨˜fÐ:Ð:Ð:Ð:Ð:Ð:rÔ   zNULL) OR (1 = 1z(%s)) AND (1 != 1c              3  ó   K  — | ]}d V — ŒdS r»  rÎ   r¼  s     rÒ   rB  z6SQLCompiler.visit_empty_set_op_expr.<locals>.<genexpr>�  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_exprz#SQLCompiler.visit_empty_set_op_expr’  sµ   € Ø�	Ô+Ð+Ð+Ý�5‰zŒz˜AŠ~ˆ~Ø(Ø—I’IÐ:Ð:°EÐ:Ñ:Ô:Ñ:Ô:ñð ð )Ð(Ø�)œ/Ð)Ð)Ý�5‰zŒz˜AŠ~ˆ~Ø*Ø—I’IÐ:Ð:°EÐ:Ñ:Ô:Ñ:Ô:ñð ð +Ð*à×,Ò,¨UÑ3Ô3Ð3rÔ   c                ó:   — t          d| j        j        z  ¦  «        ‚)Nz3Dialect '%s' does not support empty set expression.r{  ©r  Úelement_typesrÚ  s      rÒ   rÁ  z SQLCompiler.visit_empty_set_expr¤  s$   € Ý!ØAØŒlÔñ ñ
ô 
ð 	
rÔ   c                óä  ‡ ‡‡	‡
— ‰j                              ‰ j        ¦  «        }|sb|j        r8‰ j        j        rdnd‰                      ‰j         j        ‰j        ¦  «        z   }�n‰‰                      ‰j         g‰j        ¦  «        }�nf|j        sI|j        r™t          |d         t          j        ¦  «        ryt          |d         t          t          f¦  «        sW|j        rt          d¦  «        ‚‰ j        j        rdndd                     ˆˆ fd„t#          |¦  «        D ¦   «         ¦  «        z   }n¿|r›‰ j        }|                     |¦  «        }|r|                     d¦  «        s
J d¦   «         ‚|                     d¦  «                             d	¦  «        }|d
         |d         cŠ	Š
d                     ˆ	ˆ
ˆˆ fd„|D ¦   «         ¦  «        }n"d                     ˆˆ fd„|D ¦   «         ¦  «        }d|fS )NúVALUES r§  r   z?bind_expression() on TupleType not supported with literal_bindsrá   c           	   3  ó–   •K  — | ]C\  }}d d                      ˆfd„t          |‰j        j        ¦  «        D ¦   «         ¦  «        z  V — ŒDdS )r'  rá   c              3  óJ   •K  — | ]\  }}‰                      ||¦  «        V — Œd S r  r  )rÐ   rß  Ú
param_typer  s      €rÒ   rB  z[SQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>.<genexpr>Ð  sK   øè è € ð ð á-˜E :ð ×1Ò1°%¸ÑDÔDðð ð ð ð ð rÔ   N)r‰   r÷  r  rå  )rÐ   r  r  r?  r  s      €€rÒ   rB  zQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>Í  s�   øè è € ð ð ñ %�A�}ð à—I’Ið ð ð ð å14Ø)¨9¬>Ô+?ñ2ô 2ðñ ô ñ ô ñðð ð ð ð ð rÔ   r2   ú)unexpected format for expanding parameterr$  r   r$  c              3  óZ   •K  — | ]%}‰›‰                      |‰j        ¦  «        ›‰›�V — Œ&d S r  ©r  r  )rÐ   rß  r'  r(  r?  r  s     €€€€rÒ   rB  zQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>ã  s]   øè è € ð 3ð 3ð ð	  ˜Ø×1Ò1°%¸¼ÑHÔHÐHØ ˜ð	ð3ð 3ð 3ð 3ð 3ð 3rÔ   c              3  óN   •K  — | ]}‰                      |‰j        ¦  «        V — Œ d S r  rÎ  )rÐ   rß  r?  r  s     €€rÒ   rB  zQSQLCompiler._literal_execute_expanding_parameter_literal_binds.<locals>.<genexpr>í  sI   øè è € ð 3ð 3àð ×-Ò-¨e°Y´^ÑDÔDð3ð 3ð 3ð 3ð 3ð 3rÔ   rÎ   )r  r  r·  rä  Útuple_in_valuesrÃ  rå  rÂ  Ú_isnullrÀ  Úcollections_abcr   rÏ   ÚbytesÚ_has_bind_expressionrß  r‰   r  r5  Úsearchr˜   r)  )r  r?  rÔ  Úbind_expression_templateÚtyp_dialect_implÚreplacement_expressionÚpost_compile_patternr´  r+  r'  r(  s   ``       @@rÒ   Ú2_literal_execute_expanding_parameter_literal_bindsz>SQLCompiler._literal_execute_expanding_parameter_literal_bindsª  s�  øøøø€ ð %œ>×AÒAÀ$Ä,ÑOÔOÐàð A	ð
  Ô.ð 
à!%¤Ô!=ÐE�I�IÀ2Ø×0Ò0Ø”NÔ(¨)Ô*=ñô ñ*Ð&Ñ&ð *.×)EÒ)EØ”^Ð$ iÔ&9ñ*ô *Ð&Ñ&ð Ô,ð 0	ØÔ$ð0	å˜6 !œ9¥oÔ&>Ñ?Ô?ð0	õ ˜v aœy­3µ¨,Ñ7Ô7ð0	ð
  Ô4ð Ý)ð$ñô ð ð "œ\Ô9ÐA�	�	¸rØ—	’	ð ð ð ð ð õ )2°&Ñ(9Ô(9ðñ ô ñ ô ñ&Ð"Ð"ð (ð Ø'+Ô'AÐ$Ø(×/Ò/Ð0HÑIÔI�Øð ?˜QŸWšWØñô ð ?ð ?à>ñ?ô ?ð ð —g’g˜a‘j”j×&Ò& tÑ,Ô,�Ø$'¨¤F¨C°¬FÐ!�˜Ø)-¯ªð 3ð 3ð 3ð 3ð 3ð 3ð 3ð "(ð3ñ 3ô 3ñ *ô *Ð&Ð&ð *.¯ªð 3ð 3ð 3ð 3ð 3à!'ð3ñ 3ô 3ñ *ô *Ð&ð
 Ð)Ð)Ð)rÔ   c                ó†  ‡ ‡‡‡‡‡‡	— ‰j         r‰                      ‰|¦  «        S ‰ j        }‰j                             |¦  «        Š	‰ j        r‰ j        Šn‰ j        Š‰ j        j        r‰	j	        r	ˆˆˆ ˆ	fd„Šnˆfd„Š|sRg Š‰	j
        r'‰                      ‰j        j        ‰j        ¦  «        }�n‰                      ‰j        g‰j        ¦  «        }nî‰	j
        sI‰	j        r£t          |d         t           j        ¦  «        rƒt          |d         t$          t&          f¦  «        sa‰	j        rJ ‚ˆfd„t+          |d¦  «        D ¦   «         Š|j        rdndd                     ˆˆfd	„t+          |¦  «        D ¦   «         ¦  «        z   }n=ˆfd
„t+          |d¦  «        D ¦   «         Šd                     ˆfd„‰D ¦   «         ¦  «        }‰|fS )Nc                óF   •— ‰                      ‰j        ‰‰d| iz  ¦  «        S ©Nr
  )Úrender_bind_castr  )r
  Úbind_templater?  r  r×  s    €€€€rÒ   Ú_render_bindtemplatezNSQLCompiler._literal_execute_expanding_parameter.<locals>._render_bindtemplate  s/   ø€ Ø×,Ò,Ø”NØ$Ø! V¨T NÑ2ñô ð rÔ   c                ó   •— ‰d| iz  S rÝ  rÎ   )r
  rß  s    €rÒ   rà  zNSQLCompiler._literal_execute_expanding_parameter.<locals>._render_bindtemplate  s   ø€ Ø$¨° ~Ñ5Ð5rÔ   r   c                óZ   •— g | ]'\  }}t          |d ¦  «        D ]\  }}‰›d|›d|›�|f‘ŒŒ(S )r   r,  r  )rÐ   r  r  r  rß  r
  s        €rÒ   r™  zDSQLCompiler._literal_execute_expanding_parameter.<locals>.<listcomp>$  sh   ø€ ð ð ð á$�A�}Ý )¨-¸Ñ ;Ô ;ðð ñ �A�uð  $˜t˜t Q Q Q¨¨Ð*¨EÐ2ðð ð ð rÔ   r   rÈ  r§  rá   c              3  óŠ   •‡‡K  — | ];\  ŠŠd d                      ˆˆˆˆfd„t          ‰¦  «        D ¦   «         ¦  «        z  V — Œ<dS )r'  rá   c              3  ór   •K  — | ]1\  }} ‰‰‰t          ‰¦  «        z  |z            d          ¦  «        V — Œ2dS )r   N)rÅ  )rÐ   r  rß  rà  r  r@  r  s      €€€€rÒ   rB  zMSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>.<genexpr>/  si   øè è € ð ð ñ %˜A˜uð -Ð,Ø% a­#¨mÑ*<Ô*<Ñ&<¸qÑ&@ÔAÀ!ÔDñô ðð ð ð ð ð rÔ   N)r‰   r  )rÐ   r  r  rà  r@  s    @@€€rÒ   rB  zCSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>,  s”   øøøè è € ð ð ñ %�A�}ð à—I’Ið ð ð ð ð ð ð õ )2°-Ñ(@Ô(@ð	ñ ô ñ ô ñðð ð ð ð ð rÔ   c                ó(   •— g | ]\  }}‰›d |›�|f‘ŒS )r,  rÎ   )rÐ   r  rß  r
  s      €rÒ   r™  zDSQLCompiler._literal_execute_expanding_parameter.<locals>.<listcomp>9  s=   ø€ ð ð ð á�A�uð !˜D˜D ! !Ð$ eÐ,ðð ð rÔ   c              3  ó4   •K  — | ]\  }} ‰|¦  «        V — Œd S r  rÎ   )rÐ   rA  rß  rà  s      €rÒ   rB  zCSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>=  sD   øè è € ð /ð /Ù.8¨c°5Ð$Ð$ SÑ)Ô)ð/ð /ð /ð /ð /ð /rÔ   )r3  rÚ  r·  r  r  rM  rG  rF  Ú_bind_typing_render_castsrÞ  rä  rÃ  rå  rÂ  rÑ  rÀ  rÒ  r   rÏ   rÓ  Ú	_is_arrayr  rÐ  r‰   )
r  r
  r?  rÔ  r·  rØ  rà  rß  r@  r×  s
   ```   @@@@rÒ   r2  z0SQLCompiler._literal_execute_expanding_parameterô  s£  øøøøøøø€ ØÔ$ð 	Ø×JÒJØ˜6ñô ð ð ”,ˆØ$œ>×AÒAÀ'ÑJÔJÐàÔð 	.Ø Ô9ˆMˆMà Ô-ˆMð ŒLÔ2ð	6à Ô1ð	6ð
ð ð ð ð ð ð ð ð ð6ð 6ð 6ð 6ð 6ð ð ,	ØˆIØÔ.ð Ø)-×)EÒ)EØ”NÔ(¨)Ô*=ñ*ô *Ð&Ñ&ð *.×)EÒ)EØ”^Ð$ iÔ&9ñ*ô *Ð&Ð&ð Ô,ð !	ØÔ$ð!	å˜6 !œ9¥oÔ&>Ñ?Ô?ð!	õ ˜v aœy­3µ¨,Ñ7Ô7ð!	ð
 (Ô1Ð1Ð1Ð1ðð ð ð å(1°&¸!Ñ(<Ô(<ðñ ô ˆIð %Ô4Ð<�	�	¸"Ø—	’	ð ð ð ð ð õ )2°&Ñ(9Ô(9ðñ ô ñ ô ñ&Ð"Ð"ðð ð ð å )¨&°!Ñ 4Ô 4ðñ ô ˆIð &*§Y¢Yð /ð /ð /ð /Ø<Eð/ñ /ô /ñ &ô &Ð"ð Ð0Ð0Ð0rÔ   c           	     óF  — |rât          j        |j        ¦  «        rÉ|�l|d         }|j                             t          j        t          |j        j	        |gz   ¦  «        t          |j
        j	        |gz   ¦  «        ¦  «        ¦  «         n[|j                             t          j        t          |j        j	        ¦  «        t          |j
        j	        ¦  «        ¦  «        ¦  «         | j        rCt          |j        t          j        ¦  «        r$t          |j
        t          j        ¦  «        rd|d<   |p|j        }|                      |dd ¦  «        }	|	r
 |	||fi |¤ŽS 	 t           |         }
 | j        ||
f||dœ|¤ŽS # t$          $ r}t'          j        | |¦  «        |‚d }~ww xY w)NÚenclosing_lateralTr3  r£   )Úfrom_linterÚlateral_from_linter)r!   Úis_comparisonrR  r‹  r‹  rÒ  Úproductr*   rŠ   r+   rž   rE  rÀ  r   rF   r1  r©  r·  r”  r3   rÖ  )r  r£   r²  Úeager_groupingrë  rì  rÚ  rê  r2  r3  r4  rÙ  s               rÒ   r³  zSQLCompiler.visit_binaryC  s   € ð ð 	�9Ô2°6´?ÑCÔCð 	Ø"Ð.Ø$&Ð':Ô$;Ð!Ø#Ô)×0Ò0ÝÔ%Ý!Ø"œKÔ5Ð9JÐ8KÑKñô õ "Ø"œLÔ6Ð:KÐ9LÑLñô ñ	ô ñ	ô 	ð 	ð 	ð Ô!×(Ò(ÝÔ%Ý! &¤+Ô";Ñ<Ô<Ý! &¤,Ô"<Ñ=Ô=ñô ñô ð ð Ô ð	)å˜6œ;­Ô(>Ñ?Ô?ð	)õ ˜6œ<­Ô)?Ñ@Ô@ð	)ð
 %)ˆBÐ Ñ!à%Ð8¨¬ˆ	Ø×*Ò*¨9°hÀÑEÔEˆØð 	Ø�4˜ 	Ð0Ð0¨RÐ0Ð0Ð0ðÝ$ YÔ/�ð 5�tÔ4ØØðð !,Ø(;ð	ð ð
 ðð ð øõ ð Pð Pð PÝÔ5°d¸IÑFÔFÈCÐOøøøøðPøøøs   ÅE; Å;
F ÆFÆF c                ó(   —  | j         |j        fi |¤ŽS r  )rÂ  Úsql_functionr¬  s       rÒ   Ú&visit_function_as_comparison_op_binaryz2SQLCompiler.visit_function_as_comparison_op_binary{  s   € ØˆtŒ|˜GÔ0Ð7Ð7°BÐ7Ð7Ð7rÔ   c                óÂ   — | j         j        r* | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S  | j        |j        fi |¤Ždz    | j        |j        fi |¤Žz   S )Nz %% rß   )r°  râ  rÂ  rŠ   rž   r¤  s       rÒ   Úvisit_mod_binaryzSQLCompiler.visit_mod_binary~  s™   € ØŒ=Ô)ð 	à�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðð �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðrÔ   c                óp   — |j         |d<    | j        |d|                      |j        ¦  «        z   dz   fi |¤ŽS )Nrï  r4  )rï  r·  rÃ  r4  r¬  s       rÒ   Úvisit_custom_op_binaryz"SQLCompiler.visit_custom_op_binaryŒ  sW   € Ø'Ô6ˆÐÑØ,ˆtÔ,ØØ�$×,Ò,¨XÔ->Ñ?Ô?Ñ?À#ÑEð
ð 
ð ð
ð 
ð 	
rÔ   c                óV   —  | j         ||                      |j        ¦  «        dz   fi |¤ŽS r,  )r›  rÃ  r4  r¬  s       rÒ   Úvisit_custom_op_unary_operatorz*SQLCompiler.visit_custom_op_unary_operator”  sA   € Ø4ˆtÔ4Ø�T×/Ò/°Ô0AÑBÔBÀSÑHð
ð 
ØLNð
ð 
ð 	
rÔ   c                óV   —  | j         |d|                      |j        ¦  «        z   fi |¤ŽS r,  )rœ  rÃ  r4  r¬  s       rÒ   Úvisit_custom_op_unary_modifierz*SQLCompiler.visit_custom_op_unary_modifier™  sA   € Ø4ˆtÔ4Ø�S˜4×5Ò5°hÔ6GÑHÔHÑHð
ð 
ØLNð
ð 
ð 	
rÔ   r£   úBinaryExpression[Any]r4  rï  c                ó¾   — |                      dd¦  «        }d|d<   |j        |d<    |j        j        | fd|i|¤Ž|z    |j        j        | fd|i|¤Žz   }|r|rd|z  }|S )Nr0  FTÚ
_binary_oprï  r'  )r¿  rR  rŠ   rå  rž   )r  r£   r4  rï  rÚ  r0  rå  s          rÒ   r·  z$SQLCompiler._generate_generic_binaryž  s½   € ð #%§&¢&Ð)BÀEÑ"JÔ"JÐà(,ˆÐ$Ñ%Ø!œ?ˆˆ<Ñà*ˆFŒKÔ*Øðð Ø%3ðØ79ðð ð ñð .ˆfŒlÔ-Øðð Ø%3ðØ79ðð ñ	ð 	ð #ð 	! ~ð 	!Ø˜D‘=ˆDØˆrÔ   c                ó.   — | |j         j        | fi |¤Žz   S r  r‡  ©r  r™  r4  rÚ  s       rÒ   r›  z,SQLCompiler._generate_generic_unary_operator·  s%   € ØÐ:˜%œ-Ô:¸4ÐFÐFÀ2ÐFÐFÑFÐFrÔ   c                ó.   —  |j         j        | fi |¤Ž|z   S r  r‡  rÿ  s       rÒ   rœ  z,SQLCompiler._generate_generic_unary_modifierº  s$   € Ø/ˆuŒ}Ô/°Ð;Ð;¸Ð;Ð;¸hÑFÐFrÔ   c                óB   — t          j        dt          j        ¬¦  «        S )Nz'%')r  )r   Úliteral_columnr%   Ú
STRINGTYPErE  s    rÒ   Ú_like_percent_literalz!SQLCompiler._like_percent_literal½  s   € åÔ& uµHÔ4GÐHÑHÔHÐHrÔ   c                ó0   — d |j         j        | fi |¤Ž› d�S )Nzlower(r/  r‡  rÑ  s      rÒ   Ú$visit_ilike_case_insensitive_operandz0SQLCompiler.visit_ilike_case_insensitive_operandÁ  s+   € ØIÐ:˜œÔ:¸4ÐFÐFÀ2ÐFÐFÐIÐIÐIÐIrÔ   c                óº   — |                      ¦   «         }| j        }|                     |j        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©Ú_cloner  Úconcatrž   Úvisit_like_op_binary©r  r£   rR  rÚ  Úpercents        rÒ   Úvisit_contains_op_binaryz$SQLCompiler.visit_contains_op_binaryÄ  sW   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3×:Ò:¸7ÑCÔCˆŒØ(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÔ   c                óº   — |                      ¦   «         }| j        }|                     |j        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©r	  r  r
  rž   Úvisit_not_like_op_binaryr  s        rÒ   Úvisit_not_contains_op_binaryz(SQLCompiler.visit_not_contains_op_binaryÊ  sW   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3×:Ò:¸7ÑCÔCˆŒØ,ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÔ   c                ó  — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©r	  r  r  rŠ   r
  rž   Úvisit_ilike_op_binaryr  s        rÒ   Úvisit_icontains_op_binaryz%SQLCompiler.visit_icontains_op_binaryÐ  sw   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Ý" 6¤<Ñ0Ô0ñ
ô 
ç
Š&�‰/Œ/ð 	Œð *ˆtÔ)¨&°(ÐAÐA¸bÐAÐAÐArÔ   c                ó  — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «                             |¦  «        |_         | j        ||fi |¤ŽS r  ©r	  r  r  rŠ   r
  rž   Úvisit_not_ilike_op_binaryr  s        rÒ   Úvisit_not_icontains_op_binaryz)SQLCompiler.visit_not_icontains_op_binaryÙ  sw   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Ý" 6¤<Ñ0Ô0ñ
ô 
ç
Š&�‰/Œ/ð 	Œð .ˆtÔ-¨f°hÐEÐEÀ"ÐEÐEÐErÔ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  )r	  r  Ú_rconcatrž   r  r  s        rÒ   Úvisit_startswith_op_binaryz&SQLCompiler.visit_startswith_op_binaryâ  sK   € Ø—’‘”ˆØÔ,ˆØ×'Ò'¨¬Ñ5Ô5ˆŒØ(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÔ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  )r	  r  r  rž   r  r  s        rÒ   Úvisit_not_startswith_op_binaryz*SQLCompiler.visit_not_startswith_op_binaryè  sK   € Ø—’‘”ˆØÔ,ˆØ×'Ò'¨¬Ñ5Ô5ˆŒØ,ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÔ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  )r	  r  r  rŠ   r  rž   r  r  s        rÒ   Úvisit_istartswith_op_binaryz'SQLCompiler.visit_istartswith_op_binaryî  se   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ×'Ò'Õ(>¸v¼|Ñ(LÔ(LÑMÔMˆŒØ)ˆtÔ)¨&°(ÐAÐA¸bÐAÐAÐArÔ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  )r	  r  r  rŠ   r  rž   r  r  s        rÒ   Úvisit_not_istartswith_op_binaryz+SQLCompiler.visit_not_istartswith_op_binaryõ  se   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ×'Ò'Õ(>¸v¼|Ñ(LÔ(LÑMÔMˆŒØ-ˆtÔ-¨f°hÐEÐEÀ"ÐEÐEÐErÔ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  r  r  s        rÒ   Úvisit_endswith_op_binaryz$SQLCompiler.visit_endswith_op_binaryü  sI   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3ˆŒØ(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÔ   c                ó”   — |                      ¦   «         }| j        }|                     |j        ¦  «        |_         | j        ||fi |¤ŽS r  r  r  s        rÒ   Úvisit_not_endswith_op_binaryz(SQLCompiler.visit_not_endswith_op_binary  sI   € Ø—’‘”ˆØÔ,ˆØ—~’~ f¤lÑ3Ô3ˆŒØ,ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÔ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  r  r  s        rÒ   Úvisit_iendswith_op_binaryz%SQLCompiler.visit_iendswith_op_binary  sc   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Õ&<¸V¼\Ñ&JÔ&JÑKÔKˆŒØ)ˆtÔ)¨&°(ÐAÐA¸bÐAÐAÐArÔ   c                óà   — |                      ¦   «         }| j        }t          |j        ¦  «        |_        |                     t          |j        ¦  «        ¦  «        |_         | j        ||fi |¤ŽS r  r  r  s        rÒ   Úvisit_not_iendswith_op_binaryz)SQLCompiler.visit_not_iendswith_op_binary  sc   € Ø—’‘”ˆØÔ,ˆÝ,¨V¬[Ñ9Ô9ˆŒØ—~’~Õ&<¸V¼\Ñ&JÔ&JÑKÔKˆŒØ-ˆtÔ-¨f°hÐEÐEÀ"ÐEÐEÐErÔ   c                óÚ   — |j                              dd ¦  «        } |j        j        | fi |¤Ž›d |j        j        | fi |¤Ž›�|�#d|                      |t          j        ¦  «        z   ndz   S )Nrf  z LIKE ú ESCAPE r§  ©Ú	modifiersr¿  rŠ   rå  rž   r  r%   r  ©r  r£   rR  rÚ  rf  s        rÒ   r  z SQLCompiler.visit_like_op_binary  s“   € ØÔ!×%Ò% h°Ñ5Ô5ˆð +ˆFŒKÔ*¨4Ð6Ð6°2Ð6Ð6Ð6Ð6Ø+ˆFŒLÔ+¨DÐ7Ð7°BÐ7Ð7Ð7ð
ð
 Ð!ð ˜×2Ò2°6½8Ô;NÑOÔOÑOÐOàñ
ð 	
rÔ   c                óÚ   — |j                              dd ¦  «        } |j        j        | fi |¤Ž›d |j        j        | fi |¤Ž›�|�#d|                      |t          j        ¦  «        z   ndz   S )Nrf  z
 NOT LIKE r-  r§  r.  r0  s        rÒ   r  z$SQLCompiler.visit_not_like_op_binary"  s‘   € ØÔ!×%Ò% h°Ñ5Ô5ˆà*ˆFŒKÔ*¨4Ð6Ð6°2Ð6Ð6Ð6Ð6Ø+ˆFŒLÔ+¨DÐ7Ð7°BÐ7Ð7Ð7ð
ð
 Ð!ð ˜×2Ò2°6½8Ô;NÑOÔOÑOÐOàñ
ð 	
rÔ   c                óÈ   — |t           j        u rF|                     ¦   «         }t          |j        ¦  «        |_        t          |j        ¦  «        |_         | j        ||fi |¤ŽS r  )r!   Úilike_opr	  r  rŠ   rž   r  r¤  s       rÒ   r  z!SQLCompiler.visit_ilike_op_binary-  s^   € Ø•yÔ)Ð)Ð)Ø—]’]‘_”_ˆFÝ0°´Ñ=Ô=ˆFŒKÝ1°&´,Ñ?Ô?ˆFŒLð )ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÔ   c                óÈ   — |t           j        u rF|                     ¦   «         }t          |j        ¦  «        |_        t          |j        ¦  «        |_         | j        ||fi |¤ŽS r  )r!   Únot_ilike_opr	  r  rŠ   rž   r  r¤  s       rÒ   r  z%SQLCompiler.visit_not_ilike_op_binary6  s^   € Ø•yÔ-Ð-Ð-Ø—]’]‘_”_ˆFÝ0°´Ñ=Ô=ˆFŒKÝ1°&´,Ñ?Ô?ˆFŒLð -ˆtÔ,¨V°XÐDÐDÀÐDÐDÐDrÔ   c                ó^   — |j                              dd¦  «        } | j        ||rdndfi |¤ŽS )NrÀ   Fz BETWEEN SYMMETRIC z	 BETWEEN ©r/  r¿  r·  ©r  r£   rR  rÚ  rÀ   s        rÒ   Úvisit_between_op_binaryz#SQLCompiler.visit_between_op_binary?  sN   € ØÔ$×(Ò(¨°eÑ<Ô<ˆ	Ø,ˆtÔ,Ø¨YÐGÐ)Ð)¸Kð
ð 
ØKMð
ð 
ð 	
rÔ   c                ó^   — |j                              dd¦  «        } | j        ||rdndfi |¤ŽS )NrÀ   Fz NOT BETWEEN SYMMETRIC z NOT BETWEEN r7  r8  s        rÒ   Úvisit_not_between_op_binaryz'SQLCompiler.visit_not_between_op_binaryE  sQ   € ØÔ$×(Ò(¨°eÑ<Ô<ˆ	Ø,ˆtÔ,ØØ)2ÐGÐ%Ð%¸ð
ð 
ð ð
ð 
ð 	
rÔ   rR  c                óD   — t          j        d| j        j        z  ¦  «        ‚©Nz/%s dialect does not support regular expressions©r3   rö  r·  r
  r¤  s       rÒ   Úvisit_regexp_match_op_binaryz(SQLCompiler.visit_regexp_match_op_binaryM  ó)   € õ ÔØ=ØŒlÔñ ñ
ô 
ð 	
rÔ   c                óD   — t          j        d| j        j        z  ¦  «        ‚r=  r>  r¤  s       rÒ   Ú visit_not_regexp_match_op_binaryz,SQLCompiler.visit_not_regexp_match_op_binaryU  r@  rÔ   c                óD   — t          j        d| j        j        z  ¦  «        ‚)Nz;%s dialect does not support regular expression replacementsr>  r¤  s       rÒ   Úvisit_regexp_replace_op_binaryz*SQLCompiler.visit_regexp_replace_op_binary]  s)   € õ ÔØIØŒlÔñ ñ
ô 
ð 	
rÔ   c           	     ób  — |r5|j         €.|j        €'| j        � | j                             d¬¦  «        | _        |sÞ|j                             | j        ¦  «        }	|	j        r¸|	                     |¦  «        }
 | j	        |
fd||o|j
         ||dœ|¤Ž}|j
        r~t          j        d|¦  «        }|s
J d¦   «         ‚d|                     d¦  «        ›d|                     d	¦  «        ›d
|                     d¦  «        ›d�}|r | j        |fd|dœ|¤Ž}d|z  S |S |s|p|j        p|o| j        }|p|j
        }nd}|r | j        |fddi|¤Ž}|j
        rd|z  }|S |                      |¦  «        }|| j        v rñ| j        |         }||urà|j        s|j        rU|j                             |j        ¦  «        s6|j                             |j        ¦  «        st/          j        d|z  ¦  «        ‚|j
        |j
        k    rt/          j        d|›d�¦  «        ‚|j        s|j        rG|j        r|j        rt/          j        d¦  «        ‚t/          j        d|j        › d|j        › d�¦  «        ‚|x| j        |j        <   | j        |<   | j        }|r@|\  }}|j        D ]3}|j        |v r(||j                 }||                              |¦  «         Œ4|j        rd| _        |r.|rd| _        |r| xj         |hz  c_         n| xj!        |hz  c_!         | j"        |f||j
        |j        dœ|¤Ž}|j
        rd|z  }|S )NT)rX  )Úskip_bind_expressionr’  Úliteral_bindsr3  Úrender_postcompilez&^(.*)\(__\[POSTCOMPILE_(\S+?)\]\)(.*)$rÌ  z(__[POSTCOMPILE_r2   r$  r   z~~REPL~~r$  z~~]))r’  rÖ  r'  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ù  rT  rÆ  r  Údialect_implr·  rÔ  Úbind_expressionrÂ  rJ  re  rB  r˜   r1  r3  rE  Ú_truncate_bindparamrA  r¬   r  Úintersectionr~  r3   rö  Ú_is_crudrA  rY  r·  Ú
isoutparamÚhas_out_parametersrN  rV  rW  rì  )r  ræ  r’  rG  rF  r3  rH  Úis_upsert_setrâ  ÚimplrM  Úwrappedr´  rq  rI  r
  Úexistingrý  r‘  r�  r�  rƒ  s                         rÒ   Úvisit_bindparamzSQLCompiler.visit_bindparame  sÈ  € ð ð	à”Ð'ØÔ"Ð*ØÔ&Ð2à%)Ô%;×%DÒ%DØ,0ð &Eñ &ô &ˆDÔ"ð $ð $	Ø”>×.Ò.¨t¬|Ñ<Ô<ˆDØÔ(ð "Ø"&×"6Ò"6°yÑ"AÔ"A�Ø&˜$œ,Ø#ðà)-Ø*?Ø"/Ð"K¸	Ô8KÐ4KØ$3Ø'9ðð ð ðð �ð Ô&ð ,õ œØAÀ7ñô �Að ÐIÐIÐIÑIÔI˜1ÐIàŸš ™
œ
˜
˜
ØŸš ™
œ
˜
˜
ØŸš ™
œ
˜
˜
ð�Gð %ð ,Ø;˜dÔ;Ø%ðà26Ø5<ðð ð %ð	ð ˜ð  &¨™|Ð+à�àð 	!àð DØÔ,ðDà)ÐB¨dÔ.Bð ð
 +ÐA¨iÔ.AˆLˆLà ˆLàð 	Ø/�$Ô/Øðð Ø15ðØ9?ðð ˆCð Ô"ð #Ø˜s‘l�ØˆJà×'Ò'¨	Ñ2Ô2ˆà�4”:ÐÐØ”z $Ô'ˆHØ˜yÐ(Ð(à”_ð/Ø(1Ô(8ð/à$Ô.×;Ò;Ø!Ô+ñô ð/ð
 %Ô0×=Ò=Ø!Ô-ñô ð/õ Ô*ðAØCGñHñô ð ð Ô'¨9Ô+>Ò>Ð>ÝÔ*Ð*ð :>¸¸ð@ñô ð ð Ô&ð ¨)Ô*<ð ØÔ(ð ¨YÔ-?ð õ "Ô.ð&ñ
ô 
ð 
õ "Ô.ð5°´ð 5ð 5ð #,¤-ð5ð 5ð 5ñ	ô 	ð 	ð 8AÐ@ˆŒ
�9”=Ñ! D¤J¨tÑ$4ð Ô/ˆ
àð 	/Ø#‰JˆD�$ØÔ+ð /ð /�Ø”6˜T�>�>Ø˜bœfœ�BØ˜”H—O’O IÑ.Ô.Ð.øàÔð 	+Ø&*ˆDÔ#àð 	8Ø!ð 0Ø+/�Ô(àð 8ØÐ+Ô+°	¨{Ñ:Ð+Ô+Ð+àÐ(Ô(¨Y¨KÑ7Ð(Ô(à#ˆdÔ#Øð
à%ØÔ)Ø$œ>ð	
ð 
ð
 ð
ð 
ˆð Ôð 	Ø˜3‘,ˆCàˆ
rÔ   c                ó   — t          ¦   «         ‚r  rÞ  )r  r  Ú
dbapi_typer€  s       rÒ   rÞ  zSQLCompiler.render_bind_cast  s   € Ý!Ñ#Ô#Ð#rÔ   c                ó†  — |t           ur|}nz|j        €l|j        €e|                     dd ¦  «        }|r5|t          j        t          j        fvrt          j        d|j	        f¦  «          | j
        t          j        fi |¤ŽS |j        }|j        r| j        } ||||¬¦  «        \  }}	|	S |                      ||j        ¦  «        S )Nrý  z‰Bound parameter '%s' rendering literal NULL in a SQL expression; comparisons to NULL should not use operators outside of 'is' or 'is not')rÖ  )r.   rß  rù  r¿  r!   Úis_Úis_notr&   Úwarn_limitedrA  rÂ  r%   rð  rú  rJ  rÚ  r  r  )
r  ræ  r  rÖ  rÚ  rß  ÚopÚleepr@  rB  s
             rÒ   r1  z$SQLCompiler.render_literal_bindparam  sú   € ð  ¥vÐ-Ð-Ø(ˆEˆEàŒÐ&¨9Ô+=Ð+EØ—V’V˜L¨$Ñ/Ô/�Øð ˜"¥Y¤]µIÔ4DÐ$EÐEÐEÝÔ%ð@ð #œÐ(ñ	ô ð ð $�t”|¥HÔ$5Ð<Ð<¸Ð<Ð<Ð<ØÔ-ˆEàÔð 		DØÔJˆDØ*.¨$ØØØ)Að+ñ +ô +Ñ'ˆIÐ'ð
 $Ð#à×,Ò,¨U°I´NÑCÔCÐCrÔ   rß  r  úsqltypes.TypeEngine[Any]c                óž  — |€8|j         s1|                      t          j                             ¦   «         ¦  «        S |                     | j        ¦  «        }|rL	  ||¦  «        S # t          $ r3}t          j	        dt          j        |¦  «        › d|› d�¦  «        |‚d}~ww xY wt          j	        dt          j        |¦  «        › d|› �¦  «        ‚)a  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   rL   Ú	_instanceÚ_cached_literal_processorr·  r  r3   rö  Úsql_utilÚ_repr_single_value)r  rß  r  Ú	processorÚes        rÒ   r  z SQLCompiler.render_literal_value9  s  € ð ˆ= Ô!;ˆ=ð —<’<¥¤× 7Ò 7Ñ 9Ô 9Ñ:Ô:Ð:à×3Ò3°D´LÑAÔAˆ	Øð 	ð	Ø �y Ñ'Ô'Ð'øÝð ð ð ÝÔ&ð#Ý Ô3°EÑ:Ô:ð#ð #ð ð#ð #ð #ñô ð ðøøøøðøøøõ Ô"ð)ÝÔ/°Ñ6Ô6ð)ð )à!&ð)ð )ñô ð s   Á
A# Á#
B Á-.BÂB c                ó´   — || j         v r| j         |         S |j        }t          |t          j        ¦  «        r|                      d|¦  «        }|| j         |<   |S )Nræ  )rB  rA  rÀ  r   rD   r¨  )r  ræ  rØ  s      rÒ   rN  zSQLCompiler._truncate_bindparam`  sb   € Ø˜œÐ'Ð'Ø”? 9Ô-Ð-à”Mˆ	Ý�i¥Ô!:Ñ;Ô;ð 	KØ×2Ò2°;À	ÑJÔJˆIð &/ˆŒ˜	Ñ"àÐrÔ   Úident_classr
  rD   c                óˆ  — ||f| j         v r| j         ||f         S |                     | j        ¦  «        }t          |¦  «        | j        dz
  k    rd| j                             |d¦  «        }|dt          | j        dz
  d¦  «        …         dz   t          |¦  «        dd …         z   }|dz   | j        |<   n|}|| j         ||f<   |S )Né   r   r   r,  r2   )	r…  Ú	apply_mapr„  rÅ  r‚  r†  r¿  ÚmaxÚhex)r  rj  r
  ÚanonnameÚcounterÚ	truncnames         rÒ   r¨  z!SQLCompiler._truncated_identifierm  sä   € ð ˜Ð $Ô"6Ð6Ð6ØÔ'¨°dÐ(;Ô<Ð<à—>’> $¤-Ñ0Ô0ˆåˆx‰=Œ=˜4Ô,¨qÑ0Ò0Ð0ØÔ.×2Ò2°;ÀÑBÔBˆGà˜�S Ô!2°QÑ!6¸Ñ:Ô:Ð:Ô;Øñå�g‘,”,˜q˜r˜rÔ"ñ#ð ð
 5<¸a±KˆDÔ$ [Ñ1Ð1à ˆIØ4=ˆÔ˜k¨4Ð0Ñ1ØÐrÔ   c                ó   — || j         z  S r  ©r„  ©r  r
  s     rÒ   Ú
_anonymizezSQLCompiler._anonymize‚  s   € Ø�d”mÑ#Ð#rÔ   rI  rJ  Úescaped_fromrK  úOptional[TypeEngine[Any]]Úaccumulate_bind_namesúOptional[Set[str]]Úvisited_bindparamc                ó˜  ‡ — |�|                      |¦  «         |�|                     |¦  «         |s<‰ j                             |¦  «        r"‰ j                             ˆ fd„|¦  «        }	|}|	}|r!‰ j                             ||i¦  «        ‰ _        |rEd|z  }
|r|
S |�8|                     ‰ j        ¦  «        }|j	        r‰  
                    |||
¦  «        }
|
S ‰ j        t          j        u r‰ j        d|iz  }
n‰ j        d|iz  }
|�D‰ j        j        r8|                     ‰ j        ¦  «        }|j
        r‰  
                    |||
¦  «        }
|
S )Nc                óD   •— ‰j         |                      d¦  «                 S )Nr   )r7  r˜   )r´  r  s    €rÒ   rÐ  z.SQLCompiler.bindparam_string.<locals>.<lambda>Ÿ  s   ø€ ˜dÔ8¸¿ºÀ¹¼ÔD€ rÔ   z__[POSTCOMPILE_%s]r
  )Úaddr·  r6  rÕ  rÂ  rX  r    r  r·  Úrender_literal_castrÞ  r©  rv  rw  rG  rF  rç  )r  r
  rI  rJ  rw  rK  ry  r{  rÚ  Únew_namerq  Ú	type_impls   `           rÒ   rì  zSQLCompiler.bindparam_string…  s±  ø€ ð !Ð,Ø!×%Ò% dÑ+Ô+Ð+ØÐ(Ø×$Ò$ TÑ*Ô*Ð*àð 
	 ØÔ&×-Ò-¨dÑ3Ô3ð 	 ð  Ô2×6Ò6ØDÐDÐDÐDØñô �ð  $�Ø�àð 	Ø&*Ô&=×&CÒ&CØ˜tÐ$ñ'ô 'ˆDÔ#ð ð 	5Ø&¨Ñ-ˆCØð ð �
ð Ð)Ø*×BÒBØ”Lñô �	ð Ô0ð PØ×/Ò/°À	È3ÑOÔO�CØˆJØŒZ�=Ô2Ð2Ð2ØÔ/°6¸4°.Ñ@ˆCˆCàÔ# v¨t nÑ4ˆCð Ð&Ø”Ô6ð 'ð '×>Ò>¸t¼|ÑLÔLˆIØÔ)ð LØ×+Ò+¨N¸IÀsÑKÔK�àˆ
rÔ   c                óº   — |                      ¦   «         }|                     dd ¦  «         t          |j        |j        ¦  «        D ]\  }} |j        | fd|i|¤Ž Œd S )NÚcte_opts)Úcopyr�  r÷  rù  Ú_independent_ctes_optsrå  )r  ÚstmtrÚ  Úlocal_kwÚcteÚopts         rÒ   rú  z&SQLCompiler._dispatch_independent_ctesÈ  s~   € Ø—7’7‘9”9ˆØ�Š�Z Ñ&Ô&Ð&ÝØÔ" DÔ$?ñ
ô 
ð 	Cð 	C‰HˆC�ð #ˆCÔ" 4ÐBÐB°#ÐB¸ÐBÐBÐBÐBð	Cð 	CrÔ   rˆ  r[   r‰  ÚashintÚ	fromhintsúOptional[_FromHintsType]Úvisiting_cteúOptional[CTE]rë  úOptional[FromLinter]rƒ  úselectable._CTEOptsc                óÐ  ‡ — ‰                       ¦   «         }	|	‰ j        u sJ ‚||d<   |j        }
t          |
t          j        ¦  «        r‰                      d|
¦  «        }
d}d}|                     ¦   «         }|j        p|j        }|‰ j	        v r�‰ j	        |         \  }}}||
k    sJ ‚||
f}‰ j
        |         }|j        r]|j        rt          j        d¦  «        ‚||
f}|rt          ‰ j        ¦  «        nd}||
fx}}‰ j
        |= |‰ j
        |<   ||fz   ‰ j	        |<   n5|rt          ‰ j        ¦  «        nd}||
f}|‰ j
        v r‰ j
        |         }nd }|�¦||u }||j        u s||u rd}n’||j        u r,|	|= |                     ¦   «         }||u sJ ‚||u sJ ‚‰ j	        |= n]t!          |¦  «        t!          |¦  «        k    s#|j        €|j        �|                     |¦  «        rd}nt          j        d|
z  ¦  «        ‚|s|sd S |j        �D|j        }|j        j        }t          |t          j        ¦  «        r‰                      d|¦  «        }n|}d }|�rQ|‰ j
        |<   ||fz   ‰ j	        |<   |‰ j        vr ‰ j        |fi |¤Ž |�s||	v�r|j        rd‰ _        ‰ j                             ||
¦  «        }|j        s|j        j        rM|j        }d„ |                     d¦  «        D ¦   «         }|d	d
                     ˆ fd„|D ¦   «         ¦  «        z  z  }|                     dd¦  «        du sJ ‚‰ j        s |j        j        ‰ fd|i|¤ŽS  ‰ j        ||j         fi |¤Ž} |j        j        ‰ fddi|¤Ž}|d|›d|›d�z  }|j!        r|d ‰ j        ||j!        fi |¤Žz   z  }||	|<   |rÃ|r|
|j"        | #                    ¦   «         <   |s|r‰ j                             ||
¦  «        S |ri‰ j                             ||¦  «        }‰ j         $                    |
¦  «        r‰ j         %                    |
¦  «        }
|‰  &                    |
¦  «        z  }|S ‰ j                             ||
¦  «        S d S )Nr�  rÀ  TFz6CTE is stated as 'nest_here' in more than one locationr   z5Multiple, unrelated CTEs found with the same name: %rc                ó&   — g | ]\  }}}}}|°
|p|‘ŒS rÎ   rÎ   )rÐ   r,  Ú
proxy_nameÚfallback_label_namer˜  Úrepeateds         rÒ   r™  z)SQLCompiler.visit_cte.<locals>.<listcomp>c  sF   € ð "ð "ð "ñØØ&Ø/ØØ$à'ð"ð
 ,Ð9¨zð"ð "ð "rÔ   r'  rá   c              3  óZ   •K  — | ]%}‰j                              |‰j        ¬ ¦  «        V — Œ&dS )rt  N)r°  Úformat_label_namer„  )rÐ   Úidentr  s     €rÒ   rB  z(SQLCompiler.visit_cte.<locals>.<genexpr>t  sW   øè è € ð "ð "ð !&ð !œM×;Ò;Ø %°´ð <ñ ô ð"ð "ð "ð "ð "ð "rÔ   Úsubqueryr‰  rã   z
(r/  r4  )'r¬  r]  r
  rÀ  r   rD   r¨  Ú_get_reference_cteÚnestingr_  r^  r3   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‰  rŠ  r‹  r�  rë  rƒ  râ  Ú	self_ctesÚcte_nameÚ
is_new_cteÚembedded_in_current_named_cteÚ_reference_cter›  Ú	cte_levelr,  Ú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Ú
recur_colsÚprefixesrš   s   `                             rÒ   r¡  zSQLCompiler.visit_cteÐ  sK  ø€ ð ×(Ò(Ñ*Ô*ˆ	Ø˜DœIÐ%Ð%Ð%Ð%à!$ˆˆ~Ñà”8ˆå�h¥Ô 9Ñ:Ô:ð 	EØ×1Ò1°'¸8ÑDÔDˆHàˆ
Ø(-Ð%à×/Ò/Ñ1Ô1ˆà”+Ð1 Ô!1ˆð ˜TÔ3Ð3Ð3Ø.2Ô.DØô/Ñ+ˆI�qÐ+ð ˜’=�=�=�=à'¨Ð2ˆNØÔ2°>ÔBˆLð
 Ôð Ø$Ô,ð ÝÔ*ð1ñô ð ð
 #,¨XÐ!6�Ø/6Ð=�C ¤
™OœO˜O¸A�	Ø3<¸hÐ2GÐG� àÔ+¨NÐ;Ø:F�Ô'¨Ñ7Ø9GØðKñ :�Ô& ~Ñ6øð
 ,3Ð9�˜DœJ™œ˜¸ˆIØ'¨Ð2ˆNà Ô!8Ð8Ð8Ø#Ô6°~ÔF��à#�àÐ#Ø,8¸LÐ,HÐ)ð �lÔ,Ð,Ð,°°|Ð0CÐ0CØ"�
�
Ø ¤Ð.Ð.ð ˜lÐ+à-9×-LÒ-LÑ-NÔ-NÐ*à1°^ÐCÐCÐCÐCØ1°\ÐAÐAÐAÐAàÔ*Ð+EÐFÐFõ
 ˜#‘Y”Y¥$ |Ñ"4Ô"4Ò4Ð4ð  Ô,Ð8Ø+Ô8ÐDð  ŸKšK¨Ñ5Ô5ð  Eð "'�J�Jõ
 Ô*ð,Ø.6ñ7ñô ð ð
 ð 	˜jð 	Ø�4àŒ>Ð%ØœNˆMØ!$¤Ô!4ÐÝÐ,­hÔ.GÑHÔHð Ø%)×%?Ò%?ØÐ/ñ&ô &Ð"øð  ˆMØ!%Ðàñ D	&Ø69ˆDÔ# NÑ3Ø5CØðGñ 6ˆDÔ" >Ñ2ð  D¤IÐ-Ð-Ø�”˜}Ð7Ð7°Ð7Ð7Ð7à%ñ ;&¨#°YÐ*>Ñ*>Ø”=ð /Ø*.�DÔ'Ø”}×1Ò1°#°xÑ@Ô@�Ø”=ð  C¤KÔ$@ð Ø!$¤�Jð
"ð "ð )×EÒEÀdÑKÔKð"ñ "ô "�Jð  ˜FØŸ	š	ð "ð "ð "ð "ð *4ð	"ñ "ô "ñ ô ññ �Dð —z’z *¨eÑ4Ô4¸Ð=Ð=Ð=Ð=à”zð ?ð :˜3œ;Ô9Øðð Ø%+ðØ/5ðð ð ð  7˜tÔ6Ø˜Sœ]ð ð  Ø.4ð ð  �Hð ;˜CœKÔ:Øðð Ø%)ðØ-3ðð �Eð �D¨h¨h¨h¸¸¸Ð>Ñ>�Dà”=ð Ø˜CÐ"9 $Ô"9Ø˜Sœ]ð#ð #Ø.4ð#ð #ñ ñ �Dð "&�	˜#‘àð 	AØð >Ø5=�Ô! #§-¢-¡/¤/Ñ2àð AÐ"?ð AØ”}×1Ò1°#°xÑ@Ô@Ð@à!ð AØ”}×1Ò1°#Ð7IÑJÔJ�Ø”=×1Ò1°(Ñ;Ô;ð =Ø#œ}×2Ò2°8Ñ<Ô<�HØ˜×7Ò7¸ÑAÔAÑA�Ø�à”}×1Ò1°#°xÑ@Ô@Ð@àˆtrÔ   c                ó`   — |j         rd |d<   |j        r | j        |fi |¤ŽS  | j        |fi |¤ŽS )Nrë  )Újoins_implicitlyÚ_is_lateralÚvisit_lateralÚvisit_aliasrÑ  s      rÒ   Úvisit_table_valued_aliasz$SQLCompiler.visit_table_valued_alias¨  sX   € ØÔ#ð 	%Ø $ˆBˆ}ÑØÔð 	3Ø%�4Ô% gÐ4Ð4°Ð4Ð4Ð4à#�4Ô# GÐ2Ð2¨rÐ2Ð2Ð2rÔ   c                ó   —  | j         |fi |¤ŽS r  )rÍ  rÑ  s      rÒ   Úvisit_table_valued_columnz%SQLCompiler.visit_table_valued_column°  s   € Ø ˆtÔ  Ð/Ð/¨BÐ/Ð/Ð/rÔ   c
           
     óP  ‡ ‡‡
— |r!d‰
vr‰j         sJ ‚‰‰
d<   |	rd‰
vr	d‰
v r|	‰
d<   |�1|j        ‰u r( ‰j        j        ‰ f|||||‰dœ‰
¤Ž}|r
|s|rd|›d�}|S ‰‰
d<   |s|rBt          ‰j        t
          j        ¦  «        r‰                      d‰j        ¦  «        }n‰j        }|r‰ j         	                    ‰|¦  «        S |rÏ|	r||	j
        ‰                     ¦   «         <    ‰j        j        ‰ fd|d	œ‰
¤Ž}|rd|›d�}|‰                      ‰ j         	                    ‰|¦  «        ¦  «        z   }‰j        r5‰j        r.|d
d                     ˆˆ
ˆ fd„‰j        D ¦   «         ¦  «        z  z  }|r"‰|v r‰                      |‰|‰         |¦  «        }|S  ‰j        j        ‰ fd|i‰
¤ŽS )Nrê  rì  )r‰  rŠ  Úiscrudr‹  ÚlateralÚenclosing_aliasr.  r/  rÇ  rÀ  T)r‰  rÆ  r'  rá   c              3  ó¬   •K  — | ]N}‰j                              |j        ¦  «        ›‰j        r d  ‰j        j        j        |j        fi ‰¤Žz  nd›�V — ŒOdS )ú %sr§  N)r°  rÄ  r
  Ú_render_derived_w_typesr·  rÛ  rÂ  r  )rÐ   r  rÀ  râ  r  s     €€€rÒ   rB  z*SQLCompiler.visit_alias.<locals>.<genexpr>ú  sŸ   øè è € ð ð ð  ð !œM×/Ò/°´Ñ9Ô9Ð9ð $)Ô#@ð	!( Ø"M $¤,Ô"EÔ"MØ$'¤Hð#"ð #"Ø06ð#"ð #"ñ!"ð !"ð
 &(ð!(ð	ðð ð ð ð ð rÔ   rÆ  )r¾  rØ  rå  rÀ  r
  r   rD   r¨  r°  r£  rŠ  r*   rª  Ú_supports_derived_columnsÚ_render_derivedr‰   r˜  Úformat_from_hint_text)r  rÀ  r‰  rŠ  rÅ  r‹  r™  rÆ  rÇ  rë  râ  rš   Ú
alias_namerq  s   ``        `   rÒ   rÀ  zSQLCompiler.visit_alias³  sÐ  øøø€ ð ð 	<Ø"¨&Ð0Ð0ð Ô(Ð(Ð(Ð(Ø.3�Ð*Ñ+ð
 ð<à)°Ð7Ð7Ø'¨6Ð1Ð1à0;�Ð,Ñ-àÐ&¨?Ô+BÀeÐ+KÐ+KØ4�E”MÔ4Øð	àØØØ#ØØ %ð	ð 	ð ð	ð 	ˆEð ð *˜Vð * wð *øØ"' % %Ð)�ØˆLà(-ˆFÐ$Ñ%àð 	(�Vð 	(Ý˜%œ*¥hÔ&?Ñ@Ô@ð (Ø!×7Ò7¸ÀÄÑLÔL�
�
à"œZ�
àð -	Ø”=×-Ò-¨e°ZÑ@Ô@Ð@Øð +	Øð BØ7A�Ô! %§/¢/Ñ"3Ô"3Ñ4à4�E”MÔ4ØðØ!¨7ðð Ø6<ðð ˆEð ð *ð *Ø"' % %Ð)�à˜$×9Ò9Ø”×*Ò*¨5°*Ñ=Ô=ñô ñ ˆCð Ô.ð °5Ô3Hð Ø�vØ—I’Ið ð ð ð ð ð ð $)¤7ðñ ô ñ ô ññ �ð$ ð ˜U iÐ/Ð/Ø×0Ò0Ø˜ 	¨%Ô 0°&ñô �ð ˆJð 4�5”=Ô3Øðð Ø%ðØ)/ðð ð rÔ   c                ó(   — d|d<    | j         |fi |¤ŽS )NTr™  ©rÀ  )r  r™  rÚ  s      rÒ   Úvisit_subqueryzSQLCompiler.visit_subquery  s&   € Øˆˆ:‰ØˆtÔ Ð/Ð/¨BÐ/Ð/Ð/rÔ   c                ó.   — d|d<   d | j         |fi |¤Žz  S )NTrÆ  z
LATERAL %srÐ  )r  Úlateral_rÚ  s      rÒ   r¿  zSQLCompiler.visit_lateral  s,   € Øˆˆ9‰ØÐ.˜dÔ.¨xÐ>Ð>¸2Ð>Ð>Ñ>Ð>rÔ   c                ó¬   —  | j         |fddi|¤Ž›d |                     ¦   «         j        | fi |¤Ž›�}|j        �|d |j        j        | fi |¤Žz  z  }|S )Nr‰  Tz TABLESAMPLE z REPEATABLE (%s))rÀ  Ú_get_methodrå  Úseed)r  Útablesampler‰  rÚ  rå  s        rÒ   Úvisit_tablesamplezSQLCompiler.visit_tablesample  s’   € àˆDÔ˜[Ð<Ð<°Ð<¸Ð<Ð<Ð<Ð<Ø8ˆK×#Ò#Ñ%Ô%Ô8¸ÐDÐDÀÐDÐDÐDð
ˆð
 ÔÐ'ØÐ&Ø3�Ô Ô3°DÐ?Ð?¸BÐ?Ð?ññ ˆDð ˆrÔ   c                ó˜   ‡ ‡‡— ‰                      d‰j        ¦  «         d                     ˆˆˆ fd„‰j        D ¦   «         ¦  «        }d|› �S )NrG  rá   c           	   3  óŠ   •K  — | ]=}|D ]8} ‰j         t          j        |d ‰j        iŽ                     ¦   «         fi ‰¤ŽV — Œ9Œ>dS )rå  N)rÂ  r   r   Ú_column_typesr  )rÐ   ÚchunkÚelemrØ  rÚ  r  s      €€€rÒ   rB  z-SQLCompiler._render_values.<locals>.<genexpr>.  s“   øè è € ð 	
ð 	
ð Øð	
ð 	
ð ð ˆDŒLÝ”Ø26ðØ!Ô/ðð ç’*‘,”,ðð ð ð	ð ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rÔ   rÈ  )Ú
setdefaultrG  r‰   Ú_data)r  rØ  rÚ  Útupless   ``` rÒ   Ú_render_valueszSQLCompiler._render_values,  ss   øøø€ Ø
�Š�o wÔ'<Ñ=Ô=Ð=Ø—’ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð !œð	
ñ 	
ô 	
ñ 	
ô 	
ˆð "˜Ð!Ð!Ð!rÔ   c           
     ó‚  ‡ ‡— |j         r‰                      |‰¦  «          ‰ j        |fi ‰¤Ž}|j        rd }nBt	          |j        t          j        ¦  «        r‰                      d|j        ¦  «        }n|j        }|j	        rd}nd}|r·|r |�|nd|j
        |                     ¦   «         <   |�%|j        |u r|j	        rt          j        d¦  «        ‚nn|rdd‰d<   |›d|›d	‰                      ‰ j                             |¦  «        ¦  «        ›d
d                     ˆˆ fd„|j        D ¦   «         ¦  «        ›d	�}n|›d|›d	�}|S )NrÔ  zLATERAL r§  z(unnamed VALUES element)z5Can't use a LATERAL VALUES expression inside of a CTEFr¼  r.  r/  ú (rá   c              3  ó4   •K  — | ]} |j         ‰fi ‰¤ŽV — Œd S r  rä  r  s     €€rÒ   rB  z+SQLCompiler.visit_values.<locals>.<genexpr>a  sL   øè è € ð "ð "à !ð 1˜AÔ0°Ð<Ð<¸Ð<Ð<ð"ð "ð "ð "ð "ð "rÔ   )rù  rú  rá  Ú_unnamedrÀ  r
  r   rD   r¨  r¾  rŠ  r*   rØ  r3   rö  rª  r°  rÄ  r‰   Úcolumns)	r  rØ  r‰  rë  r�  rÚ  ry  r
  rÆ  s	   `    `   rÒ   Úvisit_valueszSQLCompiler.visit_values:  sÇ  øø€ ð Ô$ð 	9Ø×+Ò+¨G°RÑ8Ô8Ð8àˆDÔ Ð.Ð.¨2Ð.Ð.ˆàÔð 	 ØˆDˆDÝ˜œ¥hÔ&?Ñ@Ô@ð 	 Ø×-Ò-¨h¸¼ÑEÔEˆDˆDà”<ˆDàÔð 	Ø ˆGˆGàˆGàð 	,Øð à Ð,�D�DÐ2Lð Ô! '×"3Ò"3Ñ"5Ô"5Ñ6ð Ð'¨LÔ,@ÀGÐ,KÐ,KØÔ&ð ÝÔ*ØOñô ð ðð ð ,Ø&+��?Ñ#à�G�GØ�A�AØ×3Ò3°D´M×4GÒ4GÈÑ4MÔ4MÑNÔNÐNÐNàŸ	š	ð "ð "ð "ð "ð "à%,¤_ð"ñ "ô "ñ ô ð ð ð
��ð !(  ¨¨¨Ð+�ØˆrÔ   c                ó&   — d | j         |fi |¤Ž› d�S r†  )rá  rÑ  s      rÒ   Úvisit_scalar_valueszSQLCompiler.visit_scalar_valuesk  s)   € Ø8Ð&�4Ô& wÐ5Ð5°"Ð5Ð5Ð8Ð8Ð8Ð8rÔ   c                ó   — d|z   S )Nrã   rÎ   )r  Úalias_name_texts     rÒ   rª  z&SQLCompiler.get_render_as_alias_suffixn  s   € Ø˜Ñ'Ð'rÔ   r	  r  r  r  c                óÄ   — |sJ ‚|�|dk    rd| _         d| _        |j        rt          j        d¦  «        ‚| j                             t          ||||¦  «        ¦  «         d S )NÚ*FTzxMost backends don't support SELECTing from a tuple() object.  If this is an ORM query, consider using the Bundle object.)rK  rJ  rä  r3   rö  r«  r·  r  r  s        rÒ   rü  zSQLCompiler._add_to_result_mapq  s‡   € ð ˆˆˆwàˆ?˜g¨šn˜nØ$)ˆDÔ!Ø#'ˆDÔ ØÔð 	ÝÔ"ð4ñô ð ð
 	Ô×#Ò#Ý˜w¨¨g°uÑ=Ô=ñ	
ô 	
ð 	
ð 	
ð 	
rÔ   c                ó.   —  | j         d||d|€i n|fi |¤ŽS )aL  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¤   r  Úcolumn_clause_argsrÚ  s         rÒ   Ú_label_returning_columnz#SQLCompiler._label_returning_columnŠ  sC   € ð )ˆtÔ(ØØØØØ$Ð,ˆBˆBÐ2Dð
ð 
ð ð
ð 
ð 	
rÔ   c                óZ  ‡‡— ‰j                              | j        ¦  «        }|j        r|s|r|                     ‰¦  «        }n‰}|r| j        }|
r|Šˆfd„}n|‰ur|Šˆˆfd„}nd}|	s
J d¦   «         ‚t          ‰t          j        ¦  «        r'|‰urt          |‰j
        ‰j        f¬¦  «        }�nW|}�nS|r'|€
J d¦   «         ‚t          |||‰j        f¬¦  «        }�n*|‰urd}nÎt          ‰t          j        ¦  «        r|o‰j         o‰j        du}n t          ‰t          j        ¦  «        rd}nƒt          ‰t          j        ¦  «        rC‰j        t&          j        t&          j        fv o| j        j         p‰                     ¦   «         p|}n&t          ‰t          j        ¦  «        s
‰j        €d}nd}|rQ|s|
rJ ‚‰j        }t          |t          j        ¦  «        st          j        |¦  «        n|}t          |||f¬¦  «        }n|}|                     |	||¬	¦  «          |j        | fi |¤ŽS )
z.produce labeled columns present in a select().c                ó&   •—  ‰| || f|¦  «         d S r  rÎ   )r	  r
  r  r  rü  s       €rÒ   r¬  z;SQLCompiler._label_select_column.<locals>.add_to_result_mapÅ  s"   ø€ Ø&Ð& w°°w°jÀ%ÑHÔHÐHÐHÐHrÔ   c                ó,   •—  ‰| |‰f|z   |¦  «         d S r  rÎ   )r	  r
  r  r  rü  r¤   s       €€rÒ   r¬  z;SQLCompiler._label_select_column.<locals>.add_to_result_mapÍ  s2   ø€ Ø&Ð&Ø ¨ 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  rL  r·  Ú_has_column_expressionÚcolumn_expressionrü  rÀ  r   rK   r  r
  rØ  rÂ  rH   rÁ  rŸ   Ú
TextClauseÚUnaryExpressionrR  r!   Úis_falseÚis_truer  Ú_wraps_unnamed_columnÚNamedColumnÚ_non_anon_labelÚ_anon_name_labelrD   r‹  rå  )r  r«   r¤   r  r‰  rñ  r
  r“  r”  r’  Úcolumn_is_repeatedÚneed_column_expressionsr¼  rT  Úcol_exprr¬  Úresult_exprÚrender_with_labelrü  s     `               @rÒ   rð  z SQLCompiler._label_select_columnŸ  su  øø€ ð  Œ{×'Ò'¨¬Ñ5Ô5ˆàÔ&ð 	Ø#ð	Ø':ð	ð ×-Ò-¨fÑ5Ô5ˆHˆHàˆHàð 	%ð
 !%Ô 7Ðð
 "ð Ø%6Ð"ðIð Ið Ið Ið Ið Ið
  Ð'Ð'Ø%6Ð"ðð ð ð ð ð øð !%Ðð %ð 	
ð 	
ð:ñ	
ô 	
Ð$õ �f�hœnÑ-Ô-ð I	'Ø˜vÐ%Ð%Ý+Ø˜fœk°f´nÐ5Fðñ ô �‘ð '�‘àð A	'ð Ð&Ð&Ø;ñ 'Ô&Ð&õ (ØØàð Ô$ððñ ô ˆK‰Kð& ˜vÐ%Ð%ð %)Ð!Ð!Ý˜F¥HÔ$9Ñ:Ô:ð I*ð ð 1Ø"Ô-Ð-ð1àœ¨DÐ0ð "Ð!õ
 ˜F¥HÔ$7Ñ8Ô8ð A*Ø$)Ð!Ð!Ý˜F¥HÔ$<Ñ=Ô=ð ?*ðP œÝ%Ô.µ	Ô0AÐBðCð Eà $¤Ô DÐDð
ð ×3Ò3Ñ5Ô5ð
ð ð "Ð!õ" ˜v¥xÔ';Ñ<Ô<ð	*ð Ô*Ð2à$(Ð!Ð!à$)Ð!à ð 'Ø*ð Bð
  2Ð1Ð1Ð1Ø*0Ô*AÐ'õ &Ø+­XÔ-Fñô ð-•HÔ-Ð.AÑBÔBÐBð -ð $õ ,ØÐ1¸j¸]ðñ ô ��ð '�à×!Ò!Ø"7Ø/Ø'ð 	"ñ 	
ô 	
ð 	
ð
 .ˆ{Ô-¨dÐIÐIÐ6HÐIÐIÐIrÔ   c                óF   — |                       ||¦  «        }|r|d|z   z  }|S r,  )Úget_from_hint_text)r  r€  rŸ   ÚhintrÅ  Úhinttexts         rÒ   rÍ  z!SQLCompiler.format_from_hint_textr  s2   € Ø×*Ò*¨5°$Ñ7Ô7ˆØð 	&Ø�s˜X‘~Ñ%ˆGØˆrÔ   c                ó   — d S r  rÎ   )r  Úbyfromss     rÒ   Úget_select_hint_textz SQLCompiler.get_select_hint_textx  ó   € ØˆtrÔ   rŸ   r\   rå  c                ó   — d S r  rÎ   ©r  rŸ   rå  s      rÒ   r  zSQLCompiler.get_from_hint_text{  s	   € ð ˆtrÔ   c                ó   — d S r  rÎ   r  s      rÒ   Úget_crud_hint_textzSQLCompiler.get_crud_hint_text€  r  rÔ   c                ó,   — d                      |¦  «        S r,  r  )r  Ú
hint_textss     rÒ   Úget_statement_hint_textz#SQLCompiler.get_statement_hint_textƒ  s   € Ø�xŠx˜
Ñ#Ô#Ð#rÔ   r,  rø  r)  r(  c                ó  — | j          }|r| j        n| j         d         }|                     || ¦  «        }|d         }|d         }	|r-|s+|                     |                     |	¦  «        d¬¦  «        }
n|                     ||	¬¦  «        }
|
S )NrŸ  r)  r(  rÎ   ©Úexplicit_correlate_fromsÚimplicit_correlate_froms)r—  rø  rƒ  Ú_get_display_fromsÚ
difference)r  Úselect_stmtr‰  rÆ  rÚ  r   r°  r-  r)  r(  rŠ  s              rÒ   Ú_display_froms_for_selectz%SQLCompiler._display_froms_for_select�  s¾   € ð ”z�>ˆØ-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆà#×:Ò:¸;ÈÑMÔMˆàÐ 1Ô2ˆØ˜^Ô,ˆàð 	˜'ð 	Ø!×4Ò4Ø)8×)CÒ)CØ ñ*ô *ð *,ð	 5ñ ô ˆEˆEð "×4Ò4Ø)8Ø)5ð 5ñ ô ˆEð ˆrÔ   Útranslate_select_structurec	           
     óÌ  ‡ ‡‡‡‡‡‡— |�
J d¦   «         ‚d|	d<    ‰j         ‰‰ fi |	¤Ž}
|
j        |	d<   |
j        Š‰ j         }|r‰ j        s|
‰ _        |d up|}‰ j        r0 ‰ j        ‰fd‰i|	¤Ž}|‰ur|
}‰}|Š ‰j         ‰‰ fi |	¤Ž}
|
j        Š|r‰ j        n‰ j        d         }|p+|                     dd¦  «        p|                     dd¦  «        xŠŠ|rdŠ‰sd	|	v r|	d	= ‰                      ‰|
|‰||¦  «        }|	 	                    ¦   «         Š‰ 
                    ddd
œ¦  «         d}‰j        r#‰                      ‰¦  «        \  }}|r||dz   z  }nd }‰j        r‰                      ‰|	¦  «         ‰j        r| ‰ j        ‰‰j        fi |	¤Žz  }| ‰ j        ‰fi |	¤Žz  }d„ ˆˆˆˆˆˆ fd„|
j        D ¦   «         D ¦   «         }‰rU|�St'          t)          d„ |
j        D ¦   «         d„ |j        D ¦   «         ¦  «        ¦  «        Šˆfd„‰ j        D ¦   «         ‰ _        ‰                      |‰|
|||||	¦  «        }‰j        r0ˆ fd„‰j        D ¦   «         }|r|d‰                      |¦  «        z   z  }‰ j        r5|r|r1|st5          ‰ j        ¦  «        nd }‰                      |¬¦  «        |z   }‰j        r|d ‰ j        ‰‰j        fi |	¤Žz   z  }‰ j                             d¦  «         |S )NzpSQLAlchemy 1.4 requires use of the translate_select_structure hook for structural translations of SELECT objectsFr’  r½  r‰  rŸ  r0  r/  r¬  )r§  r’  zSELECT r4  c                ó   — g | ]}|®|‘ŒS r  rÎ   r—  s     rÒ   r™  z,SQLCompiler.visit_select.<locals>.<listcomp>  s)   € ð 
ð 
ð 
àð* ˆ}ð- ð, ˆ}ˆ}rÔ   c                óZ   •— g | ]'\  }}}}}‰                      ‰
|‰	‰‰||||‰¬ ¦
  «
        ‘Œ(S ))r
  r“  r”  r   r  rï  )rÐ   r
  r“  r”  r¤   r•  r‰  rñ  r  r  r  r  s         €€€€€€rÒ   r™  z,SQLCompiler.visit_select.<locals>.<listcomp>   sm   ø€ ð ð ð ñØØØ'ØØð# ×)Ò)ØØØ'ØØ&ØØ)Ø(;Ø'/Ø,Cð *ñ ô ðð ð rÔ   c                ó   — g | ]
\  }}}}}|‘ŒS rÎ   rÎ   ©rÐ   rA  r“  r”  r
  r•  s         rÒ   r™  z,SQLCompiler.visit_select.<locals>.<listcomp>>  ó9   € ð 	ð 	ð 	ñØØ&Ø/Ø Ø$ð ð	ð 	ð 	rÔ   c                ó   — g | ]
\  }}}}}|‘ŒS rÎ   rÎ   r!  s         rÒ   r™  z,SQLCompiler.visit_select.<locals>.<listcomp>H  r"  rÔ   c           
     óp   •— g | ]2\  }}}}t          ||t          ˆfd „|D ¦   «         ¦  «        |¦  «        ‘Œ3S )c              3  óD   •K  — | ]}‰                      ||¦  «        V — Œd S r  r¾  )rÐ   Úor|  s     €rÒ   rB  z6SQLCompiler.visit_select.<locals>.<listcomp>.<genexpr>W  s1   øè è € Ð$FÐ$F¸Q Y§]¢]°1°aÑ%8Ô%8Ð$FÐ$FÐ$FÐ$FÐ$FÐ$FrÔ   )r  rD  )rÐ   rA  r
  rá  r  r|  s        €rÒ   r™  z,SQLCompiler.visit_select.<locals>.<listcomp>U  sc   ø€ ð $ð $ð $ñ *�C˜˜s Eõ #Ø˜�uÐ$FÐ$FÐ$FÐ$FÀ#Ð$FÑ$FÔ$FÑFÔFÈñô ð$ð $ð $rÔ   c                ó:   •— g | ]\  }}|d ‰j         j        fv ¯|‘ŒS ©rí  ©r·  r
  )rÐ   Údialect_nameÚhtr  s      €rÒ   r™  z,SQLCompiler.visit_select.<locals>.<listcomp>h  s<   ø€ ð ð ð á&�\ 2Ø C¨¬Ô):Ð#;Ð;Ð;ð à;Ð;Ð;rÔ   rö  )rƒ  Ú_ambiguous_table_name_mapr7  r—  r-  r  rø  r¿  Ú_setup_select_stackr„  r‹  Ú_hintsÚ_setup_select_hintsrù  rú  r§  r¦  Úget_select_precolumnsÚcolumns_plus_namesrõ  r÷  r«  Ú_compose_select_bodyÚ_statement_hintsr  r]  rÅ  rý  r¨  r�  )r  r  r‰  Úinsert_intor‹  rÿ  Úselect_wraps_forrÆ  rë  râ  r-  r   Úis_embedded_selectÚnew_select_stmtÚcompile_state_wraps_forr°  rŠ  rå  Ú	hint_textÚbyfromÚinner_columnsÚper_dialectr÷  rñ  r  r  r|  s   ```                    @@@@rÒ   Úvisit_selectzSQLCompiler.visit_select±  s	  øøøøøøø€ ð  Ð'Ð'ð-ñ (Ô'Ð'ð +0ˆÐ&Ñ'à:˜Ô:Ø˜ð
ð 
Ø!'ð
ð 
ˆð Ô3ð 	Ð)Ñ*ð $Ô-ˆà”z�>ˆàð 	/˜DÔ.ð 	/Ø!.ˆDÔà+°4Ð7ÐF¸;Ðð
 Ô*ð 	6Ø=˜dÔ=Øðð Ø$*ðØ.4ðð ˆOð  kÐ1Ð1Ø*7Ð'Ø#.Ð Ø-�à B Ô BØ ð!ð !Ø)/ð!ð !�ð ,Ô5�à-5ÐI�Ô)Ð)¸4¼:Àb¼>ˆð ð >Ø�yŠyÐ7¸Ñ?Ô?ð>à�yŠyÐ5°uÑ=Ô=ð	
ÐÐ5ð ð 	(Ø"'Ðð
 #ð 	,Ð':¸fÐ'DÐ'DØÐ*Ð+à×(Ò(Ø˜¨¨v°wÀñ
ô 
ˆð $Ÿ[š[™]œ]ÐØ×!Ò!Ø$)ÀEÐJÐJñ	
ô 	
ð 	
ð ˆàÔð 	Ø $× 8Ò 8¸Ñ EÔ EÑˆI�vØð (Ø˜	 C™Ñ'�øàˆFàÔ(ð 	AØ×+Ò+¨K¸Ñ@Ô@Ð@àÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø6<ðð ñ ˆDð 	Ð*�Ô*¨;ÐAÐA¸&ÐAÐAÑAˆð
ð 
ðð ð ð ð ð ð ð ð ð& #Ô5ð'ñ ô ð
ñ 
ô 
ˆð4 ð "	Ð#3Ð#?õ Ýð	ð 	ð +Ô=ð	ñ 	ô 	ð	ð 	ð 5ÔGð	ñ 	ô 	ñô ñô ˆIð2$ð $ð $ð $ð .2Ô-Að	$ñ $ô $ˆDÔ ð ×(Ò(ØØØØØØØØñ	
ô 	
ˆð Ô'ð 	Hðð ð ð à*5Ô*Fðñ ô ˆKð
 ð HØ˜˜d×:Ò:¸;ÑGÔGÑGÑG�ð Œ9ð 	OÐ0ð 	O°Hð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàÔ ð 	Ø�CÐ1˜$Ô1Ø˜[Ô2ðð Ø6<ðð ñ ñ ˆDð 	Œ
�Š�rÑÔÐàˆrÔ   r«   r2  úTuple[str, _FromHintsType]c                ó€   ‡ — ˆ fd„|j                              ¦   «         D ¦   «         }‰                      |¦  «        }||fS )Nc           	     óv   •— i | ]5\  \  }}}|d ‰j         j        fv ¯||d|                     ‰d¬¦  «        iz  “Œ6S )rí  r
  T)rŠ  ©r·  r
  rå  )rÐ   rž  r·  r  r  s       €rÒ   rs  z3SQLCompiler._setup_select_hints.<locals>.<dictcomp>�  sh   ø€ ð 
ð 
ð 
ñ +Ñ �˜ (Ø˜3 ¤Ô 1Ð2Ð2Ð2ð �8Ø�u×/Ò/°¸TÐ/ÑBÔBÐCñDð 3Ð2Ð2rÔ   )r.  rŒ  r  )r  r«   r:  r9  s   `   rÒ   r/  zSQLCompiler._setup_select_hints~  s[   ø€ ð
ð 
ð 
ð 
ð /5¬m×.AÒ.AÑ.CÔ.Cð
ñ 
ô 
ˆð ×-Ò-¨fÑ5Ô5ˆ	Ø˜&Ð Ð rÔ   c           	     ó.  — |d         }|d         }|dk    r||d<   nf|rd|d         }	t          |	j        ¦  «        }
t          |j        ¦  «        |
k    r0t          j        dd|
|dz   t          |j        ¦  «        fz  ¦  «        ‚|r-|s+|                     |                     |¦  «        d¬¦  «        }n|                     ||¬¦  «        }t          t          |Ž ¦  «        }| 	                    |¦  «        }||||d	œ}| j
                             |¦  «         |S )
Nr)  r(  r   r1  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š  r1  r3   rö  r  r  r�   r+   r    r—  r·  )r  r«   r-  r°  r‰  rÆ  rÿ  r)  r(  r1  ÚnumcolsrŠ  Únew_correlate_fromsÚall_correlate_fromsr  s                  rÒ   r-  zSQLCompiler._setup_select_stackŠ  su  € ð  Ð 1Ô2ˆØ˜^Ô,ˆà˜QÒÐØ &ˆE�*ÑÐØð 	Ø˜ZÔ(ˆHÝ˜(Ô8Ñ9Ô9ˆGå�=Ô3Ñ4Ô4¸Ò?Ð?ÝÔ&ð!ð
 ØØ&¨Ñ*Ý˜FÔ8Ñ9Ô9ð	ñ		ñô ð ð ð 	˜'ð 	Ø!×4Ò4Ø)8×)CÒ)CØ ñ*ô *ð *,ð	 5ñ ô ˆEˆEð "×4Ò4Ø)8Ø)5ð 5ñ ô ˆEõ
 "¥-°Ð"7Ñ8Ô8ÐØ1×7Ò7¸ÑHÔHÐð 0Ø2Ø Ø*ð	*
ð *
ˆ	ð 	Œ
×Ò˜)Ñ$Ô$Ð$àˆrÔ   c	                ój  ‡ ‡‡‡— |d                      |¦  «        z  }‰ j        t          z  r5t          i t	          ¦   «         ¦  «        Š‰ j        t
          z  }	|r‰‰ _        nd Šd}	|s|                     ¦   «         }|r[|dz  }|j        r(|d                      ˆˆˆˆ fd„|D ¦   «         ¦  «        z  }n>|d                      ˆˆˆ fd„|D ¦   «         ¦  «        z  }n|‰  	                    ¦   «         z  }|j
        r ‰ j        |j
        fd‰i‰¤Ž}
|
r|d|
z   z  }|	r‰€J ‚‰                     ¦   «          |j        r| ‰ j        |fi ‰¤Žz  }|j        r ‰ j        |j        fi ‰¤Ž}
|
r|d|
z   z  }|j        r| ‰ j        |fi ‰¤Žz  }|j        r| ‰ j        |fi ‰¤Žz  }|j        �| ‰ j        |fi ‰¤Žz  }|S )	Nrá   Fz 
FROM c           	     ó4   •— g | ]} |j         ‰fd ‰‰dœ‰¤Ž‘ŒS )T)r‰  r‹  rë  rä  )rÐ   Úfr:  rë  râ  r  s     €€€€rÒ   r™  z4SQLCompiler._compose_select_body.<locals>.<listcomp>ã  sZ   ø€ ð 	ð 	ð 	ð ð -˜Ô,Ø ðà#'Ø&,Ø(3ð	ð ð
 %ðð ð	ð 	ð 	rÔ   c                ó2   •— g | ]} |j         ‰fd ‰dœ‰¤Ž‘ŒS )T©r‰  rë  rä  )rÐ   rH  rë  râ  r  s     €€€rÒ   r™  z4SQLCompiler._compose_select_body.<locals>.<listcomp>ð  sW   ø€ ð ð ð ð ð -˜Ô,Ø ðà#'Ø(3ðð ð %ð	ð ðð ð rÔ   rë  z 
WHERE z	 
HAVING )r‰   rk  r}  r�  r�   r~  rë  Úrstripr.  ry  Ú_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:  r   râ  Úwarn_lintingÚtrë  s   `     ` `  @rÒ   r2  z SQLCompiler._compose_select_body¾  sÈ  øøøø€ ð 	�—	’	˜-Ñ(Ô(Ñ(ˆàŒ<Õ4Ñ4ð 	!Ý$ R­©¬Ñ/Ô/ˆKØœ<­,Ñ6ˆLØð /Ø#.�Ô øàˆKØ ˆLð ð 	!Ø—;’;‘=”=ˆDàð 	(Ø�JÑˆDàŒ}ð Ø˜Ÿ	š	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð "'ð	ñ 	ô 	ñô ñ ��ð ˜Ÿ	š	ðð ð ð ð ð ð "'ðñ ô ñ
ô 
ñ 
��ð �D×%Ò%Ñ'Ô'Ñ'ˆDàÔ!ð 	(Ø1�Ô1ØÔ&ðð Ø4?ðØCIðð ˆAð ð (Ø˜ a™Ñ'�àð 	ØÐ*Ð*Ð*Ø×ÒÑÔÐàÔ#ð 	;ØÐ(�DÔ(¨Ð:Ð:°6Ð:Ð:Ñ:ˆDàÔ"ð 	)Ø1�Ô1ØÔ'ðð Ø+1ðð ˆAð ð )Ø˜ qÑ(Ñ(�àÔ#ð 	;ØÐ(�DÔ(¨Ð:Ð:°6Ð:Ð:Ñ:ˆDàÔ*ð 	=ØÐ*�DÔ*¨6Ð<Ð<°VÐ<Ð<Ñ<ˆDàÔ!Ð-ØÐ*�DÔ*¨6Ð<Ð<°VÐ<Ð<Ñ<ˆDàˆrÔ   c                ó\   ‡ ‡— d                      ˆˆ fd„|D ¦   «         ¦  «        }|r|dz  }|S )Nr4  c              3  ób   •K  — | ])\  }}|d v s|‰j         j        k    ¯ |j        ‰fi ‰¤ŽV — Œ*dS ))Nrí  NrA  )rÐ   Úprefixr*  rÚ  r  s      €€rÒ   rB  z1SQLCompiler._generate_prefixes.<locals>.<genexpr>  sb   øè è € ð 
ð 
á$�˜Ø˜{Ð*Ð*¨l¸d¼lÔ>OÒ.OÐ.Oð &ˆFÔ% dÐ1Ð1¨bÐ1Ð1à.OÐ.OÐ.OÐ.Oð
ð 
rÔ   r  )r  r†  r»  rÚ  r:  s   `  ` rÒ   r¦  zSQLCompiler._generate_prefixes  sZ   øø€ Ø—’ð 
ð 
ð 
ð 
ð 
à(0ð
ñ 
ô 
ñ 
ô 
ˆð
 ð 	Ø�c‰MˆFØˆrÔ   c                ó0  — | j         sdS |rš|dk    r”t          j        ¦   «         }t          | j                              ¦   «         ¦  «        D ]Y}| j        |                     ¦   «                  \  }}}|j        p|j        }||k    p
|o||dz   k    }	|r|	sŒI| j         |         ||<   ŒZn| j         }|sdS t          d„ |D ¦   «         ¦  «        }
|  	                    |
¦  «        dz   }|d 
                    d„ |                     ¦   «         D ¦   «         ¦  «        z  }|dz  }|ry|dk    rst          |                     ¦   «         ¦  «        D ]Q}| j        |                     ¦   «                  \  }}}| j         |= | j        ||f= | j        |                     ¦   «         = ŒR|S )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   c                ó   — g | ]	}|j         ‘Œ
S rÎ   )r¢  )rÐ   rˆ  s     rÒ   r™  z2SQLCompiler._render_cte_clause.<locals>.<listcomp>K  s   € Ð<Ð<Ð<°˜cœmÐ<Ð<Ð<rÔ   r4  ú, 
c                ó   — g | ]}|‘ŒS rÎ   rÎ   )rÐ   Útxts     rÒ   r™  z2SQLCompiler._render_cte_clause.<locals>.<listcomp>N  s   € Ð >Ð >Ð >¨ Ð >Ð >Ð >rÔ   z
 )r]  r&   r«  r¤  Úkeysr_  rš  r›  ry   Úget_cte_preambler‰   rÔ  r^  )r  r÷  r‚  r]  rˆ  r°  r¬  rƒ  r›  Úis_rendered_levelr`  Úcte_texts               rÒ   rý  zSQLCompiler._render_cte_clause'  sí  € ð Œyð 	Ø�2ð ð 	˜]¨QÒ.Ð.ÝÔ#Ñ%Ô%ˆDÝ˜DœIŸNšNÑ,Ô,Ñ-Ô-ð +ð +�Ø04Ô0FØ×*Ò*Ñ,Ô,ô1Ñ-�	˜8 Xð œ+Ð9¨Ô)9�Ø$-°Ò$>ð %Ø+ÐN°	¸]ÈQÑ=NÒ0Nð "ð  ð Ð$5ð Øà œI cœN��S‘	�	ð+ð ”9ˆDàð 	Ø�2ÝÐ<Ð<°tÐ<Ñ<Ô<Ñ=Ô=ˆà×(Ò(¨Ñ8Ô8¸3Ñ>ˆØ�F—K’KÐ >Ð >°·²±´Ð >Ñ >Ô >Ñ?Ô?Ñ?ˆØ�EÑˆàð 	E˜]¨QÒ.Ð.Ý˜DŸIšI™KœKÑ(Ô(ð Eð E�Ø04Ô0FØ×*Ò*Ñ,Ô,ô1Ñ-�	˜8 Xð ”I˜c�NØÔ+¨Y¸Ð,AÐBØÔ*¨3×+AÒ+AÑ+CÔ+CÐDÐDàˆrÔ   c                ó   — |rdS dS )NzWITH RECURSIVEÚWITHrÎ   )r  r¢  s     rÒ   r]  zSQLCompiler.get_cte_preamble\  s   € Øð 	Ø#Ð#à�6rÔ   c                óR   — |j         rt          j        dd¬¦  «         |j        rdndS )zcCalled 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Ò   r0  z!SQLCompiler.get_select_precolumnsb  sG   € ð
 Ôð 	ÝÔ ð3ð
 ðñ ô ð ð %Ô.Ð6ˆ{ˆ{°BÐ6rÔ   c                óf   —  | j         |j        t          t          j                 fi |¤Ž}|rd|z   S dS )z5allow dialects to customize how GROUP BY is rendered.z
 GROUP BY r§  )r  rM  r©  r!   Úcomma_op)r  r«   rÚ  Úgroup_bys       rÒ   r‡  zSQLCompiler.group_by_clauser  sO   € ð 1�4Ô0ØÔ$¥iµ	Ô0BÔ&Cð
ð 
ØGIð
ð 
ˆð ð 	Ø (Ñ*Ð*à�2rÔ   c                óf   —  | j         |j        t          t          j                 fi |¤Ž}|rd|z   S dS )z5allow dialects to customize how ORDER BY is rendered.z
 ORDER BY r§  )r  rO  r©  r!   rj  )r  r«   rÚ  rT  s       rÒ   rˆ  zSQLCompiler.order_by_clause}  sO   € ð 1�4Ô0ØÔ$¥iµ	Ô0BÔ&Cð
ð 
ØGIð
ð 
ˆð ð 	Ø (Ñ*Ð*à�2rÔ   c                ó   — dS )Nz FOR UPDATErÎ   rh  s      rÒ   rQ  zSQLCompiler.for_update_clause‰  s   € Øˆ}rÔ   r†  rA   Úreturning_colsúSequence[_ColumnsClauseElement]r  c               óª   ‡ ‡‡‡— ˆˆˆ ˆfd„‰                      dt          j        |¦  «        ¬¦  «        D ¦   «         }dd                     |¦  «        z   S )Nc           
     óF   •— g | ]\  }}}}} ‰j         ‰	|‰f||||d œ‰¤Ž‘ŒS ))r”  r   r
  r“  )rò  )
rÐ   r
  r“  r”  r¤   r•  rÚ  r  r  r†  s
         €€€€rÒ   r™  z0SQLCompiler.returning_clause.<locals>.<listcomp>”  st   ø€ ð 
ð 
ð 
ñØØØ#ØØð )ˆDÔ(ØØØ#ð	ð %8Ø#+ØØ%ð	ð 	ð ð	ð 	ð
ð 
ð 
rÔ   T)Úcolsú
RETURNING rá   )r¥  r   Ú_select_iterablesr‰   ©r  r†  rn  r  rÚ  ræ  s   `` `` rÒ   Úreturning_clausezSQLCompiler.returning_clauseŒ  s}   øøøø€ ð
ð 
ð 
ð 
ð 
ð 
ð 
ð" ×2Ò2Ø�4Ô1°.ÑAÔAð 3ñ ô ð#
ñ 
ô 
ˆð, ˜dŸiši¨Ñ0Ô0Ñ0Ð0rÔ   c                ó¢   — d}|j         �|d | j        |j         fi |¤Žz   z  }|j        �%|j         €|dz  }|d | j        |j        fi |¤Žz   z  }|S )Nr§  z
 LIMIT z

 LIMIT -1z OFFSET )Ú_limit_clauserÂ  Ú_offset_clause)r  r«   rÚ  rå  s       rÒ   r’  zSQLCompiler.limit_clause¬  s}   € ØˆØÔÐ+Ø�K , $¤,¨vÔ/CÐ"JÐ"JÀrÐ"JÐ"JÑJÑJˆDØÔ Ð,ØÔ#Ð+Ø˜Ñ%�Ø�J  ¤¨fÔ.CÐ!JÐ!JÀrÐ!JÐ!JÑJÑJˆDØˆrÔ   c                ó˜  — |€|j         }|j        }ndddœ}d}|j        �I|j        }|r)|                     |¦  «        r|                     ¦   «         } | j        |fi |¤Ž}	|d|	z  z  }n|r|dz  }|�X|r)|                     |¦  «        r|                     ¦   «         }|d | j        |fi |¤Ž›|d         rdnd›d	|d
         rdnd›�z  }|S )NF)r  Ú	with_tiesr§  z
 OFFSET %s ROWSz
 OFFSET 0 ROWSz
 FETCH FIRST r  z PERCENTz ROWS r{  z	WITH TIESÚONLY)r�  Ú_fetch_clause_optionsry  Ú_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‘  zSQLCompiler.fetch_clause¶  sI  € ð ÐØ!Ô/ˆLØ#)Ô#?Ð Ð à/4À5Ð#IÐ#IÐ àˆàÔ Ð,Ø"Ô1ˆMà2ðGà×-Ò-¨mÑ<Ô<ðGð !.× DÒ DÑ FÔ F�Ø%˜œ mÐ:Ð:°rÐ:Ð:ˆJØÐ'¨*Ñ4Ñ4ˆDˆDØð 	'ØÐ&Ñ&ˆDàÐ#à2ðEà×-Ò-¨lÑ;Ô;ðEð  ,×BÒBÑDÔD�ØˆDØ�”˜\Ð0Ð0¨RÐ0Ð0Ð0Ø2°9Ô=ÐE�
�
À2ÐEÐEØ3°KÔ@ÐL��ÀfÐLðñ ˆDð
 ˆrÔ   c
                óH  — |r|j         |j        |<   |s|�r| j                             |¦  «        }|r@|r>| j                             |¦  «        dz   | j                             |j        ¦  «        z   }n‰| j                             |j        ¦  «        }|	�	|	j        |ur_|s]|r[|j        |v rR|                      d||j                 ¦  «        }||  	                    | j         
                    d |¦  «        ¦  «        z   }|r"||v r|                      ||||         |¦  «        }|S dS )Nr1  rÀ  r§  )ÚfullnamerŠ  r°  rÆ  rÇ  rÄ  r
  rØ  r¨  rª  r£  rÍ  )r  rŸ   r‰  rÅ  rŠ  r‹  Ú
use_schemarë  r½  rÇ  râ  rÊ  rq  Ú	anon_names                 rÒ   Úvisit_tablezSQLCompiler.visit_tableß  sx  € ð ð 	6Ø',¤~ˆKÔ˜eÑ$àð #	�Vñ #	Ø#œ}×>Ò>¸uÑEÔEÐàð Ð.ð à”M×.Ò.Ð/?Ñ@Ô@Øñà”m×)Ò)¨%¬*Ñ5Ô5ñ6ð �ð ”m×)Ò)¨%¬*Ñ5Ô5�ð (Ð/Ø*Ô2¸%Ð?Ð?à,ð @ð 1ð @ð œ
Ð&>Ð>Ð>à $× :Ò :ØÐ!9¸%¼*Ô!Eñ!ô !�Ið  × ?Ò ?Øœ×2Ò2°4¸ÑCÔCñ!ô !ñ �Cð ð ˜U iÐ/Ð/Ø×0Ò0Ø˜ 	¨%Ô 0°&ñô �ð ˆJà�2rÔ   c                óz  — |r[|j                              t          j        t	          |j        j        ¦  «        t	          |j        j        ¦  «        ¦  «        ¦  «         |j        rd}n|j	        rd}nd} |j        j
        | fd|dœ|¤Ž|z    |j        j
        | fd|dœ|¤Žz   dz    |j        j
        | fd|i|¤Žz   S )Nz FULL OUTER JOIN z LEFT OUTER JOIN z JOIN TrJ  ú ON rë  )r‹  r‹  rÒ  rî  r*   rŠ   r+   rž   r‡   Úisouterrå  Úonclause)r  r‰   r‰  rë  râ  Ú	join_types         rÒ   Ú
visit_joinzSQLCompiler.visit_join  s-  € Øð 	ØÔ×$Ò$ÝÔ!Ý˜dœiÔ5Ñ6Ô6Ý˜dœjÔ6Ñ7Ô7ñô ñô ð ð Œ9ð 	!Ø+ˆIˆIØŒ\ð 	!Ø+ˆIˆIà ˆIà(ˆDŒIÔ(ØðØ!¨{ðð Ø>Dðð ð ñð ,ˆdŒjÔ+ØðØ!¨{ðð Ø>Dðð ñ	ð ñð /ˆdŒmÔ.Øðð Ø"-ðØ17ðð ñð	
rÔ   c                ó¸   ‡ — ˆ fd„|j                              ¦   «         D ¦   «         }|j        |v r(‰                      ||j        ||j                 d¦  «        }||fS )Nc                óB   •— i | ]\  \  }}}|d ‰j         j        fv ¯||“ŒS r(  r)  )rÐ   rŸ   r·  r9  r  s       €rÒ   rs  z1SQLCompiler._setup_crud_hints.<locals>.<dictcomp>3  sC   ø€ ð 
ð 
ð 
á+Ñ �˜ )Ø˜3 ¤Ô 1Ð2Ð2Ð2ð �9à2Ð2Ð2rÔ   T)r.  rŒ  rŸ   rÍ  )r  r†  Ú
table_textÚdialect_hintss   `   rÒ   Ú_setup_crud_hintszSQLCompiler._setup_crud_hints2  s|   ø€ ð
ð 
ð 
ð 
à/3¬{×/@Ò/@Ñ/BÔ/Bð
ñ 
ô 
ˆð
 Œ:˜Ð&Ð&Ø×3Ò3Ø˜DœJ¨°d´jÔ(AÀ4ñô ˆJð ˜jÐ(Ð(rÔ   rV   rS  c                óD  — | j         j        }|j        }|j        }|€dS |j        r!| j                             |j        d¦  «        }n | j                             |j        d¦  «        }||z  r|S |j	        r+t          j        d|d         › d| j         j        › d�¦  «        ‚dS )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_characteristicsræ  Ú
is_autoincÚ_sentinel_col_autoinc_lookupr¿  Údefault_characterizationÚ _sentinel_col_non_autoinc_lookupÚis_explicitr3   rC  r
  )r  rŸ   Úsentinel_optsÚsentinel_characteristicsÚ	sent_colsÚbitmasks         rÒ   Ú_get_sentinel_column_for_tablez*SQLCompiler._get_sentinel_column_for_table^  sé   € ð œÔGˆØ#(Ô#IÐ à,Ô4ˆ	àÐØ�4à#Ô.ð 	ØÔ7×;Ò;Ø(ÔAÀ1ñô ˆGˆGð Ô;×?Ò?Ø(ÔAÀ1ñô ˆGð ˜7Ñ"ð 	ØÐà#Ô/ð 	õ Ô)ð
@˜) Aœ,ð 
@ð 
@à”<Ô$ð
@ð 
@ð 
@ñô ð ð ˆtrÔ   ri   Úcompiled_parametersú%List[_MutableCoreSingleExecuteParams]Úgeneric_setinputsizesr^  Ú
batch_sizerO  rQ  r­  r¬  ú Iterator[_InsertManyValuesBatch]c              #  óØ  ‡ ‡‡‡1‡2‡3‡4‡5‡6‡7‡8‡9‡:K  — ‰ j         }|€J ‚|j        sd Š1nt          j        |j        Ž Š1t	          ‰¦  «        }	|j        r‰ j        j        sd}
d}nM‰ j        j        r|r!‰ j	        r|j
        �|j        r|j        sd}
d}n|j        r|j        s‰ j	        rd}
d}nd}
d}|
r`t          t          dt!          ‰|¦  «        ¦  «        d¦  «        D ]1\  }\  Š9}t#          |‰9‰‰9g‰1r ‰1|¦  «        gng d||	||¦
  «
        V — Œ2d S |r!t%          j        ‰ j        j        |¬¦  «        Š:nd Š:|j        }‰:r ‰:|¦  «        }d|› d�}|                     |d¦  «        }‰ j        j        }|rCt	          ‰ j        ¦  «        }t	          |j        ¦  «        }||z
  }t7          |||z
  |z  ¦  «        }t          d	t9          ‰¦  «        ¦  «        }t          d	t9          |¦  «        ¦  «        }d }d}|	|z  |	|z  rdnd
z   }|j        }|€J ‚‰:rˆ:fd„|D ¦   «         }d
xŠ6Š7‰ j        s¤‰ j        r‰ j        Š4ni Š4t?          ‰d
         ¦  «        }ˆ4ˆ fd„Š3|j        rd}nd}dd                      ˆ3fd„|D ¦   «         ¦  «        › |› d�}| !                    ˆ4fd„|D ¦   «         ¦  «        }ˆfd„| "                    |¦  «        D ¦   «         }dŠ5nód}t?          ¦   «         }i }|j        rd|› d�Š5nd|› d�Š5t?          ¦   «         Š2|j        D ]}‰2 #                    |d         ¦  «         Œ‰2r_‰ j$        }|€J ‚ˆ2fd„t          |¦  «        D ¦   «         } t7          | ¦  «        Š6tK          | ¦  «        dz   Š7t	          | ¦  «        ‰7‰6z
  k    sJ ‚‰ j&        r2tO          j(        ‰ j)        ¦  «        }!tO          j*        |!› d�d‰5¦  «        Š5|�r©|d
|…         }"|d
|…         }#g |d
|…<   g |d
|…<   |r|}$nt	          |"¦  «        }$‰r%d„ ˆfd„tW          |$¦  «        D ¦   «         D ¦   «         }‰ j        �r8|j,        }%|%t	          |"d
         ¦  «        k    rdx}&}'|"}(n/|"d
         d ‰6…         }&|"d
         ‰7d …         }'ˆ6ˆ7fd„|"D ¦   «         }(|j        r7d                      ˆ5fd„t          |"¦  «        D ¦   «         ¦  «        d d…         })n‰5|$z  d d…         })‰ j&        rE|%d
k    r?|'rJ ‚‰6dz   }*|%|$z  |*z   }+t[          ˆ fd„tW          |*|+¦  «        D ¦   «         ¦  «        },|)|,z  })|                     d|)¦  «        }-t[          t\          j/         0                    |(¦  «        ¦  «        }.|&|.z   |'z   }.nØg }/| 1                    ¦   «         }.t          |"¦  «        D ]‰\  Š8Š9|                     d te          ‰8¦  «        ¦  «        }0|j        r#|0                     d!te          ‰8¦  «        ¦  «        }0|/ 3                    |0¦  «         |. #                    ˆ8ˆ9fd"„|D ¦   «         ¦  «         ŒŠ|                     dd                      |/¦  «        ¦  «        }-t#          |-|.||"‰1rˆ1fd#„|#D ¦   «         ng |$|||d¦
  «
        V — |dz  }|�°§d S d S )$NTFzKSequence[Tuple[_DBAPISingleExecuteParams, _MutableCoreSingleExecuteParams]]r   ©r­  r.  r/  Ú__EXECMANY_TOKEN__zList[Sequence[Any]]r   c                ó8   •— g | ]\  }}}}|| ‰|¦  «        |f‘ŒS rÎ   rÎ   )rÐ   r  rA  r*  ÚstÚrsts        €rÒ   r™  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<listcomp>/  sB   ø€ ð "ð "ð "á&�C˜˜d Bð �c˜3˜3˜t™9œ9 bÐ)ð"ð "ð "rÔ   c                ó˜   •— | D ]E}‰                      ||¦  «        }|                     ‰j        d|iz  ‰j        d|› d�iz  ¦  «        }ŒF|S )Nr
  Ú__EXECMANY_INDEX__)r¿  rã  rF  )r\  Ú	formattedrA  rX  r  s      €€rÒ   Úapply_placeholderszISQLCompiler._deliver_insertmanyvalues_batches.<locals>.apply_placeholders?  sq   ø€ Øð ð �CØ,×0Ò0°°cÑ:Ô:�CØ )× 1Ò 1ØÔ)¨V°S¨MÑ9ØÔ)Ø! cÐ#=Ð#=Ð#=Ð>ñ?ñ!ô !�I�Ið
 !Ð rÔ   z, _IMV_VALUES_COUNTERr§  rá   c              3  ó:   •K  — | ]\  }}}} ‰||¦  «        V — Œd S r  rÎ   )rÐ   r,  r¯  Ú	bind_keysr°  s       €rÒ   rB  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>M  sL   øè è € ð 6ð 6á.�A�q˜) Yð #Ð" 9¨iÑ8Ô8ð6ð 6ð 6ð 6ð 6ð 6rÔ   c              3  óX   •K  — | ]$\  }}}}|D ]}‰                      ||¦  «        V — ŒŒ%d S r  r¾  )rÐ   r,  r²  rA  rX  s       €rÒ   rB  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>R  sf   øè è € ð 4ð 4á&�A�q˜!˜YØ$ð4ð 4ð ð #×&Ò& s¨CÑ0Ô0ð4ð 4ð 4ð 4ð 4ð 4ð 4rÔ   c                ó.   •— i | ]}|‰d          |         “ŒS ©r   rÎ   )rÐ   rA  r8  s     €rÒ   rs  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<dictcomp>W  s4   ø€ ð ð ð àð �Z ”] 3Ô'ðð ð rÔ   z, _IMV_VALUES_COUNTER), z), r$  c                ó"   •— h | ]\  }}|‰v ¯	|’ŒS rÎ   rÎ   )rÐ   rn  r
  Úall_names_we_will_expands      €rÒ   rÓ   z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<setcomp>u  s3   ø€ ð (ð (ð (á!˜˜TØÐ7Ð7Ð7ð à7Ð7Ð7rÔ   z\d+r³  c                ó    — g | ]\  }}}|||f‘ŒS rÎ   rÎ   )rÐ   Únew_keyÚlen_r  s       rÒ   r™  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<listcomp>—  s5   € ð +ð +ð +á*˜  sð ˜d CÐ(ð+ð +ð +rÔ   c              3  ó>   •K  — | ]}‰D ]\  }}}|› d |› �||fV — ŒŒdS )r,  NrÎ   )rÐ   r‰  rA  rº  r  r¤  s        €rÒ   rB  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>™  si   øè è € ð /ð /à!Ø.Cð/ð /ñ +˜C  sð  Ð)Ð) %Ð)Ð)¨4°Ð5ð/ð /ð /ð /ð /ð /ð /rÔ   rÎ   c              3  ó,   •K  — | ]}|‰‰…         V — Œd S r  rÎ   )rÐ   rr  Úexpand_pos_lower_indexÚexpand_pos_upper_indexs     €€rÒ   rB  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>®  sC   øè è € ð &ð &àð Ð0Ð1GÐGÔHð&ð &ð &ð &ð &ð &rÔ   c              3  ód   •K  — | ]*\  }}‰                      d t          |¦  «        ¦  «        V — Œ+dS )Ú_IMV_VALUES_COUNTERN)rã  rÏ   )rÐ   r  r,  Úexecutemany_values_w_commas      €rÒ   rB  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>µ  sX   øè è € ð  ð  ñ !%  1ð 7×>Ò>Ø 5µs¸1±v´vñô ð ð  ð  ð  ð  ð  rÔ   éþÿÿÿc              3  ó.   •K  — | ]}‰j         › |› �V — Œd S r  r/  ©rÐ   r  r  s     €rÒ   rB  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>Ò  sE   øè è € ð &ð &àð  Ô>ÐCÀÐCÐCð&ð &ð &ð &ð &ð &rÔ   ÚEXECMANY_INDEX__rÀ  c                ó,   •— i | ]}|› d ‰› �‰|         “ŒS )Ú__rÎ   )rÐ   rA  r  Úparams     €€rÒ   rs  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<dictcomp>ó  s)   ø€ ÐNÐNÐN°s˜C˜˜ 1˜˜¨¨c¬
ÐNÐNÐNrÔ   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS rÎ   rÎ   )rÐ   rƒ  Ú_sentinel_from_paramss     €rÒ   r™  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<listcomp>  s%   ø€ ÐHÐHÐH°2Ð*Ð*¨2Ñ.Ô.ÐHÐHÐHrÔ   )4rT  rV  rR  rp  rÅ  rL  r·  Úsupports_default_metavalueÚsupports_multivalues_insertr«  rT  rR  rY  rX  r  r   r÷  r[  Ú	functoolsÚpartialr°  rÃ  rM  rã  Úinsertmanyvalues_max_parametersrB  rN  Úminr¤  rv  rX  r�   r‰   rO  r  r‹  r<  rn  rM  re  rf  rH  rÂ  ÚrangerP  rD  rÒ  rÓ  Úfrom_iterabler„  rÏ   r·  );r  r7  r8  r¢  r¤  r¥  rQ  r­  ÚimvÚ	lenparamsÚuse_row_at_a_timeÚ
downgradedrc  Úcompiled_paramÚimv_single_values_exprÚexecutemany_valuesÚ
max_paramsÚtotal_num_of_paramsÚnum_params_per_batchÚnum_params_outside_of_batchÚbatchesÚcompiled_batchesr_  rd  rN  Úall_keysÚimv_values_counterÚformatted_values_clauseÚkeys_to_replaceÚbase_parametersrÝ  r<  Úall_expand_positionsÚescapedr`  Úcompiled_batchrb  Únum_ins_paramsÚextra_params_leftÚextra_params_rightÚbatch_iteratorÚexpanded_values_stringr”  r{   rº  r\  r]  Úreplaced_values_clausesÚfmvrÊ  r·  r°  rX  rÁ  r½  r¾  r  rÈ  r¬  s;   ` ` `                                            @@@@@@@@@@rÒ   Ú!_deliver_insertmanyvalues_batchesz-SQLCompiler._deliver_insertmanyvalues_batchesœ  sO
  øøøøøøøøøøøøøè è € ð Ô$ˆØˆˆˆàÔ&ð 	Ø$(Ð!Ð!å$,Ô$7ØÔ(ð%Ð!õ ˜
‘O”Oˆ	ØÔð 0	 t¤|Ô'Nð 0	ð !%ÐØˆJˆJØ”Ô9ð !	Ø#ð!	àÔ$ð!	ð Ô$Ð,àÔ1ð -ð  Ô4ð -ð !%ÐØˆJˆJàÔ+ð	àÔ,ð	ð Ô$ð	ð !%ÐØˆJˆJà %ÐØˆJàð 	Ý5>ÝØaÝ˜
Ð$7Ñ8Ô8ñô ð ñ6ô 6ð ð Ñ1�Ñ1˜5 .õ -ØØØ)Ø�Gð 1ð Ð.Ð.¨~Ñ>Ô>Ð?Ð?ààØØØ+Øñô ð ð ð ð ð  ˆFàð 	ÝÔ#Ø”Ô7Ø%9ðñ ô ˆCˆCð
 ˆCà!$Ô!7ÐØð 	AØ%( SÐ)?Ñ%@Ô%@Ð"à:Ð!7Ð:Ð:Ð:ÐØ×%Ò%Ð&8Ð:NÑOÔOˆ	ð ”\ÔAˆ
Øð 	Ý"% d¤oÑ"6Ô"6ÐÝ#& sÔ'=Ñ#>Ô#>Ð à#Ð&:Ñ:ð (õ ØàÐ"=Ñ=Ø+ñ,ñô ˆJõ Ð,­d°:Ñ.>Ô.>Ñ?Ô?ˆÝØ!¥4Ð(;Ñ#<Ô#<ñ
ô 
Ðð HLÐØˆØ! ZÑ/Ø˜ZÑ'Ð.ˆAˆA¨Qñ
ˆð !Ô3ÐØ!Ð-Ð-Ð-àð 	ð"ð "ð "ð "à*<ð"ñ "ô "Ðð ;<Ð;ÐÐ!7àŒð N	ØÔ&ð (Ø%)Ô%<Ð"Ð"à%'Ð"å˜: aœ=Ñ)Ô)ˆHð!ð !ð !ð !ð !ð !ð Ô'ð (Ø%<Ð"Ð"à%'Ð"ð''¨D¯IªIð 6ð 6ð 6ð 6à2Dð6ñ 6ô 6ñ -ô -ð ''ð "ð''ð ''ð ''Ð#ð
 '×3Ò3ð 4ð 4ð 4ð 4à*<ð4ñ 4ô 4ñ ô ˆOð
ð ð ð à#×.Ò.¨Ñ?Ô?ðñ ô ˆOð
 *,Ð&Ð&à&(Ð#Ý!™eœeˆOØ ˆOàÔ'ð MàHÐ.ÐHÐHÐHð +Ð*ð .MÐ1GÐ-LÐ-LÐ-LÐ*å14±´Ð$ØÔ.ð 9ð 9�Ø(×/Ò/°°Q´Ñ8Ô8Ð8Ð8ð (ð Ø"Ô.�Ø"Ð.Ð.Ð.ð(ð (ð (ð (å%.¨{Ñ%;Ô%;ð(ñ (ô (Ð$õ
 *-Ð-AÑ)BÔ)BÐ&Ý),Ð-AÑ)BÔ)BÀQÑ)FÐ&åÐ,Ñ-Ô-Ø-Ð0FÑFòGð Gð Gð Gð Ô"ð Ýœ) DÔ$GÑHÔH�Ý-/¬VØÐ$Ð$Ð$ dÐ,Fñ.ô .Ð*ð ñ D	Ø˜A˜j˜LÔ)ˆEØ-¨a°
¨lÔ;ˆNà$&ˆG�A�j�LÑ!Ø-/Ð˜Q˜z˜\Ñ*àð 0Ø%/Ð"Ð"å%(¨¡Z¤ZÐ"à$ð ð+ð +ð/ð /ð /ð /å%*Ð+=Ñ%>Ô%>ð/ñ /ô /ð+ñ +ô +Ð'ð Œñ XØ!$Ô!B�ð "¥S¨¨q¬¡]¤]Ò2Ð2Ø=?Ð?Ð%Ð(:Ø%*�N�Nà(-¨a¬Ð1HÐ2HÐ1HÔ(IÐ%Ø).¨q¬Ð2HÐ2IÐ2IÔ)JÐ&ð&ð &ð &ð &ð &à!&ð&ñ &ô &�Nð
 Ô+ð àŸšð  ð  ð  ð  õ )2°%Ñ(8Ô(8ð	 ñ  ô  ñ ô ð �r�cô.Ð*Ð*ð 4Ð6HÑHØ�r�cô.Ð*ð Ô&ð P¨>¸AÒ+=Ð+=ð  2Ð1Ð1Ð1à2°QÑ6�EØ(Ð,>Ñ?À%ÑG�Cõ !&ð &ð &ð &ð &å!& u¨cÑ!2Ô!2ð&ñ &ô &ñ !ô !�Ið .DÀiÑ-OÐ*à%.×%6Ò%6Ø(Ð*@ñ&ô &Ð"õ ',Ý”O×1Ò1°.ÑAÔAñ'ô 'Ð#ð
 &Ø)ñ*à(ñ)ð $Ð#ð +-Ð'Ø&5×&:Ò&:Ñ&<Ô&<Ð#å )¨%Ñ 0Ô 0ð 
ð 
‘H�A�uØ1×9Ò9Ø*­C°©F¬Fñô �Cð Ô/ð IØ!ŸkškÐ*?ÅÀQÁÄÑHÔH˜à+×2Ò2°3Ñ7Ô7Ð7Ø'×.Ò.ØNÐNÐNÐNÐN¸oÐNÑNÔNñô ð ð ð &/×%6Ò%6Ø(Ø—I’IÐ5Ñ6Ô6ñ&ô &Ð"õ
 )Ø"Ø#Ø'Øð -ðÐHÐHÐHÐH¸ÐHÑHÔHÐHàà"ØØØ'Øñô ð ð ð ð  ˜‰MˆHðI ñ D	ð D	ð D	ð D	ð D	rÔ   c                ó.  ‡ ‡!—  |j         |‰ fi |¤Ž}|j        }|�||d<   d}n‰ j         }|r#d‰ _        ‰ j        s|‰ _        ‰ j        s|‰ _        ‰ j                             t          ¦   «         t          ¦   «         |dœ¦  «         d}d }‰ j        r|€g }t          j
        ‰ |||fd|i|¤Ž}‰ j        r7|�5t          |¦  «        }‰ j        r‰ j        �‰ xj        |z  c_        n|‰ _        |j        }	|	sE‰ j        j        s9‰ j        j        s-‰ j        j        s!t'          j        d‰ j        j        z  ¦  «        ‚|j        r^‰ j        j        s!t'          j        d‰ j        j        z  ¦  «        ‚‰ j        s|j        r|j        rt'          j        d	¦  «        ‚|j        }	n|j        }	‰ j        }
‰ j        j        }d
}|j        r| ‰ j        ||j        fi |¤Žz  }|dz  }|
                     |j        ¦  «        }|j         r‰  !                    ||¦  «        \  }}|j"        r‰  #                    ||¦  «         ||z  }|	s|s%|dd $                    d„ |	D ¦   «         ¦  «        z  z  }|j%        }d }d }d}‰ j        p|j        }|rÜ|j&        }|�«|sJ ‚d„ |	D ¦   «         }g }|D ]B}||vrd } n9‰  '                    |¦  «        }|||         vrd } n|                     |¦  «         ŒC|€3‰ j        j(        tR          j*        z  rd}n|d         j+        r
J d¦   «         ‚tY          |¦  «        tY          |¦  «        z   }‰  -                    |||¬¦  «        }‰ j.        r|d|z   z  }nd }|j/        �w ‰ j0        ‰ j        d         d         fddi|¤Ž}‰ j1        rE‰ j        j2        r9|st          ‰ j        ¦  «        nd }|d‰  3                    |d¬¦  «        ›|›�z  }�n1|d|z  z  }�n'|	sO|rM|dz  }|rDti          d‰ j        j5        |	||j        |j6        d u||rt          |¦  «        nd|¬¦	  «	        ‰ _7        �nÖ|j        r,|dd $                    d„ |j8        D ¦   «         ¦  «        ›�z  }�n£|�rx|�r‰ j        j(        tR          j9        z  ró|j:        sìd}‰ j        j(        tR          j;        z  }|pdŠ!d $                    ˆ!fd„|	D ¦   «         ¦  «        }d $                    ˆ!fd„ty          |	¦  «        D ¦   «         ¦  «        }|r0d $                    ˆ!ˆ fd„ty          |	¦  «        D ¦   «         ¦  «        }n.d $                    ˆ!fd „ty          |	¦  «        D ¦   «         ¦  «        }ˆ!fd!„|	D ¦   «         }|d"|› d#|› d$|› d%�z  }n,d}|	}d $                    d&„ |	D ¦   «         ¦  «        }|d'|› d(�z  }ti          d||||j        |j6        d u||rt          |¦  «        nd|||¬)¦  «        ‰ _7        n(d $                    d*„ |	D ¦   «         ¦  «        }|d'|› d(�z  }|j6        � ‰ j0        |j6        fi |¤Ž} | r|d| z   z  }|r‰ j.        s|d|z   z  }‰ j1        r>‰ j        j2        s2|st          ‰ j        ¦  «        nd }‰  3                    |d¬¦  «        |z   }‰ j         =                    d¦  «         |S )+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á   c                ó   — g | ]	\  }}}}|‘Œ
S rÎ   rÎ   )rÐ   r,  r*  s      rÒ   r™  z,SQLCompiler.visit_insert.<locals>.<listcomp>„  s    € Ð>Ð>Ð>™-˜!˜T 1 a�Ð>Ð>Ð>rÔ   c                ó   — i | ]
\  }}}}||“ŒS rÎ   rÎ   )rÐ   r  r,  Úparam_namess       rÒ   rs  z,SQLCompiler.visit_insert.<locals>.<dictcomp>œ  s2   € ð "ð "ð "á.˜˜Q  ;ð ˜ð"ð "ð "rÔ   zTsentinel selection rules should have prevented us from getting here for this dialect©r  r4  rŸ  r3  r4  r�  rÉ  z DEFAULT VALUES)rQ  rR  rT  rU  rW  z VALUES c              3  óZ   K  — | ]&}d d                      d„ |D ¦   «         ¦  «        z  V — Œ'dS )r'  rá   c              3  ó$   K  — | ]\  }}}}|V — Œd S r  rÎ   ©rÐ   r,  rß  s      rÒ   rB  z5SQLCompiler.visit_insert.<locals>.<genexpr>.<genexpr>  s*   è è € Ð LÐ L©>¨1¨a°¸ Ð LÐ LÐ LÐ LÐ LÐ LrÔ   Nr  )rÐ   Úcrud_param_sets     rÒ   rB  z+SQLCompiler.visit_insert.<locals>.<genexpr>  s\   è è € ð ð ð 'ð Ø—y’yÐ LÐ L¸^Ð LÑ LÔ LÑLÔLñNðð ð ð ð ð rÔ   rÎ   c                ó&   •— g | ]\  }}}}|‰v¯|‘ŒS rÎ   rÎ   )rÐ   r  r,  rß  Úadd_sentinel_sets       €rÒ   r™  z,SQLCompiler.visit_insert.<locals>.<listcomp>   s7   ø€ ð ð ð á,˜C  E¨1ØÐ&6Ð6Ð6ð à6Ð6Ð6rÔ   c              3  ó<   •K  — | ]\  }}|d          ‰v¯d|› �V — ŒdS )r   ÚpNrÎ   )rÐ   r  Úcprû  s      €rÒ   rB  z+SQLCompiler.visit_insert.<locals>.<genexpr>'  sI   øè è € ð %ð %á˜˜2Ø˜!”uÐ$4Ð4Ð4ð ˜�G�Gà4Ð4Ð4Ð4ð%ð %rÔ   c              3  ó¬   •K  — | ]N\  }\  }}}}|‰vr<‰                      |j        |j                             ‰j        ¦  «        d |› �¦  «        n|V — ŒOdS ©rý  N)rÞ  r  r  r·  )rÐ   r  r  r,  r*  rû  r  s        €€rÒ   rB  z+SQLCompiler.visit_insert.<locals>.<genexpr>5  s‘   øè è € ð 0ð 0ñ 1˜AÑ0  Q¨¨að  #Ð*:Ð:Ð:ð !×1Ò1Ø #¤Ø #¤× @Ò @ÀÄÑ NÔ NØ ' A  ñô ð ð "&ð0ð 0ð 0ð 0ð 0ð 0rÔ   c              3  ó>   •K  — | ]\  }\  }}}}|‰vrd |› �n|V — ŒdS r   rÎ   )rÐ   r  r  r,  r*  rû  s        €rÒ   rB  z+SQLCompiler.visit_insert.<locals>.<genexpr>D  sY   øè è € ð 0ð 0á0˜AÑ0  Q¨¨að %(Ð/?Ð$?Ð$?˜˜Q˜˜˜ÀTð0ð 0ð 0ð 0ð 0ð 0rÔ   c                ó(   •— g | ]}|d          ‰v¯|‘ŒS rµ  rÎ   )rÐ   rÝ  rû  s     €rÒ   r™  z,SQLCompiler.visit_insert.<locals>.<listcomp>K  s3   ø€ ð &ð &ð &àØ˜A”wÐ&6Ð6Ð6ð à6Ð6Ð6rÔ   z SELECT z FROM (VALUES (z)) AS imp_sen(z#, sen_counter) ORDER BY sen_counterc                ó   — g | ]	\  }}}}|‘Œ
S rÎ   rÎ   rø  s      rÒ   r™  z,SQLCompiler.visit_insert.<locals>.<listcomp>^  s    € ÐDÐDÐD™~˜q ! U¨A�UÐDÐDÐDrÔ   z	 VALUES (r/  )rL  rM  rN  rP  rQ  rR  rT  rU  rV  rW  rY  c                ó   — g | ]	\  }}}}|‘Œ
S rÎ   rÎ   rø  s      rÒ   r™  z,SQLCompiler.visit_insert.<locals>.<listcomp>w  s    € Ð@Ð@Ð@™>˜1˜a ¨�Ð@Ð@Ð@rÔ   )>rƒ  r7  r—  r9  r²  r-  r·  r�   rv  r   Ú_get_crud_paramsrÅ  rM  rZ  Úsingle_paramsr·  Úsupports_default_valuesrË  Úsupports_empty_insertr3   rö  r
  Ú_has_multi_parametersrÌ  r?  Ú
_returningÚ_sort_by_parameter_orderr°  r§  r¦  Úformat_tablerŸ   r.  r”  rù  rú  r‰   Úuse_insertmanyvaluesÚuse_sentinel_columnsrO  r–  rh  rq  Ú_insert_sentinelr¤  rv  rC  r«   rÂ  r]  Úcte_follows_insertrý  rK  Údefault_metavalue_tokenÚ_post_values_clauserT  Úall_multi_paramsrs  Úis_default_metavalue_onlyrt  r  r�  )"r  Úinsert_stmtr{  r�  rÚ  r-  r   Úcounted_bindparamÚcrud_params_structÚcrud_params_singler°  r  rå  r’  r,  r  Únamed_sentinel_paramsÚadd_sentinel_colsrW  rn  Ú_params_by_colÚ_add_sentinel_colÚ
param_namerv  Úselect_textr÷  Úembed_sentinel_valueÚrender_bind_castsr”  ÚcolnamesÚcolnames_w_castrN  Úpost_values_clauserû  s"   `                                @rÒ   Úvisit_insertzSQLCompiler.visit_insert  sx
  øø€ ð ;˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆð $Ô-ˆàÐ#Ø!-ˆBˆ~ÑØˆHˆHàœ:�~ˆHàð 	3Ø ˆDŒMØÔ)ð 7Ø)6�Ô&ØÔ%ð 3Ø%2�Ô"àŒ
×Òå#&¡5¤5Ý #¡¤Ø)ðð ñ	
ô 	
ð 	
ð Ðð !Ðð Œ?ð 	#˜|Ð3ð
 !#Ðå!Ô2ØØØØð	
ð 
ð
 0ð
ð ð
ð 
Ðð Œ?ð 	?Ð0Ð<Ý #Ð$5Ñ 6Ô 6ÐØÔ"ð ?ØÔ)Ð5ØÐ*Ô*Ð.?Ñ?Ð*Ô*Ð*à->�DÔ*à/Ô=Ðð #ð
	à”LÔ8ð
	ð ”LÔ;ð
	ð ”LÔ6ð	
	õ Ô"ðà!œ\Ô.ñ/ñô ð ð Ô.ð 	BØ”<Ô;ð ÝÔ&ð1à37´<Ô3DñEñô ð ð Ô'ðØ+6Ô+AðàÔ6ðõ Ô&ðIñô ð ð "4Ô!AÐÐà!3Ô!AÐà”=ˆØ"&¤,Ô"FÐàˆàÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø68ðð ñ ˆDð 	�‰ˆØ×*Ò*¨;Ô+<Ñ=Ô=ˆ
àÔð 	LØ ×2Ò2°;À
ÑKÔK‰MˆAˆzàÔ(ð 	=Ø×+Ò+¨K¸Ñ<Ô<Ð<à�
Ñˆàð 	Ð%<ð 	Ø�G˜dŸišiØ>Ð>Ð+=Ð>Ñ>Ô>ñô ñ ñ ˆDð  2ÔFÐØ9=ÐØ ÐØ!ÐàÔ0ÐJ°KÔ4JˆØð H	$Ø 2Ô GÐØ Ð,Ø+Ð+Ð+Ð+ð"ð "à2Dð"ñ "ô "�ð )+Ð%Ø):ð 
=ð 
=Ð%Ø(°Ð>Ð>Ø04Ð-Ø˜Ø!%×!CÒ!CØ)ñ"ô "�Jð "¨Ð8IÔ)JÐJÐJØ04Ð-Ø˜Ø)×0Ò0°Ñ<Ô<Ð<Ð<à(Ð0ð œÔGÝ6ÔHñIðð -1Ð)Ð)ð $5°QÔ#7Ô#Hð ð ðDñô ÐHõ "& nÑ!5Ô!5½Ð=NÑ8OÔ8OÑ!O�à#×4Ò4ØØØ$,ð  5ñ  ô  Ðð Ô-ð /Ø˜Ð.Ñ.Ñ.�øð  $ÐàÔÐ)à&˜$œ,Ø”
˜2”Ð3Ô4ðð ØBFðØJLðð ˆKð Œyð 
,˜Tœ\Ô<ð 
,Ø7?Ð I¥ D¤J¡¤ ÀT�Ø�Ø×+Ò+Ø&3Ø04ð ,ñ ô ð ð  �Kðñ �‘ð ˜ Ñ+Ñ+�‘Ø#ð O	=Ð(?ð O	=ØÐ%Ñ%ˆDØ#ð Ý):ØØ”LÔ8Ø&Ø%à#Ô<ð $Ô7¸tÐCà%6à2CÐJ�Ð-Ñ.Ô.Ð.Èà&7ð*ñ *ô *�Ô&ùð" Ô0ð {	=ØˆDØ—	’	ð ð ð +=Ô*Mðñ ô ñ ô ð ðñ ˆD‰Dð "ñ s	=à!ñYAð ”LÔCÝ2ÔIñJðYAð ,ÔEðYAð (,Ð$ð ”LÔCÝ2ÔJñKð "ð
 $5Ð#:¸Ð à,0¯IªIðð ð ð à0Bðñ ô ñ-ô -Ð)ð  Ÿ9š9ð %ð %ð %ð %å!*Ð+=Ñ!>Ô!>ð%ñ %ô %ñ ô �ð %ð ð '+§i¢ið 0ð 0ð 0ð 0ð 0õ 5>Ø.ñ5ô 5ð0ñ 0ô 0ñ 'ô '�O�Oð '+§i¢ið 0ð 0ð 0ð 0å4=Ø.ñ5ô 5ð0ñ 0ô 0ñ 'ô '�Oð&ð &ð &ð &à 2ð&ñ &ô &Ð"ð ð+˜ð +ð +Ø 9ð+ð +à"*ð+ð +ð +ñ��ð (-Ð$Ø%7Ð"Ø,0¯IªIØDÐDÐ1CÐDÑDÔDñ-ô -Ð)ð Ð@Ð$=Ð@Ð@Ð@Ñ@�å%6Ø %Ø#<Ø#5Ø.?Ø)4Ô)MàÔ3¸4Ð?à!2à.?ÐF•CÐ)Ñ*Ô*Ð*ÀQà$9Ø"3Ø%9ð&ñ &ô &ˆDÔ"Ð"ð& )-¯	ª	Ø@Ð@Ð-?Ð@Ñ@Ô@ñ)ô )Ð%ð Ð<Ð 9Ð<Ð<Ð<Ñ<ˆDàÔ*Ð6Ø!- ¤ØÔ/ð"ð "Ø35ð"ð "Ðð "ð 1Ø˜Ð0Ñ0Ñ0�àð 	+ DÔ$Bð 	+Ø�CÐ*Ñ*Ñ*ˆDàŒ9ð 	˜Tœ\Ô<ð 	Ø3;ÐE�C ¤
™OœO˜OÀˆMà×'Ò'Ø"/Ø,0ð (ñ ô ð ñ	ð ð 	Œ
�Š�rÑÔÐàˆrÔ   c                ó   — dS )z3Provide a hook for MySQL to add LIMIT to the UPDATENrÎ   )r  Úupdate_stmts     rÒ   Úupdate_limit_clausezSQLCompiler.update_limit_clause”  ó   € àˆtrÔ   c                ó   — dS )z3Provide a hook for MySQL to add LIMIT to the DELETENrÎ   )r  Údelete_stmts     rÒ   Údelete_limit_clausezSQLCompiler.delete_limit_clause˜  r(  rÔ   c                ó,   — d|d<    |j         | fddi|¤ŽS )z|Provide a hook to override the initial table clause
        in an UPDATE statement.

        MySQL overrides this.

        Tr‰  rÅ  rä  )r  r&  Ú
from_tableÚextra_fromsrÚ  s        rÒ   Úupdate_tables_clausez SQLCompiler.update_tables_clauseœ  s-   € ð ˆˆ8‰Ø,ˆzÔ,¨TÐEÐE¸$ÐEÀ"ÐEÐEÐErÔ   c                ó    — t          d¦  «        ‚)z~Provide 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_clausezSQLCompiler.update_from_clause¦  s   € õ "ð%ñ
ô 
ð 	
rÔ   r&  r@   c                ó¼  ‡—  |j         || fi |¤Ž}t          rt          |t          ¦  «        sJ ‚|j        }|�||d<   d}n| j         }|r#d| _        | j        s|| _        | j        s|| _        | j	        t          z  r5t          i t          ¦   «         ¦  «        }| j	        t          z  }|r|| _        nd }d}|j        }t!          |¦  «        }	|	rEt          t#          |j        ¦  «        ¦  «        Šˆfd„|D ¦   «         }
‰                     |¦  «        }n
g }
|j        h}| j                             |||dœ¦  «         d}|j        r| | j        ||j        fi |¤Žz  } | j        ||j        |
fd|i|¤Ž}t1          j        | |||fi |¤Ž}|j        }|j        r|                      ||¦  «        \  }}nd }|j        r|                      ||¦  «         ||z  }|dz  }|d	                     d
„ tA          d|¦  «        D ¦   «         ¦  «        z  }| j!        s|j"        r1| j#        r*|d|  $                    || j!        p|j"        |¬¦  «        z   z  }|r" | j%        ||j        |
|fd|i|¤Ž}|r|d|z   z  }|j&        r | j'        |j&        fd|i|¤Ž}|r|d|z   z  }|  (                    |¦  «        }|r|d|z   z  }| j!        s|j"        r1| j#        s*|d|  $                    || j!        p|j"        |¬¦  «        z   z  }| j)        r1|stU          | j        ¦  «        nd }|  +                    |¬¦  «        |z   }|r|€J ‚| ,                    d¬¦  «         | j         -                    d¦  «         |S )Nr�  FTc                ó   •— g | ]}|‰v¯|‘Œ	S rÎ   rÎ   )rÐ   rH  Ú
main_fromss     €rÒ   r™  z,SQLCompiler.visit_update.<locals>.<listcomp>Ý  s*   ø€ ð "ð "ð "Ø¨!°:Ð*=Ð*=�Ð*=Ð*=Ð*=rÔ   rõ  zUPDATE rë  z SET rá   c              3  ó0   K  — | ]\  }}}}|d z   |z   V — ŒdS )ú=NrÎ   )rÐ   r,  r*  rß  s       rÒ   rB  z+SQLCompiler.visit_update.<locals>.<genexpr>  sG   è è € ð 
ð 
á!��4˜ ð �3‰J˜Ñð
ð 
ð 
ð 
ð 
ð 
rÔ   zList[Tuple[Any, str, str, Any]]r4  rõ  ú WHERE rö  ÚUPDATE©rŸ  rŸ  ).rƒ  r   rÀ  rB   r7  r—  r:  r²  r-  rk  r}  r�  r�   r~  rë  Ú_extra_fromsr.  r+   rŸ   r    r·  r§  r¦  r/  r   r  r  r.  r”  rù  rú  r‰   r   r?  r
  rC  rv  r3  rL  r$  r'  r]  rÅ  rý  r   r�  )r  r&  r�  rÚ  r-  r   rë  rR  r.  Úis_multitableÚrender_extra_fromsr)  rå  r’  r  Úcrud_paramsr“  Úextra_from_textrS  r’  r÷  r6  s                        @rÒ   Úvisit_updatezSQLCompiler.visit_update´  s   ø€ ð ;˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆõ ð 	=Ý˜m­^Ñ<Ô<Ð<Ð<Ð<Ø#Ô-ˆàÐ#Ø!-ˆBˆ~ÑØˆHˆHàœ:�~ˆHàð 	3Ø ˆDŒMØÔ)ð 7Ø)6�Ô&ØÔ%ð 3Ø%2�Ô"àŒ<Õ4Ñ4ð 	!Ý$ R­©¬Ñ/Ô/ˆKØœ<­,Ñ6ˆLØð /Ø#.�Ô øàˆKØ ˆLà#Ô0ˆÝ˜[Ñ)Ô)ˆàð 		2å�]¨;Ô+<Ñ=Ô=Ñ>Ô>ˆJð"ð "ð "ð "Ø&ð"ñ "ô "Ðð )×.Ò.¨{Ñ;Ô;ˆOˆOà!#ÐØ*Ô0Ð1ˆOàŒ
×Òà#2Ø /Ø)ðð ñ	
ô 	
ð 	
ð ˆàÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø68ðð ñ ˆDð /�TÔ.ØØÔØð
ð 
ð $ð	
ð
 ð
ð 
ˆ
õ "Ô2Ø�+˜}¨hð
ð 
Ø:<ð
ð 
Ðð )Ô6ˆàÔð 	!Ø(,×(>Ò(>Ø˜Zñ)ô )Ñ%ˆM˜:˜:ð !ˆMàÔ(ð 	=Ø×+Ò+¨K¸Ñ<Ô<Ð<à�
Ñˆà�‰ˆØ�—	’	ð 
ð 
å%)Ø1°;ñ&ô &ð
ñ 
ô 
ñ 
ô 
ñ 	
ˆð Ô"ð 	 kÔ&<ð 	ØÔ-ð Ø˜˜d×3Ò3ØØÔ+ÐE¨{Ô/EØ(0ð 4ñ ô ñ ñ �ð ð 
	.Ø5˜dÔ5ØØÔ!Ø"Øð	ð ð
 (ðð ðð ˆOð ð .Ø˜˜oÑ-Ñ-�àÔ&ð 	&Ø1�Ô1ØÔ+ðð Ø9DðØHJðð ˆAð ð &Ø˜	 A™Ñ%�à×/Ò/°Ñ<Ô<ˆØð 	'Ø�C˜,Ñ&Ñ&ˆDð Ô#ð	Ø'2Ô'=ð	àÔ0ð	ð �C˜$×/Ò/ØØÔ'ÐA¨;Ô+AØ$,ð 0ñ ô ñ ñ ˆDð Œ9ð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàð 	1ØÐ*Ð*Ð*Ø×Ò xÐÑ0Ô0Ð0àŒ
�Š�rÑÔÐàˆrÔ   c                ó    — t          d¦  «        ‚)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.  r2  rÚ  s         rÒ   Údelete_extra_from_clausez$SQLCompiler.delete_extra_from_clauseH  s   € õ "ð%ñ
ô 
ð 	
rÔ   c                ó$   —  |j         | fdddœ|¤ŽS )NT)r‰  rÅ  rä  )r  r*  r-  r.  rÚ  s        rÒ   Údelete_table_clausezSQLCompiler.delete_table_clauseX  s3   € Ø,ˆzÔ,Øð
Ø dð
ð 
Ø.0ð
ð 
ð 	
rÔ   c                ó,  —  |j         || fi |¤Ž}|j        }|�||d<   d}n| j         }|r#d| _        | j        s|| _        | j        s|| _        | j        t          z  r5t          i t          ¦   «         ¦  «        }| j        t          z  }|r|| _        nd }d}|j        }|j        h                     |¦  «        }	| j                             |	|	|dœ¦  «         d}
|j        r|
 | j        ||j        fi |¤Žz  }
|
dz  }
	 |                      ||j        ||¬¦  «        }nJ# t&          $ r= |                      ||j        |¦  «        }|r|                      |j        |¬¦  «        }Y nw xY wt+          j        | |||fi |¤Ž |j        r|                      ||¦  «        \  }}nd }|j        r|                      ||¦  «         |
|z  }
| j        s|j        r1| j        r*|
d|                      || j        p|j        |¬	¦  «        z   z  }
|r" | j        ||j        ||fd
|i|¤Ž}|r|
d|z   z  }
|j         r | j!        |j         fd
|i|¤Ž}|r|
d|z   z  }
|  "                    |¦  «        }|r|
d|z   z  }
| j        s|j        r1| j        s*|
d|                      || j        p|j        |¬	¦  «        z   z  }
| j#        r1|stI          | j        ¦  «        nd }|  %                    |¬¦  «        |
z   }
|r|€J ‚| &                    d¬¦  «         | j         '                    d¦  «         |
S )Nr�  FTrõ  zDELETE úFROM )rë  r4  rõ  rë  r9  rö  ÚDELETEr;  rŸ  )(rƒ  r7  r—  r8  r²  r-  rk  r}  r�  r�   r~  rë  r<  rŸ   r    r·  r§  r¦  rF  Ú	TypeErrorrÂ  r   r  r.  r”  rù  rú  r?  r
  rC  rv  rD  rL  r$  r+  r]  rÅ  rý  r   r�  )r  r*  r�  rÚ  r-  r   rë  rR  r.  r)  rå  r’  r,  r“  r@  rS  r’  r÷  s                     rÒ   Úvisit_deletezSQLCompiler.visit_delete]  s£  € Ø:˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆð $Ô-ˆàÐ#Ø!-ˆBˆ~ÑØˆHˆHàœ:�~ˆHàð 	3Ø ˆDŒMØÔ)ð 7Ø)6�Ô&ØÔ%ð 3Ø%2�Ô"àŒ<Õ4Ñ4ð 	!Ý$ R­©¬Ñ/Ô/ˆKØœ<­,Ñ6ˆLØð /Ø#.�Ô øàˆKØ ˆLà#Ô0ˆà&Ô,Ð-×3Ò3°KÑ@Ô@ˆØŒ
×Òà#2Ø /Ø)ðð ñ	
ô 	
ð 	
ð ˆàÔ ð 	ØÐ+�DÔ+Ø˜[Ô2ðð Ø68ðð ñ ˆDð 	�‰ˆð	MØ×1Ò1ØØÔ!ØØ'ð	 2ñ ô ˆJˆJøõ ð 	Mð 	Mð 	Mð ×1Ò1Ø˜[Ô.°ñô ˆJð ð MØ—L’L Ô!2À�LÑLÔL�øøð	Møøøõ 	Ô˜d K°ÀÐOÐOÈBÐOÐOÐOàÔð 	!Ø(,×(>Ò(>Ø˜Zñ)ô )Ñ%ˆM˜:˜:ð !ˆMàÔ(ð 	=Ø×+Ò+¨K¸Ñ<Ô<Ð<à�
Ñˆð Ô#ð	Ø'2Ô'=ð	àÔ,ð	ð �C˜$×/Ò/ØØÔ'ÐA¨;Ô+AØ$,ð 0ñ ô ñ ñ ˆDð ð 
	.Ø;˜dÔ;ØØÔ!ØØð	ð ð
 (ðð ðð ˆOð ð .Ø˜˜oÑ-Ñ-�àÔ&ð 	&Ø1�Ô1ØÔ+ðð Ø9DðØHJðð ˆAð ð &Ø˜	 A™Ñ%�à×/Ò/°Ñ<Ô<ˆØð 	'Ø�C˜,Ñ&Ñ&ˆDð Ô#ð	Ø'2Ô'=ð	àÔ0ð	ð �C˜$×/Ò/ØØÔ'ÐA¨;Ô+AØ$,ð 0ñ ô ñ ñ ˆDð Œ9ð 	OØ3;ÐE�C ¤
™OœO˜OÀˆMØ×*Ò*¸Ð*ÑGÔGÈ$ÑNˆDàð 	1ØÐ*Ð*Ð*Ø×Ò xÐÑ0Ô0Ð0àŒ
�Š�rÑÔÐàˆs   Ã<D ÄAE"Å!E"c                ó<   — d| j                              |¦  «        z  S )NzSAVEPOINT %s©r°  Úformat_savepoint©r  Úsavepoint_stmtrÚ  s      rÒ   Úvisit_savepointzSQLCompiler.visit_savepointà  s   € Ø ¤× >Ò >¸~Ñ NÔ NÑNÐNrÔ   c                ó<   — d| j                              |¦  «        z  S )NzROLLBACK TO SAVEPOINT %srM  rO  s      rÒ   Úvisit_rollback_to_savepointz'SQLCompiler.visit_rollback_to_savepointã  s&   € Ø)¨D¬M×,JÒ,JØñ-
ô -
ñ 
ð 	
rÔ   c                ó<   — d| j                              |¦  «        z  S )NzRELEASE SAVEPOINT %srM  rO  s      rÒ   Úvisit_release_savepointz#SQLCompiler.visit_release_savepointè  s&   € Ø%¨¬×(FÒ(FØñ)
ô )
ñ 
ð 	
rÔ   )r·  rn   r7  r¦  r´  r³  ri  r;  rj  r.  rk  r{  rl  rm  râ  r   )r  rP  )r  r>  )r  r¦  )r  r©  )r  rÜ  )r  r7   )NT)rè  ré  rì  r.  r  r6  )NNTNTF)rè  ré  rê  rë  rì  r.  rí  rî  rï  r.  r{  r.  r  rm   ©F)r8  rm   r|  r.  r  r6  )r  rL  rô  )NFFNrÎ   )NTrÎ   N)r¤   rº  r¬  r»  r¼  r.  r­  r  r½  r¾  râ  r   r  rÏ   r  )NF)r*  rL   rÚ  r   r  rÏ   )r*  rM   rÚ  r   r  rÏ   )r*  rJ   rÚ  r   r  rÏ   )r[  rj  r¬  r»  râ  r   r  rÏ   )r[  rj  râ  r   r  rÏ   )FN©NrÎ   )NFNN)
r£   rû  r4  rÏ   rï  r.  rÚ  r   r  rÏ   )r£   rû  rR  r   rÚ  r   r  rÏ   )FFFFFF)rß  r   r  r`  r  rÏ   )rj  rÏ   r
  rD   r  rÏ   )r
  rÏ   r  rÏ   )FFNNNN)r
  rÏ   rI  r.  rJ  r.  rw  rP  rK  rx  ry  rz  r{  rR  rÚ  r   r  rÏ   )rˆ  r[   r‰  r.  rŠ  r.  r‹  rŒ  r�  rŽ  rë  r�  rƒ  r�  râ  r   r  rP  )FFFNFFNN)FNN)
r	  rÏ   r
  rÏ   r  r  r  r  r  r  )NNNTFFT)rŸ   r\   rå  rP  r  rP  )FFNNNFN)r«   r2  r  r>  )r«   r2  rÚ  r   r  rÏ   ©
r†  rA   rn  ro  r  r.  rÚ  r   r  rÏ   )NFF)FFFNTNNN)rŸ   rV   r  rS  )r7  rÏ   r8  ri   r¢  r£  r¤  r^  r¥  rO  rQ  r.  r­  r¬  r  r¦  rƒ  )r&  r@   r�  rŽ  rÚ  r   r  rÏ   )úr  r  r  r  ÚEXTRACT_MAPr`  r&   rú  r5  r  r÷  ÚCOMPOUND_KEYWORDSr„  r8  r9  r:  r<  r=  r?  r@  rC  rD  rE  rI  rJ  rK  rL  rM  rN  rO  rQ  rS  rT  rU  Ú	frozensetrV  rW  rù  rX  rR  Úpostfetch_lastrowidrY  r<  rZ  r[  r\  re  rg  r5  rÖ  ÚpatternrÃ  rû  rÇ  rc  r|  rÅ  rI  r”  Úro_memoized_propertyr›  r�  r¢  r¥  Úmemoized_propertyr¨  Úmemoized_instancemethodr¬  Ú
contextlibÚcontextmanagerr±  rŽ  r�  rç  ré  rà  rì  rð  r  rè  r�  Úpreload_modulerI  rO  rk  rw  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(  r5  r<  r@  rD  rK  rV  rY  r^  rc  ri  re  ry  rv  rs  rŽ  rŠ  r1  r�  r¥  r¨  r­  r°  rµ  r¸  rÃ  rÁ  rÚ  r2  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  r9  r;  r?  rB  rD  rW  rÞ  r.   r1  r  rN  r¨  rv  rì  rú  r$   Ú_CTEOptsr¡  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-  r2  r¦  rý  r]  r0  r‡  rˆ  rQ  rv  r’  r‘  r‰  r�  r”  r-   Ú
CLIENTSIDErh  rr  ÚSENTINEL_DEFAULTÚNONEro  rp  r›  r    rn  r™  r¡  rï  r$  r'  r+  r/  r3  rA  rD  rF  rK  rQ  rS  rU  rÎ   rÔ   rÒ   rÜ  rÜ  *  sa  € € € € € € ðð ð €Kð 	ˆÔàØØØØØØØð	ð 	ñ	
ô 	
ð ð ð ð ñ ðð: /Ð.Ð.Ñ.Ø6Ð6Ð6Ñ6à€Fà)Ðà€HÐÐÐÑØ€HÐÐÐÑØ€HÐÐÐÑðð
 +Ð*Ð*Ñ*ð%ð .0€OÐ/Ð/Ð/Ñ/ðð .0€OÐ/Ð/Ð/Ñ/ð$ð BFÐÐEÐEÐEÑEðð €KÐÐÐÑà(Ð(Ð(Ñ(ØIà-Ð-Ð-Ñ-ð6ð %Ð$Ð$Ñ$ð4ð ',ÐÐ+Ð+Ð+Ñ+ðð 5:Ð+Ð9Ð9Ð9Ñ9ðð
 "€OÐ!Ð!Ð!Ñ!ðð ÐÐÑØBà!Ð!Ð!Ñ!ðð (Ð'Ð'Ñ'ðð
 .Ð-Ð-Ñ-ðð
 &+ÐÐ*Ð*Ð*Ñ*ðð "€OÐ!Ð!Ð!Ñ!ðð "ÐÐ!Ð!Ð!Ñ!ðð ).ÐÐ-Ð-Ð-Ñ-ðð !€NÐ Ð Ð Ñ ðð !&ÐÐ%Ð%Ð%Ñ%ðð =AÐ Ð@Ð@Ð@Ñ@ðð +/ÐÐ.Ð.Ð.Ñ.ðð
 6:ÐÐ9Ð9Ð9Ñ9à59ÐÐ9Ð9Ð9Ñ9à=AÐÐAÐAÐAÑAà<E¸I¹K¼KÐÐGÐGÐGÑGðð
 :C¸¹¼ÐÐDÐDÐDÑDðð
 8<´ÐÐFÐFÐFÑFðð
 Ððð  Ðð%ð 	ð ð ð ð ñ ðð (,€KÐ+Ð+Ð+Ñ+ðð .2ÐÐ1Ð1Ð1Ñ1à.2ÐÐ2Ð2Ð2Ñ2à€FÐÐÐÑà,Ð,Ð,Ñ,ð 3Ð2Ð2Ñ2ð GÐFÐFÑFàÐÐÑà&˜BœJÐ'LÑMÔMÐØ"˜œ
Ð#4Ñ5Ô5ÐØ$˜"œ*ØÔ$ÐFÐFÐ'<Ô'DÐFÐFñô Ðð ð#ð #ñ „[ð#ð ðCð Cñ „[ðCð )-Ø/3Ø %Ø%Ø59ðPñ Pð Pð Pð Pðd ñ=ð =ð =ñ „Xð=ð$ 
Ôñð ð ñ Ôðð0 ð(ð (ñ „Xð(ð ð Mð  Mñ „Xð MðD ðGð Gñ „XðGð 
Ôñð ð ñ Ôðð 
Ô!ñð ð ñ "Ô!ðð. Ôðð ñ Ôðð.9ð 9ð 9ðvGð Gð GðR 
Ôñ
ð 
ð 
ñ Ôð
ð8#ð #ð #ð ñð ð ñ „Xðð
 6:Ø!ñ
ñ 
ð 
ð 
ð 
ð2 6:ØGKØ!Ø'+ØØ %ñ~ñ ~ð ~ð ~ð ~ð@ 
Ô!ð$ð $ñ "Ô!ð$ðL ð
3ð 
3ñ „Xð
3ð  %ñCñ Cð Cð Cð CðJ €TÔÐ3Ñ4Ô4ð
ð 
ñ 5Ô4ð
ð 4Ð3Ð3Ñ3à	Ôñð ð ñ Ôðð 
ÔØ€TÔÐ3Ñ4Ô4ðPð Pñ 5Ô4ñ ÔðPðd 
ÔØ€TÔÐ3Ñ4Ô4ð)ð )ñ 5Ô4ñ Ôð)ñVð ð ð ð>ð >ð >ñ@Oð Oð Oð OðOð Oð Oð .3ñ-
ð -
ð -
ð -
ð` .3ñ+ð +ð +ð +ð` Ø!Ø#Ø"Øñ/ð /ð /ð /ðb
ð 
ð 
ð
/ð /ð /ð ;?Ø"Ø.0ØEIñ9Oñ 9Oð 9Oð 9Oð 9OðvAð Að Aðð ð ðð ð ð
ð 
ð 
ðð ð ð
ð ð ñ

ð 
ð 
ð 
ð4 05ñ2ð 2ð 2ð 2ñhð ð ð ñð ð ð ñð ð ð ð
ð 
ð 
ðð ð ð"@ð @ð @ðLð Lð Lðð ð ð&ð ð ð&Kð Kð Kð
ð 
ð 
ð(
ð (
ð (
ðT
ð 
ð 
ðB
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð7ð 7ð 7ð ;?ñ,ñ ,ð ,ð ,ð ,ð\8ð 8ð 8ð
ð 
ð 
ñCð Cð Cð Cð 04ñ?ð ?ð ?ð ?ðB3ð 3ð 3ð-ð -ð -ð ACñ$ð $ð $ð $ðLð ð ð6ð ð ð$Bð Bð BðBð Bð Bð
ð 
ð 
ð

ð 
ð 
ð4ð 4ð 4ð$
ð 
ð 
ð ;?ñH*ð H*ð H*ð H*ðTM1ð M1ð M1ðd ØØØ ñ6ð 6ð 6ð 6ðp8ð 8ð 8ðð ð ð
ð 
ð 
ð
ð 
ð 
ð

ð 
ð 
ð  %ñ	ñ ð ð ð ð2Gð Gð GðGð Gð Gð 
ÔðIð Iñ ÔðIðJð Jð JðAð Að AðEð Eð EðBð Bð BðFð Fð FðAð Að AðEð Eð EðBð Bð BðFð Fð FðAð Að AðEð Eð EðBð Bð BðFð Fð Fð

ð 

ð 

ð	
ð 	
ð 	
ðAð Að AðEð Eð Eð
ð 
ð 
ð
ð 
ð 
ñ
ð 
ð 
ð 
ñ
ð 
ð 
ð 
ñ
ð 
ð 
ð 
ð $ØØ"ØØ Øñnð nð nð nð`$ð $ð $ð $Ø!%ð	Dð Dð Dð DñB%ñ %ð %ð %ñNð ð ññ ð ð ñ*$ñ $ð $ð $ð #ØØ&*Ø48Ø48Ø15ñAñ Añ Að Að AñFCð Cð Cð ØØ.2Ø&*Ø,0Ø(;¨
Ô(;¸EÑ(BÔ(BðVñ Vñ Vð Vð Vñp3ð 3ð 3ñ0ð 0ð 0ð ØØØØØØØñbñ bð bð bñH0ð 0ð 0ñ?ð ?ð ?ññ ð ð ñ"ð "ð "ð EIñ/ñ /ð /ð /ñb9ð 9ð 9ñ(ð (ð (ñ
ñ 
ð 
ð 
ð4 EIñ
ñ 
ð 
ð 
ð8 ØØ Ø"Ø Ø %ØñQJñ QJð QJð QJñfð ð ñð ð ññ ð ð ñ
ð ð ñ$ð $ð $ñ .Ð-Ñ-Ñ-àÔð 
Ø1˜tÔ1Ù  ¡¤Ð-±À	À	ÁÄÐ/LÐMñ 
ô  
Ðð
 ,1ññ ð ð ð: '+ÐÐ*Ð*Ñ*Ñ*ðð ØØØØØØñKñ Kð Kð KñZ
!ñ 
!ð 
!ð 
!ñ2ð 2ð 2ñh]ð ]ð ]ñ~ð ð ð Ø %ñ3ñ 3ð 3ð 3ñjð ð ñ7ñ 7ð 7ð 7ñ 	ð 	ð 	ñ
ð 
ð 
ñð ð ñ1ñ 1ð 1ð 1ñ@ð ð ð ØØ+0ñ'ñ 'ð 'ð 'ðX ØØØØØØ!%Øñ3ñ 3ð 3ð 3ñj
ñ 
ð 
ð 
ñ<
)ð 
)ð 
)ð" (: tÔ'9à,Ô7Ø,Ô>à,Ô=Ø,Ô>à,Ô1Ø,Ô>à,Ô5Ø,Ô5à,Ô5Ø,Ô5ð	
ñ(ô (Ð$ð& $D×#IÒ#Ià,Ô1Ø,Ô:ð	
ñ$ô $Ð ñ<ñ <ð <ð <ñ|oñ oð oð oðd AEñEñ Eð Eð EñNð ð ñð ð ñFð Fð Fñ
ð 
ð 
ð" '+ñRñ Rñ Rð Rð Rñh
ð 
ð 
ñ 
ð 
ð 
ñ
Añ Að Að AñFOð Oð Oñ
ð 
ð 
ñ

ð 
ð 
ð 
ð 
rÔ   rÜ  c                  ó¤   ‡ — e Zd ZdZd„ Z ej        d¦  «        ˆ fd„¦   «         Zd„ Zd„ Z	d„ Z
d„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚStrSQLCompilera“  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                ó   — dS )Nz<name unknown>rÎ   r´  s     rÒ   rµ  z$StrSQLCompiler._fallback_column_name  s   € ØÐrÔ   zsqlalchemy.engine.urlc                óh  •— |j         dk    r…t          j        j        } |j                             |j         ¦  «                             ¦   «         ¦   «         }|                     |d | ¬¦  «        }t          |t          ¦  «        s |j
        |fi |¤ŽS t          ¦   «                              ||¦  «        S )Nr±   )rl  )Ústringify_dialectr&   rE  Ú
engine_urlÚURLr¥   Úget_dialectÚstatement_compilerrÀ  rj  rÂ  rÈ  rÛ  )r  rØ  rÙ  rÚ  Úurlr·  ÚcompilerrË  s          €rÒ   rÛ  z,StrSQLCompiler.visit_unsupported_compilation  s¯   ø€ àÔ$¨	Ò1Ð1Ý”.Ô+ˆCØM�c”g—n’n WÔ%>Ñ?Ô?×KÒKÑMÔMÑOÔOˆGà×1Ò1Ø˜°4ð 2ñ ô ˆHõ ˜h­Ñ7Ô7ð 7Ø'�xÔ'¨Ð6Ð6°2Ð6Ð6Ð6å‰wŒw×4Ò4°W¸cÑBÔBÐBrÔ   c                óV   —  | j         |j        fi |¤Ž›d | j         |j        fi |¤Ž›d�S )Nr2  r3  )rÂ  rŠ   rž   r¤  s       rÒ   Úvisit_getitem_binaryz#StrSQLCompiler.visit_getitem_binary  sJ   € àˆDŒL˜œÐ+Ð+¨Ð+Ð+Ð+Ð+ØˆDŒL˜œÐ,Ð,¨Ð,Ð,Ð,Ð,ð
ð 	
rÔ   c                ó    —  | j         ||fi |¤ŽS r  ©ru  r¤  s       rÒ   Úvisit_json_getitem_op_binaryz+StrSQLCompiler.visit_json_getitem_op_binary  ó   € Ø(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÔ   c                ó    —  | j         ||fi |¤ŽS r  rw  r¤  s       rÒ   Ú!visit_json_path_getitem_op_binaryz0StrSQLCompiler.visit_json_path_getitem_op_binary  ry  rÔ   c                ó>   — d| j                              |¦  «        › d�S )Nz<next sequence value: ú>)r°  Úformat_sequencer|  s      rÒ   rv  zStrSQLCompiler.visit_sequence  s%   € àO T¤]×%BÒ%BÀ8Ñ%LÔ%LÐOÐOÐOð	
rÔ   r†  rA   rn  ro  r  r.  rÚ  r   r  rÏ   c               ót   ‡ — ˆ fd„t          j        |¦  «        D ¦   «         }dd                     |¦  «        z   S )Nc           	     óB   •— g | ]}‰                      d |ddi ¦  «        ‘ŒS )NTFrï  ©rÐ   r˜  r  s     €rÒ   r™  z3StrSQLCompiler.returning_clause.<locals>.<listcomp>,  s?   ø€ ð 
ð 
ð 
àð ×%Ò% d¨A¨t°U¸BÑ?Ô?ð
ð 
ð 
rÔ   rs  rá   )r   rt  r‰   ru  s   `     rÒ   rv  zStrSQLCompiler.returning_clause$  sO   ø€ ð
ð 
ð 
ð 
åÔ+¨NÑ;Ô;ð
ñ 
ô 
ˆð ˜dŸiši¨Ñ0Ô0Ñ0Ð0rÔ   c                ó^   ‡ ‡‡— d‰d<   dd                      ˆˆˆ fd„|D ¦   «         ¦  «        z   S )NTr‰  rH  rá   c              3  ó8   •K  — | ]} |j         ‰fd ‰i‰¤ŽV — ŒdS ©r‹  Nrä  ©rÐ   rS  r2  rÚ  r  s     €€€rÒ   rB  z4StrSQLCompiler.update_from_clause.<locals>.<genexpr>6  sQ   øè è € ð #
ð #
àð !ˆAÔ  ÐBÐB°ÐB¸rÐBÐBð#
ð #
ð #
ð #
ð #
ð #
rÔ   r  r1  s   `   ``rÒ   r3  z!StrSQLCompiler.update_from_clause2  s]   øøø€ ð ˆˆ8‰Ø˜Ÿšð #
ð #
ð #
ð #
ð #
ð #
à ð#
ñ #
ô #
ñ 
ô 
ñ 
ð 	
rÔ   c                ó^   ‡ ‡‡— d‰d<   dd                      ˆˆˆ fd„|D ¦   «         ¦  «        z   S )NTr‰  rá   c              3  ó8   •K  — | ]} |j         ‰fd ‰i‰¤ŽV — ŒdS r„  rä  r…  s     €€€rÒ   rB  z:StrSQLCompiler.delete_extra_from_clause.<locals>.<genexpr>?  sQ   øè è € ð  
ð  
àð !ˆAÔ  ÐBÐB°ÐB¸rÐBÐBð 
ð  
ð  
ð  
ð  
ð  
rÔ   r  rC  s   `   ``rÒ   rD  z'StrSQLCompiler.delete_extra_from_clause;  s]   øøø€ ð ˆˆ8‰Ø�d—i’ið  
ð  
ð  
ð  
ð  
ð  
à ð 
ñ  
ô  
ñ 
ô 
ñ 
ð 	
rÔ   c                ó   — dS )NzSELECT 1 WHERE 1!=1rÎ   rÅ  s      rÒ   rÁ  z#StrSQLCompiler.visit_empty_set_exprD  s   € Ø$Ð$rÔ   c                ó   — d|z  S )Nz[%s]rÎ   r  s      rÒ   r  z!StrSQLCompiler.get_from_hint_textG  s   € Ø˜‰}ÐrÔ   c                ó    —  | j         |dfi |¤ŽS )Nz
 <regexp> ©r·  r¤  s       rÒ   r?  z+StrSQLCompiler.visit_regexp_match_op_binaryJ  s   € Ø,ˆtÔ,¨V°\ÐHÐHÀRÐHÐHÐHrÔ   c                ó    —  | j         |dfi |¤ŽS )Nz <not regexp> r‹  r¤  s       rÒ   rB  z/StrSQLCompiler.visit_not_regexp_match_op_binaryM  s    € Ø,ˆtÔ,¨VÐ5EÐLÐLÈÐLÐLÐLrÔ   c                óX   — d |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz<regexp replace>(rá   r/  )rŠ   rå  rž   r¤  s       rÒ   rD  z-StrSQLCompiler.visit_regexp_replace_op_binaryP  sN   € € à*ˆFŒKÔ*¨4Ð6Ð6°2Ð6Ð6Ð6Ð6Ø+ˆFŒLÔ+¨DÐ7Ð7°BÐ7Ð7Ð7Ð7ð
ð 	
rÔ   c                óX   — d |j         j        | fi |¤Ž›d |j        j        | fi |¤Ž›d�S )Nz	TRY_CAST(rã   r/  )r:  rå  rÜ  )r  r   râ  s      rÒ   Úvisit_try_castzStrSQLCompiler.visit_try_castV  sN   € € à*ˆDŒKÔ*¨4Ð:Ð:°6Ð:Ð:Ð:Ð:Ø.ˆDŒOÔ.¨tÐ>Ð>°vÐ>Ð>Ð>Ð>ð
ð 	
rÔ   rX  )r  r  r  r  rµ  r&   rc  rÛ  ru  rx  r{  rv  rv  r3  rD  rÁ  r  r?  rB  rD  r�  rü  rý  s   @rÒ   rj  rj  î  sE  ø€ € € € € ðð ð& ð  ð  ð €TÔÐ0Ñ1Ô1ðCð Cð Cð Cñ 2Ô1ðCð
ð 
ð 
ðAð Að AðAð Að Að
ð 
ð 
ð
1ð 1ð 1ð 1ð
ð 
ð 
ð
ð 
ð 
ð%ð %ð %ðð ð ðIð Ið IðMð Mð Mð
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
rÔ   rj  c                  óÎ  — e Zd ZdZer	 	 	 d_d`d„Zej        dad„¦   «         Zej	        d„ ¦   «         Z
	 	 	 dbdcd„Zd„ Zd„ Zd„ Zd„ Zddd„Z	 ded „Zd!„ Zd"„ Zdfd&„Z	 dgd'„Zd(„ Z	 dddhd+„Zd,„ Zd-„ Zd.„ Zd/„ Zd0„ Zd1„ Zd2„ Zdid5„Zded6„Z d7„ Z!d8„ Z"d9„ Z#d:„ Z$d;„ Z%djd?„Z&dkdB„Z'dC„ Z(dD„ Z)dE„ Z*dldJ„Z+dmdL„Z,dM„ Z-dndO„Z.dodQ„Z/dldR„Z0dmdS„Z1dndT„Z2dpdV„Z3dndW„Z4dqdX„Z5dqdY„Z6dqdZ„Z7drd[„Z8dqd\„Z9d]„ Z:d^„ Z;dS )sÚDDLCompilerT.r·  rn   r7  r>   r­  r¬  r¸  r.  r¹  rº  c                ó   — d S r  rÎ   rÄ  s         rÒ   rÅ  zDDLCompiler.__init__b  s	   € ð ˆ3rÔ   r  rÜ  c                óP   — | j                              | j         d | j        ¬¦  «        S )Nr¨  )r·  rq  r­  rE  s    rÒ   rà  zDDLCompiler.sql_compilerk  s-   € àŒ|×.Ò.ØŒL˜$°TÔ5Nð /ñ 
ô 
ð 	
rÔ   c                ó   — | j         j        S r  )r·  rÛ  rE  s    rÒ   Útype_compilerzDDLCompiler.type_compilerq  s   € àŒ|Ô2Ð2rÔ   Nrè  ré  rê  rë  rì  rí  c                ó   — d S r  rÎ   rï  s       rÒ   rð  zDDLCompiler.construct_paramsu  s	   € ð ˆtrÔ   c                ó  — |j         }t          |j        t          j        ¦  «        r½|                     ¦   «         }| j        }|                     |j        ¦  «        }t          |¦  «        dk    r|d         d}}n|d         |d         }}| 	                    d|¦  «         | 	                    d|¦  «         | 	                    d| 
                    |j        ¦  «        ¦  «         | j                             |j        |z  ¦  «        S )Nr   r   r§  rŸ  rŸ   r#   r†  )ÚcontextrÀ  Útargetr#   rV   r„  r°  Úformat_table_seqrÅ  rÞ  r  rà  ræ  r7  )r  Úddlrâ  r˜  r°  ÚpathrŸ   Úschs           rÒ   Ú	visit_ddlzDDLCompiler.visit_ddl}  sè   € à”+ˆÝ�c”j¥&¤,Ñ/Ô/ð 	NØ—l’l‘n”nˆGà”}ˆHØ×,Ò,¨S¬ZÑ8Ô8ˆDÝ�4‰yŒy˜AŠ~ˆ~Ø! !œW b�s��à! "œX t¨A¤w�s�à×Ò˜w¨Ñ.Ô.Ð.Ø×Ò˜x¨Ñ-Ô-Ð-Ø×Ò˜z¨8×+@Ò+@ÀÄÑ+LÔ+LÑMÔMÐMàÔ ×2Ò2°3´=À7Ñ3JÑKÔKÐKrÔ   c                ób   — d}|j         r|dz  }|| j                             |j        ¦  «        z   S )NzCREATE SCHEMA úIF NOT EXISTS )Úif_not_existsr°  Úformat_schemarØ  )r  r¥   rÚ  rå  s       rÒ   Úvisit_create_schemazDDLCompiler.visit_create_schema�  s:   € ØˆØÔð 	%ØÐ$Ñ$ˆDØ�d”m×1Ò1°&´.ÑAÔAÑAÐArÔ   c                ó~   — d}|j         r|dz  }|| j                             |j        ¦  «        z  }|j        r|dz  }|S )NzDROP SCHEMA ú
IF EXISTS ú CASCADE)Ú	if_existsr°  r¢  rØ  Úcascade©r  ÚdroprÚ  rå  s       rÒ   Úvisit_drop_schemazDDLCompiler.visit_drop_schema–  sP   € ØˆØŒ>ð 	!Ø�LÑ ˆDØ�”×+Ò+¨D¬LÑ9Ô9Ñ9ˆØŒ<ð 	Ø�JÑˆDØˆrÔ   c                óÎ  — |j         }| j        }d}|j        r |d                     |j        ¦  «        dz   z  }|dz  }|j        r|dz  }||                     |¦  «        dz   z  }|                      |¦  «        }|r||dz   z  }|dz  }d}d}|j        D ]�}	|	j         }
	 |                      |	|
j	        o| ¬¦  «        }|�||z  }d	}|d
|z   z  }|
j	        rd}ŒD# t          j        $ r8}t          j        d|j        ›d|
j        ›d|j        d         ›�¦  «        |‚d }~ww xY w|                      ||j        ¬¦  «        }|r||d
z   |z   z  }|d|                      |¦  «        z  z  }|S )Nz
CREATE r4  zTABLE r   r.  ú
F©Úfirst_pkrY  ú	Tz(in table 'z', column 'z'): r   )Ú _include_foreign_key_constraintsz
)%s

)rØ  r°  r§  r‰   r¡  r  Úcreate_table_suffixræ  rÂ  rf  r3   rö  Údescriptionr
  ÚargsÚcreate_table_constraintsÚinclude_foreign_key_constraintsÚpost_create_table)r  r¥   rÚ  rŸ   r°  rå  r²  r  r¯  Úcreate_columnr¤   Ú	processedÚceÚconsts                 rÒ   Úvisit_create_tablezDDLCompiler.visit_create_tableŸ  sþ  € Ø”ˆØ”=ˆàˆØŒ?ð 	4Ø�C—H’H˜Uœ_Ñ-Ô-°Ñ3Ñ3ˆDà�ÑˆØÔð 	%ØÐ$Ñ$ˆDà�×%Ò% eÑ,Ô,¨sÑ2Ñ2ˆà"×6Ò6°uÑ=Ô=ÐØð 	.ØÐ'¨#Ñ-Ñ-ˆDà�‰ˆàˆ	ð ˆØ#œ^ð 	ð 	ˆMØ"Ô*ˆFðØ ŸLšLØ!¨FÔ,>Ð,OÀxÀ<ð )ñ ô �	ð Ð(Ø˜IÑ%�DØ &�IØ˜D 9Ñ,Ñ,�DØÔ%ð $Ø#�HøøÝÔ#ð ð ð ÝÔ&Ð&àÔ(Ð(Ð(¨&¬+¨+¨+°r´w¸q´z°zðCñô ð ðøøøøðøøøð ×-Ò-ØØ-3Ô-Sð .ñ 
ô 
ˆð ð 	-Ø�I Ñ$ uÑ,Ñ,ˆDà�˜d×4Ò4°UÑ;Ô;Ñ;Ñ;ˆØˆs   Â9CÃDÃ&3DÄDFc                ó¶   ‡ — |j         }|j        rd S ‰                      ||¬¦  «        }d                     ˆ fd„|j        D ¦   «         ¦  «        }|r|d|z   z  }|S )Nr®  r4  c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r  )rÂ  ©rÐ   rÂ   r  s     €rÒ   rB  z2DDLCompiler.visit_create_column.<locals>.<genexpr>Ú  s@   øè è € ð 
ð 
Ø)3ˆD�LŠL˜Ñ$Ô$ð
ð 
ð 
ð 
ð 
ð 
rÔ   )rØ  ÚsystemÚget_column_specificationr‰   Úconstraints)r  r¥   r¯  rÚ  r¤   rå  r»  s   `      rÒ   Úvisit_create_columnzDDLCompiler.visit_create_columnÓ  sŠ   ø€ Ø”ˆàŒ=ð 	Ø�4à×,Ò,¨V¸hÐ,ÑGÔGˆØ—’ð 
ð 
ð 
ð 
Ø7=Ô7Ið
ñ 
ô 
ñ 
ô 
ˆð ð 	 Ø�C˜%‘KÑˆDàˆrÔ   c                óL  ‡ ‡‡— g }‰j         r|                     ‰j         ¦  «         ‰j        }|�|                     |¦  «        Šnt	          ¦   «         Š|                     ˆˆfd„‰j        D ¦   «         ¦  «         d                     d„ ˆ fd„|D ¦   «         D ¦   «         ¦  «        S )Nc                ó.   •— g | ]}|‰j         u¯|‰v¯|‘ŒS rÎ   )rf  )rÐ   r˜  Ú	omit_fkcsrŸ   s     €€rÒ   r™  z8DDLCompiler.create_table_constraints.<locals>.<listcomp>ò  s;   ø€ ð ð ð àØ˜EÔ-Ð-Ð-°!¸9Ð2DÐ2Dð à2DÐ2DÐ2DrÔ   z, 
	c              3  ó   K  — | ]}|®|V — Œ	d S r  rÎ   )rÐ   rý  s     rÒ   rB  z7DDLCompiler.create_table_constraints.<locals>.<genexpr>ù  s4   è è € ð 
ð 
àð ˆ}ð ð ˆ}ˆ}ˆ}ð
ð 
rÔ   c              3  ó¦   •K  — | ]K}|                      ‰¦  «        ¯‰j        j        rt          |d d¦  «        °4‰                     |¦  «        V — ŒLdS )Ú	use_alterFN)Ú_should_create_for_compilerr·  Úsupports_alterrn  rÂ  r¿  s     €rÒ   rB  z7DDLCompiler.create_table_constraints.<locals>.<genexpr>û  s|   øè è € ð ð àØ×:Ò:¸4Ñ@Ô@ðð
 œÔ3ðõ # :¨{¸EÑBÔBðØ—’˜ZÑ(Ô(ðð ð ð ð ð rÔ   )rf  r·  Úforeign_key_constraintsr  r�   r4  Ú_sorted_constraintsr‰   )r  rŸ   r±  rÚ  rÂ  Úall_fkcsrÆ  s   ``    @rÒ   rµ  z$DDLCompiler.create_table_constraintsâ  sø   øøø€ ð
 ˆØÔð 	2Ø×Ò˜uÔ0Ñ1Ô1Ð1àÔ0ˆØ+Ð7Ø ×+Ò+Ð,LÑMÔMˆIˆIå™œˆIà×Òðð ð ð ð àÔ2ðñ ô ñ	
ô 	
ð 	
ð �}Š}ð 
ð 
ðð ð ð à"-ðñ ô ð
ñ 
ô 
ñ 
ô 
ð 	
rÔ   c                ób   — d}|j         r|dz  }|| j                             |j        ¦  «        z   S )Nz
DROP TABLE r¥  )r§  r°  r  rØ  r©  s       rÒ   Úvisit_drop_tablezDDLCompiler.visit_drop_table  s8   € ØˆØŒ>ð 	!Ø�LÑ ˆDØ�d”m×0Ò0°´Ñ>Ô>Ñ>Ð>rÔ   c                óF   — d| j                              |j        ¦  «        z   S )Nz
DROP VIEW ©r°  r  rØ  ©r  rª  rÚ  s      rÒ   Úvisit_drop_viewzDDLCompiler.visit_drop_view  s   € Ø ¤× :Ò :¸4¼<Ñ HÔ HÑHÐHrÔ   r‰  rT   r  c                óL   — |j         €t          j        d|j        z  ¦  «        ‚d S )Nz,Index '%s' is not associated with any table.)rŸ   r3   rö  r
  )r  r‰  s     rÒ   Ú_verify_index_tablezDDLCompiler._verify_index_table  s1   € ØŒ;ÐÝÔ"Ø>ÀÄÑKñô ð ð ÐrÔ   c           	     ó„  ‡ — |j         }‰                      |¦  «         ‰ j        }d}|j        r|dz  }|j        €t          j        d¦  «        ‚|dz  }|j        r|dz  }|‰                      ||¬¦  «        ›d| 	                    |j
        |¬¦  «        ›d	d
                     ˆ fd„|j        D ¦   «         ¦  «        ›d�z  }|S )NzCREATE úUNIQUE z0CREATE INDEX requires that the index have a namezINDEX r   ©Úinclude_schemar‹  ©r‡  rã  rá   c              3  óR   •K  — | ]!}‰j                              |d d¬¦  «        V — Œ"dS )FT©r¼  rG  N)rà  rÂ  )rÐ   r*  r  s     €rÒ   rB  z1DDLCompiler.visit_create_index.<locals>.<genexpr>-  sX   øè è € ð ð ð ð Ô!×)Ò)Ø¨¸Tð *ñ ô ðð ð ð ð ð rÔ   r/  )rØ  rÖ  r°  r¬   r
  r3   rö  r¡  Ú_prepared_index_namer  rŸ   r‰   Úexpressions)r  r¥   rÚ  Úinclude_table_schemarÚ  r‰  r°  rå  s   `       rÒ   Úvisit_create_indexzDDLCompiler.visit_create_index  s&  ø€ ð ”ˆØ× Ò  Ñ'Ô'Ð'Ø”=ˆØˆØŒ<ð 	Ø�IÑˆDØŒ:ÐÝÔ"ØBñô ð ð 	�ÑˆØÔð 	%ØÐ$Ñ$ˆDàØ×%Ò% e¸NÐ%ÑKÔKÐKÐKØ×!Ò!Ø”Ð(<ð "ñ ô ð ð ð �IŠIð ð ð ð ð "Ô-ð	ñ ô ñ ô ð ð ð
ñ 	
ˆð ˆrÔ   c                ó–   — |j         }|j        €t          j        d¦  «        ‚d}|j        r|dz  }||                      |d¬¦  «        z   S )Nz.DROP INDEX requires that the index have a namez
DROP INDEX r¥  TrÙ  )rØ  r
  r3   rö  r§  rÞ  )r  rª  rÚ  r‰  rå  s        rÒ   Úvisit_drop_indexzDDLCompiler.visit_drop_index6  sb   € Ø”ˆàŒ:ÐÝÔ"Ø@ñô ð ð ˆØŒ>ð 	!Ø�LÑ ˆDà�d×/Ò/°ÀdÐ/ÑKÔKÑKÐKrÔ   rÚ  rÏ   c                óâ   — |j         � | j                             |j         ¦  «        }nd }|r|r| j                             |¦  «        }nd }| j                             |¦  «        }|r|dz   |z   }|S ©Nr1  )rŸ   r°  rÆ  rÇ  Úformat_index)r  r‰  rÚ  rÊ  Úschema_nameÚ
index_names         rÒ   rÞ  z DDLCompiler._prepared_index_nameC  sŒ   € ð Œ;Ð"Ø#œ}×>Ò>¸u¼{ÑKÔKÐÐà#ÐØð 	Ð.ð 	Øœ-×4Ò4Ð5EÑFÔFˆKˆKàˆKàœ-×4Ò4°UÑ;Ô;ˆ
àð 	8Ø$ sÑ*¨ZÑ7ˆJØÐrÔ   c                ó†   — d| j                              |j        j        ¦  «        ›d|                      |j        ¦  «        ›�S )NúALTER TABLE z ADD )r°  r  rØ  rŸ   rÂ  ©r  r¥   rÚ  s      rÒ   Úvisit_add_constraintz DDLCompiler.visit_add_constraintU  s@   € € àŒM×&Ò& v¤~Ô';Ñ<Ô<Ð<Ð<Ø�LŠL˜œÑ(Ô(Ð(ð
ð 	
rÔ   c                ó´   — d| j                              |j        ¦  «        ›d| j                             |j        j        t          j        ¦   «         ¦  «        ›�S )NzCOMMENT ON TABLE rä   )r°  r  rØ  rà  r  Úcommentr%   ÚStringrë  s      rÒ   Úvisit_set_table_commentz#DDLCompiler.visit_set_table_comment[  sV   € € àŒM×&Ò& v¤~Ñ6Ô6Ð6Ð6ØÔ×2Ò2Ø”Ô&­¬Ñ(9Ô(9ñô ð ð
ð 	
rÔ   c                óF   — d| j                              |j        ¦  «        z  S )NzCOMMENT ON TABLE %s IS NULLrÒ  rÓ  s      rÒ   Úvisit_drop_table_commentz$DDLCompiler.visit_drop_table_commentc  s(   € Ø,¨t¬}×/IÒ/IØŒLñ0
ô 0
ñ 
ð 	
rÔ   c                óº   — d| j                              |j        dd¬¦  «        ›d| j                             |j        j        t          j        ¦   «         ¦  «        ›�S )NzCOMMENT ON COLUMN T)Ú	use_tabler‡  rä   )r°  Úformat_columnrØ  rà  r  rî  r%   rï  rë  s      rÒ   Úvisit_set_column_commentz$DDLCompiler.visit_set_column_commenth  sj   € € àŒM×'Ò'Ø”¨$¸4ð (ñ ô ð ð ð Ô×2Ò2Ø”Ô&­¬Ñ(9Ô(9ñô ð ð	
ð 	
rÔ   c                óJ   — d| j                              |j        d¬¦  «        z  S )NzCOMMENT ON COLUMN %s IS NULLT)rô  )r°  rõ  rØ  rÓ  s      rÒ   Úvisit_drop_column_commentz%DDLCompiler.visit_drop_column_commentr  s0   € Ø-°´×0KÒ0KØŒL Dð 1Lñ 1
ô 1
ñ 
ð 	
rÔ   c                óF   — t          j        | t          |¦  «        ¦  «        ‚r  rÕ  rë  s      rÒ   Úvisit_set_constraint_commentz(DDLCompiler.visit_set_constraint_commentw  s   € ÝÔ-¨dµD¸±L´LÑAÔAÐArÔ   c                óF   — t          j        | t          |¦  «        ¦  «        ‚r  rÕ  rÓ  s      rÒ   Úvisit_drop_constraint_commentz)DDLCompiler.visit_drop_constraint_commentz  s   € ÝÔ-¨dµD¸±J´JÑ?Ô?Ð?rÔ   Úidentity_optionsrS   c                óR  — g }|j         �|                     d|j         z  ¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     d¦  «         |j        �|                     d¦  «         |j        �|                     d|j        z  ¦  «         |j        �|                     |j        rdnd	¦  «         d
 	                    |¦  «        S )NzINCREMENT BY %dzSTART WITH %dzMINVALUE %dzMAXVALUE %dzNO MINVALUEzNO MAXVALUEzCACHE %dÚCYCLEzNO CYCLEr4  )
Ú	incrementr·  r”  ÚminvalueÚmaxvalueÚ
nominvalueÚ
nomaxvalueÚcacheÚcycler‰   )r  rý  rå  s      rÒ   Úget_identity_optionsz DDLCompiler.get_identity_options}  s*  € ØˆØÔ%Ð1Ø�KŠKÐ)Ð,<Ô,FÑFÑGÔGÐGØÔ!Ð-Ø�KŠK˜Ð*:Ô*@Ñ@ÑAÔAÐAØÔ$Ð0Ø�KŠK˜Ð(8Ô(AÑAÑBÔBÐBØÔ$Ð0Ø�KŠK˜Ð(8Ô(AÑAÑBÔBÐBØÔ&Ð2Ø�KŠK˜Ñ&Ô&Ð&ØÔ&Ð2Ø�KŠK˜Ñ&Ô&Ð&ØÔ!Ð-Ø�KŠK˜
Ð%5Ô%;Ñ;Ñ<Ô<Ð<ØÔ!Ð-Ø�KŠKÐ#3Ô#9ÐI˜˜¸zÑJÔJÐJØ�xŠx˜‰~Œ~ÐrÔ   c                ó¼   — d}|j         r|dz  }|| j                             |j        ¦  «        z  }|r||z  }|                      |j        ¦  «        }|r|d|z   z  }|S )NzCREATE SEQUENCE r   r4  )r¡  r°  r~  rØ  r  )r  r¥   rV  rÚ  rå  Úoptionss         rÒ   Úvisit_create_sequencez!DDLCompiler.visit_create_sequence‘  sz   € Ø!ˆØÔð 	%ØÐ$Ñ$ˆDØ�”×-Ò-¨f¬nÑ=Ô=Ñ=ˆàð 	Ø�F‰NˆDØ×+Ò+¨F¬NÑ;Ô;ˆØð 	"Ø�C˜'‘MÑ!ˆDØˆrÔ   c                ób   — d}|j         r|dz  }|| j                             |j        ¦  «        z   S )NzDROP SEQUENCE r¥  )r§  r°  r~  rØ  r©  s       rÒ   Úvisit_drop_sequencezDDLCompiler.visit_drop_sequencež  s8   € ØˆØŒ>ð 	!Ø�LÑ ˆDØ�d”m×3Ò3°D´LÑAÔAÑAÐArÔ   c                ó  — |j         }|j        �| j                             |¦  «        }nd }|€t	          j        d|j         z  ¦  «        ‚d| j                             |j         j        ¦  «        ›d|j        rdnd›|›|j	        rdnd›�S )Nz<Can't emit DROP CONSTRAINT for constraint %r; it has no namerê  z DROP CONSTRAINT r¥  r§  r¦  )
rØ  r
  r°  Úformat_constraintr3   rö  r  rŸ   r§  r¨  )r  rª  rÚ  rÂ   Úformatted_names        rÒ   Úvisit_drop_constraintz!DDLCompiler.visit_drop_constraint¤  s­   € Ø”\ˆ
ØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNˆNà!ˆNàÐ!ÝÔ"ð!Ø#'¤<ñ0ñô ð ð "ð ŒM×&Ò& t¤|Ô'9Ñ:Ô:Ð:Ð:Ø œNÐ2ˆLˆL°Ð2ØˆNØœ,Ð.ˆJˆJ¨BÐ.ð	
ð 	
rÔ   c                ó¾  — | j                              |¦  «        dz   | j        j                             |j        |¬¦  «        z   }|                      |¦  «        }|�|d|z   z  }|j        � |d|                      |j        ¦  «        z   z  }|j        �,| j        j	        r |d|                      |j        ¦  «        z   z  }|j
        s|j        r| j        j	        s|dz  }|S )Nr4  )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Ò   rÁ  z$DDLCompiler.get_column_specification·  s  € àŒM×'Ò'¨Ñ/Ô/ØñàŒlÔ1×9Ò9Ø”¨Vð :ñ ô ñð 	ð ×0Ò0°Ñ8Ô8ˆØÐØ�{ WÑ,Ñ,ˆGàŒ?Ð&Ø�s˜TŸ\š\¨&¬/Ñ:Ô:Ñ:Ñ:ˆGð ŒOÐ'Ø”Ô6ð (ð �s˜TŸ\š\¨&¬/Ñ:Ô:Ñ:Ñ:ˆGàŒð 	#Ø”ð	#Ø'+¤|Ô'Mð	#ð �{Ñ"ˆGØˆrÔ   c                ó   — dS ©Nr§  rÎ   ©r  rŸ   s     rÒ   r²  zDDLCompiler.create_table_suffixÒ  ó   € ØˆrrÔ   c                ó   — dS r  rÎ   r  s     rÒ   r·  zDDLCompiler.post_create_tableÕ  r  rÔ   r¤   úColumn[Any]rP  c                ó‚   — t          |j        t          j        ¦  «        r|                      |j        j        ¦  «        S d S r  )rÀ  Úserver_defaultr#   ÚDefaultClauseÚrender_default_stringÚargr´  s     rÒ   r  z%DDLCompiler.get_column_default_stringØ  s9   € Ý�fÔ+­VÔ-AÑBÔBð 	Ø×-Ò-¨fÔ.CÔ.GÑHÔHÐHà�4rÔ   r±   úUnion[Visitable, str]c                ó®   — t          |t          ¦  «        r%| j                             |t          j        ¦  «        S | j                             |d¬¦  «        S )NT)rG  )rÀ  rÏ   rà  r  r%   r  rÂ  )r  r±   s     rÒ   r!  z!DDLCompiler.render_default_stringÞ  sV   € Ý�g�sÑ#Ô#ð 	JØÔ$×9Ò9Ø�Ô,ñô ð ð Ô$×,Ò,¨WÀDÐ,ÑIÔIÐIrÔ   c                ód   — |j         r|                      |¦  «        S |                      |¦  «        S r  )Úis_column_levelÚvisit_column_check_constraintÚvisit_check_constraint©r  rÂ   rÚ  s      rÒ   Ú&visit_table_or_column_check_constraintz2DDLCompiler.visit_table_or_column_check_constraintæ  s5   € ØÔ%ð 	;Ø×5Ò5°jÑAÔAÐAà×.Ò.¨zÑ:Ô:Ð:rÔ   c                ót   —  | j         |fi |¤Ž}| | j        |fi |¤Žz  }||                      |¦  «        z  }|S r  ©Údefine_constraint_preambleÚdefine_check_bodyÚdefine_constraint_deferrability©r  rÂ   rÚ  rå  s       rÒ   r(  z"DDLCompiler.visit_check_constraintì  óY   € Ø.ˆtÔ.¨zÐ@Ð@¸RÐ@Ð@ˆØÐ&�Ô& zÐ8Ð8°RÐ8Ð8Ñ8ˆØ�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÔ   c                ót   —  | j         |fi |¤Ž}| | j        |fi |¤Žz  }||                      |¦  «        z  }|S r  r,  r0  s       rÒ   r'  z)DDLCompiler.visit_column_check_constraintò  r1  rÔ   rÂ   rU   rÚ  r   c                óž   — t          |¦  «        dk    rdS  | j        |fi |¤Ž}| | j        |fi |¤Žz  }||                      |¦  «        z  }|S ©Nr   r§  )rÅ  r-  Údefine_primary_key_bodyr/  r0  s       rÒ   Úvisit_primary_key_constraintz(DDLCompiler.visit_primary_key_constraintø  sq   € õ ˆz‰?Œ?˜aÒÐØ�2Ø.ˆtÔ.¨zÐ@Ð@¸RÐ@Ð@ˆØÐ,�Ô,¨ZÐ>Ð>¸2Ð>Ð>Ñ>ˆØ�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÔ   rR   c                óÔ   —  | j         |fi |¤Ž}| | j        |fi |¤Žz  }||                      |¦  «        z  }||                      |¦  «        z  }||                      |¦  «        z  }|S r  )r-  Údefine_foreign_key_bodyÚdefine_constraint_matchÚdefine_constraint_cascadesr/  r0  s       rÒ   Úvisit_foreign_key_constraintz(DDLCompiler.visit_foreign_key_constraint  s‹   € ð /ˆtÔ.¨zÐ@Ð@¸RÐ@Ð@ˆØÐ,�Ô,¨ZÐ>Ð>¸2Ð>Ð>Ñ>ˆØ�×,Ò,¨ZÑ8Ô8Ñ8ˆØ�×/Ò/°
Ñ;Ô;Ñ;ˆØ�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÔ   c                ó,   — |                      |¦  «        S )z=Format the remote table clause of a CREATE CONSTRAINT clause.)r  )r  rÂ   rŸ   r°  s       rÒ   Údefine_constraint_remote_tablez*DDLCompiler.define_constraint_remote_table  s   € ð ×$Ò$ UÑ+Ô+Ð+rÔ   rW   c                óž   — t          |¦  «        dk    rdS  | j        |fi |¤Ž}| | j        |fi |¤Žz  }||                      |¦  «        z  }|S r4  )rÅ  r-  Údefine_unique_bodyr/  r0  s       rÒ   Úvisit_unique_constraintz#DDLCompiler.visit_unique_constraint  sq   € õ ˆz‰?Œ?˜aÒÐØ�2Ø.ˆtÔ.¨zÐ@Ð@¸RÐ@Ð@ˆØÐ'�Ô'¨
Ð9Ð9°bÐ9Ð9Ñ9ˆØ�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÔ   rQ   c                ó`   — d}|j         �$| j                             |¦  «        }|�|d|z  z  }|S )Nr§  zCONSTRAINT %s )r
  r°  r  )r  rÂ   rÚ  rå  r  s        rÒ   r-  z&DDLCompiler.define_constraint_preamble  sA   € ð ˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�ØˆrÔ   c                óŠ   ‡ — d}|dz  }|dd                      ˆ fd„|j        r|j        n|j        D ¦   «         ¦  «        z  z  }|S )Nr§  zPRIMARY KEY r'  rá   c              3  óV   •K  — | ]#}‰j                              |j        ¦  «        V — Œ$d S r  ©r°  rÄ  r
  r�  s     €rÒ   rB  z6DDLCompiler.define_primary_key_body.<locals>.<genexpr>*  sI   øè è € ð #
ð #
àð ŒM×Ò ¤Ñ'Ô'ð#
ð #
ð #
ð #
ð #
ð #
rÔ   )r‰   Ú_implicit_generatedÚcolumns_autoinc_firstræ  r0  s   `   rÒ   r5  z#DDLCompiler.define_primary_key_body%  sz   ø€ ð ˆØ�ÑˆØ�˜Ÿšð #
ð #
ð #
ð #
ð Ô1ð(�
Ô0Ð0àÔ'ð#
ñ #
ô #
ñ 
ô 
ñ 
ñ 	
ˆð ˆrÔ   c           	     ó0  ‡— | j         Št          |j        ¦  «        d         j        j        }dd                     ˆfd„|j        D ¦   «         ¦  «        ›d|                      ||‰¦  «        ›dd                     ˆfd„|j        D ¦   «         ¦  «        ›d�}|S )	Nr   zFOREIGN KEY(rá   c              3  óV   •K  — | ]#}‰                      |j        j        ¦  «        V — Œ$d S r  )rÄ  Úparentr
  ©rÐ   rH  r°  s     €rÒ   rB  z6DDLCompiler.define_foreign_key_body.<locals>.<genexpr>:  óD   øè è € ð ð Ø23�—’˜qœxœ}Ñ-Ô-ðð ð ð ð ð rÔ   z) REFERENCES rã  c              3  óV   •K  — | ]#}‰                      |j        j        ¦  «        V — Œ$d S r  )rÄ  r¤   r
  rJ  s     €rÒ   rB  z6DDLCompiler.define_foreign_key_body.<locals>.<genexpr>@  rK  rÔ   r/  )r°  r¤  r   r¤   rŸ   r‰   r=  )r  rÂ   rÚ  Úremote_tablerå  r°  s        @rÒ   r8  z#DDLCompiler.define_foreign_key_body4  sç   ø€ ð ”=ˆÝ˜JÔ/Ñ0Ô0°Ô3Ô:Ô@ˆˆà�IŠIð ð ð ð Ø7AÔ7Jðñ ô ñ ô ð ð ð ×/Ò/Ø˜L¨(ñô ð ð ð �IŠIð ð ð ð Ø7AÔ7Jðñ ô ñ ô ð ð ð

ˆð ˆrÔ   c                óp   ‡ — d ‰ j         |fi |¤Ž›dd                     ˆ fd„|D ¦   «         ¦  «        ›d�}|S )NrØ  r.  rá   c              3  óV   •K  — | ]#}‰j                              |j        ¦  «        V — Œ$d S r  rD  r�  s     €rÒ   rB  z1DDLCompiler.define_unique_body.<locals>.<genexpr>K  s5   øè è € ÐFÐF°a�d”m×)Ò)¨!¬&Ñ1Ô1ÐFÐFÐFÐFÐFÐFrÔ   r/  )Ú!define_unique_constraint_distinctr‰   r0  s   `   rÒ   r?  zDDLCompiler.define_unique_bodyF  s]   ø€ € ð 3ˆDÔ2°:ÐDÐDÀÐDÐDÐDÐDØ�IŠIÐFÐFÐFÐF¸:ÐFÑFÔFÑFÔFÐFÐFð
ˆð ˆrÔ   rO   c                óP   — d| j                              |j        dd¬¦  «        z  }|S )Nz
CHECK (%s)FTrÝ  )rà  rÂ  r€  r0  s       rÒ   r.  zDDLCompiler.define_check_bodyO  s7   € Ø˜dÔ/×7Ò7ØÔ¨eÀ4ð 8ñ 
ô 
ñ 
ˆð ˆrÔ   c                ó   — dS r  rÎ   r)  s      rÒ   rP  z-DDLCompiler.define_unique_constraint_distinctU  s	   € ð ˆrrÔ   c                ó†   — d}|j         �||                      |¦  «        z  }|j        �||                      |¦  «        z  }|S r  )ÚondeleteÚ"define_constraint_ondelete_cascadeÚonupdateÚ"define_constraint_onupdate_cascade©r  rÂ   rå  s      rÒ   r:  z&DDLCompiler.define_constraint_cascadesZ  sP   € ð ˆØÔÐ*Ø�D×;Ò;¸JÑGÔGÑGˆDàÔÐ*Ø�D×;Ò;¸JÑGÔGÑGˆDØˆrÔ   c                óR   — d| j                              |j        t          ¦  «        z  S )Nz ON DELETE %s)r°  Úvalidate_sql_phraserT  ÚFK_ON_DELETE©r  rÂ   s     rÒ   rU  z.DDLCompiler.define_constraint_ondelete_cascadee  ó-   € ð  ¤×!BÒ!BØÔ¥ñ"
ô "
ñ 
ð 	
rÔ   c                óR   — d| j                              |j        t          ¦  «        z  S )Nz ON UPDATE %s)r°  rZ  rV  ÚFK_ON_UPDATEr\  s     rÒ   rW  z.DDLCompiler.define_constraint_onupdate_cascadel  r]  rÔ   c                ó    — d}|j         �|j         r|dz  }n|dz  }|j        �+|d| j                             |j        t          ¦  «        z  z  }|S )Nr§  z DEFERRABLEz NOT DEFERRABLEz INITIALLY %s)rÃ   r½   r°  rZ  ÚFK_INITIALLYrX  s      rÒ   r/  z+DDLCompiler.define_constraint_deferrabilitys  so   € ØˆØÔ Ð,ØÔ$ð *Ø˜Ñ%��àÐ)Ñ)�ØÔÐ+Ø�O d¤m×&GÒ&GØÔ$¥lñ'ô 'ñ ñ ˆDð ˆrÔ   c                ó2   — d}|j         �|d|j         z  z  }|S )Nr§  z	 MATCH %s)rB  rX  s      rÒ   r9  z#DDLCompiler.define_constraint_match€  s'   € ØˆØÔÐ'Ø�K *Ô"2Ñ2Ñ2ˆDØˆrÔ   c                óŠ   — d| j                              |j        dd¬¦  «        z  }|j        du r|dz  }n|j        du r|dz  }|S )NzGENERATED ALWAYS AS (%s)FTrÝ  z STOREDz VIRTUAL)rà  rÂ  r€  Ú	persisted)r  Ú	generatedrÚ  rå  s       rÒ   Úvisit_computed_columnz!DDLCompiler.visit_computed_column†  sj   € Ø)¨DÔ,=×,EÒ,EØÔ¨UÀ$ð -Fñ -
ô -
ñ 
ˆð Ô $Ð&Ð&Ø�IÑˆDˆDØÔ  EÐ)Ð)Ø�JÑˆDØˆrÔ   c                ób   — d|j         rdnd›d�}|                      |¦  «        }|r|d|z  z  }|S )Nz
GENERATED ÚALWAYSz
BY DEFAULTz AS IDENTITYrñ  )Úalwaysr  )r  r  rÚ  rå  r	  s        rÒ   Úvisit_identity_columnz!DDLCompiler.visit_identity_column�  sP   € € à œÐ9ˆHˆH¨\Ð9Ð9ð
ˆð ×+Ò+¨HÑ5Ô5ˆØð 	&Ø�G˜gÑ%Ñ%ˆDØˆrÔ   )...)
r·  rn   r7  r>   r­  r¬  r¸  r.  r¹  rº  ró  rõ  rö  rV  r  )r‰  rT   r  r  )FT)r‰  rT   rÚ  r.  r  rÏ   )rý  rS   r  rÏ   )r¤   r  r  rP  )r±   r#  r  rÏ   )rÂ   rU   rÚ  r   r  rÏ   )rÂ   rR   rÚ  r   r  rÏ   )rÂ   rW   rÚ  r   r  rÏ   )rÂ   rQ   rÚ  r   r  rÏ   )rÂ   rO   rÚ  r   r  rÏ   )rÂ   rR   r  rÏ   )rÂ   rQ   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*  r(  r'  r6  r;  r=  r@  r-  r5  r8  r?  r.  rP  r:  rU  rW  r/  r9  rf  rj  rÎ   rÔ   rÒ   r‘  r‘  ]  s#  € € € € € Ø€Fàð 	ð FIØ,/Ø03ð	ð 	ð 	ð 	ð 	ð 
Ôð
ð 
ð 
ñ Ôð
ð
 
Ôð3ð 3ñ Ôð3ð
 6:ØGKØ!ð	ð ð ð ð ðLð Lð Lð&Bð Bð Bðð ð ð2ð 2ð 2ðhð ð ð ð  7;ð#
ð #
ð #
ð #
ðJ?ð ?ð ?ðIð Ið Iðð ð ð ð BFðð ð ð ð@Lð Lð Lð 49ðð ð ð ð ð$
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð

ð 
ð 
ð
ð 
ð 
ð
Bð Bð Bð@ð @ð @ðð ð ð ð(ð ð ð ðBð Bð Bð
ð 
ð 
ð&ð ð ð6ð ð ðð ð ðð ð ð ðJð Jð Jð Jð;ð ;ð ;ðð ð ðð ð ðð ð ð ðð ð ð ð,ð ,ð ,ð
ð ð ð ðð ð ð ðð ð ð ðð ð ð ð$ð ð ð ðð ð ð ðð ð ð ð
	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ðð ð ð ðð ð ð ðð ð ðð ð ð ð rÔ   r‘  c                  ó„  — e Zd ZdXd„ZdYd	„ZdZd„Zd[d„Zd\d„Zd]d„Zd^d„Z	d_d„Z
d`d„Zdad„Zdbd„Zdcd„Zddd„Zded!„Zdfd#„Zdgd)„Zdhd+„Zdid-„Zdjd/„Zdkd1„Zdfd2„Zdld4„Zdmd6„Zdnd8„Zdod:„Zdpd<„Zdld=„Zdmd>„Zdpd?„Zddd@„Z dbdA„Z!dcdB„Z"d`dC„Z#d_dD„Z$d^dE„Z%d[dF„Z&dXdG„Z'dYdH„Z(d\dI„Z)djdJ„Z*dqdL„Z+dfdM„Z,drdO„Z-dsdQ„Z.dR„ Z/dtdT„Z0dudV„Z1dWS )vÚGenericTypeCompilerr  úsqltypes.Float[Any]rÚ  r   r  rÏ   c                ó   — dS )NÚFLOATrÎ   r  s      rÒ   Úvisit_FLOATzGenericTypeCompiler.visit_FLOAT›  ó   € ØˆwrÔ   úsqltypes.Double[Any]c                ó   — dS )NÚDOUBLErÎ   r  s      rÒ   Úvisit_DOUBLEz GenericTypeCompiler.visit_DOUBLEž  ó   € ØˆxrÔ   úsqltypes.DOUBLE_PRECISION[Any]c                ó   — dS )NzDOUBLE PRECISIONrÎ   r  s      rÒ   Úvisit_DOUBLE_PRECISIONz*GenericTypeCompiler.visit_DOUBLE_PRECISION¡  s
   € ð "Ð!rÔ   úsqltypes.REAL[Any]c                ó   — dS )NÚREALrÎ   r  s      rÒ   Ú
visit_REALzGenericTypeCompiler.visit_REAL¦  r	  rÔ   úsqltypes.Numeric[Any]c                ó^   — |j         €dS |j        €dd|j         iz  S d|j         |j        dœz  S )NÚNUMERICzNUMERIC(%(precision)s)Ú	precisionz!NUMERIC(%(precision)s, %(scale)s)©r�  Úscaler‚  r  s      rÒ   Úvisit_NUMERICz!GenericTypeCompiler.visit_NUMERIC©  óJ   € ØŒ?Ð"Ø�9ØŒ[Ð Ø+¨{¸E¼OÐ.LÑLÐLà6Ø"œ_Øœð:ð :ñ ð rÔ   úsqltypes.DECIMAL[Any]c                ó^   — |j         €dS |j        €dd|j         iz  S d|j         |j        dœz  S )NÚDECIMALzDECIMAL(%(precision)s)r�  z!DECIMAL(%(precision)s, %(scale)s)r‚  r‚  r  s      rÒ   Úvisit_DECIMALz!GenericTypeCompiler.visit_DECIMAL´  r…  rÔ   úsqltypes.Integerc                ó   — dS )NÚINTEGERrÎ   r  s      rÒ   Úvisit_INTEGERz!GenericTypeCompiler.visit_INTEGER¿  ó   € ØˆyrÔ   úsqltypes.SmallIntegerc                ó   — dS )NÚSMALLINTrÎ   r  s      rÒ   Úvisit_SMALLINTz"GenericTypeCompiler.visit_SMALLINTÂ  ó   € ØˆzrÔ   úsqltypes.BigIntegerc                ó   — dS )NÚBIGINTrÎ   r  s      rÒ   Úvisit_BIGINTz GenericTypeCompiler.visit_BIGINTÅ  rv  rÔ   úsqltypes.TIMESTAMPc                ó   — dS )NÚ	TIMESTAMPrÎ   r  s      rÒ   Úvisit_TIMESTAMPz#GenericTypeCompiler.visit_TIMESTAMPÈ  s   € Øˆ{rÔ   úsqltypes.DateTimec                ó   — dS )NÚDATETIMErÎ   r  s      rÒ   Úvisit_DATETIMEz"GenericTypeCompiler.visit_DATETIMEË  r“  rÔ   úsqltypes.Datec                ó   — dS )NÚDATErÎ   r  s      rÒ   Ú
visit_DATEzGenericTypeCompiler.visit_DATEÎ  r	  rÔ   úsqltypes.Timec                ó   — dS )NÚTIMErÎ   r  s      rÒ   Ú
visit_TIMEzGenericTypeCompiler.visit_TIMEÑ  r	  rÔ   úsqltypes.CLOBc                ó   — dS )NÚCLOBrÎ   r  s      rÒ   Ú
visit_CLOBzGenericTypeCompiler.visit_CLOBÔ  r	  rÔ   úsqltypes.Textc                ó   — dS )NÚNCLOBrÎ   r  s      rÒ   Úvisit_NCLOBzGenericTypeCompiler.visit_NCLOB×  rq  rÔ   r
  Úlengthrî  rÐ  rP  c                ó6   — |}|r	|d|› d�z  }|r	|d|› d�z  }|S )Nr.  r/  z
 COLLATE "r�  rÎ   )r  r
  r°  rÐ  rå  s        rÒ   Ú_render_string_typez'GenericTypeCompiler._render_string_typeÚ  sF   € ð ˆØð 	"Ø�M˜�M�M�MÑ!ˆDØð 	.ØÐ- Ð-Ð-Ð-Ñ-ˆDØˆrÔ   úsqltypes.CHARc                óD   — |                       d|j        |j        ¦  «        S )NÚCHAR©r²  r°  rÐ  r  s      rÒ   Ú
visit_CHARzGenericTypeCompiler.visit_CHARä  ó   € Ø×'Ò'¨°´¸e¼oÑNÔNÐNrÔ   úsqltypes.NCHARc                óD   — |                       d|j        |j        ¦  «        S )NÚNCHARr¶  r  s      rÒ   Úvisit_NCHARzGenericTypeCompiler.visit_NCHARç  s   € Ø×'Ò'¨°´¸u¼ÑOÔOÐOrÔ   úsqltypes.Stringc                óD   — |                       d|j        |j        ¦  «        S )NÚVARCHARr¶  r  s      rÒ   Úvisit_VARCHARz!GenericTypeCompiler.visit_VARCHARê  s%   € Ø×'Ò'Ø�u”| U¤_ñ
ô 
ð 	
rÔ   úsqltypes.NVARCHARc                óD   — |                       d|j        |j        ¦  «        S )NÚNVARCHARr¶  r  s      rÒ   Úvisit_NVARCHARz"GenericTypeCompiler.visit_NVARCHARï  s%   € Ø×'Ò'Ø˜œ e¤oñ
ô 
ð 	
rÔ   c                óD   — |                       d|j        |j        ¦  «        S )NÚTEXTr¶  r  s      rÒ   Ú
visit_TEXTzGenericTypeCompiler.visit_TEXTô  r¸  rÔ   úsqltypes.Uuid[Any]c                ó   — dS )NÚUUIDrÎ   r  s      rÒ   Ú
visit_UUIDzGenericTypeCompiler.visit_UUID÷  r	  rÔ   úsqltypes.LargeBinaryc                ó   — dS )NÚBLOBrÎ   r  s      rÒ   Ú
visit_BLOBzGenericTypeCompiler.visit_BLOBú  r	  rÔ   úsqltypes.BINARYc                ó.   — d|j         r
d|j         z  pdz   S )NÚBINARYú(%d)r§  ©r°  r  s      rÒ   Úvisit_BINARYz GenericTypeCompiler.visit_BINARYý  s    € Ø˜5œ<ÐA¨F°U´\Ñ,AÐGÀRÑHÐHrÔ   úsqltypes.VARBINARYc                ó.   — d|j         r
d|j         z  pdz   S )NÚ	VARBINARYrÓ  r§  rÔ  r  s      rÒ   Úvisit_VARBINARYz#GenericTypeCompiler.visit_VARBINARY   s    € Ø˜eœlÐD¨v¸¼Ñ/DÐJÈÑKÐKrÔ   úsqltypes.Booleanc                ó   — dS )NÚBOOLEANrÎ   r  s      rÒ   Úvisit_BOOLEANz!GenericTypeCompiler.visit_BOOLEAN  rŽ  rÔ   c                ót   — |j         r| j        j        s|                      ddd ¬¦  «        S  | j        |fi |¤ŽS )Nrµ  é    )r°  rÐ  )Únative_uuidr·  Úsupports_native_uuidr²  rË  r  s      rÒ   Ú
visit_uuidzGenericTypeCompiler.visit_uuid  sN   € ØÔ ð 	0¨¬Ô(Ið 	0Ø×+Ò+¨F¸2ÈÐ+ÑNÔNÐNà"�4”? 5Ð/Ð/¨BÐ/Ð/Ð/rÔ   c                ó   —  | j         |fi |¤ŽS r  )rÏ  r  s      rÒ   Úvisit_large_binaryz&GenericTypeCompiler.visit_large_binary  ó   € ð ˆtŒ˜uÐ+Ð+¨Ð+Ð+Ð+rÔ   c                ó   —  | j         |fi |¤ŽS r  )rÝ  r  s      rÒ   Úvisit_booleanz!GenericTypeCompiler.visit_boolean  ó   € Ø!ˆtÔ! %Ð.Ð.¨2Ð.Ð.Ð.rÔ   c                ó   —  | j         |fi |¤ŽS r  )r§  r  s      rÒ   Ú
visit_timezGenericTypeCompiler.visit_time  ó   € ØˆtŒ˜uÐ+Ð+¨Ð+Ð+Ð+rÔ   c                ó   —  | j         |fi |¤ŽS r  )rŸ  r  s      rÒ   Úvisit_datetimez"GenericTypeCompiler.visit_datetime  s   € Ø"ˆtÔ" 5Ð/Ð/¨BÐ/Ð/Ð/rÔ   c                ó   —  | j         |fi |¤ŽS r  )r£  r  s      rÒ   Ú
visit_datezGenericTypeCompiler.visit_date  rë  rÔ   c                ó   —  | j         |fi |¤ŽS r  )r—  r  s      rÒ   Úvisit_big_integerz%GenericTypeCompiler.visit_big_integer  ó   € Ø ˆtÔ  Ð-Ð-¨"Ð-Ð-Ð-rÔ   c                ó   —  | j         |fi |¤ŽS r  )r’  r  s      rÒ   Úvisit_small_integerz'GenericTypeCompiler.visit_small_integer   s   € ð #ˆtÔ" 5Ð/Ð/¨BÐ/Ð/Ð/rÔ   c                ó   —  | j         |fi |¤ŽS r  )r�  r  s      rÒ   Úvisit_integerz!GenericTypeCompiler.visit_integer%  rè  rÔ   c                ó   —  | j         |fi |¤ŽS r  )r}  r  s      rÒ   Ú
visit_realzGenericTypeCompiler.visit_real(  rë  rÔ   c                ó   —  | j         |fi |¤ŽS r  )rp  r  s      rÒ   Úvisit_floatzGenericTypeCompiler.visit_float+  s   € ØˆtÔ Ð,Ð,¨Ð,Ð,Ð,rÔ   c                ó   —  | j         |fi |¤ŽS r  )ru  r  s      rÒ   Úvisit_doublez GenericTypeCompiler.visit_double.  rò  rÔ   c                ó   —  | j         |fi |¤ŽS r  )r„  r  s      rÒ   Úvisit_numericz!GenericTypeCompiler.visit_numeric1  rè  rÔ   c                ó   —  | j         |fi |¤ŽS r  ©rÀ  r  s      rÒ   Úvisit_stringz GenericTypeCompiler.visit_string4  rè  rÔ   úsqltypes.Unicodec                ó   —  | j         |fi |¤ŽS r  r 	  r  s      rÒ   Úvisit_unicodez!GenericTypeCompiler.visit_unicode7  rè  rÔ   c                ó   —  | j         |fi |¤ŽS r  ©rÇ  r  s      rÒ   Ú
visit_textzGenericTypeCompiler.visit_text:  rë  rÔ   úsqltypes.UnicodeTextc                ó   —  | j         |fi |¤ŽS r  r	  r  s      rÒ   Úvisit_unicode_textz&GenericTypeCompiler.visit_unicode_text=  rå  rÔ   úsqltypes.Enumc                ó   —  | j         |fi |¤ŽS r  r 	  r  s      rÒ   Ú
visit_enumzGenericTypeCompiler.visit_enumB  rè  rÔ   c                ó0   — t          j        d|z  ¦  «        ‚)NzKCan't generate DDL for %r; did you forget to specify a type on this Column?r³  r  s      rÒ   r  zGenericTypeCompiler.visit_nullE  s$   € ÝÔð#à%*ñ+ñ
ô 
ð 	
rÔ   úTypeDecorator[Any]c                óN   —  | j         |                     | j        ¦  «        fi |¤ŽS r  )rÂ  Útype_enginer·  r  s      rÒ   Úvisit_type_decoratorz(GenericTypeCompiler.visit_type_decoratorL  s.   € ð ˆtŒ|˜E×-Ò-¨d¬lÑ;Ô;ÐBÐB¸rÐBÐBÐBrÔ   úUserDefinedType[Any]c                ó   —  |j         di |¤ŽS rW  )Úget_col_specr  s      rÒ   Úvisit_user_definedz&GenericTypeCompiler.visit_user_definedQ  s   € ð "ˆuÔ!Ð'Ð' BÐ'Ð'Ð'rÔ   N)r  rm  rÚ  r   r  rÏ   )r  rr  rÚ  r   r  rÏ   )r  rw  rÚ  r   r  rÏ   )r  rz  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Ú  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Ð  rP  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  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Ï   )2r  r  r  rp  ru  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	  r	  rÎ   rÔ   rÒ   rl  rl  š  sÓ  € € € € € ðð ð ð ðð ð ð ð"ð "ð "ð "ð
ð ð ð ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðOð Oð Oð OðPð Pð Pð Pð
ð 
ð 
ð 
ð

ð 
ð 
ð 
ð
Oð Oð Oð Oðð ð ð ðð ð ð ðIð Ið Ið IðLð Lð Lð Lðð ð ð ð0ð 0ð 0ð 0ð,ð ,ð ,ð ,ð
/ð /ð /ð /ð,ð ,ð ,ð ,ð0ð 0ð 0ð 0ð,ð ,ð ,ð ,ð.ð .ð .ð .ð0ð 0ð 0ð 0ð
/ð /ð /ð /ð,ð ,ð ,ð ,ð-ð -ð -ð -ð.ð .ð .ð .ð/ð /ð /ð /ð/ð /ð /ð /ð/ð /ð /ð /ð,ð ,ð ,ð ,ð,ð ,ð ,ð ,ð
/ð /ð /ð /ð
ð 
ð 
ðCð Cð Cð Cð
(ð (ð (ð (ð (ð (rÔ   rl  c                  ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚStrSQLTypeCompilerc                ó`   — 	 |j         } || fi |¤ŽS # t          $ r  | j        |fi |¤ŽcY S w xY wr  )rå  ÚAttributeErrorÚ_visit_unknown)r  r  rÚ  rå  s       rÒ   rÂ  zStrSQLTypeCompiler.processX  si   € ð	2Ø!&Ô!9Ðð &Ð% dÐ1Ð1¨bÐ1Ð1Ð1øõ ð 	4ð 	4ð 	4Ø&�4Ô& uÐ3Ð3°Ð3Ð3Ð3Ð3Ð3ð	4øøøs   ‚ ’-¬-c                óX   — |                      d¦  «        r| j        S t          |¦  «        ‚)Nr”  )r  r	  r	  )r  rA  s     rÒ   Ú__getattr__zStrSQLTypeCompiler.__getattr__`  s-   € Ø�>Š>˜(Ñ#Ô#ð 	&ØÔ&Ð&å  Ñ%Ô%Ð%rÔ   c                ó�   — |j         j        |j         j                             ¦   «         k    r|j         j        S t          |¦  «        S r  )rË  r  ÚupperÚreprr  s      rÒ   r	  z!StrSQLTypeCompiler._visit_unknownf  s:   € ØŒ?Ô# u¤Ô'?×'EÒ'EÑ'GÔ'GÒGÐGØ”?Ô+Ð+å˜‘;”;ÐrÔ   c                ó   — dS r  rÎ   r  s      rÒ   r  zStrSQLTypeCompiler.visit_nulll  r	  rÔ   c                ó`   — 	 |j         } |di |¤ŽS # t          $ r t          |¦  «        cY S w xY wrW  )r	  r	  r 	  )r  r  rÚ  r	  s       rÒ   r	  z%StrSQLTypeCompiler.visit_user_definedo  sV   € ð	&Ø Ô-ˆLð  �<Ð%Ð% "Ð%Ð%Ð%øõ ð 	ð 	ð 	Ý˜‘;”;ÐÐÐð	øøøs   ‚ ‘-¬-N)r  r  r  rÂ  r	  r	  r  r	  rÎ   rÔ   rÒ   r	  r	  W  s_   € € € € € ð2ð 2ð 2ð&ð &ð &ðð ð ðð ð ð&ð &ð &ð &ð &rÔ   r	  c                  ó   — e Zd Zdd„ZdS )Ú_SchemaForObjectCallableÚ_SchemaForObjectCallable__objr   r  rÏ   c                ó   — d S r  rÎ   )r  r%	  s     rÒ   r  z!_SchemaForObjectCallable.__call__y  ó   € € € rÔ   N)r%	  r   r  rÏ   r   rÎ   rÔ   rÒ   r$	  r$	  x  s   € € € € € Ø.Ð.Ð.Ð.Ð.Ð.rÔ   r$	  c                  ó   — e Zd Zdd„ZdS )rJ  r  rº  r  rÏ   c                ó   — d S r  rÎ   )r  r  s     rÒ   r  z _BindNameForColProtocol.__call__}  r'	  rÔ   N)r  rº  r  rÏ   r   rÎ   rÔ   rÒ   rJ  rJ  |  s   € € € € € Ø:Ð:Ð:Ð:Ð:Ð:rÔ   rJ  c                  óÎ  — e Zd ZU dZeZeZeZ	de
d<   de
d<   de
d<    ej        d¦  «        Zde
d	<   	 d
Zde
d<   	 	 	 	 	 dTdUd„Zd„ ZdVd„ZdWd„ZdWd„Zd „ ZdWd!„ZdXd"„Zd#„ ZdYdZd&„ZdYd[d(„Zd)„ Z	 d\d]d-„Z	 dYd^d1„Z	 dYd_d4„ZdYd5„Z ej         d6¦  «        	 d\d`d:„¦   «         Z!	 d\dad;„Z"	 d\dad<„Z#dbd?„Z$dcdB„Z%	 	 dddedE„Z&dF„ Z'	 dYdG„Z(	 	 	 	 	 dfdgdN„Z)d\dO„Z*ej+        dP„ ¦   «         Z,dhdS„Z-dS )ir¯  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_translater�  NTr·  rn   rP  Úescape_quoteÚquote_case_sensitive_collationsÚomit_schemac                óº   — || _         || _        |p| j        | _        || _        | j        dz  | _        || _        || _        i | _        | j         j        dv | _	        dS )as  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.
        r2   )rÚ   rØ   N)
r·  r+	  r,	  r/	  Úescape_to_quoter1	  r0	  r-	  r~  râ  )r  r·  r+	  r,	  r/	  r0	  r1	  s          rÒ   rÅ  zIdentifierPreparer.__init__œ  so   € ð. ˆŒØ*ˆÔØ&Ð<¨$Ô*<ˆÔØ(ˆÔØ#Ô0°1Ñ4ˆÔØ&ˆÔØ/NˆÔ,ØˆŒØ $¤Ô 7ð <
ð !
ˆÔÐÐrÔ   c                ó²   ‡— | j                              | j         ¦  «        }|j                             | j        ¦  «         d |v Šˆfd„}||_        ‰|_        |S )Nc                ó¤   •— | j         }| j        r;|€‰r7|�d|v sd|v rt          j        d|z  ¦  «        ‚t	          d|pdz  d¬¦  «        S | j         S )Nr2  r3  zJSquare bracket characters ([]) not supported in schema translate name '%s'z__[SCHEMA_%s]Ú_noneF©rÄ  )r#   Ú_use_schema_mapr3   rö  r/   )rá  r
  Úincludes_nones     €rÒ   Úsymbol_getterz@IdentifierPreparer._with_schema_translate.<locals>.symbol_getterÆ  sˆ   ø€ Ø”:ˆDØÔ"ð 
"¨Ð(8¸MÐ(8ØÐ#¨°¨¨¸¸t¸¸ÝÔ*ð8Ø:>ñ?ñô ð õ #Ø# t ¨wÑ7¸uðñ ô ð ð ”zÐ!rÔ   )rË  Ú__new__rŠ  r‹  rÆ  r.	  )r  r­  Úprepr:	  r9	  s       @rÒ   r½  z)IdentifierPreparer._with_schema_translateÀ  sm   ø€ ØŒ~×%Ò% d¤nÑ5Ô5ˆØŒ×Ò˜Tœ]Ñ+Ô+Ð+àÐ 4Ð4ˆð	"ð 	"ð 	"ð 	"ð 	"ð "/ˆÔØ/<ˆÔ,ØˆrÔ   r7  r­  ro   r  c                ó–   ‡ ‡— |Šd ‰v r&‰ j         st          j        d¦  «        ‚‰d          ‰d<   ˆˆ fd„}t          j        d||¦  «        S )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.r6	  c                óî   •— |                       d¦  «        }|‰v r	‰|         }n|dv rt          j        d¦  «        ‚|}|s"‰j        j        }|st          j        d¦  «        ‚‰                     |¦  «        S )Nr2   )Nr6	  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˜   r3   rC  r·  Údefault_schema_namerö  rÇ  )r´  r
  rÊ  Údr  s      €€rÒ   rã  z=IdentifierPreparer._render_schema_translates.<locals>.replaceè  s¡   ø€ Ø—7’7˜1‘:”:ˆDØ�qˆyˆyØ#$ T¤7Ð Ð à˜?Ð*Ð*ÝÔ1ð=ñô ð ð $(Ð à#ð Ø#'¤<Ô#CÐ Ø'ð åÔ*ð=ñô ð ð ×$Ò$Ð%5Ñ6Ô6Ð6rÔ   z(__\[SCHEMA_([^\]]+)\]))r.	  r3   rC  re  rÂ  )r  r7  r­  rã  r@	  s   `   @rÒ   rÃ  z,IdentifierPreparer._render_schema_translatesØ  s}   øø€ ð !ˆØ�1ˆ9ˆ9ØÔ7ð ÝÔ-ð9ñô ð ð ˜4œˆAˆg‰Jð	7ð 	7ð 	7ð 	7ð 	7ð 	7õ2 ŒvÐ0°'¸9ÑEÔEÐErÔ   rß  c                ó€   — |                      | j        | j        ¦  «        }| j        r|                      dd¦  «        }|S )z€Escape an identifier.

        Subclasses should override this to provide database-dependent
        escaping behavior.
        r-  rà  )rã  r/	  r3	  râ  ©r  rß  s     rÒ   Ú_escape_identifierz%IdentifierPreparer._escape_identifier  s@   € ð —’˜dÔ/°Ô1EÑFÔFˆØÔ ð 	-Ø—M’M # tÑ,Ô,ˆEØˆrÔ   c                óB   — |                      | j        | j        ¦  «        S )z±Canonicalize an escaped identifier.

        Subclasses should override this to provide database-dependent
        unescaping behavior that reverses _escape_identifier.
        )rã  r3	  r/	  rB	  s     rÒ   Ú_unescape_identifierz'IdentifierPreparer._unescape_identifier  s   € ð �}Š}˜TÔ1°4Ô3DÑEÔEÐErÔ   c                ót   — |�5|                      |¦  «        s t          j        d|›d|j        ›d�¦  «        ‚|S )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

        NzUnexpected SQL phrase: z (matching against r/  )rB  r3   rö  r]  )r  rØ  rh  s      rÒ   rZ  z&IdentifierPreparer.validate_sql_phrase  sN   € ð Ð s§y¢y°Ñ'9Ô'9ÐÝÔ"Ð"à�7�7˜CœK˜K˜Kð)ñô ð ð ˆrÔ   c                óL   — | j         |                      |¦  «        z   | j        z   S )z~Quote an identifier.

        Subclasses should override this to provide database-dependent
        quoting behavior.
        )r+	  rC	  r,	  rB	  s     rÒ   Úquote_identifierz#IdentifierPreparer.quote_identifier*  s0   € ð ÔØ×%Ò% eÑ,Ô,ñ-àÔñð	
rÔ   c                ó¶   — |                      ¦   «         }|| j        v p<|d         | j        v p-| j                             t          |¦  «        ¦  «         p||k    S )z5Return True if the given identifier requires quoting.r   )ro  Úreserved_wordsÚillegal_initial_charactersÚlegal_charactersrB  rÏ   )r  rß  Úlc_values      rÒ   r©  z#IdentifierPreparer._requires_quotes7  sd   € à—;’;‘=”=ˆà˜Ô+Ð+ð #Ø�QŒx˜4Ô:Ð:ð#àÔ(×.Ò.­s°5©z¬zÑ:Ô:Ð:ð#ð ˜EÒ!ð		
rÔ   c                óR   — | j                              t          |¦  «        ¦  «         S )zjReturn True if the given identifier requires quoting, but
        not taking case convention into account.)rL	  rB  rÏ   rB	  s     rÒ   rm  z1IdentifierPreparer._requires_quotes_illegal_charsA  s$   € ð Ô(×.Ò.­s°5©z¬zÑ:Ô:Ð:Ð:rÔ   Úforcer   c                ó\   — |�t          j        dd¬¦  «         |                      |¦  «        S )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`.

        NzÚ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.9rc  )r&   rf  rÄ  )r  r#   rO	  s      rÒ   rÇ  zIdentifierPreparer.quote_schemaF  sD   € ð. Ðõ Ô ð!ð ðñ ô ð ð �zŠz˜&Ñ!Ô!Ð!rÔ   r˜  c                óJ  — |�t          j        dd¬¦  «         t          |dd¦  «        }|€`|| j        v r| j        |         S |                      |¦  «        r|                      |¦  «        | j        |<   n
|| j        |<   | j        |         S |r|                      |¦  «        S |S )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().rQ	  rc  rÄ  )r&   rf  rn  r-	  r©  rH	  )r  r˜  rO	  s      rÒ   rÄ  zIdentifierPreparer.quotem  sÏ   € ð, Ðõ Ô ð!ð ðñ ô ð õ ˜˜w¨Ñ-Ô-ˆàˆ=Ø˜œÐ%Ð%Ø”} UÔ+Ð+à×(Ò(¨Ñ/Ô/ð 1Ø+/×+@Ò+@ÀÑ+GÔ+G�D”M %Ñ(Ð(à+0�D”M %Ñ(Ø”} UÔ+Ð+Øð 	Ø×(Ò(¨Ñ/Ô/Ð/àˆLrÔ   c                ó>   — | j         r|                      |¦  «        S |S r  )r0	  rÄ  )r  Úcollation_names     rÒ   rÏ  z#IdentifierPreparer.format_collation¡  s%   € ØÔ/ð 	"Ø—:’:˜nÑ-Ô-Ð-à!Ð!rÔ   rw  úschema.Sequencer‡  c                ó°   — |                       |j        ¦  «        }|                      |¦  «        }| j        s|r|�|                      |¦  «        dz   |z   }|S rå  )rÄ  r
  rÆ  r1	  rÇ  )r  rw  r‡  r
  rÊ  s        rÒ   r~  z"IdentifierPreparer.format_sequence§  sm   € ð �zŠz˜(œ-Ñ(Ô(ˆà×1Ò1°(Ñ;Ô;Ðð Ô ð	Dàð	Dð !Ð,à×$Ò$Ð%5Ñ6Ô6¸Ñ<¸tÑCˆDØˆrÔ   r	  ú
Label[Any]r
  c                ó:   — |                       |p|j        ¦  «        S r  ©rÄ  r
  )r  r	  r
  s      rÒ   r«  zIdentifierPreparer.format_label¶  s   € ð �zŠz˜$Ð, %¤*Ñ-Ô-Ð-rÔ   rÀ  úOptional[AliasedReturnsRows]c                ól   — |€|€J ‚|                       |j        ¦  «        S |                       |¦  «        S r  rY	  )r  rÀ  r
  s      rÒ   r£  zIdentifierPreparer.format_alias»  s;   € ð ˆ<ØÐ$Ð$Ð$Ø—:’:˜eœjÑ)Ô)Ð)à—:’:˜dÑ#Ô#Ð#rÔ   c                ól   — |p|j         }|                      |¦  «        r|                      |¦  «        }|S r  )r˜  r©  rH	  )r  Ú	savepointr
  r˜  s       rÒ   rN  z#IdentifierPreparer.format_savepointÄ  s>   € ð Ð'˜	œˆØ× Ò  Ñ'Ô'ð 	1Ø×)Ò)¨%Ñ0Ô0ˆEØˆrÔ   zsqlalchemy.sql.namingrÂ   úUnion[Constraint, Index]Ú_alembic_quotec                ó  — t           j        j        }|j        t          u r |                     ||j        ¦  «        }|€d S n|j        }|€J ‚|j        dk    r|                      ||¬¦  «        S |  	                    ||¬¦  «        S )Nr‰  )r_	  )
r&   rE  Ú
sql_namingr
  r,   Ú_constraint_name_for_tablerŸ   r  Útruncate_and_render_index_nameÚ#truncate_and_render_constraint_name)r  rÂ   r_	  Únamingr
  s        rÒ   r  z$IdentifierPreparer.format_constraintÍ  s²   € õ ”Ô*ˆàŒ?�jÐ(Ð(Ø×4Ò4Ø˜JÔ,ñô ˆDð ˆ|Ø�tð ð ”?ˆDàÐÐÐØÔ$¨Ò/Ð/Ø×6Ò6Ø ^ð 7ñ ô ð ð ×;Ò;Ø ^ð <ñ ô ð rÔ   c                ó`   — | j         j        p| j         j        }|                      |||¦  «        S r  )r·  Úmax_index_name_lengthrƒ  Ú _truncate_and_render_maxlen_name©r  r
  r_	  Úmax_s       rÒ   rc	  z1IdentifierPreparer.truncate_and_render_index_nameç  s?   € ð ŒLÔ.ð 2ØŒ|Ô1ð 	ð ×4Ò4Ø�$˜ñ
ô 
ð 	
rÔ   c                ó`   — | j         j        p| j         j        }|                      |||¦  «        S r  )r·  Úmax_constraint_name_lengthrƒ  rh	  ri	  s       rÒ   rd	  z6IdentifierPreparer.truncate_and_render_constraint_nameõ  s?   € ð ŒLÔ3ð 2ØŒ|Ô1ð 	ð ×4Ò4Ø�$˜ñ
ô 
ð 	
rÔ   rj	  rO  c                ó  — t          |t          j        ¦  «        rAt          |¦  «        |k    r-|d|dz
  …         dz   t	          j        |¦  «        dd …         z   }n| j                             |¦  «         |s|S |                      |¦  «        S )Nr   rj  r,  éüÿÿÿ)	rÀ  r   rD   rÅ  r&   Úmd5_hexr·  Úvalidate_identifierrÄ  )r  r
  rj	  r_	  s       rÒ   rh	  z3IdentifierPreparer._truncate_and_render_maxlen_name  s�   € õ �d�HÔ5Ñ6Ô6ð 	3Ý�4‰yŒy˜4ÒÐØ˜A  q¡˜LÔ)¨CÑ/µ$´,¸tÑ2DÔ2DÀRÀSÀSÔ2IÑI�øàŒL×,Ò,¨TÑ2Ô2Ð2àð 	$ØˆKà—:’:˜dÑ#Ô#Ð#rÔ   r‰  rT   c                ó8   — |                       |¦  «        }|€J ‚|S r  )r  )r  r‰  r
  s      rÒ   ræ  zIdentifierPreparer.format_index  s&   € Ø×%Ò% eÑ,Ô,ˆØÐÐÐØˆrÔ   rŸ   r\   c                óô   — |€%t           rt          |t          ¦  «        sJ ‚|j        }|                      |¦  «        }|                      |¦  «        }| j        s|r|r|                      |¦  «        dz   |z   }|S )z'Prepare a quoted table and schema name.Nr1  )r   rÀ  r]   r
  rÄ  rÆ  r1	  rÇ  )r  rŸ   r‡  r
  rj  rÊ  s         rÒ   r  zIdentifierPreparer.format_table  s“   € ð ˆ<Ýð :Ý! %­Ñ9Ô9Ð9Ð9Ð9Ø”:ˆDà—’˜DÑ!Ô!ˆà×1Ò1°%Ñ8Ô8ÐàÔð 	H Jð 	HÐ3Cð 	HØ×&Ò&Ð'7Ñ8Ô8¸3Ñ>ÀÑGˆFØˆrÔ   c                ó,   — |                       |¦  «        S )zPrepare a quoted schema name.r7	  ru  s     rÒ   r¢  z IdentifierPreparer.format_schema*  s   € ð �zŠz˜$ÑÔÐrÔ   c                óŽ   — |�/t          |t          j        ¦  «        r|                     |¦  «        }|                      |¦  «        S )úPrepare a quoted column name.)rÀ  r   rD   rm  rÄ  )r  r
  r„  s      rÒ   r—  z$IdentifierPreparer.format_label_name/  sF   € ð Ð¥JØ•(Ô+ñ%
ô %
Ðð —>’> (Ñ+Ô+ˆDà�zŠz˜$ÑÔÐrÔ   r¤   úColumnElement[Any]rô  Ú
table_namer„  úOptional[Mapping[str, Any]]c                óˆ  — |€|j         }|€J ‚|�/t          |t          j        ¦  «        r|                     |¦  «        }t          |dd¦  «        sM|r6|                      |j        ||¬¦  «        dz   |                      |¦  «        z   S |                      |¦  «        S |r#|                      |j        ||¬¦  «        dz   |z   S |S )ru	  NrÁ  F)r‡  r
  r1  )	r
  rÀ  r   rD   rm  rn  r  rŸ   rÄ  )r  r¤   rô  r
  rw	  r‡  r„  s          rÒ   rõ  z IdentifierPreparer.format_column=  s  € ð ˆ<Ø”;ˆDØÐ#Ð#Ð#àÐ¥JØ•(Ô+ñ%
ô %
Ðð —>’> (Ñ+Ô+ˆDå�v˜|¨UÑ3Ô3ð 	Øð 	(à×%Ò%Øœ°À*ð &ñ ô ð ñð —j’j Ñ&Ô&ñ	'ðð —z’z $Ñ'Ô'Ð'ð
 ð 	à×%Ò%Øœ°À*ð &ñ ô ð ñð ñ	ðð �rÔ   c                óÊ   — |                       |¦  «        }| j        s0|r.|r,|                      |¦  «        |                      |d¬¦  «        fS |                      |d¬¦  «        fS )z(Format table name and schema as a tuple.FrÛ  )rÆ  r1	  rÇ  r  )r  rŸ   r‡  rÊ  s       rÒ   rš  z#IdentifierPreparer.format_table_seqk  s…   € ð  ×1Ò1°%Ñ8Ô8ÐàÔð 	A Jð 	AÐ3Cð 	Aà×!Ò!Ð"2Ñ3Ô3Ø×!Ò! %°EÐ!Ñ:Ô:ðð ð
 ×%Ò% e¸Ð%Ñ>Ô>Ð@Ð@rÔ   c                ó¦   — d„ | j         | j        |                      | j        ¦  «        fD ¦   «         \  }}}t          j        d|||dœz  ¦  «        }|S )Nc              3  ó>   K  — | ]}t          j        |¦  «        V — Œd S r  )re  rf  r  s     rÒ   rB  z4IdentifierPreparer._r_identifiers.<locals>.<genexpr>~  s>   è è € ð )
ð )
àõ ŒI�a‰LŒLð)
ð )
ð )
ð )
ð )
ð )
rÔ   zM(?:(?:%(initial)s((?:%(escaped)s|[^%(final)s])+)%(final)s|([^\.]+))(?=\.|$))+)ÚinitialÚfinalræ  )r+	  r,	  rC	  re  rg  )r  r}	  r~	  Úescaped_finalÚrs        rÒ   Ú_r_identifiersz!IdentifierPreparer._r_identifiers|  s   € ð)
ð )
ð Ô"ØÔ Ø×'Ò'¨Ô(8Ñ9Ô9ðð)
ñ )
ô )
Ñ%ˆ�˜õ ŒJð$ð "¨E¸mÐLÐLñMñ
ô 
ˆð ˆrÔ   ÚidentifiersúSequence[str]c                óh   ‡ — ‰ j         }ˆ fd„d„ |                     |¦  «        D ¦   «         D ¦   «         S )z:Unpack 'schema.table.column'-like strings into components.c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS rÎ   )rE	  rÄ  s     €rÒ   r™  z;IdentifierPreparer.unformat_identifiers.<locals>.<listcomp>’  s7   ø€ ð 
ð 
ð 
àð ×%Ò% aÑ(Ô(ð
ð 
ð 
rÔ   c                ó   — g | ]	\  }}|p|‘Œ
S rÎ   rÎ   )rÐ   Úarr  s      rÒ   r™  z;IdentifierPreparer.unformat_identifiers.<locals>.<listcomp>”  s    € Ð@Ð@Ð@¡  A�a�f˜1Ð@Ð@Ð@rÔ   )r�	  Úfindall)r  r‚	  r€	  s   `  rÒ   Úunformat_identifiersz'IdentifierPreparer.unformat_identifiersŽ  sR   ø€ ð Ôˆð
ð 
ð 
ð 
à@Ð@¨¯ª°;Ñ)?Ô)?Ð@Ñ@Ô@ð
ñ 
ô 
ð 	
rÔ   )r�  Nr�  TF)r·  rn   r+	  rÏ   r,	  rP  r/	  rÏ   r0	  r.  r1	  r.  )r7  rÏ   r­  ro   r  rÏ   )rß  rÏ   r  rÏ   )rß  rÏ   r  r.  r  )r#   rÏ   rO	  r   r  rÏ   )r˜  rÏ   rO	  r   r  rÏ   )T)rw  rU	  r‡  r.  r  rÏ   )r	  rW	  r
  rP  r  rÏ   )rÀ  rZ	  r
  rP  r  rÏ   )rÂ   r^	  r_	  r.  r  rP  )r
  rÏ   r_	  r.  r  rÏ   )r
  rÏ   rj	  rO  r_	  r.  r  rÏ   )r‰  rT   r  rÏ   )TN)rŸ   r\   r‡  r.  r
  rP  r  rÏ   )FNNFN)r¤   rv	  rô  r.  r
  rP  rw	  rP  r‡  r.  r„  rx	  r  rÏ   )r‚	  rÏ   r  rƒ	  ).r  r  r  r  ÚRESERVED_WORDSrJ	  ÚLEGAL_CHARACTERSrL	  ÚILLEGAL_INITIAL_CHARACTERSrK	  r  rR  Ú
attrgetterrÆ  r.	  rÅ  r½  rÃ  rC	  rE	  rZ  rH	  r©  rm  rÇ  rÄ  rÏ  r~  r«  r£  rN  r&   rc  r  rc	  rd	  rh	  ræ  r  r¢  r—  rõ  rš  r_  r�	  r‰	  rÎ   rÔ   rÒ   r¯  r¯  €  s\  € € € € € € ØJÐJà#€Nà'Ðà!;ÐàÐÐÑàÐÐÑà&Ð&Ð&Ñ&à2E°(Ô2EÀhÑ2OÔ2OÐÐOÐOÐOÑOðð -2Ð#Ð1Ð1Ð1Ñ1ð
 !Ø%)ØØ04Ø!ð"
ð "
ð "
ð "
ð "
ðHð ð ð0)Fð )Fð )Fð )FðV
ð 
ð 
ð 
ðFð Fð Fð Fðð ð ð$
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð;ð ;ð ;ð
%"ð %"ð %"ð %"ð %"ðN2ð 2ð 2ð 2ð 2ðh"ð "ð "ð =Aðð ð ð ð ð  8<ð.ð .ð .ð .ð .ð JNð$ð $ð $ð $ð $ðð ð ð ð €TÔÐ0Ñ1Ô1àKOðð ð ð ñ 2Ô1ðð4 15ð
ð 
ð 
ð 
ð 
ð 15ð
ð 
ð 
ð 
ð 
ð$ð $ð $ð $ðð ð ð ð  Ø"ð	ð ð ð ð ð( ð  ð  ð ð ð  ð  ð  ð"  Ø"Ø$(Ø Ø04ð,ð ,ð ,ð ,ð ,ð\Að Að Að Að" 
Ôðð ñ Ôðð"
ð 
ð 
ð 
ð 
ð 
rÔ   r¯  )ýr  Ú
__future__r   rŽ  Úcollections.abcÚabcrÒ  ra  Úenumr   rÍ  rÒ  rR  re  Útimer   re  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&   re  Ú_typingr(   r)   r*   r+   r,   r-   r.   r/   r0   Úvisitorsr1   r3   r4   Úutil.typingr5   r6   r7   r8   Ú
annotationr9   r:   r;   r<   r´  r=   r›  r>   Údmlr?   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_   r`   Útype_apira   rb   rc   rd   re   Úengine.cursorrf   Úengine.interfacesrg   rh   ri   rj   rk   rl   rm   rn   ro   rÏ   Ú_FromHintsTyperŠ	  rg  ÚIr‹	  ÚLEGAL_CHARACTERS_PLUS_SPACErÑ  r    rŒ	  r[  r_  ra  Ú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¿  rj  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  rY  Ú_CompoundSelectKeywordr  Ú	UNION_ALLr  Ú
EXCEPT_ALLr  ÚINTERSECT_ALLrZ  r  r  r!  r"  r#  r%  r'  r,  r6  rK  r[  rh  rv  r{  rD  r|  r}  r~  r  Ú
namedtupler�  r¥  ÚEnsureKWArgrÿ  ÚBinaryElementRoleÚCompilerColumnElementr  r  rÜ  rj  r‘  rl  r	  r$	  rJ  r¯  rÎ   rÔ   rÒ   ú<module>rÇ	     sQ  ððð ð ð$ #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à	Ôñ 7;Ø+Ð+Ð+Ð+Ð+Ð+Ø,Ð,Ð,Ð,Ð,Ð,Ø"Ð"Ð"Ð"Ð"Ð"Ø Ð Ð Ð Ð Ð Ø#Ð#Ð#Ð#Ð#Ð#Ø)Ð)Ð)Ð)Ð)Ð)ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØ*Ð*Ð*Ð*Ð*Ð*Ø*Ð*Ð*Ð*Ð*Ð*Ø'Ð'Ð'Ð'Ð'Ð'Ø'Ð'Ð'Ð'Ð'Ð'Ø&Ð&Ð&Ð&Ð&Ð&Ø'Ð'Ð'Ð'Ð'Ð'Ø Ð Ð Ð Ð Ð ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#Ø'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø,Ð,Ð,Ð,Ð,Ð,Ø'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐØ,Ð,Ð,Ð,Ð,Ð,ØÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(Ø1Ð1Ð1Ð1Ð1Ð1Ø.Ð.Ð.Ð.Ð.Ð.Ø/Ð/Ð/Ð/Ð/Ð/ØÐÐÐÐÐØ&Ð&Ð&Ð&Ð&Ð&Ø+Ð+Ð+Ð+Ð+Ð+Ø'Ð'Ð'Ð'Ð'Ð'Ø"Ð"Ð"Ð"Ð"Ð"Ø'Ð'Ð'Ð'Ð'Ð'Ø,Ð,Ð,Ð,Ð,Ð,Ø'Ð'Ð'Ð'Ð'Ð'Ø$Ð$Ð$Ð$Ð$Ð$Ø)Ð)Ð)Ð)Ð)Ð)Ø#Ð#Ð#Ð#Ð#Ð#Ø4Ð4Ð4Ð4Ð4Ð4Ø<Ð<Ð<Ð<Ð<Ð<Ø:Ð:Ð:Ð:Ð:Ð:Ø<Ð<Ð<Ð<Ð<Ð<Ø=Ð=Ð=Ð=Ð=Ð=Ø3Ð3Ð3Ð3Ð3Ð3Ø=Ð=Ð=Ð=Ð=Ð=ØCÐCÐCÐCÐCÐCØ+Ð+Ð+Ð+Ð+Ð+Ø:Ð:Ð:Ð:Ð:Ð:ð �l CÐ'Ô(€ð_ð _ð _€ðB �2”:Ð.°´Ñ5Ô5Ð Ø(˜bœjÐ):¸B¼DÑAÔAÐ Ø;Ð;¨e¨e°A°r©l¬lÐ;Ñ;Ô;×AÒAÀ3À%ÑHÔHÐ àˆrŒzØ<¸b¼dñô €ð ˆrŒzØ<¸b¼dñô €ð ˆrŒzÐ5°r´tÑ<Ô<€ØˆbŒjÐAÀ2Ä:ÑNÔN€Ø�"”*Ð9¸2¼:ÑFÔF€à$Ð à"ØØØØ$Øðð €ð.à„N�Gð.ð „M�6ð.ð „M�5ð	.ð
 „M�5ð.ð „M�5ð.ð „M�5ð.ð „M�3ð.ð „L�%ð.ð „L�&ð.ð „L�&ð.ð „L�%ð.ð „L�&ð.ð „L�%ð.ð ÔÐ 4ð.ð  Ô"Ð$<ð!.ð" Ô˜ð#.ð$ Ô˜	ð%.ð .ð& Ô˜Mð'.ð( „O�Vð).ð* Ô˜ð+.ð, Ô˜ð-.ð. „O�Xð/.ð0 „M�6ð1.ð2 „M�6ð3.ð4 Ô�jð5.ð6 Ô�{ð7.ð: Ô�ið;.ð< Ô˜;ð=.ð> „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�FØ„N�FØÔ�hØÔ˜_ð-€	ð ð ð ñ ð& ØØØØØØØØØØØ"Ø"Ø$Ø(ðð €ð& Ô%Ô+¨WØÔ%Ô/°ØÔ%Ô,¨hØÔ%Ô0°,ØÔ%Ô/°ØÔ%Ô3°_ðÐ ðð ð ð ð ˜ñ ô ð ð>ð ð ð ð ˜ñ ô ð ð  !Ð Ð  Ð  Ð  Ñ  Ø€Ð Ð Ð Ñ Ø€
Ð Ð Ð Ñ Ø€Ð Ð Ð Ñ ðð ð ð ð ˜iñ ô ð ð$ð $ð $ð $ð $Ð1¸ð $ñ $ô $ð $ð:ð :ð :ð :ð :�Jñ :ô :ð :ðzAð Að Að Að A˜
ñ Aô Að AðHð ð ð ð ˜Zñ ô ð ð2!ð !ð !ð !ð ! ;ñ !ô !ð !ð$ð ð ð ð �Gñ ô ð ð ð ð ð ð ˆgñ ô ð ð. FKÀUØñFô FÑ B€
Ð&¨°lð
?#ð ?#ð ?#ð ?#ð ?#Ð'�Ô'¨°wÀÐ6HÑIÔIñ ?#ô ?#ð ?#ðDI'ð I'ð I'ð I'ð I'ñ I'ô I'ð I'ðXFð Fð Fð Fð F�4Ô#ñ Fô Fð Fð0ð ð ð ð Ø	Ô˜CÔ  (Ô"@ñô ð ð2#
ð #
ð #
ð #
ð #
Ø	Ô˜CÔ  (Ô"@ñ#
ô #
ð #
ðLAW
ð AW
ð AW
ð AW
ð AW
�(ñ AW
ô AW
ð AW
ðHnl
ð l
ð l
ð l
ð l
�[ñ l
ô l
ð l
ð^zð zð zð zñ z�(ñ zô zð zðzz(ð z(ñ z(ð z(ñ z(˜,ñ z(ô z(ð z(ðz&ð &ñ &ð &ñ &Ð,ñ &ô &ð &ðB/ð /ñ /ð /ñ /˜xñ /ô /ð /ð;ð ;ñ ;ð ;ñ ;˜hñ ;ô ;ð ;ðU
ð U
ñ U
ð U
ñ U
ñ U
ô U
ð U
ð U
ð U
rÔ   