§
    i˜ºh·R ã                  ó|  — 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$        �r>d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^lpmqZq dd_lpmrZr dd`lpmsZs ddalpmtZt ddbl=muZu d1dclvmwZw d1ddlxmyZy d1delxmzZz d1dflxm{Z{ d1dglxm|Z| d1dhlxm}Z} d1dilxm~Z~ d1djlxmZ d1dklxm€Z€ d1dllxm�Z� edme‚f         Zƒh dn£Z„ ej…        doej†        ¦  «        Z‡ ej…        dpej†        ¦  «        Zˆdq„  e‰ddr¦  «        D ¦   «          Š                    dsg¦  «        Z‹ ej…        dtej†        ¦  «        ZŒ ej…        dtej†        ¦  «        Z� ej…        duej†        ¦  «        ZŽ ej…        dvej�        ¦  «        Z� ej…        dwej�        ¦  «        Z‘dxZ’e’dydzd{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)ÚColumn)Ú
Constraint)ÚForeignKeyConstraint)Ú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)ÚSchemaTranslateMapTyperZ   >^   Ú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     ú_/var/www/html/services/rag-service/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  k  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Í   Ú	statementre   Ú
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  ©r6  )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>  rC  s    rÐ   Úadditional_parametersz#ExpandedState.additional_parametersá  s   € ð ŒÐrÒ   N)r  r	  )r  re   )r  r  r  r  r  ÚpropertyrD  rF  rÌ   rÒ   rÐ   r4  r4  ª  s¸   € € € € € € ðð ð" €N€N�NØ=à(Ð(Ð(Ñ(ðð 6Ð5Ð5Ñ5Ø+à(Ð(Ð(Ñ(ðð 1Ð0Ð0Ñ0ðð ð	Gð 	Gð 	Gñ „Xð	Gð ðð ð ñ „Xðð ð rÒ   r4  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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_exprú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_columnsr9  Úsentinel_param_keysÚimplicit_sentinelÚembed_values_counter)r  r  r  r  r  rP  rQ  rS  rT  rU  rV  rW  rÌ   rÒ   rÐ   rI  rI  ç  s  € € € € € € ðð ð ÐÐÑðð
 ÐÐÑðð 8Ð7Ð7Ñ7ØMà&Ð&Ð&Ñ&ð
ð %*ÐÐ)Ð)Ð)Ñ)ðð ',ÐÐ+Ð+Ð+Ñ+ðð 9=ÐÐ<Ð<Ð<Ñ<ðð !"ÐÐ!Ð!Ð!Ñ!ðð 48ÐÐ7Ð7Ð7Ñ7ðð  $ÐÐ#Ð#Ð#Ñ#ð	ð "'ÐÐ&Ð&Ð&Ñ&ð	ð 	rÒ   rI  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_statementrf   Úreplaced_parametersú#Optional[_GenericSetInputSizesType]Úprocessed_setinputsizesz#Sequence[_DBAPISingleExecuteParams]ÚbatchzSequence[Tuple[Any, ...]]Úsentinel_valuesrN  Úcurrent_batch_sizeÚbatchnumÚtotal_batchesr,  Úrows_sortedÚis_downgradedNr  rÌ   rÒ   rÐ   rY  rY  ^  s“   € € € € € € ð
ð 
ð ÐÐÑØ/Ð/Ð/Ñ/Ø@Ð@Ð@Ñ@Ø.Ð.Ð.Ñ.Ø.Ð.Ð.Ñ.ØÐÐÑØ€M€M�MØÐÐÑØÐÐÑØÐÐÑÐÐrÒ   rY  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Ð   rf  rf  w  sX   € € € € € ðð ð
 €MØ€MØ€HØ€Hà%¨Ñ0°8Ñ;ÐØ%Ð(9Ñ9ÐàÐØ ÐÐÐrÒ   rf  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Ð   rt  rt  ‰  s-   € € € € € Ø€IØ=à€Nðð €Lðð rÒ   rt  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Ð   ry  ry  ™  sG   € € € € € ðð ð €JØà!"Ððð €LØ2à-°Ñ<€Lðð rÒ   ry  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Ð   r@  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Ð   r@  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]r5  Ú rÍ   Ústringrt  ÚstateFzOptional[CursorResultMetaData]Ú_cached_metadataz"Optional[List[ResultColumnsEntry]]Ú_result_columnsú Optional[SchemaTranslateMapType]Úschema_translate_mapri   Úexecution_optionsÚIdentifierPreparerÚpreparerr9   Ú_annotationszOptional[CompileState]r+  Údml_compile_stateúOptional[CacheKey]Ú	cache_keyÚfloatÚ	_gen_timeÚdialectrl   Ú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_translatert  ru  r§  r5  Úsupports_executionÚcan_executer¯  r   Ú
isinstancer<   Ú_execution_optionsr¬  Úprocessr¦  Ú_render_schema_translatesrv  rw  r   r´  ©r  rµ  r5  r«  r¶  r·  s         rÐ   Ú__init__zCompiled.__init__K  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   ÚObjectNotExecutableErrorr5  )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'.

        ©ÚNotImplementedErrorrC  s    rÐ   Úsql_compilerzCompiled.sql_compiler™  s   € õ "Ñ#Ô#Ð#rÒ   Úobjrc   Ú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§  rt  rv  r¦  rC  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î  rC  s    rÐ   ræ  zCompiled.params½  s   € ð ×$Ò$Ñ&Ô&Ð&rÒ   )
rµ  rl   r5  r¤  r«  rª  r¶  r,  r·  r¸  )r  r  ©r  rÚ  )rß  rc   rà  r   r  rÍ   ©r  rÍ   ©NNT©ræ  rç  rè  ré  rê  r,  r  rë  )!r  r  r  r  r5  r  r¦  Úis_sqlÚis_ddlr¨  r©  r«  r&   Ú
EMPTY_DICTr¬  r¯  r+  r°  r²  ÚimmutabledictrÃ  rÇ  ÚclassmethodrÅ  rÑ  rÙ  rG  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µ  rl   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µ  rl   )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_setrC  s    rÐ   r  z_CompileLabel.proxy_setè  ó   € àŒ|Ô%Ð%rÒ   c                ó   — | j         j        S r  ©rÖ  r  rC  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Ã  rG  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  rC  s    rÐ   r  z ilike_case_insensitive.proxy_set	  r  rÒ   c                ó   — | j         j        S r  r  rC  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Ã  rG  r  r  r  r$  rÌ   rÒ   rÐ   r  r  ô  s�   € € € € € ð	ð 	ð 6€NØ'€Ið-ð -ð -ð ð&ð &ñ „Xð&ð ð!ð !ñ „Xð!ðð ð ð
ð 
ð 
ð 
ð 
rÒ   r  c                  ó.  — 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_clsC  s   € à× Ò Ñ"Ô"Ð"Ð"Ð"rÒ   c                ó°   — t          j        d                     | j        ¦  «        ¦  «        }t          j        d|› d�¦  «        | _        | j        | _        d S )Nr¥  r0  r1  )ÚreÚescaper‡   r3  Úcompiler4  r5  )rÈ  Úregs     rÐ   ra  z SQLCompiler._init_bind_translateG  sK   € åŒi˜Ÿš Ô >Ñ?Ô?Ñ@Ô@ˆÝ!#¤¨J°¨J¨J¨JÑ!7Ô!7ˆÔØ$'Ô$BˆÔ!Ð!Ð!rÒ   rµ  rl   r5  r¤  r²  r±  Úcolumn_keysr9  Úfor_executemanyÚlintingry  Ú_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Ì   ©r?  ©rÎ   Úbs     rÐ   ú
<dictcomp>z(SQLCompiler.__init__.<locals>.<dictcomp>r  s   € Ð3Ð3Ð3 �A”E˜1Ð3Ð3Ð3rÒ   r   c                ó   — i | ]}||g“ŒS rÌ   rÌ   ro  s     rÐ   rq  z(SQLCompiler.__init__.<locals>.<dictcomp>s  s   € Ð1Ð1Ð1˜q�A˜�sÐ1Ð1Ð1rÒ   rÙ   rÚ   rÔ   r.  NTc                ó"   — i | ]\  }}|d v¯	||“ŒS )>   r§  rµ  r®  Ú
positionalrD  rK  rE  rÌ   ©rÎ   ÚkÚvs      rÐ   rq  z(SQLCompiler.__init__.<locals>.<dictcomp>¾  s@   € ð ð ð á˜˜1Øðð	ð 	ð �qð	ð 	ð 	rÒ   F©rê  Ú_no_postcompile)Ú_populate_self)4rg  r²  rW  rh  ri  r?  r&   Úcolumn_dictr@  r•  r©  rt  Ú
paramstyleÚ
startswithrK  rF  Ú_pyformat_templaterE  ÚBIND_TEMPLATESr[  Úlabel_lengthÚmax_identifier_lengthr1   Úanon_mapÚtruncated_namesÚ_truncated_countersr£  rÃ  r7  r8  r6  r   r¾  rA   rC   Ú_inlinerZ  rµ  Úinsert_executemany_returningÚ_return_defaultsrD  Ú__dict__ÚupdateÚitemsr§  rt  rv  Ú_process_numericÚ_process_positionalrL  rî  Ú#_process_parameters_for_postcompile)r  rµ  r5  r²  rg  rh  ri  rj  rà  ÚcksmÚckbmÚnbr6  s                rÐ   rÃ  zSQLCompiler.__init__M  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)rR  rK  rC  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=  r5  r)   Ú_all_selected_columnsrC  s    rÐ   Úeffective_returningzSQLCompiler.effective_returningò  s\   € ð Ô"ð 
	ØÔ*Ð*ØŒ^Ð'­F°4´>Ñ,BÔ,BÐ'ðð àœÔ=ðñ ô ð ð �4rÒ   c                ó   — | j         S )zVbackwards compatibility; returns the
        effective_returning collection.

        )r™  rC  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;  rC  s    rÐ   ÚprefetchzSQLCompiler.prefetch6  s#   € å�DÔ(Ñ)Ô)­D°Ô1EÑ,FÔ,FÑFÐFrÒ   úDict[Any, Any]c                ó   — i S r  rÌ   rC  s    rÐ   Ú_global_attributeszSQLCompiler._global_attributes:  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_state>  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©  rI  r•  r‹  )r  Úresult_columnsÚordered_columnsÚentrys       rÐ   Ú_nested_resultzSQLCompiler._nested_resultV  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Ì   ru  s      rÐ   rq  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"  )rc  ÚsubÚ_positional_pattern)rÎ   rw  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Ò   ©rK  rM  )r²  r³  r  rÍ   )r:  r§  rt  rv  rK  rµ  r|  rc  rÀ  rÁ  r¦  rV  rŠ  ÚlenrR  rK  rM  Ú_replace)r  rK  rM  r¹  r·  r¸  r¾  s   `  @@@@rÐ   rŒ  zSQLCompiler._process_positionaln  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  )rX  )rÎ   r  r  s     €rÐ   r@  z/SQLCompiler._process_numeric.<locals>.<genexpr>µ  s=   øè è € ð ð àØ 4Ô#9Ð9Ð9ð à9Ð9Ð9Ð9ðð rÒ   c                óN   •— i | ]!\  }}‰j                              ||¦  «        |“Œ"S rÌ   )rV  r½  )rÎ   r  Úposr  s      €rÐ   rq  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Î   rw  s     rÐ   r—  z0SQLCompiler._process_numeric.<locals>.<listcomp>æ  s=   € ð "ð "ð "àð �1”�q˜”t˜T 1 Q¤4Ð(ð"ð "ð "rÒ   rÂ  )rK  r§  rt  rv  rR  rX  Ú	itertoolsÚchainr@  Úvaluesr?  rU  rT  rF  Únext_numeric_posr¢  r:  rV  rÃ  rŠ  Ú_pyformat_patternrÀ  r¦  rK  rM  rÄ  )
