B 4]@sXddlmZddlmZddlmZddlmZddgZiZddZd dZd d Z d S) )config) exclusions)event)schemaTableColumnc sfddtD}tttjdrhdkrhdkrhdkrhd|ksVd|kr`d d<nd d<ttjd r|d }tjjj j }d d|D}x\|D]T}|j }t |t jr|jj}n ||d }||kr|jdkrd|_|jdkrd|_qWt j|S)z8A schema.Table wrapper/hook for dialect-specific tweaks.cs"i|]}|dr||qS)test_) startswithpop).0k)kwL/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/testing/schema.py szTable..ZmysqlZ mysql_engineZ mysql_typeZ autoload_withZ test_needs_fkZtest_needs_acidZInnoDBZMyISAMfirebirdcSs(g|] }t|tjr|jD]}|qqSr) isinstancerrZ foreign_keys)r colfkrrr .s zTable..NZCASCADE)listupdate table_optionsragainstr_currentdbdialectZidentifier_preparerZunformat_identifiersZ_colspecrrrtablenameZondeleteZonupdater) argsr test_optsZ table_nameunpackZfksrrefr r)rrrs2          csfddtD}tjjts2dd|D}tj|}|ddrddr|jdkrp|j dkrpd |_ d |j d<t tjd d rd d }tj|d|d d|S)z9A schema.Column wrapper/hook for dialect-specific tweaks.cs"i|]}|dr||qS)r )r r )r r )rrrrJszColumn..cSsg|]}t|tjs|qSr)rrZ ForeignKey)r argrrrrMszColumn..Ztest_needs_autoincrementFZ primary_keyNTrZoraclecSs2|tjttjj|jd|jddddS)N_Z_seqT)Zoptional)Z _init_itemsrSequence_truncate_namerrrr )cZtblrrradd_seq^s zColumn..add_seqZafter_parent_attach)Z propagate)rrZ requirementsZforeign_key_ddlZenabled_for_configrrgetdefaultZserver_defaultZ autoincrementinforrrrZlisten)r!rr"rr*r)rrrGs   cCsJt||jkrB|dt|jdddtt|dddS|SdS)Nrr&@r)lenZmax_identifier_lengthmaxhexhash)rr rrrr(ls4r(N) rrrr__all__rrrr(rrrrs    4%