Files
Home-AssistantConfig/deps/sqlalchemy/engine/__pycache__/default.cpython-34.pyc

174 lines
29 KiB
Plaintext
Raw Normal View History

2016-10-11 16:42:06 +00:00
<EFBFBD>
}<7D><><00>@sdZddlZddlZddlmZmZmZddlmZm Z ddlm
Z ddlm Z m Z mZmZddlZddlZdd lmZejd
ejejB<>ZGd d <00>d ej<00>ZGd d<00>dej<00>Zee_dS)aDefault implementations of per-dialect sqlalchemy.engine classes.
These are semi-private implementation classes which are only of importance
to database dialect authors; dialects will usually use the classes here
as the base class for their own corresponding classes.
<EFBFBD>N<>)<03>
reflection<EFBFBD>
interfaces<EFBFBD>result<6C>)<02>compiler<65>
expression)<01>types)<04>exc<78>util<69>pool<6F>
processors)<01>eventz-\s*(?:UPDATE|INSERT|CREATE|DELETE|DROP|ALTER)c @sXeZdZdZejZejZej Z
ej Z dZ dZeZdZdZdZdZdZdZdZdZdZdZejdejd<00>fdejfdejd <00>fd
ejd <00>fd ejfd ejfd ejfdejfg<00>Z dZ!ej"r/dZ#dZ$dZ%dZ&ndZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+iZ,iZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4fZ5ej<00>Z6ddddddddddd<00> Z7ej8dd<00><00>Z9e:dd<00><00>Z;e<dd<00><00>Z=dd<00>Z>dd <00>Z?dd!d"<00>Z@d#d$<00>ZAd%d&<00>ZBd'd(<00>ZCdd)d*<00>ZDd+d,<00>ZEd-d.<00>ZFd/d0<00>ZGd1d2<00>ZHd3d4<00>ZId5d6<00>ZJd7d8<00>ZKd9d:<00>ZLd;d<<00>ZMd=d><00>ZNd?d@<00>ZOdAdB<00>ZPdCdD<00>ZQdEdF<00>ZRddGdH<00>ZSddIdJ<00>ZTddKdL<00>ZUdMdN<00>ZVdOdP<00>ZWdS)Q<>DefaultDialectz!Default implementation of DialectTrF<>convert_unicode<64>force<63> pool_timeoutZecho<68>debugZ echo_poolZ pool_recycleZ pool_sizeZ max_overflowZpool_threadlocalN<6C> use_encoding<6E>defaulti'<00>namedzutf-8c
Ks<>t|dd<00>s)tjd|j<16>n||_||_d|_d|_||_|dk rn||_ n-|jdk r<>|jj |_ n |j
|_ |dk r<>||_ n|j d
k|_|j |<00>|_ |j|<00>|_|dk r||_n|dk r||_n||_| rV| |jkrVtjd| |jf<16><00>n| |_|jd kr<>tj|<00>|_n'|jdk r<>tj|j<00>|_ntj|j<00>|_tj|j<00>|_dS) NZported_sqla_06Tz2The %s dialect is not yet ported to the 0.6 formatF<74>qmark<72>format<61>numericzQLabel length of %d is greater than this dialect's maximum identifier length of %dr)rzformatznumeric)<1E>getattrr <00>warn<72>namer<00>encoding<6E>
positionalZ_ischema<6D>dbapi<70>
paramstyle<EFBFBD>default_paramstyle<6C>implicit_returning<6E>preparerZidentifier_preparer<65> type_compiler<65>supports_right_nested_joins<6E>supports_native_boolean<61>case_sensitive<76>max_identifier_lengthr
<00> ArgumentError<6F> label_length<74>description_encodingr Zto_unicode_processor_factory<72>_description_decoder<65>codecs<63>
getencoder<EFBFBD>_encoder<65>_decoder) <0B>selfrrr rr"r%r'r&r*<00>kwargs<67>r3<00>?/tmp/pip-build-zkr322cu/sqlalchemy/sqlalchemy/engine/default.py<70>__init__<5F>sJ                zDefaultDialect.__init__cCs
tj<00>S)N)<02>weakref<65>WeakKeyDictionary)r1r3r3r4<00> _type_memos<6F>szDefaultDialect._type_memoscCs|jd|jS)N<>+)rZdriver)r1r3r3r4<00>dialect_description<6F>sz"DefaultDialect.dialect_descriptioncCst|dtj<00>S)NZ poolclass)rr Z QueuePool)<02>cls<6C>urlr3r3r4<00>get_pool_class<73>szDefaultDialect.get_pool_classcCs<>y|j|<00>|_Wntk
r3d|_YnXy|j|<00>|_Wntk
rgd|_YnXy|j|j<00>|_Wntk
r<>d|_YnX|j|<00>|_ |j
dk r<>|j |<00>r<>d|_ |_
n|j |j<00>dS)N)Z_get_server_version_info<66>server_version_info<66>NotImplementedErrorZ_get_default_schema_nameZdefault_schema_nameZget_isolation_level<65>
connection<EFBFBD>default_isolation_level<65>_check_unicode_returns<6E>returns_unicode_stringsr+<00>_check_unicode_descriptionr,<00> do_rollback)r1r@r3r3r4<00>
initialize<EFBFBD>s"   zDefaultDialect.initializecCsdS)a<>return a callable which sets up a newly created DBAPI connection.
This is used to set dialect-wide per-connection options such as
isolation modes, unicode modes, etc.
If a callable is returned, it will be assembled into a pool listener
that receives the direct DBAPI connection, with all wrappers removed.
If None is returned, no listener will be generated.
Nr3)r1r3r3r4<00>
on_connects zDefaultDialect.on_connectcs tjr<00>j rtj<00>n tj<00><00>jr@<00>j<00><00>ni<00><00><00><00><00>fdd<00><00>tjtj d<00>t
j d<00><00>tjtj d<00>t
j d<00><00>g}|r<>||7}nt <00>fdd<00>|D<><00>}|jdd g<00>r<>d
S|t dg<00>kSdS) Ncs<><00>tj|g<00>jd<00><00><01>}y<<00>jj<00>}<00>j||<00><00>|j<00>}|j<00>Wn=tj k
r<>}zt
j d|<16>dSWYdd}~XnXt |dt
j <00>SdS)N<>dialectz2Exception attempting to detect unicode returns: %rFr)r<00>select<63>compiler@<00>cursor<6F>_cursor_execute<74>fetchone<6E>closer
Z
DBAPIErrorr r<00>
isinstance<EFBFBD> text_type)<05>test<73> statementrK<00>row<6F>de)<04>cast_tor@<00>
parametersr1r3r4<00> check_unicodes!  z<DefaultDialect._check_unicode_returns.<locals>.check_unicodez'test plain returns'<27><z'test unicode returns'csg|]}<00>|<00><00>qSr3r3)<02>.0rQ)rWr3r4<00>
<listcomp>@s z9DefaultDialect._check_unicode_returns.<locals>.<listcomp>TFZ conditional)r <00>py2k<32>supports_unicode_statements<74> binary_typerPr<00>execute_sequence_formatr<00>cast<73>literal_column<6D>sqltypesZVARCHARZUnicode<64>set<65>
issuperset)r1r@Zadditional_tests<74>tests<74>resultsr3)rUrWr@rVr1r4rBs&      z%DefaultDialect._check_unicode_returnsc Cs<>tjr|j rtj}n tj}|jj<00>}z\|j|tj tj
d<00>j d<00>g<00>j d|<00><01><00>t |jddtj<00>SWd|j<00>XdS)Nz'x'Z
some_labelrHr)r r[r\r]rPr@rK<00>executerrIr`<00>labelrJrO<00> descriptionrN)r1r@rUrKr3r3r4rDGs  4z)DefaultDialect._check_unicode_descriptioncCstj||j<00>S)a)Provide a database-specific :class:`.TypeEngine` object, given
the generic object which comes from the types module.
This method looks for a dictionary called
``colspecs`` as a class or instance-level variable,
and passes on to :func:`.types.adapt_type`.
)raZ
adapt_type<EFBFBD>colspecs)r1Ztypeobjr3r3r4<00>type_descriptor^s zDefaultDialect.type_descriptorcCs%tjj|<00>}|j|||<00>S)N)rZ InspectorZ from_engine<6E> reflecttable)r1r@<00>tableZinclude_columnsZexclude_columnsZinspr3r3r4rkiszDefaultDialect.reflecttablecKs i|j||d||<00>d6S)z<>Compatibility method, adapts the result of get_primary_keys()
for those dialects which don't implement get_pk_constraint().
<20>schemaZconstrained_columns)Zget_primary_keys)r1<00>connZ
table_namerm<00>kwr3r3r4<00>get_pk_constraintnsz DefaultDialect.get_pk_constraintcCs8t|<00>|jkr4tjd||jf<16><00>ndS)Nz7Identifier '%s' exceeds maximum length of %d characters)<04>lenr(r
ZIdentifierError)r1<00>identr3r3r4<00>validate_identifierysz"DefaultDialect.validate_identifiercOs|jj||<00>S)N)r<00>connect)r1ZcargsZcparamsr3r3r4rt<00>szDefaultDialect.connectcCs&|j<00>}|j|j<00>g|gS)N)Ztranslate_connect_args<67>update<74>query)r1r<<00>optsr3r3r4<00>create_connect_args<67>s z"DefaultDialect.create_connect_argscsDd|kr@|d<19>tj|d<00><00><00>fdd<00><00>}ndS)N<>isolation_levelZengine_connectcs|s<00>j|<00><00>ndS)N)<01>_set_connection_isolation)r@<00>branch)ryr1r3r4<00> set_isolation<6F>szBDefaultDialect.set_engine_execution_options.<locals>.set_isolation)rZ listens_for)r1<00>enginerwr|r3)ryr1r4<00>set_engine_execution_options<6E>s 
z+DefaultDialect.set_engine_execution_optionscCs'd|kr#|j||d<19>ndS)Nry)rz)r1r@rwr3r3r4<00> set_connection_execution_options<6E>s z/DefaultDialect.set_connection_execution_optionscCsL|j<00>rtjd<00>n|j|j|<00>|jjjj|j<00>dS)Nz<4E>Connection is already established with a Transaction; setting isolation_level may implicitly rollback or commit the existing transaction, or have no effect until next transaction) Zin_transactionr r<00>set_isolation_levelr@Z_connection_recordZfinalize_callback<63>append<6E>reset_isolation_level)r1r@<00>levelr3r3r4rz<00>s
 
z(DefaultDialect._set_connection_isolationcCsdS)Nr3)r1<00>dbapi_connectionr3r3r4<00>do_begin<69>szDefaultDialect.do_begincCs|j<00>dS)N)<01>rollback)r1r<>r3r3r4rE<00>szDefaultDialect.do_rollbackcCs|j<00>dS)N)<01>commit)r1r<>r3r3r4<00> do_commit<69>szDefaultDialect.do_commitcCs|j<00>dS)N)rN)r1r<>r3r3r4<00>do_close<73>szDefaultDialect.do_closecCsdtjdd<00>S)z<>Create a random two-phase transaction ID.
This id will be passed to do_begin_twophase(), do_rollback_twophase(),
do_commit_twophase(). Its format is unspecified.
z _sa_%032xrr<00><>l )<02>random<6F>randint)r1r3r3r4<00>
create_xid<EFBFBD>szDefaultDialect.create_xidcCs|jtj|<00><00>dS)N)rfrZSavepointClause)r1r@rr3r3r4<00> do_savepoint<6E>szDefaultDialect.do_savepointcCs|jtj|<00><00>dS)N)rfrZRollbackToSavepointClause)r1r@rr3r3r4<00>do_rollback_to_savepoint<6E>sz'DefaultDialect.do_rollback_to_savepointcCs|jtj|<00><00>dS)N)rfrZReleaseSavepointClause)r1r@rr3r3r4<00>do_release_savepoint<6E>sz#DefaultDialect.do_release_savepointcCs|j||<00>dS)N)<01> executemany)r1rKrRrV<00>contextr3r3r4<00>do_executemany<6E>szDefaultDialect.do_executemanycCs|j||<00>dS)N)rf)r1rKrRrVr<>r3r3r4<00>
do_execute<EFBFBD>szDefaultDialect.do_executecCs|j|<00>dS)N)rf)r1rKrRr<>r3r3r4<00>do_execute_no_params<6D>sz#DefaultDialect.do_execute_no_paramscCsdS)NFr3)r1<00>er@rKr3r3r4<00> is_disconnect<63>szDefaultDialect.is_disconnectcCs|j||j<00>dS)N)r<>rA)r1Z
dbapi_connr3r3r4r<><00>sz$DefaultDialect.reset_isolation_level)X<>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rZ SQLCompilerZstatement_compilerZ DDLCompilerZ ddl_compilerZGenericTypeCompilerr$ZIdentifierPreparerr#Zsupports_alterZdefault_sequence_base<73>tupler^Zsupports_viewsZsupports_sequencesZsequences_optionalZ"preexecute_autoincrement_sequences<65>postfetch_lastrowidr"r%Zsupports_native_enumr&Zsupports_simple_order_by_labelr Z immutabledictZ bool_or_strZasintZasboolZengine_config_typesZsupports_native_decimalZpy3kr\<00>supports_unicode_bindsrCr+rr(Zmax_index_name_length<74>supports_sane_rowcount<6E>supports_sane_multi_rowcountZdbapi_type_maprir!Zsupports_default_valuesZsupports_empty_insertZsupports_multivalues_insertr>Zconstruct_argumentsZrequires_name_normalizeZreflection_optionsZdbapi_exception_translation_mapr5<00>memoized_propertyr8<00>propertyr:<00> classmethodr=rFrGrBrDrjrkrprsrtrxr~rrzr<>rEr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r3r3r3r4rs<>           *  1  4              rc@sVeZdZdZdZdZdZdZdZdZ dZ
dZ dZ dZ dZdZedd<00><00>Zedd<00><00>Zedd<00><00>Zed d
<00><00>Zejd d <00><00>Zejd d<00><00>Zejdd<00><00>Zejdd<00><00>Zejdd<00><00>Zejdd<00><00>Zdd<00>Zedd<00><00>Zdd<00>Z dd<00>Z!dd <00>Z"d!d"<00>Z#d#d$<00>Z$d%d&<00>Z%d'd(<00>Z&d)d*<00>Z'ed+d,<00><00>Z(d-d.<00>Z)d/d0<00>Z*d1d2<00>Z+d3d4<00>Z,d5d6<00>Z-d7d8<00>Z.d9d:<00>Z/ddd;d<<00>Z0d=d><00>Z1d?d@<00>Z2dAdB<00>Z3dCdD<00>Z4dEdF<00>Z5dS)G<>DefaultExecutionContextFNcCs|j|<00>}||_||_|j|_||_}d|_|jj|_|jr<>t |j<00>|_|jj
|j<00>n|j s<>t j |<00>|_|j|j<00>d|_nt j |<00>|_|_|j<00>|_g|_|jr |j<00>g|_n ig|_|S)z8Initialize execution context for a DDLElement construct.Tr)<16>__new__<5F>root_connection<6F>_dbapi_connectionrH<00>compiled<65>isddlrR<00>_execution_options<6E>execution_options<6E>dictrur\r rP<00>unicode_statementr/<00> create_cursorrK<00>compiled_parametersrr^rV)r;rHr@r<>Z compiled_ddlr1r<>r3r3r4<00> _init_ddl<64>s(          z!DefaultExecutionContext._init_ddlc
s|j|<00>}||_||_|j|_<00>|_<00>jsQtjd<00><00>n<00>jj j
|j <00>|_ <00>j <00>j f|_tj<00><00>|_<00>js<>|jj|jj<00>|_n |j|_<00>j|_<00>j|_<00>j|_<00>j|_|s<01>j<00>g|_n7<00>fdd<00>t|<00>D<>|_t|<00>dk|_|j<00>|_ |jsr|jsr|jr<>d|_!t"<00>jj#<00>|_$t"<00>j%o<><01>jj# <0C>|_&|js<>|jj'r<>|jr<>|j(<00>q<>|j)<00>q<>q<>n<00>j*<00>g}<00>j+r<>x<>|jD]t<00>g}xO|jj,D]A}|<00>krX|j-<00>|<19>|<19><00>q(|j-<00>|<19>q(W|j-<00>j.|<00><00>qWn{<00>j } xn|jD]c<00>| r<>t/<00><00><00>fdd<00><00>D<><00>}n"t/<00><00>fdd<00><00>D<><00>}|j-|<00>q<>W<>j.|<00>|_0|S) z6Initialize execution context for a Compiled construct.zNot an executable clausecs+g|]!\}}<00>j|d|<00><01>qS)Z _group_number)<01>construct_params)rY<00>grp<72>m)r<>r3r4rZ)s z:DefaultExecutionContext._init_compiled.<locals>.<listcomp>rTc3sL|]B}<00>j|<00>d|<00>kr9<00>|<19>|<19>n<00>|fVqdS)rN)r/)rY<00>key)<03>compiled_paramsrHr r3r4<00> <genexpr>Rsz9DefaultExecutionContext._init_compiled.<locals>.<genexpr>c3s?|]5}||<00>kr,<00>|<19>|<19>n<00>|fVqdS)Nr3)rYr<>)r<>r r3r4r<>\s)1r<31>r<>r<>rHr<>Z can_executer
r)rRr<><00>unionr<6E>Z_result_columnsZ_ordered_columns<6E>result_column_structr rPr<>r\<00>encoder<00>isinsert<72>isupdate<74>isdeleteZ isplaintext<78>is_textr<74>r<><00> enumeraterqr<>r<>rK<00>is_crud<75>boolZ
_returning<EFBFBD>_is_explicit_returning<6E> returning<6E>_is_implicit_returning<6E>prefetch<63>_process_executemany_defaults<74>_process_executesingle_defaultsZ_bind_processorsr<00> positiontupr<70>r^r<>rV)
r;rHr@r<>r<>rVr1<00>paramr<6D>r<>r3)r<>r<>rHr r4<00>_init_compiledsr                     
 z&DefaultExecutionContext._init_compiledcs||j|<00>}||_||_|j|_d|_|j|_|sx|jjri<00>j<00>g|_ qig|_ n<>t
|d<19>j<00>r<>||_ nlt
|dt <00>r<><00>j r<>||_ q<01>fdd<00>|D<>p<>ig|_ n<00>fdd<00>|D<>|_ t |<00>dk|_<00>j rYt
|tj<00>rY||_<00>j|<00>d|_n||_|_|j<00>|_|S)z8Initialize execution context for a string SQL statement.Trcs2g|](<00>t<00><00>fdd<00><00>D<><00><00>qS)c3s,|]"}<00>j|<00>d<19>|fVqdS)rN)r/)rY<00>k)<02>drHr3r4r<><00>szEDefaultExecutionContext._init_statement.<locals>.<listcomp>.<genexpr>)r<>)rY)rH)r<>r4rZ<00>s z;DefaultExecutionContext._init_statement.<locals>.<listcomp>csg|]}<00>j|<00><00>qSr3)r^)rY<00>p)rHr3r4rZ<00>s r)r<>r<>r<>rHr<>r<>r<>rr^rVrOr<>r\rqr<>r rPr<>r/rRr<>rK)r;rHr@r<>rRrVr1r3)rHr4<00>_init_statementjs8         
 
 z'DefaultExecutionContext._init_statementcCsL|j|<00>}||_||_|j|_|j|_|j<00>|_|S)z;Initialize execution context for a ColumnDefault construct.)r<>r<>r<>rHr<>r<>r<>rK)r;rHr@r<>r1r3r3r4<00> _init_default<6C>s    z%DefaultExecutionContext._init_defaultcCs
|jjS)N)r<>r})r1r3r3r4r}<00>szDefaultExecutionContext.enginecCs
|jjS)N)r<><00> postfetch)r1r3r3r4<00>postfetch_cols<6C>sz&DefaultExecutionContext.postfetch_colscCs
|jjS)N)r<>r<>)r1r3r3r4<00> prefetch_cols<6C>sz%DefaultExecutionContext.prefetch_colscCs|jjdS)N)r<>r<>)r1r3r3r4<00>returning_cols<6C>sz&DefaultExecutionContext.returning_colscCs|jjdd<00>S)N<> no_parametersF)r<><00>get)r1r3r3r4r<><00>sz%DefaultExecutionContext.no_parameterscCsX|jjd|j r(|jr(tjp+d<00>}|tjkrP|j|j<00>S|SdS)N<>
autocommitF)r<>r<>r<>rRrZPARSE_AUTOCOMMIT<49>should_autocommit_textr<74>)r1r<>r3r3r4<00>should_autocommit<69>s 
   z)DefaultExecutionContext.should_autocommitcCs<>|j}t|tj<00>rA|jj rA|jj|<00>d}n|jjr_|jj<00>}ni}|j |j
||d|<00>|j
j <00>d}|dk r<>|j |j|j
j dd<19>}|r<>||<00>Sn|S)aExecute a string statement on the current cursor, returning a
scalar result.
Used to fire off sequences, default phrases, and "select lastrowid"
types of statements individually or in the context of a parent INSERT
or UPDATE statement.
rr<>Nr)r<>rOr rPrHr\r/rr^rLrKrM<00>_cached_result_processorrh)r1Zstmt<6D>type_rnZdefault_params<6D>r<>procr3r3r4<00>_execute_scalar<61>s
    z'DefaultExecutionContext._execute_scalarcCs |jj<00>S)N)r<>Z_branch)r1r3r3r4r@<00>sz"DefaultExecutionContext.connectioncCs tj|<00>S)N)<02>AUTOCOMMIT_REGEXP<58>match)r1rRr3r3r4r<><00>sz.DefaultExecutionContext.should_autocommit_textcCs |jj<00>S)N)r<>rK)r1r3r3r4r<><00>sz%DefaultExecutionContext.create_cursorcCsdS)Nr3)r1r3r3r4<00>pre_exec<65>sz DefaultExecutionContext.pre_execcCsdS)Nr3)r1r3r3r4<00> post_exec<65>sz!DefaultExecutionContext.post_execcCs|j|j|<00>S)z<>Return a 'result processor' for a given type as present in
cursor.description.
This has a default implementation that dialects can override
for context-sensitive result type handling.
)r<>rH)r1r<>ZcolnameZcoltyper3r3r4<00>get_result_processor<6F>sz,DefaultExecutionContext.get_result_processorcCs
|jjS)a<>return self.cursor.lastrowid, or equivalent, after an INSERT.
This may involve calling special cursor functions,
issuing a new SELECT on the cursor (or a new one),
or returning a stored value that was
calculated within post_exec().
This function will only be called for dialects
which support "implicit" primary key generation,
keep preexecute_autoincrement_sequences set to False,
and when no explicit id value was bound to the
statement.
The function is called once, directly after
post_exec() and before the transaction is committed
or ResultProxy is generated. If the post_exec()
method assigns a value to `self._lastrowid`, the
value is used in place of calling get_lastrowid().
Note that this method is *not* equivalent to the
``lastrowid`` method on ``ResultProxy``, which is a
direct proxy to the DBAPI ``lastrowid`` accessor
in all cases.
)rK<00> lastrowid)r1r3r3r4<00> get_lastrowid<69>sz%DefaultExecutionContext.get_lastrowidcCsdS)Nr3)r1r<>r3r3r4<00>handle_dbapi_exceptionsz.DefaultExecutionContext.handle_dbapi_exceptioncCs tj|<00>S)N)rZ ResultProxy)r1r3r3r4<00>get_result_proxysz(DefaultExecutionContext.get_result_proxycCs
|jjS)N)rK<00>rowcount)r1r3r3r4r<> sz DefaultExecutionContext.rowcountcCs
|jjS)N)rHr<>)r1r3r3r4r<>$sz.DefaultExecutionContext.supports_sane_rowcountcCs
|jjS)N)rHr<>)r1r3r3r4r<>'sz4DefaultExecutionContext.supports_sane_multi_rowcountcCsP|jr\|j r\|j rC|jj rC|jjrC|j<00>q\|js\|j<00>q\n|j <00>}|jr<>|jr<>|j
<00>}||_ |j |<00>|j dd<00>d|_qL|jsL|j dd<00>d|_qLnl|jr#|jr#|j
<00>}||_ |j dd<00>d|_n)|jdkrL|j|j dd<00>n|S)NZ_autoclose_connectionF)r<>r<>r<>r<><00>inlinerHr<><00>_setup_ins_pk_from_lastrowid<69>_setup_ins_pk_from_emptyr<79>rMZreturned_defaults<74>%_setup_ins_pk_from_implicit_returningZ _soft_closeZ _metadatar<61>r<>r<>)r1rrSr3r3r4<00>_setup_crud_result_proxy*s8 

               z0DefaultExecutionContext._setup_crud_result_proxycs<>|jjd<19>|jjj}|jd<19>|j<00><00><00>dk r<>|j<00><00>dk r<><00>jj|j d<00>}|dk r<>|<00><00><00>q<>n<00><00><00><00>fdd<00>|j
D<>|_ n"<00><00>fdd<00>|j
D<>|_ dS)Nrrcs:g|]0}|<00>kr<00>n<00>j<00>|<00>d<00><00>qS)N)r<>)rY<00>c)<04> autoinc_colr<6C><00>
key_getterr<EFBFBD>r3r4rZ_s zHDefaultExecutionContext._setup_ins_pk_from_lastrowid.<locals>.<listcomp>cs(g|]}<00>j<00>|<00>d<00><00>qS)N)r<>)rYr<>)r<>r<>r3r4rZgs ) r<><00>_key_getters_for_crud_columnrRrlr<>r<>Z_autoincrement_column<6D>typer<65>rH<00> primary_key<65>inserted_primary_key)r1rlr<>r3)r<>r<>r<>r<>r4r<>Ps       z4DefaultExecutionContext._setup_ins_pk_from_lastrowidcsR|jjd<19>|jjj}|jd<19><00><00>fdd<00>|jD<>|_dS)Nrrcs(g|]}<00>j<00>|<00>d<00><00>qS)N)r<>)rYr<>)r<>r<>r3r4rZps zDDefaultExecutionContext._setup_ins_pk_from_empty.<locals>.<listcomp>)r<>r<>rRrlr<>r<>r<>)r1rlr3)r<>r<>r4r<>ks
 z0DefaultExecutionContext._setup_ins_pk_from_emptycse|jjd<19>|jjj}|jd<19><00>fdd<00><00><00>fdd<00>|jD<>D<>|_dS)Nrrcs2g|](\}}|dkr(<00>|n|<00>qS)Nr3)rY<00>col<6F>value)rSr3r4rZzs zQDefaultExecutionContext._setup_ins_pk_from_implicit_returning.<locals>.<listcomp>cs.g|]$}|<00>j<00>|<00>d<00>f<00>qS)N)r<>)rYr<>)r<>r<>r3r4rZ|s )r<>r<>rRrlr<>r<>r<>)r1rSrlr3)r<>r<>rSr4r<>ts  z=DefaultExecutionContext._setup_ins_pk_from_implicit_returningcCs"|js|jo!t|jj<00>S)N)r<>r<>r<>r<>r<>)r1r3r3r4<00>lastrow_has_defaults<74>sz,DefaultExecutionContext.lastrow_has_defaultsc s/t<00>jd<00>sdSt<00>fdd<00><00>jjD<><00>}<00>jjrg}xn<00>jjD]`}||}|j<00>j<00>j<00>jj <00>}|dk rZ| s<>||krZ|j
