Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
‹EYc_@sydZddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZddlmZm
Z
ddlZeddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcddg^ƒZejdeejƒZegedfdgƒD]Zeeƒ^qȃjdhgƒZejdiejƒZejdjejƒZidkdl6dmdn6dodp6dqdr6dsdt6Zi!duej6dvej6dwej6dxej 6dyej!6dzej"6d{ej#6dzej$6d|ej%6d}ej&6d~ej'6dej(6d€ej)6dej*6d‚ej+6dƒej,6d„ej-6d…ej.6d†ej/6d‡ej06dˆej16d‰ej26dŠej36d‹ej46dŒej56dej66dŽej76dej86dej96d‘ej:6d’ej;6d“ej<6d”ej=6Z>id•ej?6d–ej@6d—ejA6d˜ejB6d™ejC6dšejD6d›ejE6dœejF6dejG6džejH6dŸejI6ZJid d 6d¡d¡6d¢d¢6d£d£6d¤d¤6d¥d¥6d¦d¦6d§d§6d¨d¨6d©d©6dªdª6d«d«6d¬d¬6d­d­6d®d®6ZKid¯e
jLjM6d°e
jLjN6d±e
jLjO6d²e
jLjP6d³e
jLjQ6d´e
jLjR6ZSdµeTfd¶„ƒYZUd·ejVejWeTƒfd¸„ƒYZXd¹ejYfdº„ƒYZZd»eUfd¼„ƒYZ[d½eUfd¾„ƒYZ\d¿eXfdÀ„ƒYZ]dÁeTfd„ƒYZ^dS(Ãs]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`.

iÿÿÿÿNi(tschematsqltypest	operatorst	functionstvisitorstelementst
selectabletcrudi(tutiltexctalltanalysetanalyzetandtanytarraytastasct
asymmetrict
authorizationtbetweentbinarytbothtcasetcasttchecktcollatetcolumnt
constrainttcreatetcrosstcurrent_datetcurrent_roletcurrent_timetcurrent_timestamptcurrent_usertdefaultt
deferrabletdesctdistincttdotelsetendtexcepttfalsetfortforeigntfreezetfromtfulltgranttgroupthavingtiliketint	initiallytinnert	intersecttintotistisnulltjointleadingtlefttliketlimitt	localtimetlocaltimestamptnaturaltnewtnottnotnulltnulltofftoffsettoldtontonlytortordertoutertoverlapstplacingtprimaryt
referencestrighttselecttsession_usertsettsimilartsomet	symmetricttabletthenttottrailingttruetuniontuniquetusertusingtverbosetwhentwheres
^[A-Z0-9_$]+$ii
t$s%(?<![:\w\$\x5c]):([\w\$]+)(?![:\w\$])s\x5c(:[\w\$]*)(?![:\w\$])s
%%(%(name)s)stpyformatt?tqmarks%%stformats:[_POSITION]tnumerics	:%(name)stnameds AND s OR s + s * s - s / s % t-s < s <= s != s > s >= s = s || s MATCH s NOT MATCH s IN s NOT IN s, s FROM s AS s IS s IS NOT s	 COLLATE sEXISTS s	DISTINCT sNOT s DESCs ASCs NULLS FIRSTs NULLS LASTscoalesce%(expr)stCURRENT_DATEtCURRENT_TIMEtCURRENT_TIMESTAMPtCURRENT_USERt	LOCALTIMEtLOCALTIMESTAMPsrandom%(expr)stsysdatetSESSION_USERtUSERtmonthtdaytyeartsecondthourtdoytminutetquartertdowtweektepochtmillisecondstmicrosecondst
timezone_hourttimezone_minutetUNIONs	UNION ALLtEXCEPTs
EXCEPT ALLt	INTERSECTs
INTERSECT ALLtCompiledcBs›eZdZd
Zd
ejƒd„Zejddƒd„ƒZ	d„Z
ed„ƒZd„Z
d„Zd
d	„Zed
„ƒZd„Zd„ZRS(sRepresent 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.
    cCsR||_||_|dk	rN||_|j|_|j|j||_ndS(s¦Construct a new ``Compiled`` object.

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

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

        :param bind: Optional Engine or Connection to compile this
          statement against.

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

         .. versionadded:: 0.8

        N(tdialecttbindtNonet	statementtsupports_executiontcan_executetprocesststring(tselfRŒRRtcompile_kwargs((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt__init__§s			s0.7s>:class:`.Compiled` objects now compile within the constructor.cCsdS(sDProduce the internal string representation of this element.
        N((R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytcompileÀscCs|j|||ƒS(N(t_execute_compiled(R”t
connectiontmultiparamstparams((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_execute_on_connectionÇscCs
tƒ‚dS(sReturn a Compiled that is capable of processing SQL expressions.

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

        N(tNotImplementedError(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytsql_compilerÊscKs|j||S(N(t_compiler_dispatch(R”tobjtkwargs((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR’ÔscCs
|jpdS(s3Return the string text of the generated SQL or DDL.t(R“(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt__str__×scCs
tƒ‚dS(sâ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.
        N(R(R”R›((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytconstruct_paramsÜscCs
|jƒS(s0Return the bind params for this compiled object.(R¤(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR›æscOs:|j}|dkr'tjdƒ‚n|j|||ƒS(sExecute this compiled object.s>This Compiled object is not bound to any Engine or Connection.N(RRŽR	tUnboundExecutionErrorR˜(R”RšR›te((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytexecuteës
	cOs|j||ŽjƒS(sJExecute this compiled object and return the result's
        scalar value.(R§tscalar(R”RšR›((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¨õsN(t__name__t
__module__t__doc__RŽt_cached_metadataRt
immutabledictR–t
deprecatedR—RœtpropertyRžR’R£R¤R›R§R¨(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR‹—s	
		
	
tTypeCompilercBs&eZdZdZd„Zd„ZRS(s2Produces DDL specification for TypeEngine objects.s	visit_\w+cCs
||_dS(N(RŒ(R”RŒ((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR–scKs|j||S(N(RŸ(R”ttype_tkw((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR’s(R©RªR«tensure_kwargR–R’(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR°üs	t
_CompileLabelcBsDeZdZdZdZdd„Zed„ƒZed„ƒZRS(	s;lightweight label object which acts as an expression.Label.tlabeltelementtnamecCs&||_||_|f||_dS(N(R¶R·t
_alt_names(R”tcolR·t	alt_names((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR–s		cCs
|jjS(N(R¶t	proxy_set(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR»scCs
|jjS(N(R¶ttype(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¼s(selementsname((	R©RªR«t__visit_name__t	__slots__R–R¯R»R¼(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR´stSQLCompilercBseZdZeZeZeZZ	Z
eZdpZ
eZeZeZdped„Zejd„ƒZejd„ƒZd„Zejd„ƒZd„Zed„ƒZdpdped„Zed	„ƒZ ej!d
ƒd„ƒZ"d„Z#ed
„Z$ed„Z%ed„Z&dpeedpd„Z'dped„Z(d„Z)d„Z*d„Z+d„Z,d„Z-d„Z.dpeed„Z/d„Z0d„Z1d„Z2d„Z3d„Z4d„Z5d„Z6d „Z7d!„Z8dpd"„Z9d#„Z:d$„Z;d%„Z<eed&d'„Z=d(„Z>d)„Z?d*„Z@d+„ZAdpd,„ZBd-„ZCd.„ZDd/„ZEd0„ZFd1„ZGd2„ZHejd3„ƒZId4„ZJd5„ZKd6„ZLd7„ZMd8„ZNd9„ZOd:„ZPd;„ZQd<„ZRd=„ZSd>„ZTd?„ZUeeed@„ZVdA„ZWdB„ZXdC„ZYdD„ZZdE„Z[dF„Z\dpdG„Z]eedpdH„Z^eeedpdI„Z_dJ„Z`dK„ZadpedL„ZbdM„ZcdN„ZddO„ZedP„ZfdQ„ZgdR„ZhdS„ZiejjdTekƒfdUekƒfgƒZldV„Zmeedpd&edpdW„ZndX„ZodY„ZpdZ„Zqd[„Zrd\„Zsd]„Ztd^„Zud_„Zvd`„Zwda„Zxdb„Zydc„Zzeeedpedd„Z{ede„Z|df„Z}dg„Z~dh„Zdi„Z€dj„Zejdk„ƒZ‚dl„Zƒdm„Z„dn„Z…do„Z†RS(qs¸Default implementation of Compiled.

    Compiles ClauseElements into SQL strings.   Uses a similar visit
    paradigm as visitors.ClauseVisitor but implements its own traversal.

    cKs||_|pt|dtƒ|_i|_tjƒ|_g|_g|_	t
|_|j|_|jrxg|_
nt|j|_d|_|j|_|jp¬|j|_tj|jƒ|_i|_tj|||||jr|jdkr|jƒndS(sConstruct a new ``DefaultCompiler`` object.

        dialect
          Dialect to be used

        statement
          ClauseElement to be compiled

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

        tinlineRmN(tcolumn_keystgetattrtFalseRÀtbindsRtcolumn_dictt
bind_nameststackt_result_columnstTruet_ordered_columnst
positionaltpositiontuptBIND_TEMPLATESt
paramstyletbindtemplateRŽtctestidentifier_preparertpreparertlabel_lengthtmax_identifier_lengthtPopulateDictt
_process_anontanon_mapttruncated_namesR‹R–t_apply_numbered_params(R”RŒRRÁRÀR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR–Ls(									cCs:tjƒ|_i|_t|_|jr6i|_ndS(s’Initialize collections related to CTEs only if
        a CTE is located, to save on the overhead of
        these collections otherwise.

        N(RtOrderedDictRÐtctes_by_nameRÃtctes_recursiveRËtcte_positional(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_init_cte_states
			ccs•|j|j}}gt|_|_z>|jrL|jd}t|d<nd}|j|jfVWd|r}|jdƒn|||_|_XdS(s;special API to support the use case of 'nested result sets'iÿÿÿÿtneed_result_map_for_nestedN(RÈRÊRÃRÇRÉRŽtpop(R”tresult_columnstordered_columnstentry((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_nested_resultžs	

cs7tjdƒ‰tjd‡fd†|jƒ|_dS(Nis
\[_POSITION\]csttjˆƒƒS(N(tstrRtnext(tm(tposcount(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt<lambda>¶s(t	itertoolstcounttretsubR“(R”((RèsL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÙ²s
cs'td„‡fd†ˆjDƒDƒƒS(Ncss-|]#\}}|dk	r||fVqdS(N(RŽ(t.0tkeytvalue((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>¼s	c3s1|]'}ˆj||jjˆjƒfVqdS(N(RÆR¼t_cached_bind_processorRŒ(Rît	bindparam(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>½s(tdictRÆ(R”((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_bind_processors¹scCst|jƒdkS(Ni(tlenRÇ(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytis_subqueryÃscCs|S(N((R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRžÆscCs‡|räi}xÑ|jD]Æ}|j|}|j|krL||j||<q||kri||||<q|r¶|jr¶|rtjd|j|fƒ‚qÜtjd|jƒ‚q|jrÏ|j||<q|j||<qW|Si}x’|jD]‡}|rG|jrG|r.tjd|j|fƒ‚qGtjd|jƒ‚n|jrg|j||j|<qô|j||j|<qôW|SdS(s5return a dictionary of bind parameter keys and valuess@A value is required for bind parameter %r, in parameter group %ds)A value is required for bind parameter %rN(RÆRïtrequiredR	tInvalidRequestErrortcallableteffective_valueRð(R”R›t
_group_numbert_checktpdRòR·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¤ÊsD
		cCs|jdtƒS(soReturn the bind param dictionary embedded into this
        compiled object, for those values that are present.Rü(R¤RÃ(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR›ússsqlalchemy.engine.resultcCs|jj|jƒS(s(utility method used for unit tests only.(tResultMetaDatat_create_result_mapRÈ(R”tresult((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÿscCsdS(s´Called when a SELECT statement has no froms, and no FROM clause is
        to be appended.

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

        R¢((R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytdefault_fromscKsd|jj||dS(Nt(t)(R¶RŸ(R”tgroupingtasfromR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_groupingsc	Ks |jr‡|jjr‡|jdd}|j\}}|rD|}n|}|jj}|dk	r‡|j|kr‡|jj|d<q‡n|j|jd||S(NiÿÿÿÿRtrender_label_as_labeltwithin_columns_clause(	RÇRŒtsupports_simple_order_by_labelt_label_resolve_dictR¶t_order_by_label_elementRŽR·R’(	R”R¶RR¡Rt	with_colst
only_fromstresolve_dictt
order_by_elem((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_label_references		cKsÁ|js|j|jƒS|jdd}|j\}}y'|rR||j}n
||j}Wn:tk
rœtjdtj|jƒƒ|j|jƒSX||d<|j|d||SdS(NiÿÿÿÿRs6Can't resolve label reference %r; converting to text()RR(	RÇR’t_text_clauseR
R¶tKeyErrorRtwarn_limitedtellipses_string(R”R¶RR¡RRR
R¹((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_textual_label_reference,s$	


c
	Ks|o
|}||k}|s%|r^t|jtjƒrR|jd|jƒ}	q^|j}	n|rÖ|dk	r™||	|j||	f|j|jƒn|jj	|dt
dt
|ttj
|jj||	ƒS|rï|jj||	ƒS|jj	|dt|SdS(NtcolidentRtwithin_label_clause(t
isinstanceR·Rt_truncated_labelt_truncated_identifierRŽR¸R¼R¶RŸRÉt	OPERATORSRtas_RÒtformat_labelRÃ(
R”Rµtadd_to_result_mapRRRR²trender_label_with_astrender_label_onlyt	labelname((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_labelHs(	
)	cKsb|j}}|dkr+tjdƒ‚n|j}|rbt|tjƒrb|jd|ƒ}n|dk	r“||||||j	f|j
ƒn|r«|j|ƒ}n|jj
|ƒ}|j}|dksã|sã|jrç|S|jr|jj|jƒd}	nd}	|j}
t|
tjƒrB|jd|
ƒ}
n|	|jj
|
ƒd|SdS(Ns:Cannot compile Column object until its 'name' is assigned.Rt.R¢talias(R·RŽR	tCompileErrort
is_literalRRRRRïR¼tescape_literal_columnRÒtquoteR\tnamed_with_columnRtquote_schema(R”RRt
include_tableR¡R·t	orig_nameR&R\t
schema_prefixt	tablename((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_columnos2
	
			cCs|jddƒS(s4provide escaping for the literal_column() construct.t%s%%(treplace(R”ttext((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR'—scKs|jS(N(R·(R”t
fromclauseR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_fromclausescKs|jS(N(R·(R”tindexR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_index scKs#||d<|jjj|j|S(Nttype_expression(RŒt
type_compilerR’R¼(R”t
typeclauseR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_typeclause£s
cCs|S(N((R”R2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytpost_process_text§scsU‡‡‡fd†}ˆjs*tˆ_ntjd„tj|ˆjˆjƒƒƒS(NcsI|jdƒ}|ˆjkr5ˆjˆj|ˆSˆj|ˆSdS(Ni(R3t_bindparamsR’tbindparam_string(RçR·(R²R”t
textclause(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytdo_bindparam«scSs
|jdƒS(Ni(R3(Rç((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRé·s(RÇRÉtisplaintexttBIND_PARAMS_ESCRítBIND_PARAMSR;R2(R”R>R²R?((R²R”R>sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_textclauseªs	c
KsÐ|j}|r|jn
|jd}|pY|dkrJ|jdtƒpY|jdtƒ}|ržt|_x0|jD]"}	|j|	dtd|jƒquWn|j|j	|}
|rÌ|rÌd|
}
n|
S(Niÿÿÿÿitneed_result_map_for_compoundRßRRs(%s)(
RÇt_default_stack_entrytgetRÃRÊtcolumn_argsR’RÉt_add_to_result_mapR¶(R”ttaftcompound_indexRtparensR²ttoplevelRãtpopulate_result_maptcR2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_text_as_from½s
	
cKsdS(NtNULL((R”texprR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_nullÖscKs|jjrdSdSdS(NR`t1(RŒtsupports_native_boolean(R”RQR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_trueÙscKs|jjrdSdSdS(NR,t0(RŒRT(R”RQR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_falseßscsX|j}|dkrd}n
t|j}|jd„‡‡fd†|jDƒDƒƒS(Nt css|]}|r|VqdS(N((Rîts((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>ìsc3s!|]}|jˆˆVqdS(N(RŸ(RîRN(R²R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>îs(toperatorRŽRR=tclauses(R”t
clauselistR²tsep((R²R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_clauselistås		
cKsÂd}|jdk	r5||jj||d7}nxI|jD]>\}}|d|j||d|j||d7}q?W|jdk	r´|d|jj||d7}n|d7}|S(NsCASE RXsWHEN s THEN sELSE tEND(RðRŽRŸtwhenstelse_(R”tclauseR¡txtcondR((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_caseòs 3!
cKs,d|jj|||jj||fS(NsCAST(%s AS %s)(RbRŸR9(R”RR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_castscsQd|jjˆˆdj‡‡fd†d|jfd|jffDƒƒfS(Ns%s OVER (%s)RXc3sI|]?\}}|dk	rt|ƒrd||jˆˆfVqdS(s%s BY %sN(RŽRõRŸ(RîtwordRb(R¡R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>s	t	PARTITIONtORDER(tfuncRŸR=tpartition_bytorder_by(R”toverR¡((R¡R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_overscKs,d|jj|||jj||fS(Ns%s FILTER (WHERE %s)(RjRŸt	criterion(R”t
funcfilterR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_funcfilterscKs8|jj|j|jƒ}d||jj||fS(NsEXTRACT(%s FROM %s)(textract_mapRFtfieldRQRŸ(R”textractR¡Rs((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_extractscKs±|dk	r+||j|jd|jƒnt|d|jjƒdƒ}|r]|||Stj|j|jdƒ}djt	|j
ƒ|gƒi|j||d6SdS(Ns
visit_%s_funcs%(expr)sR#RQ((RŽR·R¼RÂtlowert	FUNCTIONSRFt	__class__R=tlisttpackagenamestfunction_argspec(R”RjRR¡tdispR·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_functions
cKs|j|jƒS(N(tvisit_sequencetsequence(R”t
next_valueR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_next_value_func-scCstd|jjƒ‚dS(Ns2Dialect '%s' does not support sequence increments.(RRŒR·(R”R((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR~0scKs|jj||S(N(tclause_exprRŸ(R”RjR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR{6sic	sˆj}|rˆjn
ˆjd}|pG|dkoG|jdtƒ}ˆjji|dd6|dd6|d6|d6ƒˆjj|jƒ}	d|	dj‡‡‡fd†t|j	ƒDƒƒ}
|j
jˆd	ˆˆ}|rû|
d
|7}
n|
ˆj|ˆ7}
|
|j
dk	s2|jdk	rDˆj|ˆpGd7}
ˆjrm|rmˆjƒ|
}
nˆjjdƒˆr•|r•d|
d
S|
SdS(NiÿÿÿÿiRDtcorrelate_fromstasfrom_fromsRRXc
3s9|]/\}}|jˆdˆdtd|ˆVqdS(RRKRJN(RŸRÃ(RîtiRN(RR¡R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>LsRs
 GROUP BY R¢RR(RÇRERFRÃtappendtcompound_keywordstkeywordR=t	enumeratetselectst_group_by_clauseRŸtorder_by_clauset
_limit_clauseRŽt_offset_clausetlimit_clauseRÐt_render_cte_clauseRà(R”tcsRRKRJR¡RLRãtneed_result_mapRˆR2tgroup_by((RR¡R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_compound_select9s:
		cKsä|jrv|jr$tjdƒ‚nt|d|jjdƒ}|rY|||j|S|j|t|j|Snj|jrÑt|d|jjdƒ}|r´|||j|S|j	|t|j|Sntjdƒ‚dS(NsFUnary expression does not support operator and modifier simultaneouslysvisit_%s_unary_operatorsvisit_%s_unary_modifiers,Unary expression has no operator or modifier(
RZtmodifierR	R%RÂR©RŽt _generate_generic_unary_operatorRt _generate_generic_unary_modifier(R”tunaryR²R|((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_unaryes&					cKs:|jjr|j|j|Sd|j|j|SdS(Ns%s = 1(RŒRTR’R¶(R”R¶RZR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_istrue_unary_operator~scKs>|jjr#d|j|j|Sd|j|j|SdS(NsNOT %ss%s = 0(RŒRTR’R¶(R”R¶RZR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_isfalse_unary_operator„scKsd|j|dtjƒS(NsNOT %stoverride_operator(tvisit_binaryRtmatch_op(R”RRZR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_notmatch_op_binaryŠs	cKsÉ|jr@t|jtjƒr@t|jtjƒr@t|d<n|pL|j}t|d|j	dƒ}|r~||||Syt|}Wn#tk
r±t
j||ƒ‚nX|j|||SdS(Nt
literal_bindssvisit_%s_binary(tansi_bind_rulesRR?Rt
BindParameterRURÉRZRÂR©RŽRRR	tUnsupportedCompilationErrort_generate_generic_binary(R”RRœR²t	operator_R|topstring((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRŽs	

cKs|j|d|jd|S(NRX(R¤R¦(R”R¶RZR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_custom_op_binary¡scKs|j||jd|S(NRX(R–R¦(R”R¶RZR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_custom_op_unary_operator¥scKs|j|d|j|S(NRX(R—R¦(R”R¶RZR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_custom_op_unary_modifier©scKs*|jj||||jj||S(N(R?RŸRU(R”RR¦R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¤­scKs||jj||S(N(R¶RŸ(R”R˜R¦R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR–²scKs|jj|||S(N(R¶RŸ(R”R˜R¦R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR—µscCstjddtjƒS(Ns'%'R±(Rtliteral_columnRt
STRINGTYPE(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_like_percent_literal¸scKsF|jƒ}|j}|j|jƒj|ƒ|_|j|||S(N(t_cloneR¬t__add__RUtvisit_like_op_binary(R”RRZR²tpercent((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_contains_op_binary¼s	cKsF|jƒ}|j}|j|jƒj|ƒ|_|j|||S(N(R­R¬R®RUtvisit_notlike_op_binary(R”RRZR²R°((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_notcontains_op_binaryÂs	cKs=|jƒ}|j}|j|jƒ|_|j|||S(N(R­R¬t__radd__RUR¯(R”RRZR²R°((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_startswith_op_binaryÈs
	cKs=|jƒ}|j}|j|jƒ|_|j|||S(N(R­R¬R´RUR²(R”RRZR²R°((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_notstartswith_op_binaryÐs
	cKs=|jƒ}|j}|j|jƒ|_|j|||S(N(R­R¬R®RUR¯(R”RRZR²R°((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_endswith_op_binaryØs	cKs=|jƒ}|j}|j|jƒ|_|j|||S(N(R­R¬R®RUR²(R”RRZR²R°((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_notendswith_op_binaryÞs	cKsd|jjddƒ}d|jj|||jj||f|r_d|j|tjƒndS(Ntescapes
%s LIKE %ss ESCAPE R¢(	t	modifiersRFRŽR?RŸRUtrender_literal_valueRR«(R”RRZR²R¹((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¯äs
cKsd|jjddƒ}d|jj|||jj||f|r_d|j|tjƒndS(NR¹s%s NOT LIKE %ss ESCAPE R¢(	RºRFRŽR?RŸRUR»RR«(R”RRZR²R¹((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR²ñs
cKsd|jjddƒ}d|jj|||jj||f|r_d|j|tjƒndS(NR¹slower(%s) LIKE lower(%s)s ESCAPE R¢(	RºRFRŽR?RŸRUR»RR«(R”RRZR²R¹((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_ilike_op_binaryüs
cKsd|jjddƒ}d|jj|||jj||f|r_d|j|tjƒndS(NR¹slower(%s) NOT LIKE lower(%s)s ESCAPE R¢(	RºRFRŽR?RŸRUR»RR«(R”RRZR²R¹((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_notilike_op_binarys
cKs4|jjdtƒ}|j||r*dnd|S(NR[s BETWEEN SYMMETRIC s	 BETWEEN (RºRFRÃR¤(R”RRZR²R[((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_between_op_binaryscKs4|jjdtƒ}|j||r*dnd|S(NR[s NOT BETWEEN SYMMETRIC s
 NOT BETWEEN (RºRFRÃR¤(R”RRZR²R[((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_notbetween_op_binarysc	Ksw|r8|jjr8|jj|ƒ}|j|dtƒS|sM|rš|jrš|jdkr„|jdkr„t	j
d|jƒ‚n|j|dt|S|j
|ƒ}||jkrL|j|}||k	rL|jsã|jr|jj|jƒrt	j
d|jƒ‚qI|js$|jrIt	j
d|j|jfƒ‚qIqLn||j|j<|j|<|j||S(Ntskip_bind_expressions@Bind parameter '%s' without a renderable value not allowed here.RsIBind parameter '%s' conflicts with unique bind parameter of the same namesåbindparam() name '%s' 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_%s').(R¼t_has_bind_expressiontbind_expressionR’RÉR¡RðRŽRùR	R%Rïtrender_literal_bindparamt_truncate_bindparamRÄRbR»tintersectiont_is_crudR=(	R”RòRR RÀR¡RÂR·texisting((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_bindparams8		
	
cKs|j}|j||jƒS(N(RúR»R¼(R”RòR²Rð((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÃMs	cCs6|j|jƒ}|r"||ƒStd|ƒ‚dS(sRender 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.

        s(Don't know how to literal-quote value %rN(t_cached_literal_processorRŒR(R”RðR±t	processor((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR»Qs

cCs[||jkr|j|S|j}t|tjƒrJ|jd|ƒ}n||j|<|S(NRò(RÆRïRRRR(R”Ròt	bind_name((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÄcs	
cCsÆ||f|jkr&|j||fS|j|jƒ}t|ƒ|jdkr©|jj|dƒ}|dt|jddƒ!dt|ƒd}|d|j|<n|}||j||f<|S(Niiit_i(RØt	apply_mapR×RõRÓRFtmaxthex(R”tident_classR·tanonnametcountert	truncname((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRps/cCs||jS(N(R×(R”R·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
_anonymize€scCsP|jddƒ\}}|jj|dƒ}|d|j|<|dt|ƒS(NRXiRÌ(tsplitR×RFRå(R”Rïtidenttderivedtanonymous_counter((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRփscKsJ|jr8|dk	r%|j|ƒq8|jj|ƒn|ji|d6S(NR·(RËRŽR†RÌRÏ(R”R·tpositional_namesR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR=‰s
	c	sˆjƒt|jtjƒr7ˆjd|jƒ}n	|j}|ˆjkr¼ˆj|}||jksw||krŠˆjj	||ƒS||jkr¦ˆj
|=q¼tjd|ƒ‚n|ˆj|<|j
dk	r9|j
}|ˆj
krˆj||n|j
j}	t|	tjƒrEˆjd|	ƒ}	qEn|}d}	|	r¾|ˆj
kr¾|jrptˆ_nˆjj	||ƒ}
|jr>t|jtjƒr¯|j}n4t|jtjƒr×|jjd}ntsãt‚gtj|jƒD]}|dk	rö|^qö}
|
ddj‡fd†|
Dƒƒ7}
nˆjr_g|d<ˆj|<n|
d|jj ˆd	t|7}
|j!r®|
d
ˆj"||j!|7}
n|
ˆj
|<n|r|	rõˆjj	||	ƒ}
|
ˆj#|ƒ7}
nˆjj	||ƒS|
SdS(NR$s5Multiple, unrelated CTEs found with the same name: %ris(%s)s, c3s!|]}ˆjj|ƒVqdS(N(RÒt
format_column(RîRÖ(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>ÉsRÙs AS 
RRX($RÞRR·RRRRÛt	_restatesRÒtformat_aliasRÐR	R%t
_cte_aliasRŽt	visit_ctet	recursiveRÉRÜtoriginalRtSelecttCompoundSelectRŠRÃtAssertionErrorRtunique_listt
inner_columnsR=RËRÝRŸt	_suffixest_generate_prefixestget_render_as_alias_suffix(R”tcteRtashintt	fromhintsR¡tcte_nametexisting_ctetorig_ctetcte_alias_nameR2t
col_sourceRNt
recur_cols((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÞ‘sn
	



						c	Ksç|s|rEt|jtjƒr9|jd|jƒ}qE|j}n|r^|jj||ƒS|rÐ|jj|dt	||j
|jj||ƒƒ}|rÌ||krÌ|j|||||ƒ}n|S|jj||SdS(NR$R(RR·RRRRÒRÜRàRŸRÉRètformat_from_hint_text(	R”R$RRêtiscrudRëR¡t
alias_nametret((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_aliasâs 	cCsd|S(Ns AS ((R”talias_name_text((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRèûscCs |jj||||fƒdS(N(RÈR†(R”tkeynameR·tobjectsR±((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRHþscsˆjjr9|r9ˆjjˆƒ}‡‡fd†}	nˆ}|rQˆj}	nd}	|sf|}
n‹tˆtjƒr®|ˆk	r¥t|ˆj	dˆj
fƒ}
qñ|}
nC|dk	rÞ|rÞt||dˆjfƒ}
n|rOtˆtjƒrOˆj
rOˆjdk	rOtˆjtjƒrOt|tjˆj	ƒdˆjfƒ}
n¢tˆtjƒrµtˆtjƒs~ˆjrµtˆdƒs tˆtjƒrµt|ˆjƒ}
n<|ˆk	rët|tjˆj	ƒdˆjfƒ}
n|}
|jd|d|	ƒ|
jˆ|S(s.produce labeled columns present in a select().csˆj|||ˆf|ƒS(N(RH(RøR·RùR±(RR”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRésRºR·RRN(R¼t_has_column_expressiontcolumn_expressionRHRŽRRtLabelR´R·R¶t
_key_labeltColumnClauseR&R\RRát
_as_truncatedRït
TextClausetUnaryExpressiontwraps_column_expressionthasattrRtFunctiont
anon_labeltupdateRŸ(R”RVRRMRtcolumn_clause_argsR·Rtcol_exprRtresult_expr((RR”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_label_select_columns^			
		cCs-|j||ƒ}|r)|d|7}n|S(NRX(tget_from_hint_text(R”tsqltextR\thintRóthinttext((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRòPscCsdS(N(RŽ(R”tbyfroms((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytget_select_hint_textVscCsdS(N(RŽ(R”R\R2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRYscCsdS(N(RŽ(R”R\R2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytget_crud_hint_text\scCs
dj|ƒS(NRX(R=(R”t
hint_texts((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytget_statement_hint_text_scs.i‰ig‰‡‡‡fd†‰ˆ|ƒS(sÛRewrite any "a JOIN (b JOIN c)" expression as
        "a JOIN (select * from b JOIN c) AS anon", to support
        databases that can't parse a parenthesized join correctly
        (i.e. sqlite the main one).

        c
sz|ˆdkrˆd|S|ˆkr0ˆ|S|jƒ}ˆ|<|jrÊ|jrÊt|jtjƒrÊ|jƒˆ|j||_ˆ|j|}tj	|j
gdtƒjƒ}x)|j
D]}|j|_|j|_qÇWtt|jj
j
|j
ƒƒ}|||j
j<|||j
j<|||jj
j<|||jj
j<xEtˆdjƒƒD]-\}}||krg||ˆd|<qgqgWˆdj|ƒ||_ˆ|j||_n¬|jród|d<|jdˆ|nƒ|jrc|jrc|jddƒdk}	|	r3ˆjiƒnd|d<|jdˆ||	rvˆd=qvn|jdˆ||S(Niÿÿÿÿt
use_labelstselect_containerttransform_cluetclonet
inside_select(R­t
is_selectablet_is_joinRRURtFromGroupingt_reset_exportedR?RáR¶RÉR$RNRïRýR·t_labelRótzipRytitemsRtonclauset_is_from_containert_copy_internalst
_is_selectRFRŽR†(
R¶R²tnewelemRUtselectable_RNttranslate_dicttktvtbarrier_select(tclonedtcolumn_translatetvisit(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR,lsT
#		
	

((R”RV((R*R+R,sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt"_transform_select_for_nested_joinsbs	Mc	
s˜td„|jDƒƒ‰t‡fd†|jDƒƒ}g|jD]I\}}}}||tg|D]}|j||ƒ^qdƒ|f^qB|_dS(Ncss|]}|j|fVqdS(N(Rý(RîRN((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>½sc3s"|]}ˆ|j|fVqdS(N(Rý(RîRN(t	inner_col(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>Ás(RóRåRÈttupleRF(	R”RVttransformed_selecttdRïR·tobjsttypR¹((R.sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt&_transform_result_map_for_nested_joins»s	RƒR„cCs€|j}|r|jn
|jd}|d}|d}|rd|jd|j|ƒddƒ}n|jd|d|ƒ}|S(NiÿÿÿÿRƒR„texplicit_correlate_fromstimplicit_correlate_froms((RÇREt_get_display_fromst
difference(R”RVRRLRãRƒR„tfroms((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_display_froms_for_selectÏs


				csß|jo$|o$|jo$|jj}	|	ro|j|ƒ}
|j|
d|d|d|d|dt|}n|j}|rˆ|jn
|jd}
|pÈ|dkr¹|
jdt	ƒpÈ|
jd	t	ƒ}|rèd
|krè|d
=n|	r|r|j
||
ƒn|S|j||
|ƒ}|jƒ}|j
it	d6t	d6ƒd
}|jr…|j|ƒ\}}|r‹||d7}q‹nd}|jr³||j||j|7}n||j||7}gg|jD]-\}}|j|||||d|ƒ^qÖD]}|dk	r|^q}|rÔ|dk	rÔttg|jD]\}}|^qGg|jD]\}}|^qfƒƒ‰g|jD]:\}}}}||t‡fd†|Dƒƒ|f^qŽ|_n|j||||||ƒ}|jrXg|jD]*\}}|d|jjfkr|^q}|rX|d|j|ƒ7}qXn|jrƒ|j|ƒrƒ|j ƒ|}n|j!r¯|d|j||j!|7}n|jj"dƒ|r×|r×d|dS|SdS(NRRKRëRJtnested_join_translationiÿÿÿÿiRDRßRRRsSELECT RXR·c3s!|]}ˆj||ƒVqdS(N(RF(Rîto(t	translate(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>Ast*RR(#RRÇRŒtsupports_right_nested_joinsR-tvisit_selectRÉRERFRÃR4t_setup_select_stacktcopyRt_hintst_setup_select_hintsRŽt	_prefixesRçtget_select_precolumnst_columns_plus_namesR
RóRRÈR/t_compose_select_bodyt_statement_hintsR·RRÐt_is_toplevel_selectRRæRà(R”RVRRKRëRJR;tselect_wraps_forR¡tneeds_nested_translationR0R2RLRãRMR9Rt	hint_texttbyfromR·RRNRåRïR R±tdialect_namethttper_dialect((R=sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR@åsŠ	

	


				>%M	$	cCsb|jdd|koat|jƒdkpa|joat|jƒdkoa|j|jddkS(sÑReturn True if the stack is placed at the given select, and
        is also the outermost SELECT, meaning there is either no stack
        before this one, or the enclosing stack is a topmost INSERT.

        iÿÿÿÿRiii(RÇRõtisinsertR(R”RV((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRJ_s3c
Cs…tg|jjƒD]P\\}}}|d|jjfkr||i|j|dtƒd6f^qƒ}|j|ƒ}||fS(NR>RêR·(RóRCRRŒR·RŸRÉR(R”RVtfrom_RŒRRNRM((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRDmsGc
Cs©|d}|d}|r>|jd|j|ƒddƒ}n|jd|d|ƒ}ttj|Œƒ}|j|ƒ}i|d6|d6|d6}	|jj|	ƒ|S(NRƒR„R5R6R((R7R8RXRt
_from_objectsRaRÇR†(
R”RVRãRRƒR„R9tnew_correlate_fromstall_correlate_fromst	new_entry((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRAzs$

				
c
Cs÷|dj|ƒ7}|r¨|d7}|jrm|djg|D]$}|j|dtd||^q<ƒ7}q¸|djg|D]}|j|dt|^q}ƒ7}n||jƒ7}|jdk	rö|jj||}|rö|d|7}qön|jjr1|jj||}	|	r1|d|	7}q1n|j	dk	ro|j	j||}|ro|d|7}qon|j
jr”||j||7}n|jdk	s²|j
dk	rË||j||7}n|jdk	ró||j||7}n|S(Ns, s 
FROM RRës 
WHERE s
 GROUP BY s	 
HAVING (R=RCRŸRÉRt_whereclauseRŽR‹R[t_havingt_order_by_clauseRŒRRŽRt_for_update_argtfor_update_clause(
R”R2RVRåR9RNR¡tfttR“((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRH“s@
		5	/	cs9dj‡‡fd†|Dƒƒ}|r5|d7}n|S(NRXc3sE|];\}}|dks-|ˆjjkr|jˆˆVqdS(N(RŽRŒR·RŸ(RîtprefixRO(R²R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>Äs	(R=(R”tstmttprefixesR²Rb((R²R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRçÂs

cCs•|jrBtg|jD]}|j|^qgƒ|j|_n|j|jƒd}|djg|jjƒD]}|^qqƒ7}|d7}|S(NRXs, 
s
 (	RËtsumRÐRÝRÌtget_cte_preambleRÜR=tvalues(R”Rétcte_textttxt((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÍs	#	&
cCs|r
dSdSdS(NsWITH RECURSIVEtWITH((R”Rß((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRcÚscKs|jrdpdS(scCalled when building a ``SELECT`` statement, position is just
        before column list.

        s	DISTINCT R¢(t	_distinct(R”RVR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRFàscKs+|jj||}|r#d|SdSdS(Ns
 ORDER BY R¢(RZRŸ(R”RVR²Rl((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRŒçscKsdS(Ns FOR UPDATE((R”RVR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR\îscCstjdƒ‚dS(Ns@RETURNING is not supported by this dialect's statement compiler.(R	R%(R”R`treturning_cols((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytreturning_clauseñscKs„d}|jdk	r5|d|j|j|7}n|jdk	r€|jdkr`|d7}n|d|j|j|7}n|S(NR¢s
 LIMIT s

 LIMIT -1s OFFSET (RRŽR’RŽ(R”RVR²R2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRös 
 c	Ks¥|s|r|rSt|ddƒrS|jj|jƒd|jj|jƒ}n|jj|jƒ}|r™||kr™|j|||||ƒ}n|SdSdS(NRR#R¢(RÂRŽRÒR*RR(R·Rò(	R”R\RRóRêRët
use_schemaR¡Rõ((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_tables/cKs\|jj|dt||jr'dp*d|jj|dt|d|jj||S(NRs LEFT OUTER JOIN s JOIN s ON (R?RŸRÉtisouterRUR (R”R=RR¡((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_joinsHc
KsA|jjitƒd6tƒd6|d6ƒt|_tj|||}|r†|jjr†|jj	r†t
jd|jjƒ‚n|j
rÄ|jjs·t
jd|jjƒ‚n|d}n|}|j}|jj}d}|jr
||j||j|7}n|d7}|j|jƒ}|jr»tg|jjƒD]6\\}	}
}|
d	|jjfkrE|	|f^qEƒ}|j|kr»|j||j||jtƒ}q»n||7}|sÒ|r|d
djg|D]}
|j|
dƒ^qåƒ7}n|js|jre|jp-|j|_|j||jƒ}|jre|d|7}qen|jdk	r”|d
|j |j!|7}nu|r®|r®|d7}n[|j
rÛ|ddjd„|Dƒƒ7}n.|ddjg|D]}
|
d^qîƒ7}|jr-|jr-|d|7}n|jj"dƒ|S(NRƒR„RsWThe '%s' dialect with current database version settings does not support empty inserts.scThe '%s' dialect with current database version settings does not support in-place multirow inserts.isINSERT sINTO R>s (%s)s, RXs %ss DEFAULT VALUESs
 VALUES %scss,|]"}ddjd„|DƒƒVqdS(s(%s)s, css|]}|dVqdS(iN((RîRN((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>esN(R=(Rîtcrud_param_set((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>dss VALUES (%s)iiÿÿÿÿ(#RÇR†RXRÉRRRt_get_crud_paramsRŒtsupports_default_valuestsupports_empty_insertR	R%R·t_has_multi_parameterstsupports_multivalues_insertRÒRERçtformat_tableR\RCRóRRòR=RÚt	returningt
_returningRjtreturning_precedes_valuesRVRŽR’t_insert_from_selectRà(R”tinsert_stmtR²tcrud_paramstcrud_params_singleRÒRqR2t
table_textR\RŒRMt
dialect_hintsRNRj((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_inserts|	

	

		
		
	-


+	 

	(cCsdS(s3Provide a hook for MySQL to add LIMIT to the UPDATEN(RŽ(R”tupdate_stmt((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytupdate_limit_clauseuscKs|j|dtdt|S(s|Provide a hook to override the initial table clause
        in an UPDATE statement.

        MySQL overrides this.

        RRó(RŸRÉ(R”R€t
from_tabletextra_fromsR²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytupdate_tables_clauseyscs'ddj‡‡‡fd†|DƒƒS(s~Provide a hook to override the generation of an
        UPDATE..FROM clause.

        MySQL and MSSQL override this.

        sFROM s, c3s-|]#}|jˆdtdˆˆVqdS(RRëN(RŸRÉ(RîR^(t
from_hintsR²R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>s(R=(R”R€R‚RƒR…R²((R…R²R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytupdate_from_clause„s
	cs͈jjit|jgƒd6t|jgƒd6|d6ƒtˆ_|j}d}|jr}|ˆj||j|7}nˆj	||j||}t
jˆ||}|jr?t
g|jjƒD]6\\}}}	|dˆjjfkrÉ||	f^qɃ}
|j|
krEˆj||j|
|jtƒ}qEnd}
||7}|d7}|oeˆj‰|dj‡‡fd†|Dƒƒ7}ˆjs |jräˆjs¸|jˆ_nˆjrä|d	ˆj|ˆjƒ7}qän|r"ˆj||j||
|}|r"|d	|7}q"n|jdk	r`ˆj|j|}|r`|d
|7}q`nˆj|ƒ}
|
r†|d	|
7}nˆjr¹ˆjr¹|d	ˆj|ˆjƒ7}nˆjjdƒ|S(NRƒR„RsUPDATE R>s SET s, c3s4|]*}|djˆdˆƒd|dVqdS(iR+t=iN(RŸ(RîRN(R+R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>¿sRXs WHERE iÿÿÿÿ(RÇR†RXR\RÉtisupdatet_extra_fromsRERçR„RRpRCRóRRŒR·RòRŽt'render_table_with_column_in_update_fromR=RvRwRxRjR†RXR’RRà(R”R€R²RƒR2R}R{R\RŒRMR~textra_from_textR^R((R+R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_update“st					-


				cCs
tj|ƒS(N(Rt_key_getters_for_crud_column(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRåsc
Ks|jjit|jgƒd6t|jgƒd6|d6ƒt|_d}|jrt||j||j|7}n|d7}|jj|dtdtƒ}|j	r.t
g|j	jƒD]6\\}}}|d|jj
fkr¸||f^q¸ƒ}|j|kr4|j||j||jtƒ}q4nd}||7}|jr|j|_|jr|d	|j||jƒ7}qn|jdk	r½|jj||}	|	r½|d
|	7}q½n|jrð|jrð|d	|j||jƒ7}n|jjdƒ|S(NRƒR„RsDELETE sFROM RRóR>RXs WHERE iÿÿÿÿ(RÇR†RXR\RÉtisdeleteRERçRŸRCRóRRŒR·RòRŽRwRvRxRjRXRà(
R”tdelete_stmtR²R2R}R\RŒRMR~R^((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_deleteésL		
		-

		cCsd|jj|ƒS(NsSAVEPOINT %s(RÒtformat_savepoint(R”tsavepoint_stmt((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_savepoint scCsd|jj|ƒS(NsROLLBACK TO SAVEPOINT %s(RÒR‘(R”R’((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_rollback_to_savepoint#scCsd|jj|ƒS(NsRELEASE SAVEPOINT %s(RÒR‘(R”R’((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_release_savepoint'sN(‡R©RªR«tEXTRACT_MAPRrtCOMPOUND_KEYWORDSR‡RÃRŽRRRˆR@RŽRvRxRŠR¡R–Rtmemoized_instancemethodRÞt
contextlibtcontextmanagerRäRÙtmemoized_propertyRôRöR¯RžRÉR¤R›tdependenciesRÿRRRRR"R/R'R4R6R:R;RCRORRRURWR^ReRfRnRqRuR}RR~R{R”R™RšR›RŸRR§R¨R©R¤R–R—R¬R±R³RµR¶R·R¸R¯R²R¼R½R¾R¿RÈRÃR»RÄRRÔRÖR=RÞRöRèRHR
RòRRRRR-R4R­t	frozensetRER:R@RJRDRARHRçRRcRFRŒR\RjRRlRnRRR„R†RŒRRR“R”R•(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¿sC	
	0		#'										
			
					+																	
					-			
			P		K						Y		v		
		/		
						
			]				R	7		tDDLCompilercBsReZejd„ƒZejd„ƒZed„ƒZd d„Z	d„Z
d„Zd„Zd„Z
ed„Zd d	„Zd
„Zd„Zd„Zeed
„Zd„Zed„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'RS(!cCs|jj|jdƒS(N(RŒtstatement_compilerRŽ(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRž.scCs
|jjS(N(RŒR8(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR82scCs
|jjS(N(RŒRÑ(R”((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÒ6scCsdS(N(RŽ(R”R›((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¤:scKsÙ|j}t|jtjƒrÂ|jƒ}|jj}|j|jƒ}t	|ƒdkrn|dd}}n|d|d}}|j
d|ƒ|j
d|ƒ|j
d|j|jƒƒn|jj
|j|ƒS(NiiR¢iÿÿÿÿR\Rtfullname(tcontextRttargetRtTableRBRŒRÑtformat_table_seqRõt
setdefaultRuRžR;R(R”tddlR¡R¡RÒtpathR\tsch((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt	visit_ddl=s	cCs|jj|jƒ}d|S(NsCREATE SCHEMA (RÒt
format_schemaR¶(R”RR((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_create_schemaPscCs9|jj|jƒ}d|}|jr5|d7}n|S(NsDROP SCHEMA s CASCADE(RÒRªR¶tcascade(R”tdropRR2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_drop_schemaTs

	
cCss|j}|jj}ddjdg|jd|j|ƒdgƒ}d}t}xÎ|jD]Ã}|j}yb|j|d|j	o‰|ƒ}	|	dk	r¼||7}d}|d|	7}n|j	rÎt}nWq^tj
k
r }
tjtj
tjd	ƒ|j|j|
jd
fƒƒq^Xq^W|j|d|jƒ}|rX||d|7}n|d|j|ƒ7}|S(
Ns
RXtCREATEtTABLERtfirst_pks, 
s	s (in table '%s', column '%s'): %sit _include_foreign_key_constraintss
)%s

(R¶RŒRÑR=RERuRÃtcolumnsR’tprimary_keyRŽRÉR	R%Rtraise_from_causetutdescriptionR·targstcreate_table_constraintstinclude_foreign_key_constraintstpost_create_table(R”RR\RÒR2t	separatorR±t
create_columnRt	processedtcetconst((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_create_table[sB		
		

	
)csh|j}|jrdSˆj|d|ƒ}dj‡fd†|jDƒƒ}|rd|d|7}n|S(NR±RXc3s|]}ˆj|ƒVqdS(N(R’(RîR(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>Žs(R¶tsystemRŽtget_column_specificationR=tconstraints(R”RR±RR2RÀ((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_create_column„s			cs·g}|jr"|j|jƒn|j}|dk	rI|j|ƒ}n	tƒ}|jg|jD]'}||jk	rb||krb|^qbƒdjd„‡fd†|DƒDƒƒS(Ns, 
	css!|]}|dk	r|VqdS(N(RŽ(Rîtp((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>ªs	c3s\|]R}|jdks'|jˆƒrˆjjsGt|dtƒrˆj|ƒVqdS(t	use_alterN(t_create_ruleRŽRŒtsupports_alterRÂRÃR’(RîR(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>«s

(	R´R†tforeign_key_constraintsRŽR8RXtextendt_sorted_constraintsR=(R”R\R²RÄtall_fkcst	omit_fkcsRN((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¹•s			cCsd|jj|jƒS(Ns
DROP TABLE (RÒRuR¶(R”R­((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_drop_table¶scCsd|jj|jƒS(Ns
DROP VIEW (RÒRuR¶(R”R­((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_drop_view¹scCs,|jdkr(tjd|jƒ‚ndS(Ns,Index '%s' is not associated with any table.(R\RŽR	R%R·(R”R5((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_verify_index_table¼s	cs“|j}ˆj|ƒˆj}d}|jr;|d7}n|dˆj|d|ƒ|j|jd|ƒdj‡fd†|jDƒƒf7}|S(NsCREATE sUNIQUE sINDEX %s ON %s (%s)tinclude_schemaRks, c3s-|]#}ˆjj|dtdtƒVqdS(R+R N(RžR’RÃRÉ(RîRQ(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>Ðs(	R¶RÑRÒRbt_prepared_index_nameRuR\R=texpressions(R”RRÒtinclude_table_schemaR5RÒR2((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_create_indexÁs	
		
cCs |j}d|j|dtƒS(Ns
DROP INDEX RÒ(R¶RÓRÉ(R”R­R5((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_drop_indexÖs		cCsö|rB|jdk	rB|jjrB|jj}|jj|ƒ}nd}|j}t|tjƒr¹|j	j
px|j	j}t|ƒ|krÉ|d|d!dt
j|ƒd}qÉn|j	j|ƒ|jj|ƒ}|rò|d|}n|S(NiiRÌiüÿÿÿR#(R\RŽRRÒR*R·RRRRŒtmax_index_name_lengthRÔRõRtmd5_hextvalidate_identifierR((R”R5RÒRtschema_nameRÖtmax_t
index_name((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÓÛs!	,cCs,d|jj|jjƒ|j|jƒfS(NsALTER TABLE %s ADD %s(RÒRuR¶R\R’(R”R((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_add_constraintòscCsd|jj|jƒ}|jjdk	rB|d|jj7}n|jjdk	rk|d|jj7}n|jjdk	r”|d|jj7}n|jjdk	r½|d|jj7}n|jjdk	rÜ|d7}n|jj	dk	rû|d7}n|jj
dk	r|d7}n|S(	NsCREATE SEQUENCE %ss INCREMENT BY %ds START WITH %ds MINVALUE %ds MAXVALUE %ds NO MINVALUEs NO MAXVALUEs CYCLE(RÒtformat_sequenceR¶t	incrementRŽtstarttminvaluetmaxvaluet
nominvaluet
nomaxvaluetcycle(R”RR2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_create_sequenceøs"


cCsd|jj|jƒS(NsDROP SEQUENCE %s(RÒRßR¶(R”R­((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_drop_sequence	scCsŠ|j}|jdk	r-|jj|ƒ}nd}|dkrXtjd|jƒ‚nd|jj|jjƒ||j	r‚dp…dfS(Ns<Can't emit DROP CONSTRAINT for constraint %r; it has no names#ALTER TABLE %s DROP CONSTRAINT %s%ss CASCADER¢(
R¶R·RŽRÒtformat_constraintR	R%RuR\R¬(R”R­Rtformatted_name((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_drop_constraint	s	cKsx|jj|ƒd|jjj|jd|ƒ}|j|ƒ}|dk	r^|d|7}n|jst|d7}n|S(NRXR7s	 DEFAULT s	 NOT NULL(	RÒRÚRŒR8R’R¼tget_column_default_stringRŽtnullable(R”RR¡tcolspecR$((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÃ 	s	
cCsdS(NR¢((R”R\((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR»,	scCsbt|jtjƒrZt|jjtjƒr;d|jjS|jj|jjdt	ƒSndSdS(Ns'%s'R (Rtserver_defaultRt
DefaultClausetargRtstring_typesRžR’RÉRŽ(R”R((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRì/	s	cCs‡d}|jdk	rG|jj|ƒ}|dk	rG|d|7}qGn|d|jj|jdtdtƒ7}||j	|ƒ7}|S(NR¢sCONSTRAINT %s s
CHECK (%s)R+R (
R·RŽRÒRéRžR’RRÃRÉtdefine_constraint_deferrability(R”RR2Rê((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_check_constraint9	scCsod}|jdk	rG|jj|ƒ}|dk	rG|d|7}qGn|d|j7}||j|ƒ7}|S(NR¢sCONSTRAINT %s s
CHECK (%s)(R·RŽRÒRéRRó(R”RR2Rê((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_column_check_constraintE	scs¥t|ƒdkrdSd}|jdk	r]ˆjj|ƒ}|dk	r]|d|7}q]n|d7}|ddj‡fd†|Dƒƒ7}|ˆj|ƒ7}|S(NiR¢sCONSTRAINT %s sPRIMARY KEY s(%s)s, c3s$|]}ˆjj|jƒVqdS(N(RÒR(R·(RîRN(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>X	s(RõR·RŽRÒRéR=Ró(R”RR2Rê((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_primary_key_constraintO	s
cs|jj‰d}|jdk	rS|jj|ƒ}|dk	rS|d|7}qSnt|jƒdjj	}|ddj
‡fd†|jDƒƒ|j||ˆƒdj
‡fd†|jDƒƒf7}||j|ƒ7}||j
|ƒ7}||j|ƒ7}|S(NR¢sCONSTRAINT %s is"FOREIGN KEY(%s) REFERENCES %s (%s)s, c3s$|]}ˆj|jjƒVqdS(N(R(tparentR·(RîR](RÒ(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>f	sc3s$|]}ˆj|jjƒVqdS(N(R(RR·(RîR](RÒ(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>j	s(RŒRÑR·RŽRÒRéRyRRR\R=tdefine_constraint_remote_tabletdefine_constraint_matchtdefine_constraint_cascadesRó(R”RR2Rêtremote_table((RÒsL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_foreign_key_constraint]	s$
cCs
|j|ƒS(s=Format the remote table clause of a CREATE CONSTRAINT clause.(Ru(R”RR\RÒ((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRør	scsŒt|ƒdkrdSd}|jdk	rNˆjj|ƒ}|d|7}n|ddj‡fd†|Dƒƒ7}|ˆj|ƒ7}|S(NiR¢sCONSTRAINT %s sUNIQUE (%s)s, c3s$|]}ˆjj|jƒVqdS(N(RÒR(R·(RîRN(R”(sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pys	<genexpr>	s(RõR·RŽRÒRéR=Ró(R”RR2Rê((R”sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_unique_constraintw	scCsPd}|jdk	r)|d|j7}n|jdk	rL|d|j7}n|S(NR¢s
 ON DELETE %ss
 ON UPDATE %s(tondeleteRŽtonupdate(R”RR2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRú„	scCs_d}|jdk	r8|jr+|d7}q8|d7}n|jdk	r[|d|j7}n|S(NR¢s DEFERRABLEs NOT DEFERRABLEs
 INITIALLY %s(R%RŽR7(R”RR2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRóŒ	s	

cCs-d}|jdk	r)|d|j7}n|S(NR¢s	 MATCH %s(tmatchRŽ(R”RR2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRù—	sN((R©RªRR›RžR8R¯RÒRŽR¤R©R«R®RÁRÃRÅR¹RÏRÐRÑRÉRÖR×RÓRÞRçRèRëRÃR»RìRôRõRöRüRøRýRúRóRù(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRž,sB				)											
		
				
		tGenericTypeCompilercBs‚eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zd
„Zd„Z
d„Zd
„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d „Z"d!„Z#d"„Z$d#„Z%d$„Z&d%„Z'd&„Z(d'„Z)d(„Z*d)„Z+RS(*cKsdS(NtFLOAT((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_FLOAT 	scKsdS(NtREAL((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_REAL£	scKsT|jdkrdS|jdkr4di|jd6Sdi|jd6|jd6SdS(NtNUMERICsNUMERIC(%(precision)s)t	precisions!NUMERIC(%(precision)s, %(scale)s)tscale(RRŽR(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_NUMERIC¦	s
cKsT|jdkrdS|jdkr4di|jd6Sdi|jd6|jd6SdS(NtDECIMALsDECIMAL(%(precision)s)Rs!DECIMAL(%(precision)s, %(scale)s)R(RRŽR(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_DECIMAL±	s
cKsdS(NtINTEGER((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_INTEGER¼	scKsdS(NtSMALLINT((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_SMALLINT¿	scKsdS(NtBIGINT((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_BIGINTÂ	scKsdS(Nt	TIMESTAMP((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_TIMESTAMPÅ	scKsdS(NtDATETIME((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_DATETIMEÈ	scKsdS(NtDATE((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_DATEË	scKsdS(NtTIME((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_TIMEÎ	scKsdS(NtCLOB((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_CLOBÑ	scKsdS(NtNCLOB((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_NCLOBÔ	scCsD|}|jr#|d|j7}n|jr@|d|j7}n|S(Ns(%d)s
 COLLATE "%s"(tlengtht	collation(R”R±R·R2((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_render_string_type×	s		cKs|j|dƒS(NtCHAR(R (R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_CHARà	scKs|j|dƒS(NtNCHAR(R (R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_NCHARã	scKs|j|dƒS(NtVARCHAR(R (R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_VARCHARæ	scKs|j|dƒS(NtNVARCHAR(R (R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_NVARCHARé	scKs|j|dƒS(NtTEXT(R (R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_TEXTì	scKsdS(NtBLOB((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_BLOBï	scKsd|jrd|jpdS(NtBINARYs(%d)R¢(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_BINARYò	scKsd|jrd|jpdS(Nt	VARBINARYs(%d)R¢(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_VARBINARYõ	scKsdS(NtBOOLEAN((R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_BOOLEANø	scKs|j||S(N(R,(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_large_binaryû	scKs|j||S(N(R2(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_booleanþ	scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_time
scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_datetime
scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_date
scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_big_integer

scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_small_integer
scKs|j||S(N(R
(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_integer
scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_real
scKs|j||S(N(R(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_float
scKs|j||S(N(R	(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_numeric
scKs|j||S(N(R&(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_string
scKs|j||S(N(R&(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_unicode
scKs|j||S(N(R*(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_text"
scKs|j||S(N(R*(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_unicode_text%
scKs|j||S(N(R&(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt
visit_enum(
scKstjd|ƒ‚dS(NsKCan't generate DDL for %r; did you forget to specify a type on this Column?(R	R%(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRR+
s	cKs|j|j|jƒ|S(N(R’ttype_engineRŒ(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_type_decorator0
scKs
|j|S(N(tget_col_spec(R”R±R²((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytvisit_user_defined3
s(,R©RªRRR	RR
RRRRRRRRR R"R$R&R(R*R,R.R0R2R3R4R5R6R7R8R9R:R;R<R=R>R?R@RARBRRRDRF(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRž	sT																																										tIdentifierPreparercBs
eZdZeZeZeZddde
d„Zd„Zd„Z
d„Zd„Zdd„Zdd„Zed	„Zdd
„Zdd„Zdd„Zejd
ƒd„ƒZedd„Zdd„Ze
ddd„Zed„Zejd„ƒZd„Z RS(s@Handle quoting and case-folding of identifiers based on options.t"cCsS||_||_|p|j|_||_|jd|_||_i|_dS(ssConstruct 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.
        iN(RŒt
initial_quotetfinal_quotetescape_quotetescape_to_quotetomit_schemat_strings(R”RŒRIRJRKRM((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR–A
s				cCs|j|j|jƒS(s€Escape an identifier.

        Subclasses should override this to provide database-dependent
        escaping behavior.
        (R1RKRL(R”Rð((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_escape_identifierY
scCs|j|j|jƒS(s±Canonicalize an escaped identifier.

        Subclasses should override this to provide database-dependent
        unescaping behavior that reverses _escape_identifier.
        (R1RLRK(R”Rð((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_unescape_identifierb
scCs|j|j|ƒ|jS(s~Quote an identifier.

        Subclasses should override this to provide database-dependent
        quoting behavior.
        (RIRORJ(R”Rð((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytquote_identifierk
scCsT|jƒ}||jkpS|d|jkpS|jjtj|ƒƒpS||kS(s5Return True if the given identifier requires quoting.i(Rvtreserved_wordstillegal_initial_characterstlegal_charactersRRt	text_type(R”Rðtlc_value((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_requires_quotesv
s
cCs|j||ƒS(sÑConditionally quote a schema.

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

        the 'force' flag should be considered deprecated.

        (R((R”Rtforce((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR*~
s	cCs–t|ddƒ}|dkr{||jkr8|j|S|j|ƒr`|j|ƒ|j|<n
||j|<|j|Sn|rŽ|j|ƒS|SdS(sfConditionally quote an identifier.

        the 'force' flag should be considered deprecated.
        R(N(RÂRŽRNRWRQ(R”RÖRX((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR(‰
s

cCsR|j|jƒ}|jrN|rN|jdk	rN|j|jƒd|}n|S(NR#(R(R·RMRRŽR*(R”RRkR·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRߟ
s
cCs|j|p|jƒS(N(R(R·(R”RµR·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¦
scCs|j|p|jƒS(N(R(R·(R”R$R·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÜ©
scCs|j|p|jƒS(N(R(RÖ(R”t	savepointR·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR‘¬
sssqlalchemy.sql.namingcCsit|jtjƒrY|j||jƒ}|r=|j|ƒSt|jtjƒrYdSn|j|jƒS(N(	RR·Rt_defer_namet_constraint_name_for_tableR\R(t_defer_none_nameRŽ(R”tnamingRR·((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRé¯
s
cCsj|dkr|j}n|j|ƒ}|jrf|rft|ddƒrf|j|jƒd|}n|S(s'Prepare a quoted table and schema name.RR#N(RŽR·R(RMRÂR*R(R”R\RkR·R((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRuº
scCs|j||ƒS(sPrepare a quoted schema name.(R((R”R·R(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRªÅ
scCsŸ|dkr|j}nt|dtƒsm|r]|j|jdtd|ƒd|j|ƒS|j|ƒSn.|r—|j|jdtd|ƒd|S|SdS(sPrepare a quoted column name.R&RkR·R#N(RŽR·RÂRÃRuR\R((R”Rt	use_tableR·t
table_name((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRÚÊ
s-$cCsa|jrG|rGt|ddƒrG|j|jƒ|j|dtƒfS|j|dtƒfSdS(s(Format table name and schema as a tuple.RRkN(RMRÂRŽR*RRuRÃ(R”R\Rk((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyR¤â
s
cCsrg|j|j|j|jƒfD]}tj|ƒ^q"\}}}tjdi|d6|d6|d6ƒ}|S(NsM(?:(?:%(initial)s((?:%(escaped)s|[^%(final)s])+)%(final)s|([^\.]+))(?=\.|$))+tinitialtfinaltescaped(RIRJRORìR¹R—(R”RYR`Rat
escaped_finaltr((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt_r_identifiersð
s7
cCsQ|j}gg|j|ƒD]\}}|p1|^qD]}|j|ƒ^q8S(s:Unpack 'schema.table.column'-like strings into components.(RetfindallRP(R”tidentifiersRdtatbR…((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pytunformat_identifiersÿ
s	N(!R©RªR«tRESERVED_WORDSRRtLEGAL_CHARACTERSRTtILLEGAL_INITIAL_CHARACTERSRSRŽRÃR–RORPRQRWR*R(RÉRßRRÜR‘RRœRéRuRªRÚR¤R›ReRj(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyRG7
s0						(_R«R™RìR¢RRRRRRRRRR	RêRXRkR—tIRltrangeRcRåRaRmtUNICODERBRARÍtand_tor_taddtmulRítdivtmodttruedivtnegtlttletnetgttgeteqt	concat_opRžtnotmatch_optin_optnotin_optcomma_opRSRtis_tisnotRtexiststdistinct_optinvtdesc_optasc_opt
nullsfirst_optnullslast_opRtcoalesceRR!R"R#RBRCtrandomRvRWRcRwR–RâRˆt	UNION_ALLR‰t
EXCEPT_ALLRŠt
INTERSECT_ALLR—tobjectR‹twith_metaclasstEnsureKWArgTypeR°t	VisitableR´R¿RžRRG(((sL/home/tvault/.virtenv/lib/python2.7/site-packages/sqlalchemy/sql/compiler.pyt<module>sê:	:


















































e%ÿÿÿÿÿÿÿÿs™