r  Únumrš   Ú	bind_nameÚbindÚphÚ
len_beforerK  rM  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Î   r?  Úvalues      rÐ   rq  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Ð   r@  z9SQLCompiler._bind_processors.<locals>.<genexpr>.<genexpr>  sG   øè è € ð #ð #à )ð &×<Ò<¸T¼\ÑJÔJð#ð #ð #ð #ð #ð #rÒ   N)	r@  r  Ú_is_tuple_typerà  rµ  rB  r   r0   Útypes)rÎ   Ú	bindparamr  s     €rÐ   r@  z/SQLCompiler._bind_processors.<locals>.<genexpr>ü  s²   øè è € ð ð ð ð ”O IÔ.ð  )œ~Ô<ð˜	œ×=Ò=¸d¼lÑKÔKÐKå"ð #ð #ð #ð #å-1Ý )¨9¬>ñ.ô .ä#ð	#ñ #ô #ñ ô ððð ð ð ð ð rÒ   )r@  rC  s   `rÐ   Ú_bind_processorszSQLCompiler._bind_processorsò  sK   ø€ ð
ð 
ðð ð ð ð "&¤ðñ ô ð
ñ 
ô 
ð 	
rÒ   c                ó2   — t          | j        ¦  «        dk    S rÊ  )rÃ  r•  rC  s    rÐ   Úis_subqueryzSQLCompiler.is_subquery  s   € Ý�4”:‰Œ Ò"Ð"rÒ   r7   c                ó   — | S r  rÌ   rC  s    rÐ   rÞ  zSQLCompiler.sql_compiler  s   € àˆrÒ   ræ  rç  rê  r4  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

        Trx  )rî  r�  )r  ræ  rê  r6  s       rÐ   Úconstruct_expanded_statez$SQLCompiler.construct_expanded_state  sD   € ð ×*Ò*ØØ%Ø ð +ñ 
ô 
ˆ
ð
 ×7Ò7Øñ
ô 
ð 	
rÒ   rè  ré  Ú_group_numberúOptional[int]Ú_checkry  rk   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Î   rp  Ú	extractedr×  r�  s       €rÐ   rq  z0SQLCompiler.construct_params.<locals>.<dictcomp>X  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)rL  rM  Údictr6  r3   rA  r,  rV  r²  ÚCompileErrorrW  Úzipr@  rŠ  r½  r?  ÚrequiredÚcallableÚeffective_valuerÝ  )r  ræ  rè  rê  rë  rí  ry  Ú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  rT  r@  r  râ  r   r0   rã  )	r  Ú
inputsizesrT  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ð  rC  s    rÐ   ræ  zSQLCompiler.paramsÔ  s   € ð ×$Ò$¨EÐ$Ñ2Ô2Ð2rÒ   r6  rz  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.

        Nr7  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Ð   r@  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>N  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Î   r?  r*  r  Úsingle_processorss      €€rÐ   r@  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>Y  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Ð   r@  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>_  s7   è è € ð 3ð 3Ù%, T¨1˜Dð3ð 3ð 3ð 3ð 3ð 3rÒ   c              3  ó    K  — | ]	\  }}|V — Œ
d S r  rÌ   r  s      rÐ   r@  zBSQLCompiler._process_parameters_for_postcompile.<locals>.<genexpr>f  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>g  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Ð   r@  z]SQLCompiler._process_parameters_for_postcompile.<locals>.process_expanding.<locals>.<genexpr>v  sD   øè è € ð !ð !àð !( ¨¨¨h¨hÐ7ð!ð !ð !ð !ð !ð !rÒ   )r–   Úsplitr‡   )r²  r?  ÚexprÚtokr%  r&  Úreplacement_expressionss       @@€rÐ   Úprocess_expandingzJSQLCompiler._process_parameters_for_postcompile.<locals>.process_expandingm  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Ì   ©rF  )rÎ   rÕ  r?  r  s      €rÐ   rq  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Ì   )"rO  r¦  rt  rQ  r:  rå  r   rK  r@  rÒ  rV  r½  r?  rT  Úrender_literal_bindparamr‹  rU  Ú$_literal_execute_expanding_parameterÚliteral_executer‰  r  râ  r  Úextendrµ  rc  rÀ  Ú_post_compile_patternrÓ  rÔ  r4  r5  r¢  rM  )r  r6  rz  Úexpanded_parametersÚpre_expanded_stringÚnew_positiontupÚpre_expanded_positiontupr8  Únew_processorsÚto_update_setsÚnumeric_positiontupÚnamesÚebnrþ  Ú	parameterÚ	to_updaterÒ  Úleep_resÚreplacement_exprr+  r5  Ú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ð 5=Ñ1�YÐ 0à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_cursorrd   Ú_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  )rI  )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¼  )Ú	lastrowidr6  Ú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Ì   rn  ©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Î   rL  r  r6  s      €rÐ   r@  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Î   rL  r  Úautoinc_colÚautoinc_getterrT  r6  s      €€€€rÐ   r@  zWSQLCompiler._inserted_primary_key_from_lastrowid_getter.<locals>.get.<locals>.<genexpr>û  su   øè è € ð ð ñ $˜ ð  +Ð-Ð-ð  .Ð9ð +˜N¨9°jÑAÔAÐAà!* ð $˜V JÑ/Ô/ðð ð ð ð ð rÒ   rÌ   )rT  r6  r^  r_  Ú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&   rC  Úengine_resultrM  r+  r5  r   r¾  r?   r�   Úprimary_keyÚ_autoincrement_columnr  Ú_cached_result_processorrµ  r?  Úresult_tuple)r  Úresultr5  r�   rW  r½  r^  r_  rV  r`  ra  rR  rb  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Ð   rq  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)rP  Ú
itemgetterrQ  )rÎ   r  rR  Ú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Ì   rn  rY  s     rÐ   r—  zKSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.<listcomp>-	  rZ  rÒ   c                ó8   •‡ ‡—  ‰ˆˆ fd„‰D ¦   «         ¦  «        S )Nc              3  óN   •K  — | ]\  }}|r |‰¦  «        n
 |‰¦  «        V — Œ d S r  rÌ   )rÎ   rL  Úuse_rowr6  Úrows      €€rÐ   r@  zWSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get.<locals>.<genexpr>0	  sV   øè è € ð ð á#�F˜Gð  'Ð>���s‘”�¨F¨F°:Ñ,>Ô,>ðð ð ð ð ð rÒ   rÌ   )rt  r6  r`  rb  s   ``€€rÐ   r½  zDSQLCompiler._inserted_primary_key_from_returning_getter.<locals>.get/	  sD   øøø€ Ø�6ð ð ð ð ð à'.ðñ ô ñ ô ð rÒ   )r&   rC  rc  r+  r5  r   r¾  r?   rM  r�   r=  r  r   rd  rg  )
r  rh  r5  r�   r›  r½  r`  rR  ro  rb  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Ì   rC  s    rÐ   Údefault_fromzSQLCompiler.default_from7	  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ã  Ú	translater?  Ú_with_valuer?  r@  r‹  rU  rT  rW  Ú_cloned_setrµ  )r  Úoverride_bindsrØ  Úsqltextrv  ÚbpÚnew_bpr  rû  r�  rŽ  Úcbs               rÐ   Úvisit_override_bindsz SQLCompiler.visit_override_bindsA	  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¤  r/  r¥  Úalias)r  r³  Ú
is_literalr¾  r   rD   r¦  r?  Ú	_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_collationX
  s   € ØŒ}×-Ò-¨gÔ.?Ñ@Ô@Ð@rÒ   c                ó   — |j         S r  ©r  )r  Ú
fromclauserà  s      rÐ   Úvisit_fromclausezSQLCompiler.visit_fromclause[
  s
   € ØŒÐrÒ   c                ó   — |j         S r  rÒ  )r  r‡  rà  s      rÐ   Úvisit_indexzSQLCompiler.visit_index^
  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_typeclausea
  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_texth
  ó'   € ØŒ=Ô)ð 	+Ø—<’<  TÑ*Ô*ˆDØˆrÒ   c                óJ   — | j         j        r|                     dd¦  «        }|S rÝ  rß  râ  s     rÐ   rÁ  z!SQLCompiler.escape_literal_columnm
  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_bindparams
  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_textclauser
  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   r.  Fr-  T)r�  rª  ©Únesting_level)r•  Ú_default_stack_entryr   rµ  Ú_independent_ctesÚ_dispatch_independent_ctesr½  rt  rI  rG  r,  Úcolumn_argsrJ  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Ð   r@  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Ð   r@  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Ð   r@  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Ð   r@  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 ©Nr2  )rP  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)rP  Ú_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 r2  zWHEN z THEN zELSE ÚEND)rÝ  rã  ÚwhensÚelse_)r  Úclauserà  rÏ   Úcondrh  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ã  rc  Úmatchr8  r–   )r  r   rà  Útype_clauser@  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_clause$  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 (r2  c           	     ó^   •— g | ])\  }}|®t          |¦  «        ¯|›d |j        ‰fi ‰¤Ž›�‘Œ*S )Nz BY )rÃ  rã  )rÎ   Úwordr8  rà  r  s      €€rÐ   r—  z*SQLCompiler.visit_over.<locals>.<listcomp>b  sc   ø€ ð ð ð ñ %˜˜fð Ð)­c°&©k¬kÐ)ð �t�tÐ6˜VÔ6°tÐFÐF¸vÐFÐFÐFðHð *Ð)Ð)rÒ   Ú	PARTITIONÚORDERr-  )	rÖ  rã  rH  rI  ÚrowsÚgroupsr‡   Úpartition_byÚorder_by)r  Úoverrà  rã  rH  s   ` `  rÐ   Ú
visit_overzSQLCompiler.visit_overN  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ã  rR  )r  Úwithingrouprà  s      rÐ   Úvisit_withingroupzSQLCompiler.visit_withingroupo  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_funcfilteru  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à  r_  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Ò   rY  ú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)sr/  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®  rk  r¾  r   r/   rÂ  r‡   ÚpackagenamesÚfunction_argspecÚ_with_ordinality)r  rY  rª  rà  r1  rã  r  s   `     @rÐ   rc  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  ru  rØ  s      rÐ   rt  zSQLCompiler.visit_sequence¸  s$   € Ý!Ø@ØŒlÔñ ñ
ô 
ð 	
rÒ   c                ó(   —  |j         j        | fi |¤ŽS r  )Úclause_exprrã  )r  rY  rà  s      rÐ   rq  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�  r.  Fr   r/  r'  r&  )r'  r&  r$   r+  r.  r2  c              3  ó@   •K  — | ]\  }} |j         ‰f‰|d œ‰¤ŽV — ŒdS ))r‡  rý  Nrâ  )rÎ   r  r–  r‡  rà  r  s      €€€rÐ   r@  z4SQLCompiler.visit_compound_select.<locals>.<genexpr>ç  sf   øè è € ð ð ñ �A�qð %�Ô$ØðØ!'¸ðð Ø=Cðð ðð ð ð ð ð rÒ   rº  r‡  T©rõ  Úinclude_following_stackrÌ   )r•  Ú_compile_state_factoryr+  r5  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  rl  )r  r0  Ú
qualifier1Ú
qualifier2Úattrnames        rÐ   r/  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ÚunaryrP  Úmodifierz,Unary expression has no operator or modifier)rP  r˜  r3   rô  r/  Ú _generate_generic_unary_operatorr§  Ú _generate_generic_unary_modifier)r  r—  rª  r«  rØ  r1  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¡   rP  rØ  s       rÐ   Úvisit_truediv_binaryz SQLCompiler.visit_truediv_binary6  sî   € ØŒ<Ô'ð 	à�”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñð �$”,Ý”MØœð  &œ|Ô0Ô?Ý'Ô/ð 0ð  0ð #œLÔ-Ð-õ "*Ô!1Ñ!3Ô!3ñô ðð ð ðð ñ	ðð( �”˜Vœ[Ð/Ð/¨BÐ/Ð/Øñà�$”,˜vœ|Ð2Ð2¨rÐ2Ð2ñ3ðrÒ   c                ó  — | j         j        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_binaryQ  s¹   € àŒLÔ(ð	à”Ô!Ô0µHÔ4DÐDÐDð �”˜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Ö  rP  rØ  s       rÐ   Úvisit_is_true_unary_operatorz(SQLCompiler.visit_is_true_unary_operatorb  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_operatork  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_binaryt  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_binaryy  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Ð   r@  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Ð   r@  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.ry  ©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Ð   r@  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Ð   r@  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Ð   r@  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Ð   r@  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  r3  Ú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Ð   r@  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Ð   r@  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>(  s=   ø€ ð ð ð á�A�uð !˜D˜D ! !Ð$ eÐ,ðð ð rÒ   c              3  ó4   •K  — | ]\  }} ‰|¦  «        V — Œd S r  rÌ   )rÎ   r?  rÝ  rÞ  s      €rÐ   r@  zCSQLCompiler._literal_execute_expanding_parameter.<locals>.<genexpr>,  sD   øè è € ð /ð /Ù.8¨c°5Ð$Ð$ SÑ)Ô)ð/ð /ð /ð /ð /ð /rÒ   )r1  rØ  rµ  r  r  rK  rE  rD  Ú_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Ð   r0  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_lateralTr1  r¡   )Úfrom_linterÚlateral_from_linter)r!   Úis_comparisonrP  r‰  r‰  rÐ  Úproductr*   rˆ   r+   rœ   rC  r¾  r   rF   r/  r§  rµ  r’  r3   rÔ  )r  r¡   r°  Úeager_groupingré  rê  rØ  rè  r0  r1  r2  r×  s               rÐ   r±  zSQLCompiler.visit_binary2  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_binaryj  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_binarym  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í  r2  )rí  rµ  rÁ  r2  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Á  r2  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Á  r2  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]r2  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 )Nr.  FTÚ
_binary_oprí  r%  )r½  rP  rˆ   rã  rœ   )r  r¡   r2  rí  rØ  r.  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—  r2  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%   Ú
STRINGTYPErC  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¡   rP  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 )Nrd  z LIKE ú ESCAPE r¥  ©Ú	modifiersr½  rˆ   rã  rœ   r  r%   r  ©r  r¡   rP  rØ  rd  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 )Nrd  z
 NOT LIKE r+  r¥  r,  r.  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_binary%  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¡   rP  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 r5  r6  s        rÐ   Úvisit_not_between_op_binaryz'SQLCompiler.visit_not_between_op_binary4  sQ   € ØÔ$×(Ò(¨°eÑ<Ô<ˆ	Ø,ˆtÔ,ØØ)2ÐGÐ%Ð%¸ð