|<00>qZqZWy<00>j j |<00>Wq+t k
r}z!<00>jj|ddd<00><00>WYdd}~Xq+Xni}x<><00>jjj<00>D]<5D>}||}|j<00>j<00>j<00>jj <00>}|dk r2| s<>||kr2|r<>|j||<00>}n<00>jjs<><01>jj|<00>d}n|||<q2q2Wy<00>j j |<00>WnAt k
r*}z!<00>jj|ddd<00><00>WYdd}~XnXdS)a&Given a cursor and ClauseParameters, call the appropriate
style of ``setinputsizes()`` on the cursor, using DB-API types
from the bind parameter's ``TypeEngine`` objects.
This method only called by those dialects which require it,
currently cx_oracle.
<20>
bind_namesNc3s(|]}<00>jj||jfVqdS)N)r<>r<>r<>)rYZ bindparam)r1r3r4r<><00>sz:DefaultExecutionContext.set_input_sizes.<locals>.<genexpr>r)<14>hasattrr<72>r<>r<>rHrr<>Z dialect_implZget_dbapi_typerr<>rKZ setinputsizes<65> Exceptionr<6E>Z_handle_dbapi_exception<6F>valuesr<73>r<>r/) r1<00> translateZ exclude_typesr Z
inputsizesr<EFBFBD>Z
typeengineZdbtyper<65>r3)r1r4<00>set_input_sizes<65>sD
 
