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@s{dZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd l m Z dd l m Z dd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZeddddddddddd 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`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgZdejfdYZdeejfdYZdeejfdYZdej fdYZ!ie!ej 6Z"i ed6ed6ed6ed6ed6ed6ed 6ed 6ed 6ed 6ed 6ed6ed6Z#de j$fdYZ%dej j&fdYZ'dej j(fdYZ)dej j*fdYZ+de j,fdYZ-de j.fdYZ/dS(s .. dialect:: firebird :name: Firebird .. note:: The Firebird dialect within SQLAlchemy **is not currently supported**. It is not tested within continuous integration and is likely to have many issues and caveats not currently handled. Consider using the `external dialect `_ instead. .. deprecated:: 1.4 The internal Firebird dialect is deprecated and will be removed in a future version. Use the external dialect. Firebird Dialects ----------------- Firebird offers two distinct dialects_ (not to be confused with a SQLAlchemy ``Dialect``): dialect 1 This is the old syntax and behaviour, inherited from Interbase pre-6.0. dialect 3 This is the newer and supported syntax, introduced in Interbase 6.0. The SQLAlchemy Firebird dialect detects these versions and adjusts its representation of SQL accordingly. However, support for dialect 1 is not well tested and probably has incompatibilities. Locking Behavior ---------------- Firebird locks tables aggressively. For this reason, a DROP TABLE may hang until other transactions are released. SQLAlchemy does its best to release transactions as quickly as possible. The most common cause of hanging transactions is a non-fully consumed result set, i.e.:: result = engine.execute(text("select * from table")) row = result.fetchone() return Where above, the ``CursorResult`` has not been fully consumed. The connection will be returned to the pool and the transactional state rolled back once the Python garbage collector reclaims the objects which hold onto the connection, which often occurs asynchronously. The above use case can be alleviated by calling ``first()`` on the ``CursorResult`` which will fetch the first row and immediately close all remaining cursor/connection resources. RETURNING support ----------------- Firebird 2.0 supports returning a result set from inserts, and 2.1 extends that to deletes and updates. This is generically exposed by the SQLAlchemy ``returning()`` method, such as:: # INSERT..RETURNING result = table.insert().returning(table.c.col1, table.c.col2).\ values(name='foo') print(result.fetchall()) # UPDATE..RETURNING raises = empl.update().returning(empl.c.id, empl.c.salary).\ where(empl.c.sales>100).\ values(dict(salary=empl.c.salary * 1.1)) print(raises.fetchall()) .. _dialects: https://mc-computing.com/Databases/Firebird/SQL_Dialect.html iN(texc(tsql(ttypes(tutil(tdefault(t reflection(tcompiler(t expression(tBIGINT(tBLOB(tDATE(tFLOAT(tINTEGER(tInteger(tNUMERIC(tSMALLINT(tTEXT(tTIME(t TIMESTAMPtactivetaddtadmintaftertalltaltertandtanytastasct ascendingtattautotavgtbeforetbegintbetweentbigintt bit_lengthtblobtbothtbytcasetcasttchart charactertcharacter_lengtht char_lengthtchecktclosetcollatetcolumntcommitt committedtcomputedt conditionaltconnectt constraintt containingtcounttcreatetcrosstcstringtcurrenttcurrent_connectiont current_datet current_rolet current_timetcurrent_timestamptcurrent_transactiont current_usertcursortdatabasetdatetdaytdectdecimaltdeclareRtdeletetdesct descendingt disconnecttdistincttdotdomaintdoubletdroptelsetendt entry_pointtescapet exceptiontexecutetexiststexittexternaltextracttfetchtfiletfiltertfloattfortforeigntfromtfulltfunctiontgdscodet generatortgen_idtglobaltgranttgroupthavingthourtiftintinactivetindextinnert input_typet insensitivetinserttinttintegertintotist isolationtjointkeytleadingtlefttlengthtleveltliketlongtlowertmanualtmaxtmaximum_segmenttmergetmintminutet module_nametmonthtnamestnationaltnaturaltnchartnotnottnulltnumerict octet_lengthtoftontonlytopentoptiontortordertoutert output_typetoverflowtpagetpagest page_sizet parametertpasswordtplantpositiont post_eventt precisiontprimaryt privilegest proceduret protecteds rdb$db_keytreadtrealtrecord_versiontrecreatet recursivet referencestreleasetreservt reservingtretaintreturning_valuestreturnstrevoketrighttrollbacktrowst row_countt savepointtschematsecondtsegmenttselectt sensitivetsettshadowtsharedtsingulartsizetsmallinttsnapshottsometsorttsqlcodet stabilitytstarttstartingtstartst statisticstsub_typetsumtsuspendttabletthenttimet timestampttottrailingt transactionttriggerttrimt uncommittedtuniontuniquetupdatetuppertusertusingtvaluetvaluestvarchartvariabletvaryingtviewtwaittwhentwheretwhiletwithtworktwritetyeart _StringTypecBseZdZddZRS(sBase for Firebird string types.cKs#||_tt|j|dS(N(tcharsettsuperRt__init__(tselfRtkw((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRXs N(t__name__t __module__t__doc__tNoneR(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRUstVARCHARcBs eZdZdZddZRS(sFirebird VARCHAR typeRcKs tt|jd||dS(NR(RRR(RRtkwargs((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRbsN(RRRt__visit_name__RR(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyR]stCHARcBs eZdZdZddZRS(sFirebird CHAR typeRcKs tt|jd||dS(NR(RRR(RRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRksN(RRRRRR(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRfst _FBDateTimecBseZdZRS(cCs d}|S(NcSs9t|tjkr1tj|j|j|jS|SdS(N(ttypetdatetimeRHRRRI(R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytprocessqs((RtdialectR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytbind_processorps (RRR (((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRostSHORTtLONGtQUADR R RRtINT64tDOUBLERtVARYINGtCSTRINGR tFBTypeCompilercBsGeZdZdZdZdZdZdZdZRS(cKs|j||S(N(tvisit_SMALLINT(Rttype_R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt visit_booleanscKs|j||S(N(tvisit_TIMESTAMP(RRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_datetimescKsdS(NsBLOB SUB_TYPE 1((RRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt visit_TEXTscKsdS(NsBLOB SUB_TYPE 0((RRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt visit_BLOBscCs4t|dd}|dkr"|Sd||fSdS(NRs%s CHARACTER SET %s(tgetattrR(RRtbasicR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt_extend_strings cKs+tt|j||}|j||S(N(RRt visit_CHARR(RRRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRscKsP|js%tjd|jjntt|j||}|j||S(Ns'VARCHAR requires a length on dialect %s( RRt CompileErrorRtnameRRt visit_VARCHARR(RRRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRs  ( RRRRRRRRR(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRs      t FBCompilercBseZdZeZdZdZdZdZe dZ dZ dZ e Z dZd Zd Zd Zd Zd ZRS(s Firebird specific idiosyncrasiescKsdS(NtCURRENT_TIMESTAMP((RtfnR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_now_funcscKs,d|jj|||jj||fS(Ns%s STARTING WITH %s(Rt_compiler_dispatchR(RtbinarytoperatorR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_startswith_op_binaryscKs,d|jj|||jj||fS(Ns%s NOT STARTING WITH %s(RR$R(RR%R&R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_not_startswith_op_binaryscKs,d|j|j||j|j|fS(Ns mod(%s, %s)(RRR(RR%R&R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_mod_binaryscKs|jjr+tt|j|d||S|rt|jtjr[|j d|jpa|j}|j |j d||d|j j ||S|j |j |SdS(Ntasfromtaliast (Rt _version_twoRR t visit_aliast isinstanceRRt_truncated_labelt_truncated_identifierRtelementtpreparert format_alias(RR+R*Rt alias_name((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyR.s  0cKs|j|jjd}|j|jjd}t|jjdkrt|j|jjd}d|||fSd||fSdS(NiiisSUBSTRING(%s FROM %s FOR %s)sSUBSTRING(%s FROM %s)(Rtclausestlen(RtfuncRtsRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_substring_funcs cKs2|jjrd|j|Sd|j|SdS(NR.tstrlen(RR-tfunction_argspec(RRhR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_length_funcs cKs9|jdk r1t|jr1|j|j|SdSdS(Nt(R6RR7Rt clause_expr(RR8R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyR<scCsdS(Ns FROM rdb$database((R((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt default_fromscKsd|jj|S(Ns gen_id(%s, 1)(R3tformat_sequence(RtseqR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_sequencescKsd}|jdk r5|d|j|j|7}n|jdk rd|d|j|j|7}n|tt|j||7}|S(sCalled when building a ``SELECT`` statement, position is just before column list Firebird puts the limit and offset right after the ``SELECT``... R>s FIRST %s sSKIP %s N(t _limit_clauseRRt_offset_clauseRR tget_select_precolumns(RRRtresult((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRF s  cKsdS(s<Already taken care of in the `get_select_precolumns` method.R>((RRR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt limit_clausescCs?gtj|D]}|j||^q}ddj|S(Ns RETURNING s, (Rt_select_iterablest_label_returning_columnR~(Rtstmttreturning_colstctcolumns((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytreturning_clauses+(RRRtTruetansi_bind_rulesR#R'R(R)tFalseR.R:R=tvisit_char_length_funcR<R@RCRFRHRO(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyR s           t FBDDLCompilercBs)eZdZdZdZdZRS(s!Firebird syntactic idiosyncrasiescCs|jjdk r!tdn|jjdk rBtdn|jjred|jj|jSd|jj|jSdS(s;Generate a ``CREATE GENERATOR`` statement for the sequence.s,Firebird SEQUENCE doesn't support START WITHs.Firebird SEQUENCE doesn't support INCREMENT BYsCREATE SEQUENCE %ssCREATE GENERATOR %sN( R2RRtNotImplementedErrort incrementRR-R3RA(RR;((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_create_sequence(s      cCs>|jjr#d|jj|jSd|jj|jSdS(s9Generate a ``DROP GENERATOR`` statement for the sequence.sDROP SEQUENCE %ssDROP GENERATOR %sN(RR-R3RAR2(RRU((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_drop_sequence?s     cCsD|jdk r!tjdnd|jj|jdtdtS(Ns}Firebird computed columns do not support a persistence method setting; set the 'persisted' flag to None for Firebird support.sGENERATED ALWAYS AS (%s)t include_tablet literal_binds( t persistedRRRt sql_compilerRtsqltextRRRP(Rt generated((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytvisit_computed_columnKs   (RRRRWRXR_(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRT%s  tFBIdentifierPreparercBs2eZdZeZejjdgZdZ RS(s)Install Firebird specific reserved words.t_cCs tt|j|dtdS(Nt omit_schema(RR`RRP(RR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyR_s( RRRtRESERVED_WORDStreserved_wordsRtILLEGAL_INITIAL_CHARACTERSRtillegal_initial_charactersR(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyR`Ws   tFBExecutionContextcBseZdZRS(cCs |jd|jj||S(s8Get the next value from the sequence using ``gen_id()``.s&SELECT gen_id(%s, 1) FROM rdb$database(t_execute_scalartidentifier_preparerRA(RRBR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyt fire_sequenceds(RRRj(((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRgcst FBDialectcBsReZdZdZeZdZeZeZ eZ eZ eZ eZ eZeZeZeZeZeZeZeZgZeZdZdZddZ ddZ!e"j#ddZ$e"j#ddZ%e"j#dd Z&e"j#dd Z'e"j#dd Z(e"j#dd Z)e"j#dd Z*e"j#ddZ+RS(sFirebird dialecttfirebirdicOs0tjdddtt|j||dS(NsThe firebird dialect is deprecated and will be removed in a future version. This dialect is superseded by the external dialect https://github.com/pauldex/sqlalchemy-firebird.tversions1.4(Rtwarn_deprecatedRRkR(RtargsR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pyRscCstt|j|d|jkr4|jdkpOd|jkoO|jdk|_|jstj|_tj|jd|dSdSdS(Nst SELECT rdb$view_source AS view_source FROM rdb$relations WHERE rdb$relation_name=? t view_source(R}R~RR(RR{t view_nameRRtqrytrpR((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytget_view_definitions c Kskd}|j|}|j|d|g}g|jD]}|j|d^q:} i| d6dd6S(Ns SELECT se.rdb$field_name AS fname FROM rdb$relation_constraints rc JOIN rdb$index_segments se ON rc.rdb$index_name=se.rdb$index_name WHERE rc.rdb$constraint_type=? AND rc.rdb$relation_name=? s PRIMARY KEYtfnametconstrained_columnsR(R~R}tfetchallRR( RR{RRRtkeyqryt tablenameRMtrtpkfields((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytget_pk_constraints ,c Ksl|j|}|j|}d}|j|||gj} | dk rhtd|j| dSdS(Ns SELECT trigdep.rdb$depended_on_name AS fgenerator FROM rdb$dependencies tabdep JOIN rdb$dependencies trigdep ON tabdep.rdb$dependent_name=trigdep.rdb$dependent_name AND trigdep.rdb$depended_on_type=14 AND trigdep.rdb$dependent_type=2 JOIN rdb$triggers trig ON trig.rdb$trigger_name=tabdep.rdb$dependent_name WHERE tabdep.rdb$depended_on_name=? AND tabdep.rdb$depended_on_type=0 AND trig.rdb$trigger_type=1 AND tabdep.rdb$field_name=? AND (SELECT count(*) FROM rdb$dependencies trigdep2 WHERE trigdep2.rdb$dependent_name = trigdep.rdb$dependent_name) = 2 Rt fgenerator(R~R}RRtdictR( RR{Rt column_nameRRRtcolnameRtgenr((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytget_column_sequences  cKsd}|j||}|d}|j|}|j||g} g} xtr| j} | dkrqPn|j| d} | d} | dj}|jj |}|dkrt j d|| ft j }nt|tr"| ddkr"td| dd | d d }n{|d!krA|| d}n\|dkr`t| d}n=|dkr| ddkrt}qt}n |}d}| ddk r| dj}|d jjdkstd||dj}|dkrd}qni| d6|d6t| d d6|d6dd6}| j| krjt|ds tcnameRt targetrnameRRRRt targetfname(R~R}Rt defaultdictRRtlistR( RR{RRRtfkqryRRMtfksRRtfk((sT/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/dialects/firebird/base.pytget_foreign_keyss     c Ksd}|j||j|g}tjt}x~|D]v}||d} d| kr|j|d| dQs&      !s2