ð 
ð ð
ð 
ð 	
rÒ   rP  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_binary<  ó)   € õ ÔØ=ØŒ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_binaryD  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_binaryL  s)   € õ ÔØIØŒlÔñ ñ
ô 
ð 	
rÒ   c           	     óô  — |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)Úskip_bind_expressionr�  Úliteral_bindsr1  Ú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  Údialect_implrµ  rÒ  Úbind_expressionrÀ  rH  rc  r@  r–   r/  r1  rC  Ú_truncate_bindparamr?  rª   r  Úintersectionr|  r3   rô  Ú_is_crudr?  rW  rµ  Ú
isoutparamÚhas_out_parametersrL  rT  rU  rê  )r  rä  r�  rE  rD  r1  rF  rà  ÚimplrK  Úwrappedr²  ro  rG  r  Úexistingrû  r�  rŽ  r  r�  s                        rÐ   Úvisit_bindparamzSQLCompiler.visit_bindparamT  s�  € ð $ð $	Ø”>×.Ò.¨t¬|Ñ<Ô<ˆDØÔ(ð "Ø"&×"6Ò"6°yÑ"AÔ"A�Ø&˜$œ,Ø#ðà)-Ø*?Ø"/Ð"K¸	Ô8KÐ4KØ$3Ø'9ðð ð ðð �ð Ô&ð ,õ œØAÀ7ñô �Að ÐIÐIÐIÑIÔIÐIÐ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_limitedr?  rÀ  r%   rî  rø  rH  rØ  r  r  )
r  rä  r  rÔ  rØ  rÝ  ÚopÚleepr>  r@  s
             rÐ   r/  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_value  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ä  )r@  r?  r¾  r   rD   r¦  )r  rä  rÖ  s      rÐ   rL  zSQLCompiler._truncate_bindparamD  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  rg  r  ÚanonnameÚcounterÚ	truncnames         rÐ   r¦  z!SQLCompiler._truncated_identifierQ  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._anonymizef  s   € Ø�d”mÑ#Ð#rÒ   rG  rH  Úescaped_fromrI  ú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   )r5  r–   )r²  r  s    €rÐ   rÎ  z.SQLCompiler.bindparam_string.<locals>.<lambda>ƒ  s   ø€ ˜dÔ8¸¿ºÀ¹¼ÔD€ rÒ   z__[POSTCOMPILE_%s]r  )Úaddrµ  r4  rÓ  rÀ  rV  rž   r  rµ  Úrender_literal_castrÜ  r§  rt  ru  rE  rD  rå  )r  r  rG  rH  rt  rI  rv  rx  rØ  Únew_namero  Ú	type_impls   `           rÐ   rê  zSQLCompiler.bindparam_stringi  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…  rY   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>G  sF   € ð "ð "ð "ñØØ&Ø/ØØ$à'ð"ð
 ,Ð9¨zð"ð "ð "rÒ   r%  rß   c              3  óZ   •K  — | ]%}‰j                              |‰j        ¬ ¦  «        V — Œ&dS )rq  N)r®  Úformat_label_namer‚  )rÎ   Úidentr  s     €rÐ   r@  z(SQLCompiler.visit_cte.<locals>.<genexpr>X  sW   øè è € ð "ð "ð !&ð !œM×;Ò;Ø %°´ð <ñ ô ð"ð "ð "ð "ð "ð "rÒ   Úsubqueryr‡  rá   z
(r-  r2  )'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Ð   r@  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_namero  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 )NrE  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Ð   r@  z-SQLCompiler._render_values.<locals>.<genexpr>  s“   øè è € ð 	
ð 	
ð Øð	
ð 	
ð ð ˆDŒLÝ”Ø26ðØ!Ô/ðð ç’*‘,”,ðð ð ð	ð ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rÒ   rÆ  )Ú
setdefaultrE  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Ð   r@  z+SQLCompiler.visit_values.<locals>.<genexpr>E  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Ø  rw  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_valuesO  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_suffixR  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.)rI  rH  râ  r3   rô  r©  rµ  r  r  s        rÐ   rú  zSQLCompiler._add_to_result_mapU  s‡   € ð ˆˆˆàˆ?˜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_columnn  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  rJ  rµ  Ú_has_column_expressionÚcolumn_expressionrú  r¾  r   rK   r  r  rÖ  rÀ  rH   r¿  r�   Ú
TextClauseÚUnaryExpressionrP  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º  rQ  Úcol_exprrª  Úresult_exprÚrender_with_labelrú  s     `               @rÐ   rí  z SQLCompiler._label_select_columnƒ  sw  øø€ ð  Œ{×'Ò'¨¬Ñ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_textT  s2   € Ø×*Ò*¨5°$Ñ7Ô7ˆØð 	&Ø�s˜X‘~Ñ%ˆGØˆrÒ   c                ó   — d S r  rÌ   )r  Úbyfromss     rÐ   Úget_select_hint_textz SQLCompiler.get_select_hint_textZ  ó   € ØˆtrÒ   r�   rZ   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_textb  r	  rÒ   c                ó,   — d                      |¦  «        S r*  r  )r  Ú
hint_textss     rÐ   Úget_statement_hint_textz#SQLCompiler.get_statement_hint_texte  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_selecto  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�  r.  r-  rª  )r¥  r�  zSELECT r2  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Î   r?  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>*  r  rÒ   c           
     óp   •— g | ]2\  }}}}t          ||t          ˆfd „|D ¦   «         ¦  «        |¦  «        ‘Œ3S )c              3  óD   •K  — | ]}‰                      ||¦  «        V — Œd S r  r¼  )rÎ   Úorz  s     €rÐ   r@  z6SQLCompiler.visit_select.<locals>.<listcomp>.<genexpr>9  s1   øè è € Ð$FÐ$F¸Q Y§]¢]°1°aÑ%8Ô%8Ð$FÐ$FÐ$FÐ$FÐ$FÐ$FrÒ   )r  rB  )rÎ   r?  r  rß  r  rz  s        €rÐ   r—  z,SQLCompiler.visit_select.<locals>.<listcomp>7  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>J  s<   ø€ ð ð ð á&�\ 2Ø C¨¬Ô):Ð#;Ð;Ð;ð à;Ð;Ð;rÒ   rô  )r�  Ú_ambiguous_table_name_mapr5  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   rz  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©   r0  ú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Ð   rq  z3SQLCompiler._setup_select_hints.<locals>.<dictcomp>c  sh   ø€ ð 
ð 
ð 
ñ +Ñ �˜ (Ø˜3 ¤Ô 1Ð2Ð2Ð2ð �8Ø�u×/Ò/°¸TÐ/ÑBÔBÐCñDð 3Ð2Ð2rÒ   )r+  rŠ  r  )r  r©   r7  r6  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   r/  z}All selectables passed to CompoundSelect must have identical numbers of columns; select #%d has %d columns, select #%d has %dr   rÌ   r  )r&  r'  r$   r+  )rÃ  r˜  r.  r3   rô  r  r  r   r+   rž   r•  rµ  )r  r©   r+  r®  r‡  rÃ  rý  r'  r&  r/  Únumcolsrˆ  Únew_correlate_fromsÚall_correlate_fromsrÿ  s                  rÐ   r*  zSQLCompiler._setup_select_stackl  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Î   Úfr7  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Î   rE  ré  rà  r  s     €€€rÐ   r—  z4SQLCompiler._compose_select_body.<locals>.<listcomp>Ò  sW   ø€ ð ð ð ð ð -˜Ô,Ø ðà#'Ø(3ðð ð %ð	ð ðð ð rÒ   ré  z 
WHERE z	 
HAVING )r‡   ri  r{  r  r   r|  ré  Úrstripr+  rw  Ú_where_criteriar"  rž  Ú_group_by_clausesr…  Ú_having_criteriaÚ_order_by_clausesr†  r‡  rˆ  Ú_for_update_argÚfor_update_clause)r  rã  r©   r+  r8  rˆ  r7  rþ  rà  Úwarn_lintingÚtré  s   `     ` `  @rÐ   r/  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 )Nr2  c              3  ób   •K  — | ])\  }}|d v s|‰j         j        k    ¯ |j        ‰fi ‰¤ŽV — Œ*dS ))Nrê  Nr>  )rÎ   Úprefixr'  rØ  r  s      €€rÐ   r@  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Ø  r8  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>-  s   € Ð<Ð<Ð<°˜cœmÐ<Ð<Ð<rÒ   r2  ú, 
c                ó   — g | ]}|‘ŒS rÌ   rÌ   )rÎ   Útxts     rÐ   r—  z2SQLCompiler._render_cte_clause.<locals>.<listcomp>0  s   € Ð >Ð >Ð >¨ Ð >Ð >Ð >rÒ   z
 )r[  r&   r©  r¢  Úkeysr]  r—  r˜  rw   Ú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Ð   rZ  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Ð   r-  z!SQLCompiler.get_select_precolumnsD  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  rJ  r§  r!   Úcomma_op)r  r©   rØ  Úgroup_bys       rÐ   r…  zSQLCompiler.group_by_clauseT  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  rL  r§  r!   rg  )r  r©   rØ  rR  s       rÐ   r†  zSQLCompiler.order_by_clause_  sO   € ð 1�4Ô0ØÔ$¥iµ	Ô0BÔ&Cð