!  )
!   z'DefaultExecutionContext.set_input_sizescCs<>|jr|j||<00>S|jr/|j|<00>S|jr{|j}tj|jg<00>jd|<00>}|j |fi<00>j
<00>S|jSdS)N<>bind) <0B> is_sequenceZ fire_sequenceZ is_callable<6C>argZis_clause_elementr@rrIrJZ_execute_compiledZscalar)r1rr<>rnr<>r3r3r4<00> _exec_default<6C>s     !z%DefaultExecutionContext._exec_defaultcCs-|jdkrdS|j|j|j<00>SdS)N)rr<>r<>)r1<00>columnr3r3r4<00>get_insert_default<6C>sz*DefaultExecutionContext.get_insert_defaultcCs-|jdkrdS|j|j|j<00>SdS)N)<03>onupdater<65>r<>)r1rr3r3r4<00>get_update_default<6C>sz*DefaultExecutionContext.get_update_defaultcCs/|jjd}|jj}i}xp|D]h}|jr`|jr`|jjr`|jj||<q)|jr)|jr)|jjr)|jj||<q)q)Wx<57>|j D]<5D>}||_
xp|D]h}||kr<>||}n*|jr<>|j |<00>}n|j |<00>}|dk r<>||||<00><q<>q<>Wq<57>W|`
dS)Nr) r<>r<>r<>r<>r<00> is_scalarr<72>r<>rr<><00>current_parametersrr)r1r<>r<>Zscalar_defaultsr<73>r<><00>valr3r3r4r<><00>s&        z5DefaultExecutionContext._process_executemany_defaultscCs<>|jjd}|jj}|jd|_}x<>|D]<5D>}|jr<>|jrw|jj rw|jjrw|jj }q<>|j
|<00>}n|j |<00>}|dk r7||||<00><q7q7W|`dS)Nrr) r<>r<>r<>r<>rr<>rr<>rr<>rr)r1r<>r<>r<>r<>rr3r3r4r<><00>s     z7DefaultExecutionContext._process_executesingle_defaults)6r<36>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rRr<>r<>r<>Z_translate_colnamer<65>r<>r<>r<>r<>r r<>r}r<>r<>r<>r<>r<>r<>r<>r@r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrr<>r<>r3r3r3r4r<><00>s^ !f-      
     &  2    r<>)r<><00>rer<65><00>rrrZsqlrrr rar
r r r r-r6rrJ<00>I<>UNICODEr<45><00>DialectrZExecutionContextr<74>Zexecution_ctx_clsr3r3r3r4<00><module>s$  "  <19><00><19><00>3