o znh@sXddlmZddlmZddlmZddlmZddgZiZddZd dZd d Z d S) )config) exclusions)event)schemaTableColumnc sfddtD}tttjdr4dvr4dvr4dvr4d|vs+d|vr0d d<nd d<ttjd ry|d }tjjj j }d d|D}|D]*}|j }t |t jr^|jj}n||d }||krx|jdurpd|_|jdurxd|_qNt j|iS)z8A schema.Table wrapper/hook for dialect-specific tweaks.c"i|] }|dr||qStest_ startswithpop.0kkwD/usr/local/lib/python3.10/dist-packages/sqlalchemy/testing/schema.py "zTable..mysql mysql_engine mysql_type autoload_with test_needs_fktest_needs_acidInnoDBMyISAMfirebirdcSs(g|]}t|tjr|jD]}|q qSr) isinstancerr foreign_keys)rcolfkrrr -s zTable..NCASCADE)listupdate table_optionsragainstr_currentdbdialectidentifier_preparerunformat_identifiers_colspecr"rrtablenameondeleteonupdater) argsr test_opts table_nameunpackfksr%refr3rrrrs6        csfddtD}tjjtsdd|D}tj|i}|ddrTddrT|jdur:|j dur:d |_ d |j d<t tjd d rTd d }tj|d|d d|S)z9A schema.Column wrapper/hook for dialect-specific tweaks.cr r r rrrrrJrzColumn..cSsg|] }t|tjs|qSr)r"r ForeignKey)rargrrrr&MszColumn..test_needs_autoincrementF primary_keyNTr oraclecSs2|tjttjj|jd|jddddS)N__seqT)optional) _init_itemsrSequence_truncate_namerr-r.r3)ctblrrradd_seq^szColumn..add_seqafter_parent_attach) propagate)r(r requirementsforeign_key_ddlenabled_for_configrrgetdefaultserver_default autoincrementinforr+r,rlisten)r6rr7r$rIrrrrGs  cCsFt||jkr!|dt|jdddtt|dddS|S)Nr!rA@r)lenmax_identifier_lengthmaxhexhash)r.r3rrrrFlsrFN) rrrr__all__r*rrrFrrrrs    4 %