ð 
ØGIð
ð 
ˆð ð 	Ø (Ñ*Ð*à�2rÒ   c                ó   — dS )Nz FOR UPDATErÌ   re  s      rÐ   rN  zSQLCompiler.for_update_clausek  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>v  st   ø€ ð 
ð 
ð 
ñØØØ#ØØð )ˆDÔ(ØØØ#ð	ð %8Ø#+ØØ%ð	ð 	ð ð	ð 	ð
ð 
ð 
rÒ   T)Úcolsú
RETURNING rß   )r¢  r   Ú_select_iterablesr‡   ©r  rƒ  rk  r   rØ  rã  s   `` `` rÐ   Úreturning_clausezSQLCompiler.returning_clausen  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 rx  z	WITH TIESÚONLY)rŽ  Ú_fetch_clause_optionsrv  Ú_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 )Nr/  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È  ro  Ú	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 TrG  ú 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µ  r6  r  s       €rÐ   rq  z1SQLCompiler._setup_crud_hints.<locals>.<dictcomp>  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_hints  s|   ø€ ð
ð 
ð 
ð 
à/3¬{×/@Ò/@Ñ/BÔ/Bð
ñ 
ô 
ˆð
 Œ:˜Ð&Ð&Ø×3Ò3Ø˜DœJ¨°d´jÔ(AÀ4ñô ˆJð ˜jÐ(Ð(rÒ   rT   rR  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   rA  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Ò   rg   Úcompiled_parametersú%List[_MutableCoreSingleExecuteParams]Úgeneric_setinputsizesr\  Ú
batch_sizerN  rP  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}n,‰ j        j        r|r‰ j	        r|j
        �|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
  }t3          |||z
  |z  ¦  «        }t          d	t5          ‰¦  «        ¦  «        }t          d	t5          |¦  «        ¦  «        }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 ¦   «         } t3          | ¦  «        Š6tI          | ¦  «        dz   Š7t	          | ¦  «        ‰7‰6z
  k    sJ ‚‰ j%        r2tM          j'        ‰ j(        ¦  «        }!tM          j)        |!› d�d‰5¦  «        Š5|�r©|d
