PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
 ec@smdZddlmZddlmZddlZddlmZddlmZddlmZ dd lm Z dd lm Z dd l m Z dd l mZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dl m!Z!d dl m"Z"d dl m#Z#d dl$m%Z%d dl&m'Z'd Z(d!Z)e*d"Z+d#Z,d$Z-d%Z.d&Z/d'Z0e*e*e*d(Z1e*d)Z2d*Z3d+Z4e5d,Z6e5d-Z7d.Z8d/Z9d0Z:d1Z;d2Z<d3Z=d4Z>d5Z?ej@ZAd6efd7YZBd8fd9YZCejDd:d;d<eCe"fd=YZEejDd:d>d?eCe#eBfd@YZFejDd:dAdBeCe!eBfdCYZGdS(Dsprivate module containing functions used to emit INSERT, UPDATE and DELETE statements on behalf of a :class:`_orm.Mapper` and its descending mappers. The functions here are called only by the unit of work functions in unitofwork.py. i(tchain(tgroupbyNi(t attributes(t evaluator(texc(tloading(tsync(tNO_VALUE(t state_stri(tfuture(tsql(tutil(tresult(t coercions(t expression(t operators(troles(tselect(tsqltypes(t_entity_namespace_key(t CompileState(tOptions(tDeleteDMLState(tInsertDMLState(tUpdateDMLState(tBooleanClauseList(tLABEL_STYLE_TABLENAME_PLUS_COLc sj}|jjr$tdn|r|rtg|D]}||jf^q7}g|D]\}} | ^qY}qg|D]}|j^q{}n t|}|j|x|jjD]\} } j | sqnfdt | fd|Ddt d|d|D} t |d| | | d|qW|r|rj} gjD]}|j^qe}xC|D]8\}} | tg|D]}| |^qf|_qWndS(NsJconnection_callable / per-instance sharding not supported in bulk_insert()c 3sE|];\}}}}}}}}d|||||fVqdS(N(tNone( t.0tstatet state_dicttparamstmptconnt value_paramst has_all_pksthas_all_defaults(t connectiontmapper(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys Ps c3s!|]}d|fVqdS(N(R(Rtmapping(R%R&(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys estbulktreturn_defaultst render_nullst bookkeeping(t base_mappertsessiontconnection_callabletNotImplementedErrortdicttlistR%t_sorted_tablestitemstisat_collect_insert_commandstTruet_emit_insert_statementsRt_identity_classt_identity_key_propstkeyttuple(R&tmappingstsession_transactiontisstatesR)R*R,Rtstatestdict_ttablet super_mappertrecordst identity_clstptidentity_propsR:((R%R&sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt _bulk_insert1sD   ""     c sKj}jjr6jjhjnfd}|r|rvg|D]}||^qX}qg|D]}|j^q}}n t|}|jjrt dn|j |xy|j j D]h\}} j | sqntd|fd|Ddt} t|d| || dtqWdS(Ncs&tfdjjDS(Nc3s<|]2\}}|jks*|kr||fVqdS(N(tcommitted_state(Rtktv(t search_keysR(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys s (R0R3(R&R(RK(RsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt _changed_dictssJconnection_callable / per-instance sharding not supported in bulk_update()c3s=|]3}d|jr.|jjndfVqdS(N(Rt_version_id_propR:(RR'(R%R&(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys s R(R+(R,t_primary_key_propkeysRMR:tunionR0R1R-R.R/R%R2R3R4t_collect_update_commandsRR6t_emit_update_statementstFalse( R&R<R=R>tupdate_changed_onlyR,RLRRARBRC((R%R&RKsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt _bulk_update~s<   %     cCs}| rH|j rHx0t||D]}t||g|dtq!WdSg}g}xst|||D]_\}}}} } } } | s| r|j|||| | fqg|j|||| fqgWx|jjD]n\} }| |jkrqnt | |}t || |}t |||| |t |||| |qWt ||td|Dd|DdS(s;Issue ``INSERT`` and/or ``UPDATE`` statements for a list of objects. This is called within the context of a UOWTransaction during a flush operation, given a list of states to be flushed. The base mapper in an inheritance hierarchy handles the inserts/ updates for all descendant mappers. tsingleNcss0|]&\}}}}||||tfVqdS(N(RR(RRRR&R%((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys scss3|])\}}}}}||||tfVqdS(N(R6(RRRR&R%tupdate_version_id((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys s (tbatcht _sort_statestsave_objR6t_organize_states_for_savetappendR2R3t _pks_by_tableR5RPRQR7t _finalize_insert_update_commandsR(R,R?tuowtransactionRURtstates_to_updatetstates_to_insertR@R&R%t has_identityt row_switchRVRAtinserttupdate((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRYsL +  cstt|||}xy|jjD]h\jkrIq(nfd|D}t||||}t|||q(WdS(s\Issue UPDATE statements on behalf of a relationship() which specifies post_update. c 3sf|]\\}}}}|jkr||||jdk rWj||jndfVqdS(N(R\tversion_id_colRt#_get_committed_state_attr_by_column(RRRt sub_mapperR%(R&RA(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys "s N(R1t _organize_states_for_post_updateR2R3R\t_collect_post_update_commandst_emit_post_update_statements(R,R?R^tpost_update_colsR_Rd((R&RAsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt post_updates c Cstt|||}|j}xtt|jD]h}||}||jkr_q:n|jrw|jrwq:nt||||}t |||||q:Wx3|D]+\}} }} } |j j || |qWdS(sIssue ``DELETE`` statements for a list of objects. This is called within the context of a UOWTransaction during a flush operation. N( R1t_organize_states_for_deleteR2treversedtkeysR\tinheritstpassive_deletest_collect_delete_commandst_emit_delete_statementstdispatcht after_delete( R,R?R^tstates_to_deletettable_to_mapperRAR&tdeleteRRR%RV((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt delete_obj>s(   c csxt|||D]\}}}}t|j}|jpI|j|}d} } |su|jj|||n|jj||||jr|j|||n| rd||j j krd|j j |} t j | } |j | sd|j| s)tjdt||t| fqa|jd|t|t| |j| | } qdn|sp| r|jdk r|j| r| n|| r| jn||j} n|||||| | fVqWdS(sTMake an initial pass across a set of states for INSERT or UPDATE. This includes splitting out into distinct lists for each, calling before_insert/before_update, obtaining key information for each state including its dictionary, mapper, the connection to use for the execution per state, and the identity flag. sJNew instance %s with identity key %s conflicts with persistent instance %ssPdetected row switch for identity %s. will update %s, remove %s from transactionN(t_connections_for_statestboolR:t_identity_key_from_stateRRtt before_insertt before_updatet_validate_polymorphic_identityR-t identity_mapRtinstance_statetwas_already_deletedt is_deletedR twarnRt _log_debugtremove_state_actionsReRfR0( R,R?R^RR@R&R%Rat instance_keyRbRVtinstancetexisting((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRZisL        cCst|||S(sMake an initial pass across a set of states for UPDATE corresponding to post_update. This includes obtaining key information for each state including its dictionary, mapper, the connection to use for the execution per state. (Rz(R,R?R^((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRhs ccsxt|||D]l\}}}}|jj||||jdk re|j|||j}nd}|||||fVqWdS(sMake an initial pass across a set of states for DELETE. This includes calling out before_delete and obtaining key information for each state including its dictionary, mapper, the connection to use for the execution per state. N(RzRtt before_deleteReRRf(R,R?R^RR@R&R%RV((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRmsc cs-x&|D]\}}}}||jkr.qni} i} |j|} |j|} xt| j|D]} || }| | }|dkr|| kr| rqjqj| rt|dst|tj rt|dr|j n|| |YsRc3s+|]!}|jj|fVqdS(N(t_labeltget(RR(RR(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys st pk_cascadedisCCan't update table %s using NULL for primary key value on column %sN(-R\RR0RRRt_pk_attr_keys_by_tableR6RHRRR RRtmanagertimpltis_equalR:R,Rt_server_onupdate_default_colsRRReRt_columntopropertytvaluest get_historyRtPASSIVE_NO_INITIALIZEtaddedRRRRt PASSIVE_OFFtdeletedtpopt unchangedtorm_exct FlushErrorRdt_table_to_equatedRtpopulatetpassive_updates(R^RAR_R(RR&R%RVtpksR"RR$RRRtpropthistoryt no_paramstvalR#texpect_pk_cascadedt pk_paramstmt equated_pairs((RRsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRP6s                            ccsx|D]\}}}}} |j|} i} t} x|j|D]} | | kr}|j||| dtj| | j{s   itexecution_optionsiisMUPDATE statement on table '%s' expected to update %d row(s); %d were matched.sMDialect %s does not support updated rowcount - versioning cannot be verified.N(ReRRt_compiled_cachet_memoRR1RRR)R6R,Rtdialecttsupports_sane_rowcountt supports_sane_rowcount_returningtsupports_sane_multi_rowcountt _execute_20Rt _postfetchtcontexttcompiled_parameterstreturned_defaultstrowcounttlent executemanyRtStaleDataErrort descriptionR Rtdialect_description(R,R^R&RARdR+RRt cached_stmtR%t paramkeysthasvalueR$R#RCtrowst statementR)tassert_singlerowtassert_multirowtallow_multirowRRRR"Rtcheck_rowcountRt multiparams((R&RRAsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRQNs %           "       "    " "c! Cs|jd|f|j}i|jd6}xt|dD]\\}} } } } } |}| s| s|j s|jj rn| rn| rnt| } g| D]}|d^q}|j||d|}|rxt | |j j D]w\\}}}}}}} } }|rTt ||||||||t |j jsJ|jnd qt|||qWqq>t| } | r|jjrt| dkrt}nt }| r|jr|j}n?|jd k r|j|j}n|r |j|j}n|rhg| D]}|d^q}|j||d|}|rxtj| |j j |j|jptd D]\\}}}}}}} } }}}|d krtjd|nxYt ||j|D]A\}}|j|}|j |j!d kr|||j!xd| D]\\}}}}}}} } |r|j|j"||d|}n|j||d|}|j#} | d krtjd|fnxet | |j|D]M\}}|j|}||ksQ|j |j!d kr|||j!Wd S( s`Emit INSERT statements corresponding to value lists collected by _collect_insert_commands().RcRcSs3|dt|dt|d|d|dfS(Niiiii(RR{(R((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR-s   iRisMulti-row INSERT statement for %s did not produce the correct number of INSERTed rows for RETURNING. Ensure there are no triggers or special driver issues preventing INSERT from functioning properly.sSingle-row INSERT statement for %s did not produce a new primary key result being invoked. Ensure there are no triggers or special driver issues preventing INSERT from functioning properly.iN(($RRcRRRRtimplicit_returningR1RtzipRRRRRRRRt_postfetch_bulk_savetinsert_executemany_returningRR6R)Ret primary_keyR t zip_longesttinserted_primary_key_rowstreturned_defaults_rowsRRR\RRR:Rtinserted_primary_key(!R,R^R&RARcR+RRR%tpkeysRR#R$RCRRRRRRRt mapper_recR!R"tlast_inserted_paramstdo_executemanyRRtpkRRR R((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR7s %     7     :     "         c syi|jd6}jd k o2jjkfd}|jdf|}xt|dD]\}} d} t| } |d} jd kr| jjn | jj } | o| jj }  p| }|s]| }x| D]`\}}}} }| j ||d|}t ||||||j jd| |j7} qWng| D]\}}}}}|^qd}| p| ot|dk}| j ||d|}| |j7} xC| D];\}}}} }t ||||||j jdqW|rQ| t| krqtjdjt| | fqqqurutjd |jjququWd S( seEmit UPDATE statements corresponding to value lists collected by _collect_post_update_commands().Rcstjtj}x@jD]1}|jj|tj|j d|j kq Wr|jjj tjj j dj j knj j |}j dk r|jj }n|S(NR(RRRRR\RR[R RRRReRdRRR)(RRR(R&RRA(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRs &  RlcSs|dt|dfS(Nii(R(R((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR0tiRisMUPDATE statement on table '%s' expected to update %d row(s); %d were matched.sMDialect %s does not support updated rowcount - versioning cannot be verified.N(RReRRRRR1RRRRRt_postfetch_post_updateRRRRRRRR RR(R,R^R&RARdRRRR:RCRR%RRRRRRRRRR!R((R&RRAsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRjsn     % "csjd k o"jjkfd}|jdf|}xt|dD]\}}g|D]\} }| ^qx} i|jd6} t| } d} t}rF|jj rF|jj rd} xc| D]+} |j || d| }| |j 7} qWqvt jd|jj|j || d| n0|j || d| }smt}n|j } |jre| dkre| | kre|jj st| d kre|rt jd j| | fqtjd j| | fqeqeWd S( s`Emit DELETE statements corresponding to value lists collected by _collect_delete_commands().cstjtj}x@jD]1}|jj|tj|j d|j kq Wr|jjj tjj j dj j knj j |S(NR(RRRRR\RR[R RR:RReRxR(RR(R&tneed_version_idRA(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt delete_stmts & "RxcSs|dS(Ni((R((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRRRiiRsMDialect %s does not support deleted rowcount - versioning cannot be verified.isDELETE statement on table '%s' expected to delete %d row(s); %d were matched. Please set confirm_deleted_rows=False within the mapper configuration to prevent this warning.N(ReRRRRRRRRRRRRRR RRR6tconfirm_deleted_rowsRRR(R,R^R&RARxRRR%trecsRt del_objectsRtexpectedt rows_matchedt only_warnR((R&RRAsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRs~sP          c Csx |D]\}}}}}|jr|jg|jD]Z}|jr`|j s|j|jks|j r5|j r5|j|jkr5|j^q5} | r|j|j| qng} |jr| j|j j |j n|j dk r4|jtkr4|jj|jkr4| j|jjgq4n| r|j||_tj|jt} tj|j| |jd|d| n|s|jj|||n|jj||||jtkr|j dk r||jjdkr tjdq qqWdS(szfinalize state on states that have been inserted or updated, including calling after_insert/after_update events. t refresh_statetonly_load_propss2Instance does not contain a non-NULL version valueN(t_readonly_propstunmodified_intersectiontexpire_on_flushtdeferredR:R0t_expire_attributesRtextendt_unloaded_non_objectRt&_server_default_plus_onupdate_propkeysReRRRRRMtunloadedR|R Rtset_label_styleRRt load_on_identR-Rtt after_insertt after_updateRR( R,R^R?RRR&R%RaREtreadonlyt toload_nowR((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR]sN     $     c Cst|j|rdS|jjj}|jjj}|jdk ro|j|j|krot||jg}nt |j j j } | rg} nxj|D]b} | j |kr| |jkr|| j ||j| j <| r| j|j| j qqqW| r(| r(|j j j ||| n|rp|j|jg|D]%} | |jkrA|j| j ^qAndS(N(RRtcompiledtprefetcht postfetchReRRR1R{t class_managerRtt refresh_flushR:RR[R R0( R&R^RARR@R Rt prefetch_colstpostfetch_colsRtload_evt_attrsR((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR,s0  !   c  Cs|jjj} |jjj} |jjj} |jdk rk|j|j|krkt| |jg} nt |j j j } | rg}n| r)| }|dk r)x|t || D]h\}}|jr|jjrqn|jj|}|r|||j<| r|j|jqqqWq)nxj| D]b}|j|kr0||jkr0||j||j|j<| r|j|j|jqq0q0W| r|r|j j j |||n|r|r| jg|D]!}|jr|| kr|^qn| rJ|j|jg| D]%}||jkr|j|j^qnx=|j|D].\}}tj|||||||jqXWdS(sExpire attributes in need of newly persisted database state, after an INSERT or UPDATE statement has proceeded for that state.N(RRRRt returningReRRR1R{RRtRRRtisinsertRRR:R[R R R0RRRR(R&R^RARR@R RR"tisupdateRRRtreturning_colsRRtrowt row_valueRRRRR((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRUs`     !    % )cCs5x.|j|D]\}}tj|||qWdS(N(RRtbulk_populate_inherit_keys(R&R@RARR((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRsccs|jjr|jj}n|jj|}d}xUt||D]D}|rg|||j}n|jj}||j ||fVqCWdS(sReturn an iterator of (state, state.dict, mapper, connection). The states are sorted according to _sort_states, then paired with the connection they should be using for the given unit of work transaction. N( R-R.t transactionR%RRXtobjRR&R0(R,R^R?R.R%RR&((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRzs  cCst|}td|D}|j|yt|d|j}Wn3tk r}}tjtjd|d|nXt|dt j d|S(Ncss$|]}|jdk r|VqdS(N(R:R(Rts((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys sR:s^Could not sort objects by primary key; primary key values must be sortable in Python (was: %s)treplace_contextt insert_order( Rtdifference_updatetsortedt_persistent_sortkey_fnt TypeErrorR traise_tsa_exctInvalidRequestErrortoperatort attrgetter(R&R?tpendingt persistenttpersistent_sortedterr((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRXs    tBulkUDCompileStatecBseZdefdYZedZedZedZedZedZ edZ edZ RS( tdefault_update_optionscBs>eZdZeZdZeZeZ eZ dZ dZ dZ RS(tevaluateN(t__name__t __module__t_synchronize_sessionR6t _autoflushRt_subject_mappert _EMPTY_DICTt_resolved_valuest_resolved_keys_as_propnamest_value_evaluatorst_matched_objectst _matched_rowst_refresh_identity_token(((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR9sc Cs|r||fStjjddh||j\}}|j}|dk rv|ddtfkrvtjdqvn||dt _annotatet_do_pre_synchronize_evaluatet_do_pre_synchronize_fetchR t immutabledictRO( tclsR-RRRtbind_argumentstis_reentrant_invoketupdate_optionsRRK((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pytorm_pre_session_execsT             cCsX|d}|jdkr/|j|||n%|jdkrT|j|||n|S(NRGR:RI(R=t_do_post_synchronize_evaluatet_do_post_synchronize_fetch(RVR-RRRRWR RY((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pytorm_setup_cursor_resultLs  csd}jrjnddjf|krc|tfd|djfD7}njjdk r|jjf7}nrtfd|D}n|S(sApply extra criteria filtering. For all distinct single-table-inheritance mappers represented in the table being updated or deleted, produce additional WHERE criteria such that only the appropriate subtypes are selected from the total results. Additionally, add WHERE criteria originating from LoaderCriteriaOptions collected from the statement. tadditional_entity_criteriac3s6|],}|js!|jkr|jVqdS(N(tinclude_aliasestentityt_resolve_where_criteria(Rtae(text_info(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys }sc3s|]}j|VqdS(N(ttraverse(Rtcrit(tadapter(sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pys s(N(tis_aliased_classt_adapterRR&R;t_single_table_criterion(RVtglobal_attributesRct return_crit((RfRcsM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyt_adjust_for_extra_criteriags    cCsE|j}|j}t} } ytj|} d } |jrM| |j7} ni} x*|jD]}|jr]|j| q]q]W| r| |j | |7} n| r| j | }n d}Wn6tj k r}t j tjd|d|nX|jdkr|j}n|}|jdkr|j||}i} |j||} xZ| D]O\}}y"| j tjtj|}Wntj k rq[X|| |0 s(RR1RCRoRBRDRRt instance_dictRFRRt unmodifiedRRRttrefresht_commitRR taddt_register_altered(RVR-R RYR?tevaluated_keysRtattribR'RR@t to_evaluateR:t to_expire((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR[* s,      cCs |j}t}t|jj}|jrbg|jD]}t||jf^q=}n |j }ggg|D]}|dd!|df^qxD]E\} } |jdks| |jkr|j t| d| ^qD]"} | |j kr|j | ^q} |j } td| D}x| D]}tj|tj|}}|jj|}x4|D],}||krn|j||||s s(R?RR1RCRot returns_rowstallR;RFRERtidentity_key_from_primary_keyRRBRRRRRRRtRRRR RR(RVR-R RYt target_mapperR?RR#RRRt identity_keytobjsRRR'RR@RR:R((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR\S s:   / 44"     (R;R<RRRR[R\(((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyRs;<)Rxt BulkORMDeletecBs5eZedZedZedZRS(c Ks|j|}|jjd}|j|_}i|_i}x*|jD]}|jrH|j|qHqHW|j||} | r|j | }n|r|jj dddkr|j j r|j|j}ntj|||||S(NRRHRI(RRARR&RRsRtRuRlRRRRRRRRR( RVRRRRRcR&RRR((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR s&     cCs0|jg|jD]}tj|^qdS(N(t_remove_newly_deletedRDRR(RVR-R RYR'((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR[ sc Cs|j}|jrDg|jD]}t||jf^q}n |j}xr|D]j}|dd!}|d}|jt|d|} | |jkrT|j t j |j| gqTqTWdS(NiiR( R?RRR;RFRERR1RRRR( RVR-R RYRR#RRRR((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR\ s  /      (R;R<RRR[R\(((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyR s! (Ht__doc__t itertoolsRRR2RRRRRRRtbaseRRR0R R R tengineR RR RRRRRtsql.baseRRRtsql.dmlRRRt sql.elementsRtsql.selectableRRGRTRRRYRlRyRZRhRmR5RPRiRrR6RQR7RjRsR]RRRRzRXRUR@R8Rt plugin_forRRR(((sM/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.pyts~  M B S + + Q  T 8 - { d J ) a    o.%