|…         }"|d
|…         }#g |d
|…<   g |d
|…<   |r|}$nt	          |"¦  «        }$‰r%d„ ˆfd„tU          |$¦  «        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   }+tY          ˆ fd„tU          |*|+¦  «        D ¦   «         ¦  «        },|)|,z  })|                     d|)¦  «        }-tY          tZ          j.         /                    |(¦  «        ¦  «        }.|&|.z   |'z   }.nØg }/| 0                    ¦   «         }.t          |"¦  «        D ]‰\  Š8Š9|                     d tc          ‰8¦  «        ¦  «        }0|j        r#|0                     d!tc          ‰8¦  «        ¦  «        }0|/ 2                    |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  r?  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á  rD  )rY  Ú	formattedr?  rV  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Ð   r@  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>  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¯  r?  rV  s       €rÐ   r@  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>  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Î   r?  r6  s     €rÐ   rq  zASQLCompiler._deliver_insertmanyvalues_batches.<locals>.<dictcomp>$  s4   ø€ ð ð ð àð �Z ”] 3Ô'ðð ð rÒ   z, _IMV_VALUES_COUNTER), z), r"  c                ó"   •— h | ]\  }}|‰v ¯	|’ŒS rÌ   rÌ   )rÎ   rl  r  Úall_names_we_will_expands      €rÐ   rÑ   z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<setcomp>A  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>c  s5   € ð +ð +ð +á*˜  sð ˜d CÐ(ð+ð +ð +rÒ   c              3  ó>   •K  — | ]}‰D ]\  }}}|› d |› �||fV — ŒŒdS )r*  NrÌ   )rÎ   r‡  r?  r¶  r  r¡  s        €rÐ   r@  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>e  si   øè è € ð /ð /à!Ø.Cð/ð /ñ +˜C  sð  Ð)Ð) %Ð)Ð)¨4°Ð5ð/ð /ð /ð /ð /ð /ð /rÒ   rÌ   c              3  ó,   •K  — | ]}|‰‰…         V — Œd S r  rÌ   )rÎ   rp  Úexpand_pos_lower_indexÚexpand_pos_upper_indexs     €€rÐ   r@  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>z  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Ð   r@  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Ð   r@  z@SQLCompiler._deliver_insertmanyvalues_batches.<locals>.<genexpr>ž  sE   øè è € ð &ð &àð  Ô>ÐCÀÐCÐCð&ð &ð &ð &ð &ð &rÒ   ÚEXECMANY_INDEX__r¼  c                ó,   •— i | ]}|› d ‰› �‰|         “ŒS )Ú__rÌ   )rÎ   r?  r  Úparams     €€rÐ   rq  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Ò   )3rR  rU  rP  rn  rÃ  rJ  rµ  Úsupports_default_metavalueÚsupports_multivalues_insertr©  rS  rQ  r  r   rõ  rY  Ú	functoolsÚpartialr®  rÁ  rK  rá  Úinsertmanyvalues_max_parametersr@  rM  Úminr¢  rt  rV  r   rW  r‡   rM  r  r‰  r:  rk  rK  rc  rd  rF  rÀ  ÚrangerO  rB  rÐ  rÑ  Úfrom_iterabler�  rÍ   rµ  );r  r5  r6  rŸ  r¡  r¢  rP  r«  ÚimvÚ	lenparamsÚuse_row_at_a_timeÚ
downgradedra  Ú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]  rb  rM  Úall_keysÚimv_values_counterÚformatted_values_clauseÚkeys_to_replaceÚbase_parametersrÚ  r:  Úall_expand_positionsÚescapedr^  Úcompiled_batchr`  Únum_ins_paramsÚextra_params_leftÚextra_params_rightÚbatch_iteratorÚexpanded_values_stringr’  ry   r¸  rZ  r[  Úreplaced_values_clausesÚfmvrÆ  r³  r­  rV  r½  r¹  rº  r  rÄ  r©  s;   ` ` `                                            @@@@@@@@@@rÐ   Ú!_deliver_insertmanyvalues_batchesz-SQLCompiler._deliver_insertmanyvalues_batches~  s
  øøøøøøøøøøøøøè è € ð Ô$ˆØˆˆˆàÔ&ð 	Ø$(Ð!Ð!å$,Ô$7ØÔ(ð%Ð!õ ˜
‘O”Oˆ	ØÔð 	 t¤|Ô'Nð 	ð !%ÐØˆJˆJØ”Ô9ð 	Ø#ð	àÔ$ð	ð Ô%Ð-°Ô1NÐ-ð
 !%ÐØˆ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àŒð M	ØÔ&ð (Ø%)Ô%<Ð"Ð"à%'Ð"å˜: 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                óx  ‡ —  |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  }�n×|d|z  z  }�nÍ|	s]|r[|dz  }|rRti          d‰ j        j5        tm          d|	¦  «        ||j        |j7        d u||rt          |¦  «        nd|¬¦	  «	        ‰ _8        �nn|j        r,|dd $                    d„ |j9        D ¦   «         ¦  «        ›�z  }�n;d $                    d„ tm          d|	¦  «        D ¦   «         ¦  «        }|�r|rª‰ j        j(        tR          j:        z  r‘|j;        sŠd}‰ j        j(        tR          j<        z  }d $                    d„ t{          |	¦  «        D ¦   «         ¦  «        }|r/d $                    ˆ fd„t{          |	¦  «        D ¦   «         ¦  «        }n|}|d |› d!|› d"|› d#�z  }nd}|d$|› d%�z  }ti          d|tm          d|	¦  «        ||j        |j7        d u||rt          |¦  «        nd|||¬&¦  «        ‰ _8        n	|d$|› d%�z  }|j7        � ‰ j0        |j7        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   rx  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.zcRETURNING cannot be determinstically 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>P  s    € Ð>Ð>Ð>™-˜!˜T 1 a�Ð>Ð>Ð>rÒ   c                ó   — i | ]
\  }}}}||“ŒS rÌ   rÌ   )rÎ   r  r*  Úparam_namess       rÐ   rq  z,SQLCompiler.visit_insert.<locals>.<dictcomp>h  s2   € ð "ð "ð "á.˜˜Q  ;ð ˜ð"ð "ð "rÒ   zTsentinel selection rules should have prevented us from getting here for this dialect©r   r2  r�  r1  r1  r  rÆ  z DEFAULT VALUESrL  )rP  rQ  rS  rT  rV  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Ð   r@  z5SQLCompiler.visit_insert.<locals>.<genexpr>.<genexpr>Ñ  s*   è è € Ð LÐ L©>¨1¨a°¸ Ð LÐ LÐ LÐ LÐ LÐ LrÒ   Nr  )rÎ   Úcrud_param_sets     rÐ   r@  z+SQLCompiler.visit_insert.<locals>.<genexpr>Ï  s\   è è € ð ð ð 'ð Ø—y’yÐ LÐ L¸^Ð LÑ LÔ LÑLÔLñNðð ð ð ð ð rÒ   c                ó   — g | ]	\  }}}}|‘Œ
S rÌ   rÌ   rô  s      rÐ   r—  z,SQLCompiler.visit_insert.<locals>.<listcomp>×  s0   € ð ð ð á&˜˜1˜e Qð ðð ð rÒ   c              3  ó&   K  — | ]\  }}d |› �V — ŒdS ©ÚpNrÌ   )rÎ   r  r*  s      rÐ   r@  z+SQLCompiler.visit_insert.<locals>.<genexpr>ö  s=   è è € ð )ð )Ù$( A q˜˜A˜˜ð)ð )ð )ð )ð )ð )rÒ   c              3  óš   •K  — | ]E\  }^}}‰                      |j        |j                             ‰j        ¦  «        d |› �¦  «        V — ŒFdS rø  )rÜ  r  r  rµ  )rÎ   r  r  r*  r  s       €rÐ   r@  z+SQLCompiler.visit_insert.<locals>.<genexpr>  st   øè è € ð 4ð 4ñ !-  9 C¨!ð !×1Ò1Ø #¤Ø #¤× @Ò @ÀÄÑ NÔ NØ ' A  ñô ð4ð 4ð 4ð 4ð 4ð 4rÒ   z SELECT z FROM (VALUES (z)) AS imp_sen(z#, sen_counter) ORDER BY sen_counterz	 VALUES (r-  )rJ  rK  rM  rO  rP  rQ  rS  rT  rU  rV  rW  )?r�  r5  r•  r7  r°  r+  rµ  r   rt  r   Ú_get_crud_paramsrÃ  rK  rX  Ú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_columnsrM  r“  rf  ro  Ú_insert_sentinelr¢  rs  rA  r©   rÀ  r[  Úcte_follows_insertrû  rI  Údefault_metavalue_tokenr   Ú_post_values_clauserR  Úall_multi_paramsrq  Úis_default_metavalue_onlyrr  r  r‹  ) r  Úinsert_stmtrx  rŠ  rØ  r+  rþ  Úcounted_bindparamÚcrud_params_structÚcrud_params_singler®  rý  rã  r�  r*  r  Únamed_sentinel_paramsÚadd_sentinel_colsrV  rk  Ú_params_by_colÚ_add_sentinel_colÚ
param_namers  Úselect_textrõ  r’  Úembed_sentinel_valueÚrender_bind_castsÚcolnamesÚcolnames_w_castÚpost_values_clauses    `                               rÐ   Úvisit_insertzSQLCompiler.visit_insertÙ  sÇ	  ø€ ð ;˜Ô:Ø˜ð
ð 
Ø!#ð
ð 
ˆð $Ô-ˆàÐ#Ø!-ˆ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ñô ð õ "& 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ðñ �‘ð ˜ Ñ+Ñ+�‘Ø#ð z	AÐ(?ð z	AØÐ%Ñ%ˆDØ#ð Ý):ØØ”LÔ8ÝØ9Ð;Mñô ð &à#Ô<ð $Ô7¸tÐCà%6à2CÐJ�Ð-Ñ.Ô.Ð.Èà&7ð#*ñ *ô *�Ô&ùð& Ô0ð d	AØˆDØ—	’	ð ð ð +=Ô*Mðñ ô ñ ô ð ðñ ˆD‰Dð )-¯	ª	ðð å*.Ø9Ø*ñ+ô +ðñ ô ñ)ô )Ð%ð $ñ QAà%ð6Eð œÔGÝ6ÔMñNð6Eð 0ÔIð6Eð ,0Ð(ð œÔGÝ6ÔNñOð &ð
  $Ÿyšyð )ð )Ý,5Ð6HÑ,IÔ,Ið)ñ )ô )ñ  ô  �Hð )ð 3ð +/¯)ª)ð 4ð 4ð 4ð 4õ 1:Ð:LÑ0MÔ0Mð4ñ 4ô 4ñ +ô +˜˜ð +3˜àð/ ?ð /ð /Ø$=ð/ð /à&.ð/ð /ð /ñ�D�Dð ,1Ð(ØÐDÐ(AÐDÐDÐDÑD�Då):Ø$)Ø'@Ý'+Ø9Ø*ñ(ô (ð 3Dà#Ô<ð $Ô7¸tÐCà%6à2CÐJ�Ð-Ñ.Ô.Ð.Èà(=Ø&7Ø)=ð)*ñ *ô *�Ô&Ð&ð0 Ð@Ð$=Ð@Ð@Ð@Ñ@�àÔ*Ð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_clauseK  ó   € àˆ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_clauseO  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_clauseS  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Î   rE  Ú
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Ð   r@  z+SQLCompiler.visit_update.<locals>.<genexpr>Ä  sG   è è € ð 
ð 
á!��4˜ ð �3‰J˜Ñð
ð 
ð 
ð 
ð 
ð 
rÒ   zList[Tuple[Any, str, str, Any]]r2  rñ  ú WHERE rô  ÚUPDATE©r�  r�  ).r�  r   r¾  rB   r5  r•  r8  r°  r+  ri  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   rA  rs  r)  rI  r"  r  r[  rÃ  rû  rž  r‹  )r  r  rŠ  rØ  r+  rþ  ré  rO  r$  Úis_multitableÚrender_extra_fromsr'  rã  r�  r  Úcrud_paramsr�  Úextra_from_textrP  r�  rõ  r,  s                        @rÐ   Úvisit_updatezSQLCompiler.visit_updatek  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$  r(  rØ  s         rÐ   Údelete_extra_from_clausez$SQLCompiler.delete_extra_from_clauseÿ  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_clause  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é  r2  rñ  ré  r/  rô  ÚDELETEr1  r�  )(r�  r5  r•  r6  r°  r+  ri  r{  r  r   r|  ré  r2  r�   rž   rµ  r¤  r£  r<  Ú	TypeErrorrÀ  r   rû  r+  r‘  r÷  rø  r=  r   rA  rs  r:  rI  r"  r!  r[  rÃ  rû  rž  r‹  )r  r   rŠ  rØ  r+  rþ  ré  rO  r$  r'  rã  r�  r*  r�  r6  rP  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 %srC  rE  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 %srC  rE  s      rÐ   Úvisit_release_savepointz#SQLCompiler.visit_release_savepointŸ  s&   € Ø%¨¬×(FÒ(FØñ)
ô )
ñ 
ð 	
rÒ   )rµ  rl   r5  r¤  r²  r±  rg  r9  rh  r,  ri  ry  rj  rk  rà  r   )r  rN  )r  r<  )r  r¤  )r  r§  )r  rÚ  )r  r7   )NT)ræ  rç  rê  r,  r  r4  )NNTNTF)ræ  rç  rè  ré  rê  r,  rë  rì  rí  r,  ry  r,  r  rk   ©F)r6  rk   rz  r,  r  r4  )r  rJ  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Í   )rY  rh  rª  r¹  rà  r   r  rÍ   )rY  rh  rà  r   r  rÍ   )FN©NrÌ   )NFNN)
r¡   rù  r2  rÍ   rí  r,  rØ  r   r  rÍ   )r¡   rù  rP  r   rØ  r   r  rÍ   )FFFFF)rÝ  r   r  r]  r  rÍ   )rg  rÍ   r  rD   r  rÍ   )r  rÍ   r  rÍ   )FFNNNN)r  rÍ   rG  r,  rH  r,  rt  rN  rI  ru  rv  rw  rx  rP  rØ  r   r  rÍ   )r…  rY   r‡  r,  r‡  r,  rˆ  r‰  rŠ  r‹  ré  rŒ  r€  r�  rà  r   r  rN  )FFFNFFNN)FNN)
r  rÍ   r  rÍ   r
  r	  r  r  r  r  )NNNTFFT)r�   rZ   rã  rN  r  rN  )FFNNNFN)r©   r0  r  r;  )r©   r0  rØ  r   r  rÍ   ©
rƒ  rA   rk  rl  r   r,  rØ  r   r  rÍ   )NFF)FFFNTNNN)r�   rT   r  rR  )r5  rÍ   r6  rg   rŸ  r   r¡  r\  r¢  rN  rP  r,  r«  rª  r  r£  r�  )r  r@   rŠ  r‹  rØ  r   r  rÍ   )úr  r  r  r  ÚEXTRACT_MAPr^  r&   rø  r3  r  rõ  ÚCOMPOUND_KEYWORDSr‚  r6  r7  r8  r:  r;  r=  r>  rA  rB  rC  rG  rH  rI  rJ  rK  rL  rM  rO  rQ  rR  rS  Ú	frozensetrT  rU  r÷  rV  rP  Úpostfetch_lastrowidrW  r:  rX  rY  rZ  rc  re  r3  rÔ  ÚpatternrÁ  rù  rÅ  ra  rz  rÃ  rG  r’  Úro_memoized_propertyr™  r›  r   r£  Úmemoized_propertyr¦  Úmemoized_instancemethodrª  Ú
contextlibÚcontextmanagerr¯  rŒ  r‹  rå  rç  rÞ  rê  rî  r  ræ  r�  Úpreload_modulerG  rM  ri  ru  rw  r‚  rˆ  r‹  rœ  r¢  r¯  r³  r·  rË  rÐ  rÔ  rÖ  rÛ  rä  rÁ  rñ  r  r  r  r  r  r"  r(  r&  r3  r:  r>  rB  rI  rT  rW  r\  ra  rg  rc  rw  rt  rq  rŒ  rˆ  r/  r›  r£  r¦  r«  r®  r³  r¶  rÁ  r¿  rØ  r0  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  r7  r9  r=  r@  rB  rT  rÜ  r.   r/  r  rL  r¦  rs  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*  r/  r£  rû  rZ  r-  r…  r†  rN  rs  r�  r�  r†  rŒ  r‘  r-   Ú
CLIENTSIDErf  rp  ÚSENTINEL_DEFAULTÚNONErm  rn  r˜  rž   rl  r–  rž  rë  r  r  r!  r%  r)  r7  r:  r<  rA  rG  rI  rK  rÌ   rÒ   rÐ   rÚ  rÚ    s^  € € € € € € ðð ð €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ð
ð 
ð 
ð
ð 
ð 
ñ
ð 
ð 
ð 
ñ
ð 
ð 
ð 
ñ
ð 
ð 
ð 
ð $ØØ"ØØ ñcð cð cð cðJ$ð $ð $ð $Ø!%ð	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 ØØ Ø"Ø Ø %ØñOJñ OJð OJð OJñbð ð ñð ð ññ ð ð ñ
ð ð ñ$ð $ð $ñ .Ð-Ñ-Ñ-àÔð 
Ø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Ø,Ô:ð	
ñ$ô $Ð ñ<ñ <ð <ð <ñ|Yñ Yð Yð Yðx
 AEñpñ pð pð pñdð ð ñð ð ñ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¯   )rj  )Ústringify_dialectr&   rC  Ú
engine_urlÚURLr£   Úget_dialectÚstatement_compilerr¾  r`  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 )Nr0  r1  )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  ©rk  r¢  s       rÐ   Úvisit_json_getitem_op_binaryz+StrSQLCompiler.visit_json_getitem_op_binaryÐ  ó   € Ø(ˆtÔ(¨°Ð@Ð@¸RÐ@Ð@Ð@rÒ   c                ó    —  | j         ||fi |¤ŽS r  rm  r¢  s       rÐ   Ú!visit_json_path_getitem_op_binaryz0StrSQLCompiler.visit_json_path_getitem_op_binaryÓ  ro  rÒ   c                ó>   — d| j                              |¦  «        › d�S )Nz<next sequence value: ú>)r®  Úformat_sequencerz  s      rÐ   rt  zStrSQLCompiler.visit_sequenceÖ  s%   € àO T¤]×%BÒ%BÀ8Ñ%LÔ%LÐOÐOÐOð	
rÒ   rƒ  rA   rk  rl  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Ò   rp  rß   )r   rq  r‡   rr  s   `     rÐ   rs  zStrSQLCompiler.returning_clauseÛ  sO   ø€ ð
ð 
ð 
ð 
åÔ+¨NÑ;Ô;ð
ñ 
ô 
ˆð ˜dŸiši¨Ñ0Ô0Ñ0Ð0rÒ   c                ó^   ‡ ‡‡— d‰d<   dd                      ˆˆˆ fd„|D ¦   «         ¦  «        z   S )NTr‡  r>  rß   c              3  ó8   •K  — | ]} |j         ‰fd ‰i‰¤ŽV — ŒdS ©rˆ  Nrâ  ©rÎ   rP  r(  rØ  r  s     €€€rÐ   r@  z4StrSQLCompiler.update_from_clause.<locals>.<genexpr>í  sQ   øè è € ð #
ð #
àð !ˆAÔ  ÐBÐB°ÐB¸rÐBÐBð#
ð #
ð #
ð #
ð #
ð #
rÒ   r  r'  s   `   ``rÐ   r)  z!StrSQLCompiler.update_from_clauseé  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 rz  râ  r{  s     €€€rÐ   r@  z:StrSQLCompiler.delete_extra_from_clause.<locals>.<genexpr>ö  sQ   øè è € ð  
ð  
àð !ˆAÔ  ÐBÐB°ÐB¸rÐBÐBð 
ð  
ð  
ð  
ð  
ð  
rÒ   r  r9  s   `   ``rÐ   r:  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_exprû  s   € Ø$Ð$rÒ   c                ó   — d|z  S )Nz[%s]rÌ   r  s      rÐ   r  z!StrSQLCompiler.get_from_hint_textþ  s   € Ø˜‰}ÐrÒ   c                ó    —  | j         |dfi |¤ŽS )Nz
 <regexp> ©rµ  r¢  s       rÐ   r=  z+StrSQLCompiler.visit_regexp_match_op_binary  s   € Ø,ˆtÔ,¨V°\ÐHÐHÀRÐHÐHÐHrÒ   c                ó    —  | j         |dfi |¤ŽS )Nz <not regexp> r�  r¢  s       rÐ   r@  z/StrSQLCompiler.visit_not_regexp_match_op_binary  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Ð   rB  z-StrSQLCompiler.visit_regexp_replace_op_binary  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-  )r8  rã  rÚ  )r  r   rà  s      rÐ   Úvisit_try_castzStrSQLCompiler.visit_try_cast  sN   € € à*ˆDŒKÔ*¨4Ð:Ð:°6Ð:Ð:Ð:Ð:Ø.ˆDŒOÔ.¨tÐ>Ð>°vÐ>Ð>Ð>Ð>ð
ð 	
rÒ   rN  )r  r  r  r  r³  r&   rY  rÙ  rk  rn  rq  rt  rs  r)  r:  r¿  r  r=  r@  rB  r…  rú  rû  s   @rÐ   r`  r`  ¥  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Ò   r`  c                  ó   — e Zd ZdZer	 	 	 dWdXd„Zej        dYd„¦   «         Zej	        d„ ¦   «         Z
	 	 	 dZd[d„Zd„ Zd„ Zd„ Zd„ Zd\d„Z	 d]d „Zd!„ Zd"„ Zd^d&„Z	 d_d'„Zd(„ Z	 d\d`d+„Zd,„ Zd-„ Zd.„ Zd/„ Zd0„ Zd1„ Zd2„ Zd3„ Zd]d4„Z d5„ Z!d6„ Z"d7„ Z#d8„ Z$d9„ Z%dad=„Z&dbd@„Z'dA„ Z(dB„ Z)dC„ Z*dcdH„Z+dI„ Z,dJ„ Z-dddL„Z.dddM„Z/dedO„Z0dedP„Z1dedQ„Z2dfdS„Z3dT„ Z4dU„ Z5dV„ Z6dS )gÚDDLCompilerT.rµ  rl   r5  r>   r«  rª  r¶  r,  r·  r¸  c                ó   — d S r  rÌ   rÂ  s         rÐ   rÃ  zDDLCompiler.__init__  s	   € ð ˆ3rÒ   r  rÚ  c                óP   — | j                              | j         d | j        ¬¦  «        S )Nr¥  )rµ  rg  r«  rC  s    rÐ   rÞ  zDDLCompiler.sql_compiler"  s-   € àŒ|×.Ò.ØŒL˜$°TÔ5Nð /ñ 
ô 
ð 	
rÒ   c                ó   — | j         j        S r  )rµ  rÙ  rC  s    rÐ   Útype_compilerzDDLCompiler.type_compiler(  s   € àŒ|Ô2Ð2rÒ   Nræ  rç  rè  ré  rê  rë  c                ó   — d S r  rÌ   rí  s       rÐ   rî  zDDLCompiler.construct_params,  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#   rT   r�  r®  Úformat_table_seqrÃ  rÛ  r  rÞ  rä  r5  )r  Úddlrà  rŽ  r®  Úpathr�   Úschs           rÐ   Ú	visit_ddlzDDLCompiler.visit_ddl4  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_schemaG  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_schemaM  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 r2  zTABLE r–  r,  ú
F©Úfirst_pkrV  ú	Tz(in table 'z', column 'z'): r   )Ú _include_foreign_key_constraintsz
)%s

)rÖ  r®  r¤  r‡   r—  r  Úcreate_table_suffixrã  rÀ  rd  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_tableV  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¤  r2  c              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S r  )rÀ  ©rÎ   rÀ   r  s     €rÐ   r@  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Ì   )rd  )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Ð   r@  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_alterrl  rÀ  rµ  s     €rÐ   r@  z7DDLCompiler.create_table_constraints.<locals>.<genexpr>²  s|   øè è € ð ð àØ×:Ò:¸4Ñ@Ô@ðð
 œÔ3ðõ # :¨{¸EÑBÔBðØ—’˜ZÑ(Ô(ðð ð ð ð ð rÒ   )rd  rµ  Úforeign_key_constraintsr  r   r2  Ú_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‡  rR   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º  rE  N)rÞ  rÀ  )rÎ   r(  r  s     €rÐ   r@  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_indexí  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 ©Nr/  )r�   r®  rÄ  rÅ  Úformat_index)r  r‡  rÐ  rÈ  Úschema_nameÚ
index_names         rÐ   rÔ  z DDLCompiler._prepared_index_nameú  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_constraint  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_comment  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_comment  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_comment)  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_comment.  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_comment1  s   € ÝÔ-¨dµD¸±J´JÑ?Ô?Ð?rÒ   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 CYCLEr2  )
Ú	incrementrµ  r’  ÚminvalueÚmaxvalueÚ
nominvalueÚ
nomaxvalueÚcacheÚcycler‡   )r  Úidentity_optionsrã  s      rÐ   Úget_identity_optionsz DDLCompiler.get_identity_options4  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–  r2  )r—  r®  rt  rÖ  rý  )r  r£   rS  rØ  rã  Úoptionss         rÐ   Úvisit_create_sequencez!DDLCompiler.visit_create_sequenceH  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®  rt  rÖ  rŸ  s       rÐ   Úvisit_drop_sequencezDDLCompiler.visit_drop_sequenceU  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 )Nr2  )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_specificationn  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]rN  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)rE  )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                óà   — d}|j         �$| j                             |¦  «        }|�|d|z  z  }|d| j                             |j        dd¬¦  «        z  z  }||                      |¦  «        z  }|S ©Nr¥  úCONSTRAINT %s z
CHECK (%s)FTrÓ  ©r  r®  r  rÞ  rÀ  r~  Údefine_constraint_deferrability©r  rÀ   rØ  rã  r  s        rÐ   r  z"DDLCompiler.visit_check_constraint£  óŽ   € ØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�Ø�˜tÔ0×8Ò8ØÔ¨eÀ4ð  9ñ  
ô  
ñ 
ñ 	
ˆð 	�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÒ   c                óà   — d}|j         �$| j                             |¦  «        }|�|d|z  z  }|d| j                             |j        dd¬¦  «        z  z  }||                      |¦  «        z  }|S r"  r$  r&  s        rÐ   r  z)DDLCompiler.visit_column_check_constraint¯  r'  rÒ   rÀ   rS   rØ  r   c                ó:  ‡ — t          |¦  «        dk    rdS d}|j        �$‰ j                             |¦  «        }|�|d|z  z  }|dz  }|dd                     ˆ fd„|j        r|j        n|j        D ¦   «         ¦  «        z  z  }|‰                      |¦  «        z  }|S )Nr   r¥  r#  zPRIMARY KEY r%  rß   c              3  óV   •K  — | ]#}‰j                              |j        ¦  «        V — Œ$d S r  ©r®  rÂ  r  rw  s     €rÐ   r@  z;DDLCompiler.visit_primary_key_constraint.<locals>.<genexpr>Æ  sI   øè è € ð #
ð #
àð ŒM×Ò ¤Ñ'Ô'ð#
ð #
ð #
ð #
ð #
ð #
rÒ   )	rÃ  r  r®  r  r‡   Ú_implicit_generatedÚcolumns_autoinc_firstrã  r%  r&  s   `    rÐ   Úvisit_primary_key_constraintz(DDLCompiler.visit_primary_key_constraint»  sÛ   ø€ õ ˆz‰?Œ?˜aÒÐØ�2ØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�Ø�ÑˆØ�˜Ÿšð #
ð #
ð #
ð #
ð Ô1ð(�
Ô0Ð0àÔ'ð#
ñ #
ô #
ñ 
ô 
ñ 
ñ 	
ˆð 	�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÒ   c           
     ó   ‡— | j         Šd}|j        �$| j                              |¦  «        }|�|d|z  z  }t          |j        ¦  «        d         j        j        }|dd                     ˆfd„|j        D ¦   «         ¦  «        ›d|                      ||‰¦  «        ›dd                     ˆfd	„|j        D ¦   «         ¦  «        ›d
�z  }||  	                    |¦  «        z  }||  
                    |¦  «        z  }||                      |¦  «        z  }|S )Nr¥  r#  r   zFOREIGN KEY(rß   c              3  óV   •K  — | ]#}‰                      |j        j        ¦  «        V — Œ$d S r  )rÂ  Úparentr  ©rÎ   rE  r®  s     €rÐ   r@  z;DDLCompiler.visit_foreign_key_constraint.<locals>.<genexpr>Ú  óD   øè è € ð ð Ø23�—’˜qœxœ}Ñ-Ô-ðð ð ð ð ð rÒ   z) REFERENCES rà  c              3  óV   •K  — | ]#}‰                      |j        j        ¦  «        V — Œ$d S r  )rÂ  r¢   r  r2  s     €rÐ   r@  z;DDLCompiler.visit_foreign_key_constraint.<locals>.<genexpr>à  r3  rÒ   r-  )r®  r  r  r¢  r   r¢   r�   r‡   Údefine_constraint_remote_tableÚdefine_constraint_matchÚdefine_constraint_cascadesr%  )r  rÀ   rØ  rã  r  Úremote_tabler®  s         @rÐ   Úvisit_foreign_key_constraintz(DDLCompiler.visit_foreign_key_constraintÑ  sm  ø€ Ø”=ˆØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�Ý˜JÔ/Ñ0Ô0°Ô3Ô:Ô@ˆØˆØ�IŠIð ð ð ð Ø7AÔ7Jðñ ô ñ ô ð ð ð ×/Ò/Ø˜L¨(ñô ð ð ð �IŠIð ð ð ð Ø7AÔ7Jðñ ô ñ ô ð ð ð

ñ 
	
ˆð 	�×,Ò,¨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Ð   r5  z*DDLCompiler.define_constraint_remote_tableé  s   € ð ×$Ò$ UÑ+Ô+Ð+rÒ   rU   c                ó*  ‡ — t          |¦  «        dk    rdS d}|j        �$‰ j                             |¦  «        }|�|d|z  z  }|d ‰ j        |fi |¤Ž›dd                     ˆ fd„|D ¦   «         ¦  «        ›d�z  }|‰                      |¦  «        z  }|S )	Nr   r¥  r#  rÎ  r,  rß   c              3  óV   •K  — | ]#}‰j                              |j        ¦  «        V — Œ$d S r  r+  rw  s     €rÐ   r@  z6DDLCompiler.visit_unique_constraint.<locals>.<genexpr>ú  s5   øè è € ÐFÐF°a�d”m×)Ò)¨!¬&Ñ1Ô1ÐFÐFÐFÐFÐFÐFrÒ   r-  )rÃ  r  r®  r  Ú!define_unique_constraint_distinctr‡   r%  r&  s   `    rÐ   Úvisit_unique_constraintz#DDLCompiler.visit_unique_constraintî  sË   ø€ õ ˆz‰?Œ?˜aÒÐØ�2ØˆØŒ?Ð&Ø!œ]×<Ò<¸ZÑHÔHˆNØÐ)ØÐ(¨>Ñ9Ñ9�ØˆØ2ˆDÔ2°:ÐDÐDÀÐDÐDÐDÐDØ�IŠIÐFÐFÐFÐF¸:ÐFÑFÔFÑFÔFÐFÐFð
ñ 	
ˆð 	�×4Ò4°ZÑ@Ô@Ñ@ˆØˆrÒ   c                ó   — dS r  rÌ   r  s      rÐ   r=  z-DDLCompiler.define_unique_constraint_distinctÿ  s	   € ð ˆrrÒ   rQ   c                ó†   — d}|j         �||                      |¦  «        z  }|j        �||                      |¦  «        z  }|S r  )ÚondeleteÚ"define_constraint_ondelete_cascadeÚonupdateÚ"define_constraint_onupdate_cascade©r  rÀ   rã  s      rÐ   r7  z&DDLCompiler.define_constraint_cascades  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_phraserA  ÚFK_ON_DELETE©r  rÀ   s     rÐ   rB  z.DDLCompiler.define_constraint_ondelete_cascade  ó-   € ð  ¤×!BÒ!BØÔ¥ñ"
ô "
ñ 
ð 	
rÒ   c                óR   — d| j                              |j        t          ¦  «        z  S )Nz ON UPDATE %s)r®  rG  rC  ÚFK_ON_UPDATErI  s     rÐ   rD  z.DDLCompiler.define_constraint_onupdate_cascade  rJ  rÒ   rP   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®  rG  ÚFK_INITIALLYrE  s      rÐ   r%  z+DDLCompiler.define_constraint_deferrability  so   € ØˆØÔ Ð,ØÔ$ð *Ø˜Ñ%��àÐ)Ñ)�ØÔÐ+Ø�O d¤m×&GÒ&GØÔ$¥lñ'ô 'ñ ñ ˆDð ˆrÒ   c                ó2   — d}|j         �|d|j         z  z  }|S )Nr¥  z	 MATCH %s)r@  rE  s      rÐ   r6  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_column0  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µ  rl   r5  r>   r«  rª  r¶  r,  r·  r¸  rñ  ró  rô  rL  r  )r‡  rR   r  r  )FT)r‡  rR   rÐ  r,  r  rÍ   )r¢   r  r  rN  )r¯   r  r  rÍ   )rÀ   rS   rØ  r   r  rÍ   )rÀ   rU   rØ  r   r  rÍ   )rÀ   rQ   r  rÍ   )rÀ   rP   r  rÍ   )7r  r  r  rö  r   rÃ  r&   rT  rÞ  rU  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.  r9  r5  r>  r=  r7  rB  rD  r%  r6  rS  rW  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ð;ð ;ð ;ð
ð 
ð 
ð
ð 
ð 
ðð ð ð ð,ð ð ð0,ð ,ð ,ð
ð ð ð ð"ð ð ð ð
	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ðð ð ð ðð ð ðð ð ðð ð ð ð 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_FLOATE  ó   € ØˆwrÒ   úsqltypes.Double[Any]c                ó   — dS )NÚDOUBLErÌ   r  s      rÐ   Úvisit_DOUBLEz GenericTypeCompiler.visit_DOUBLEH  ó   € ØˆxrÒ   úsqltypes.DOUBLE_PRECISION[Any]c                ó   — dS )NzDOUBLE PRECISIONrÌ   r  s      rÐ   Úvisit_DOUBLE_PRECISIONz*GenericTypeCompiler.visit_DOUBLE_PRECISIONK  s
   € ð "Ð!rÒ   úsqltypes.REAL[Any]c                ó   — dS )NÚREALrÌ   r  s      rÐ   Ú
visit_REALzGenericTypeCompiler.visit_REALP  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)©rn  Úscalero  r  s      rÐ   Úvisit_NUMERICz!GenericTypeCompiler.visit_NUMERICS  ó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)rn  z!DECIMAL(%(precision)s, %(scale)s)ro  ro  r  s      rÐ   Úvisit_DECIMALz!GenericTypeCompiler.visit_DECIMAL^  rr  rÒ   úsqltypes.Integerc                ó   — dS )NÚINTEGERrÌ   r  s      rÐ   Úvisit_INTEGERz!GenericTypeCompiler.visit_INTEGERi  ó   € ØˆyrÒ   úsqltypes.SmallIntegerc                ó   — dS )NÚSMALLINTrÌ   r  s      rÐ   Úvisit_SMALLINTz"GenericTypeCompiler.visit_SMALLINTl  ó   € ØˆzrÒ   úsqltypes.BigIntegerc                ó   — dS )NÚBIGINTrÌ   r  s      rÐ   Úvisit_BIGINTz GenericTypeCompiler.visit_BIGINTo  rc  rÒ   úsqltypes.TIMESTAMPc                ó   — dS )NÚ	TIMESTAMPrÌ   r  s      rÐ   Úvisit_TIMESTAMPz#GenericTypeCompiler.visit_TIMESTAMPr  s   € Øˆ{rÒ   úsqltypes.DateTimec                ó   — dS )NÚDATETIMErÌ   r  s      rÐ   Úvisit_DATETIMEz"GenericTypeCompiler.visit_DATETIMEu  r€  rÒ   úsqltypes.Datec                ó   — dS )NÚDATErÌ   r  s      rÐ   Ú
visit_DATEzGenericTypeCompiler.visit_DATEx  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�  r^  rÒ   r  Úlengthrì  rÎ  rN  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  )rz  r  s      rÐ   Úvisit_integerz!GenericTypeCompiler.visit_integerÏ  rÕ  rÒ   c                ó   —  | j         |fi |¤ŽS r  )rj  r  s      rÐ   Ú
visit_realzGenericTypeCompiler.visit_realÒ  rØ  rÒ   c                ó   —  | j         |fi |¤ŽS r  )r]  r  s      rÐ   Úvisit_floatzGenericTypeCompiler.visit_floatÕ  s   € ØˆtÔ Ð,Ð,¨Ð,Ð,Ð,rÒ   c                ó   —  | j         |fi |¤ŽS r  )rb  r  s      rÐ   Úvisit_doublez GenericTypeCompiler.visit_doubleØ  rß  rÒ   c                ó   —  | j         |fi |¤ŽS r  )rq  r  s      rÐ   Úvisit_numericz!GenericTypeCompiler.visit_numericÛ  rÕ  rÒ   c                ó   —  | j         |fi |¤ŽS r  ©r­  r  s      rÐ   Úvisit_stringz GenericTypeCompiler.visit_stringÞ  rÕ  rÒ   úsqltypes.Unicodec                ó   —  | j         |fi |¤ŽS r  rí  r  s      rÐ   Úvisit_unicodez!GenericTypeCompiler.visit_unicodeá  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_enumì  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_nullï  s$   € ÝÔð#à%*ñ+ñ
ô 
ð 	
rÒ   úTypeDecorator[Any]c                óN   —  | j         |                     | j        ¦  «        fi |¤ŽS r  )rÀ  Útype_enginerµ  r  s      rÐ   Úvisit_type_decoratorz(GenericTypeCompiler.visit_type_decoratorö  s.   € ð ˆtŒ|˜E×-Ò-¨d¬lÑ;Ô;ÐBÐB¸rÐBÐBÐBrÒ   úUserDefinedType[Any]c                ó   —  |j         di |¤ŽS rM  )Úget_col_specr  s      rÐ   Úvisit_user_definedz&GenericTypeCompiler.visit_user_definedû  s   € ð "ˆuÔ!Ð'Ð' BÐ'Ð'Ð'rÒ   N)r  rZ  rØ  r   r  rÍ   )r  r_  rØ  r   r  rÍ   )r  rd  rØ  r   r  rÍ   )r  rg  rØ  r   r  rÍ   )r  rk  rØ  r   r  rÍ   )r  rs  rØ  r   r  rÍ   )r  rw  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Î  rN  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  r]  rb  rf  rj  rq  rv  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Ð   rY  rY  D  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Ò   rY  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.process  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  r?  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_unknown  s:   € ØŒ?Ô# u¤Ô'?×'EÒ'EÑ'GÔ'GÒGÐGØ”?Ô+Ð+å˜‘;”;ÐrÒ   c                ó   — dS r  rÌ   r  s      rÐ   r  zStrSQLTypeCompiler.visit_null  r  rÒ   c                ó`   — 	 |j         } |di |¤ŽS # t          $ r t          |¦  «        cY S w xY wrM  )r	  r	  r	  )r  r  rØ  r	  s       rÐ   r	  z%StrSQLTypeCompiler.visit_user_defined  sV   € ð	&Ø Ô-ˆLð  �<Ð%Ð% "Ð%Ð%Ð%øõ ð 	ð 	ð 	Ý˜‘;”;ÐÐÐð	øøøs   ‚ ‘-¬-N)r  r  r  rÀ  r
	  r	  r  r	  rÌ   rÒ   rÐ   r	  r	    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__#  ó   € € € rÒ   N)r	  r   r  rÍ   r  rÌ   rÒ   rÐ   r	  r	  "  s   € € € € € Ø.Ð.Ð.Ð.Ð.Ð.rÒ   r	  c                  ó   — e Zd Zdd„ZdS )rH  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Ð   rH  rH  &  s   € € € € € Ø:Ð:Ð:Ð:Ð:Ð:rÒ   rH  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µ  rl   rN  Ú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_quoter	  r	  r	  r|  rà  )r  rµ  r	  r	  r	  r	  r	  s          rÐ   rÃ  zIdentifierPreparer.__init__F  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 )Nr0  r1  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_getterp  sˆ   ø€ Ø”:ˆDØÔ"ð 
"¨Ð(8¸MÐ(8ØÐ#¨°¨¨¸¸t¸¸ÝÔ*ð8Ø:>ñ?ñô ð õ #Ø# t ¨wÑ7¸uðñ ô ð ð ”zÐ!rÒ   )rÉ  Ú__new__rˆ  r‰  rÄ  r	  )r  r«  Úprepr'	  r&	  s       @rÐ   r»  z)IdentifierPreparer._with_schema_translatej  sm   ø€ ØŒ~×%Ò% d¤nÑ5Ô5ˆØŒ×Ò˜Tœ]Ñ+Ô+Ð+àÐ 4Ð4ˆð	"ð 	"ð 	"ð 	"ð 	"ð "/ˆÔØ/<ˆÔ,ØˆrÒ   r5  r«  rm   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.r#	  c                óî   •— |                       d¦  «        }|‰v r	‰|         }n|dv rt          j        d¦  «        ‚|}|s"‰j        j        }|st          j        d¦  «        ‚‰                     |¦  «        S )Nr2   )Nr#	  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   rA  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   rA  rc  rÀ  )r  r5  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	  r 	  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á  r 	  r	  r/	  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-  )r@  r3   rô  rS  )r  rÖ  rf  s      rÐ   rG  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	  r0	  r	  r/	  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   )rm  Úreserved_wordsÚillegal_initial_charactersÚlegal_charactersr@  rÍ   )r  rÝ  Úlc_values      rÐ   r¦  z#IdentifierPreparer._requires_quotesá  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.)r9	  r@  rÍ   r/	  s     rÐ   rk  z1IdentifierPreparer._requires_quotes_illegal_charsë  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.9r`  )r&   rc  rÂ  )r  r#   r<	  s      rÐ   rÅ  zIdentifierPreparer.quote_schemað  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().r>	  r`  rÂ  )r&   rc  rl  r	  r¦  r5	  )r  r•  r<	  s      rÐ   rÂ  zIdentifierPreparer.quote  sÏ   € ð, Ðõ Ô ð!ð ðñ ô ð õ ˜˜w¨Ñ-Ô-ˆàˆ=Ø˜œÐ%Ð%Ø”} UÔ+Ð+à×(Ò(¨Ñ/Ô/ð 1Ø+/×+@Ò+@ÀÑ+GÔ+G�D”M %Ñ(Ð(à+0�D”M %Ñ(Ø”} UÔ+Ð+Øð 	Ø×(Ò(¨Ñ/Ô/Ð/àˆLrÒ   c                ó>   — | j         r|                      |¦  «        S |S r  )r	  rÂ  )r  Úcollation_names     rÐ   rÍ  z#IdentifierPreparer.format_collationK  s%   € ØÔ/ð 	"Ø—:’:˜nÑ-Ô-Ð-à!Ð!rÒ   ru  úschema.Sequencer„  c                ó°   — |                       |j        ¦  «        }|                      |¦  «        }| j        s|r|�|                      |¦  «        dz   |z   }|S rÛ  )rÂ  r  rÄ  r	  rÅ  )r  ru  r„  r  rÈ  s        rÐ   rt  z"IdentifierPreparer.format_sequenceQ  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  rF	  )r  r¾  r  s      rÐ   r   zIdentifierPreparer.format_aliase  s;   € ð ˆ<ØÐ$Ð$Ð$Ø—:’:˜eœjÑ)Ô)Ð)à—:’:˜dÑ#Ô#Ð#rÒ   c                ól   — |p|j         }|                      |¦  «        r|                      |¦  «        }|S r  )r•  r¦  r5	  )r  Ú	savepointr  r•  s       rÐ   rD  z#IdentifierPreparer.format_savepointn  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‡  )rL	  )
r&   rC  Ú
sql_namingr  r,   Ú_constraint_name_for_tabler�   r  Útruncate_and_render_index_nameÚ#truncate_and_render_constraint_name)r  rÀ   rL	  Únamingr  s        rÐ   r  z$IdentifierPreparer.format_constraintw  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  rL	  Úmax_s       rÐ   rP	  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�  rU	  rV	  s       rÐ   rQ	  z6IdentifierPreparer.truncate_and_render_constraint_nameŸ  s?   € ð ŒLÔ3ð 2ØŒ|Ô1ð 	ð ×4Ò4Ø�$˜ñ
ô 
ð 	
rÒ   rW	  rN  c                ó  — t          |t          j        ¦  «        rAt          |¦  «        |k    r-|d|dz
  …         dz   t	          j        |¦  «        dd …         z   }n| j                             |¦  «         |s|S |                      |¦  «        S )Nr   rh  r*  éüÿÿÿ)	r¾  r   rD   rÃ  r&   Úmd5_hexrµ  Úvalidate_identifierrÂ  )r  r  rW	  rL	  s       rÐ   rU	  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‡  rR   c                ó8   — |                       |¦  «        }|€J ‚|S r  )r  )r  r‡  r  s      rÐ   rÜ  zIdentifierPreparer.format_index»  s&   € Ø×%Ò% eÑ,Ô,ˆØÐÐÐØˆrÒ   r�   rZ   c                óô   — |€%t           rt          |t          ¦  «        sJ ‚|j        }|                      |¦  «        }|                      |¦  «        }| j        s|r|r|                      |¦  «        dz   |z   }|S )z'Prepare a quoted table and schema name.Nr/  )r   r¾  r[   r  rÂ  rÄ  r	  rÅ  )r  r�   r„  r  rh  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.r$	  rr  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   rj  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 )rb	  Nr¿  F)r„  r  r/  )	r  r¾  r   rD   rj  rl  r  r�   rÂ  )r  r¢   rê  r  rd	  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Ä  r	  rÅ  r  )r  r�   r„  rÈ  s       rÐ   r�  z#IdentifierPreparer.format_table_seq  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  )rc  rd  r  s     rÐ   r@  z4IdentifierPreparer._r_identifiers.<locals>.<genexpr>(  s>   è è € ð )
ð )
àõ ŒI�a‰LŒLð)
ð )
ð )
ð )
ð )
ð )
rÒ   zM(?:(?:%(initial)s((?:%(escaped)s|[^%(final)s])+)%(final)s|([^\.]+))(?=\.|$))+)ÚinitialÚfinalrâ  )r	  r	  r0	  rc  re  )r  rj	  rk	  Ú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Ì   )r2	  rÀ  s     €rÐ   r—  z;IdentifierPreparer.unformat_identifiers.<locals>.<listcomp><  s7   ø€ ð 
ð 
ð 
àð ×%Ò% aÑ(Ô(ð
ð 
ð 
rÒ   c                ó   — g | ]	\  }}|p|‘Œ
S rÌ   rÌ   )rÎ   Úarp  s      rÐ   r—  z;IdentifierPreparer.unformat_identifiers.<locals>.<listcomp>>  s    € Ð@Ð@Ð@¡  A�a�f˜1Ð@Ð@Ð@rÒ   )rn	  Úfindall)r  ro	  rm	  s   `  rÐ   Úunformat_identifiersz'IdentifierPreparer.unformat_identifiers8  sR   ø€ ð Ôˆð
ð 
ð 
ð 
à@Ð@¨¯ª°;Ñ)?Ô)?Ð@Ñ@Ô@ð
ñ 
ô 
ð 	
rÒ   )r›  Nr›  TF)rµ  rl   r	  rÍ   r	  rN  r	  rÍ   r	  r,  r	  r,  )r5  rÍ   r«  rm   r  rÍ   )rÝ  rÍ   r  rÍ   )rÝ  rÍ   r  r,  r  )r#   rÍ   r<	  r   r  rÍ   )r•  rÍ   r<	  r   r  rÍ   )T)ru  rB	  r„  r,  r  rÍ   )r  rD	  r  rN  r  rÍ   )r¾  rG	  r  rN  r  rÍ   )rÀ   rK	  rL	  r,  r  rN  )r  rÍ   rL	  r,  r  rÍ   )r  rÍ   rW	  rN  rL	  r,  r  rÍ   )r‡  rR   r  rÍ   )TN)r�   rZ   r„  r,  r  rN  r  rÍ   )FNNFN)r¢   rc	  rê  r,  r  rN  rd	  rN  r„  r,  r‚  re	  r  rÍ   )ro	  rÍ   r  rp	  ).r  r  r  r  ÚRESERVED_WORDSr7	  ÚLEGAL_CHARACTERSr9	  ÚILLEGAL_INITIAL_CHARACTERSr8	  r  rP  Ú
attrgetterrÄ  r	  rÃ  r»  rÁ  r0	  r2	  rG  r5	  r¦  rk  rÅ  rÂ  rÍ  rt  r©  r   rD  r&   rY  r  rP	  rQ	  rU	  rÜ  r  r˜  r”  rë  r�  rU  rn	  rv	  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Ð  rW  Úenumr   rÉ  rÐ  rP  rc  Útimer   r[  r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r¥  r   r   r   r   r    r!   r"   r#   r$   r%   r&   rb  Ú_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^   Útype_apir_   r`   ra   rb   rc   Úengine.cursorrd   Úengine.interfacesre   rf   rg   rh   ri   rj   rk   rl   rm   rÍ   Ú_FromHintsTyperw	  re  ÚIrx	  ÚLEGAL_CHARACTERS_PLUS_SPACErÍ  rž   ry	  rH  rL  rN  Ú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½  rg  rœ  r¨  rX  rY  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  rO  Ú_CompoundSelectKeywordr  Ú	UNION_ALLr  Ú
EXCEPT_ALLr  ÚINTERSECT_ALLrP  r  r  r  r   r!  r#  r%  r*  r4  rI  rY  rf  rt  ry  rB  rz  r{  r|  r}  Ú
namedtupler  r£  ÚEnsureKWArgrý  ÚBinaryElementRoleÚCompilerColumnElementr  r  rÚ  r`  r‡  rY  r	  r	  rH  r­  rÌ   rÒ   rÐ   ú<module>r´	     s-  ððð ð ð" #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à	Ôñ 5;Ø+Ð+Ð+Ð+Ð+Ð+Ø,Ð,Ð,Ð,Ð,Ð,Ø"Ð"Ð"Ð"Ð"Ð"Ø Ð Ð Ð Ð Ð Ø#Ð#Ð#Ð#Ð#Ð#Ø)Ð)Ð)Ð)Ð)Ð)ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØ*Ð*Ð*Ð*Ð*Ð*Ø*Ð*Ð*Ð*Ð*Ð*Ø'Ð'Ð'Ð'Ð'Ð'Ø'Ð'Ð'Ð'Ð'Ð'Ø&Ð&Ð&Ð&Ð&Ð&Ø'Ð'Ð'Ð'Ð'Ð'Ø Ð Ð Ð Ð Ð ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø,Ð,Ð,Ð,Ð,Ð,ØÐÐÐÐÐØ,Ð,Ð,Ð,Ð,Ð,ØÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(Ø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tð tð tð tð t˜
ñ tô tð tðnð ð ð ð ˜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HV
ð HV
ð HV
ð HV
ð HV
�(ñ HV
ô HV
ð HV
ðVll
ð l
ð l
ð l
ð l
�[ñ l
ô l
ð l
ð^mð mð mð mð m�(ñ mô mð mð`z(ð z(ð z(ð z(ñ z(˜,ñ z(ô z(ð z(ðz&ð &ñ &ð &ñ &Ð,ñ &ô &ð &ðB/ð /ñ /ð /ñ /˜xñ /ô /ð /ð;ð ;ñ ;ð ;ñ ;˜hñ ;ô ;ð ;ðU
ð U
ñ U
ð U
ñ U
ñ U
ô U
ð U
ð U
ð U
rÒ   